From: Jay Freeman (saurik) Date: Tue, 1 Jan 2008 05:58:43 +0000 (+0000) Subject: Initial commit. X-Git-Url: https://git.saurik.com/apt-legacy.git/commitdiff_plain/da6ee4691da8cccb60b8673b4f97fb7f6df3ec7d Initial commit. A apt_0.6.46.4-0.1.tar.gz A port.diff git-svn-id: http://svn.telesphoreo.org/trunk@2 514c082c-b64e-11dc-b46d-3d985efe055d --- da6ee4691da8cccb60b8673b4f97fb7f6df3ec7d diff --git a/.cvsignore b/.cvsignore new file mode 100644 index 0000000..f9bbb82 --- /dev/null +++ b/.cvsignore @@ -0,0 +1,4 @@ +autom4te.cache +aclocal.m4 +configure +build diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..fa4cf13 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,41 @@ +The project hierachy stands at: + +CVS:jgg Jason Gunthorpe +- The Mad Cow incarnate + +CVS:mdz Matt Zimmerman +- Ongoing maintenance and coordination of development + +CVS:piefel Michael Piefel +- i18n and l10n + +Michael Vogt +- Development and bug fixes + +Past Contributors: + +CVS:che Ben Gertzfield +- Packaging and Releases + +CVS:bod Brendan O'Dea +- Perl Bindings + +CVS:tausq Randolph Chung +- Patches, Fixes, Debugging, GUIs and Releases + +Isaac Jones and Colin Walters + Initial implementation of authentication support (Release.gpg) + +Brian White - Project originator +Tom Lees - DPKG documentation and ideas +Behan Webster - Original GUI design +Scott Ellis - Original packaging and beta releases +Branden Robinson - Man Page Documentation +Manoj Srivastava - 1st Generation FTP method and + dselect setup script +Adam Heath - 2nd Generation FTP method author +Ben Collins - Initial RSH method +Many other bug reports through the Debian Bug system + +NOTE: The ChangeLog generator will parse for names and email addresses. The +'CVS:' tag should indicate who this pair refers to. diff --git a/COMPILING b/COMPILING new file mode 100644 index 0000000..fadbe17 --- /dev/null +++ b/COMPILING @@ -0,0 +1,85 @@ +General Information +~~~~~~~~~~~~~~~~~~~ +To compile this you need a couple things + - A working POSIX system with working POSIX gcc, g++, make (GNU), + ar, sh, awk and sed in the path + - GNU Make 3.74 or so, -- normal UNIX make will NOT work + * Note 3.77 is broken. + - A working ANSI C++ compiler, this is not g++ 2.7.* + g++ 2.8 works OK and newer egcs work well also. Nobody has tried it + on other compilers :< You will need a properly working STL as well. + - A C library with the usual POSIX functions and a BSD socket layer. + If you OS conforms to the Single Unix Spec then you are fine: + http://www.opengroup.org/onlinepubs/7908799/index.html + - Refer to the Build-Depends information in debian/control for + additional requirements (some of which are Debian-specific) + +** NOTICE ** +The C++ global constructors do not link correctly when using non-shared +libaries. This is probably the correct behavior of the linker, but I have +not yet had time to devise a work around for it. The correct thing to +do is add a reference to debSystem in apt-pkg/init.cc, +assert(&debSystem == 0) would be fine for instance. + +Guidelines +~~~~~~~~~~ +I am not interested in making 'ultra portable code'. I will accept patches +to make the code that already exists conform more to SUS or POSIX, but +I don't really care if your not-SUS OS doesn't work. It is simply too +much work to maintain patches for dysfunctional OSs. I highly suggest you +contact your vendor and express intrest in a conforming C library. + +That said, there are lots of finniky problems that must be delt with even +between the supported OS's. Primarily the path I choose to take is to put +a shim header file in build/include that transparently adds the required +functionality. Patches to make autoconf detect these cases and generate the +required shims are OK. + +Current shims: + * C99 integer types 'inttypes.h' + * sys/statvfs.h to convert from BSD/old-glibc statfs to SUS statvfs + * rfc2553 hostname resolution (methods/rfc*), shims to normal gethostbyname. + The more adventerous could steal the KAME IPv6 enabled resolvers for those + OS's with IPv6 support but no rfc2553 (why?) + * define _XOPEN_EXTENDED_SOURCE to bring in h_errno on HP-UX + * socklen_t shim in netdb.h if the OS does not have socklen_t + +The only completely non-shimed OS is Linux with glibc2.1, glibc2.0 requires +the first three shims. + +Platform Notes +~~~~~~~~~~~~~~ +Debian GNU Linux 2.1 'slink' +Debian GNU Linux 'potato' +Debian GNU Linux 'woody' + * All Archs + - Works flawlessly + - You will want to have debiandoc-sgml and docbook2man installed to get + best results. + - No IPv6 Support in glibc's < 2.1. + +Sun Solaris + SunOS cab101 5.7 Generic_106541-04 sun4u sparc + SunOS csu201 5.8 Generic_108528-04 sun4u sparc + - Works fine + - Note, no IPv6 Support, OS lacks RFC 2553 hostname resolution + +OpenBSD + OpenBSD gsb086 2.5 CMPUT#0 i386 unknown + OpenBSD csu101 2.7 CMPUT#1 i386 unknown + - OS needs 'ranlib' to generate the symbol table after 'ar'.. (not using + GNU ar with the gnu tool chain :<) + - '2.5' does not have RFC 2553 hostname resolution, but '2.7' does + - Testing on '2.7' suggests the OS has a bug in its handling of + ftruncate on files that have been written via mmap. It fills the page + that crosses the truncation boundary with 0's. + +HP-UX + HP-UX nyquist B.10.20 C 9000/780 2016574337 32-user license + - Evil OS, does not conform very well to SUS + 1) snprintf exists but is not prototyped, ignore spurios warnings + 2) No socklen_t + 3) Requires -D_XOPEN_SOURCE_EXTENDED for h_errno + configure should fix the last two (see above) + - Note, no IPv6 Support, OS lacks RFC 2553 hostname resolution + diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..9e277e5 --- /dev/null +++ b/COPYING @@ -0,0 +1,142 @@ +Apt is copyright 1997, 1998, 1999 Jason Gunthorpe and others. + +Apt is licened under the terms of the GNU General Public License (GPL), +version 2.0 or later, as published by the Free Software Foundation. See +the file COPYING.GPL [included], /usr/share/common-licenses/GPL, or + for the terms of the latest version +of the GNU General Public License. + +In addition, prior to November 15th, 2000, apt may be distributed under +terms identical to the above with the following addition: + +Works using apt may link against the GUI library "libqt", copyright by +Troll Tech AS, Norway, provided that: + +1. The version of "libqt" is licensed under the terms of the "Qt Free Edition + License" published by Troll Tech AS. The license terms identified as + the Qt Free Edition License below are the only such terms under which + distribution of works derived from both apt and "libqt" are permitted; + +and + +2. The source code of the version of "libqt" used is + + a) Distributed with the binary version; + + or + + b) Downloadable by anyone, without fee, using a publicly-announced + URL on the Internet, for a duration of at least three years + starting with distribution of the binary version. + +On and after November 15th, 2000, the above additional terms lose all +force, and apt will be licensed only under the terms of the GNU General +Public License, version 2.0 or later. + + _______________________________________________________________ + +The following text, up to the text of the Qt Free Edition License, is +informational and not part of the license terms on apt. + +Modifications to apt in either source or compiled form must be licensed +under the terms of the GNU General Public License, version 2.0 (or later), +but need not include the above clause permitting usage of the "libqt" +library under the Qt Free Edition License. Note that removal of this +clause will result in software which is not licensed for binary +redistribution linked against software governed by the Qt Free Edition +License. In the event that a version of "libqt" is released that is +licensed under terms that do not conflict with the GPL, the additional +clause above is not required to grant permission for distribution of works +that are derived from both apt and "libqt". + +No part of apt is licensed under the Qt Free Edition License. The terms +below are provided to help identify the circumstances under which the +"libqt" library may be used with apt (or a work derived from both). The +terms below are copied from the LICENSE file of the qt-1.44 distribution, +as of November 10th, 1999. + + _______________________________________________________________ + + QT FREE EDITION LICENSE + +Copyright (C) 1992-1999 Troll Tech AS. All rights reserved. + +This is the license for Qt Free Edition version 1.44; it covers private use, +use of third-party application programs based on Qt, and development of +free software for the free software community. + + + COPYRIGHT AND RESTRICTIONS + +The Qt toolkit is a product of Troll Tech AS. The Qt Free Edition is limited +to use with the X Window System. + +You may copy this version of the Qt Free Edition provided that the entire +archive is distributed unchanged and as a whole, including this notice. + +You may use this version of the Qt Free Edition to compile, link and run +application programs legally developed by third parties. + +You may use the Qt Free Edition to create application programs +provided that: + + You accept this license. + Your software does not require modifications to Qt Free Edition. + You satisfy ONE of the following three requirements + EITHER + Users of your software can freely obtain source code for the + software, freely modify the source code (possibly with + restrictions on copyright notices, attributions and legal + responsibility), and freely redistribute original or modified + versions of the software. + OR + Your software is distributed under the GNU GENERAL + PUBLIC LICENSE, version 2 or later, as defined by the + Free Software Foundation. + OR + Your software is distributed under the GNU LIBRARY + GENERAL PUBLIC LICENSE, version 2 or later, as + defined by the Free Software Foundation. + +If you are paid to develop something with Qt Free Edition or it is a part of +your job the following conditions also apply: + + Your software must not require libraries, programs, data or + documentation that are not available outside your organization in + order to compile or use. + If and when your organization starts using the software, you must + notify Troll Tech AS of the following: + Your organization's name and purpose. + The software's name and purpose. + The software's license. + That your organization considers the software to be free + software. + +You may also use the Qt Free Edition to create reusable components +(such as libraries) provided that you accept the terms above, and in +addition that: + + Your components' license includes the following text: + + [Your package] requires the Qt library, which is + copyright Troll Tech AS. Freely distributable + programs may generally use Qt Free Edition free of + charge, see [README.QT] for details. + + README.QT is distributed along with your components. + Qt Free Edition is not distributed as an integral part of your + components. + + LIMITATIONS OF LIABILITY + +Troll Tech AS makes no obligation under this license to support or +upgrade Qt Free Edition, or assist in the use of Qt Free Edition. + +In no event shall Troll Tech AS be liable for any lost revenue or profits or +other direct, indirect, special, incidental or consequential damages, even +if Troll Tech has been advised of the possibility of such damages. + +QT FREE EDITION IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, +INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE. + _______________________________________________________________ diff --git a/COPYING.GPL b/COPYING.GPL new file mode 100644 index 0000000..60549be --- /dev/null +++ b/COPYING.GPL @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..2a88c1b --- /dev/null +++ b/Makefile @@ -0,0 +1,33 @@ +# -*- make -*- + +# This is the top level make file for APT, it recurses to each lower +# level make file and runs it with the proper target +ifndef NOISY +.SILENT: +endif + +.PHONY: default +default: startup all + +.PHONY: headers library clean veryclean all binary program doc +all headers library clean veryclean binary program doc dirs: + $(MAKE) -C apt-pkg $@ + $(MAKE) -C apt-inst $@ + $(MAKE) -C methods $@ + $(MAKE) -C cmdline $@ + $(MAKE) -C ftparchive $@ + $(MAKE) -C dselect $@ + $(MAKE) -C doc $@ + +# Some very common aliases +.PHONY: maintainer-clean dist-clean distclean pristine sanity +maintainer-clean dist-clean distclean pristine sanity: veryclean + +# The startup target builds the necessary configure scripts. It should +# be used after a CVS checkout. +CONVERTED=environment.mak include/config.h include/apti18n.h makefile +include buildlib/configure.mak +$(BUILDDIR)/include/config.h: buildlib/config.h.in +$(BUILDDIR)/include/apti18n.h: buildlib/apti18n.h.in +$(BUILDDIR)/environment.mak: buildlib/environment.mak.in +$(BUILDDIR)/makefile: buildlib/makefile.in diff --git a/README.arch b/README.arch new file mode 100644 index 0000000..92870d6 --- /dev/null +++ b/README.arch @@ -0,0 +1,12 @@ + +You can build apt from arch, but this needs the following additional +packages (in addtion to the usual build-depends): +xmlto perlsgml sgml2x sgmlspl docbook + +then run: + +$ debian/rules arch-build + +that will build packages in the "debian/arch-build" directory. It will +honor "DEB_BUILD_PROG_OPTS" as options that are passed to debuild (e.g. -S +may be usefull). diff --git a/README.make b/README.make new file mode 100644 index 0000000..c043f10 --- /dev/null +++ b/README.make @@ -0,0 +1,112 @@ +The Make System +~~~ ~~~~ ~~~~~~ +To compile this program you require GNU Make. In fact you probably need +GNU Make 3.76.1 or newer. The makefiles contained make use of many +GNU Make specific features and will not run on other makes. + +The make system has a number of interesting properties that are not found +in other systems such as automake or the GNU makefile standards. In +general some semblance of expectedness is kept so as not to be too +surprising. Basically the following will work as expected: + + ./configure + make + or + cd build + ../configure + make + +There are a number of other things that are possible that may make software +development and software packaging simpler. The first of these is the +environment.mak file. When configure is run it creates an environment.mak +file in the build directory. This contains -all- configurable parameters +for all of the make files in all of the subdirectories. Changing one +of these parameters will have an immediate effect. The use of makefile.in +and configure substitutions across build makefiles is not used at all. + +Furthermore, the make system runs with a current directory equal to the +source directory irregardless of the destination directory. This means +#include "" and #include <> work as expected and more importantly +running 'make' in the source directory will work as expected. The +environment variable or make parameter 'BUILD' sets the build directory. +It may be an absolute path or a path relative to the top level directory. +By default build-arch/ then build/ will be used with a fall back to ./ This +means you can get all the advantages of a build directory without having to +cd into it to edit your source code! + +The make system also performs dependency generation on the fly as the +compiler runs. This is extremely fast and accurate. There is however +one failure condition that occures when a header file is erased. In +this case you should run make clean to purge the .o and .d files to +rebuild. + +The final significant deviation from normal make practicies is +in how the build directory is managed. It is not mearly a mirror of +the source directory but is logically divided in the following manner + bin/ + methods/ + doc/ + examples/ + include/ + apt-pkg/ + obj/ + apt-pkg/ + cmndline/ + [...] +Only .o and .d files are placed in the obj/ subdirectory. The final compiled +binaries are placed in bin, published headers for inter-component linking +are placed in include/ and documentation is generated into doc/. This means +all runnable programs are within the bin/ directory, a huge benifit for +debugging inter-program relationships. The .so files are also placed in +bin/ for simplicity. + +By default make is put into silent mode. During operation there should be +no shell or compiler messages only status messages from the makefiles, +if any pop up that indicates there may be a problem with your environment. +For debugging you can disable this by setting NOISY=1, ala + make NOISY=1 + +Using the makefiles +~~~~~ ~~~ ~~~~~~~~~ +The makefiles for the components are really simple. The complexity is hidden +within the buildlib/ directory. Each makefile defines a set of make variables +for the bit it is going to make then includes a makefile fragment from +the buildlib/. This fragment generates the necessary rules based on the +originally defined variables. This process can be repeated as many times as +necessary for as many programs or libraries as are in the directory. + +Many of the make fragments have some useful properties involving sub +directories and other interesting features. They are more completely +described in the fragment code in buildlib. Some tips on writing fragments +are included in buildlib/defaults.mak + +The fragments are NEVER processed by configure, so if you make changes to +them they will have an immediate effect. + +Autoconf +~~~~~~~~ +Straight out of CVS you have to initialize autoconf. This requires +automake (I really don't know why) and autoconf and requires doing + aclocal -I buidlib + autoconf +[Altertatively you can run make startup in the top level build dir] + +Autoconf is configured to do some basic system probes for optional and +required functionality and generate an environment.mak and include/config.h +from it's findings. It will then write a 'makefile' and run make dirs to +create the output directory tree. + +It is not my belief that autoconf should be used to generate substantial +source code markup to escape OS problems. If an OS problem does crop up +it can likely be corrected by installing the correct files into the +build include/ dir and perhaps writing some replacement code and +linking it in. To the fullest extent possible the source code should conform +to standards and not cater to broken systems. + +Autoconf will also wite a makefile into the top level of the build dir, +this simply acts as a wrapper to the main top level make in the source tree. +There is one big warning, you can't use both this make file and the +ones in the top level tree. Make is not able to resolve rules that +go to the same file through different paths and this will confuse the +depends mechanism. I recommend always using the makefiles in the +source directory and exporting BUILD. diff --git a/README.progress-reporting b/README.progress-reporting new file mode 100644 index 0000000..b575e78 --- /dev/null +++ b/README.progress-reporting @@ -0,0 +1,69 @@ +Install-progress reporting +-------------------------- + +If the apt options: "APT::Status-Fd" is set, apt will send status +reports to that fd. The status information is seperated with a ':', +there are the following status conditions: + +status = {"pmstatus", "dlstatus", "conffile-prompt", "error", "media-change" } + +The reason for using a fd instead of a OpProgress class is that many +apt frontend fork a (vte) terminal for the actual installation. + +The reason to do the mapping and l10n of the dpkg states to human +readable (and translatable) strings is that this way the translation +needs to be done only once for all frontends. + + +pmstatus +-------- +Status of the package manager (dpkg). This is send when packages +are installed/removed. +pmstatus:pkgname:TotalPercentage:action-description + +PkgName = the name of the package +TotalPercentage = the total progress between [0..100] +description = a i18ned human readable decription of the current action + + +Example: +# ./apt-get install -o APT::Status-Fd=2 3dchess >/dev/null +pmstatus:3dchess:20:Preparing 3dchess +pmstatus:3dchess:40:Unpacking 3dchess +pmstatus:3dchess:60:Preparing to configure 3dchess +pmstatus:3dchess:80:Configuring 3dchess +pmstatus:3dchess:100:Installed 3dchess + +pmerror +------- +pmerror:deb:TotalPercentage:error string + +Example: +pmerror: /var/cache/apt/archives/krecipes_0.8.1-0ubuntu1_i386.deb : 75% : trying to overwrite `/usr/share/doc/kde/HTML/en/krecipes/krectip.png', which is also in package krecipes-data + + +pmconffile +---------- +pmconffile:conffile:percent:'current-conffile' 'new-conffile' useredited distedited + + +media-change +------------ +media-change:medium:drive:human-readable string + +example: +media-change: Ubuntu 5.10 _Breezy Badger_ - Alpha i386 (20050830):/cdrom/:Please insert the disc labeled: 'Ubuntu 5.10 _Breezy Badger_ - Alpha i386 (20050830)' in the drive '/cdrom/' and press enter. + + +dlstatus +-------- +dlstatus:AlreadDownloaded:TotalPercentage:action-description + +AlreadyDownloaded = the number of already downloaded packages +TotalPercentage = the total progress between [0..100] +description = a i18ned human readable decription of the current action + +Example: +dlstatus:1:9.05654:Downloading file 1 of 3 (4m40s remaining) +dlstatus:1:9.46357:Downloading file 1 of 3 (4m39s remaining) +dlstatus:1:9.61022:Downloading file 1 of 3 (4m38s remaining) \ No newline at end of file diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 0000000..0678b86 --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,2293 @@ +# generated automatically by aclocal 1.9.6 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +# gettext.m4 serial 53 (gettext-0.15) +dnl Copyright (C) 1995-2006 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2005. + +dnl Macro to add for using GNU gettext. + +dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). +dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The +dnl default (if it is not specified or empty) is 'no-libtool'. +dnl INTLSYMBOL should be 'external' for packages with no intl directory, +dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. +dnl If INTLSYMBOL is 'use-libtool', then a libtool library +dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, +dnl depending on --{enable,disable}-{shared,static} and on the presence of +dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library +dnl $(top_builddir)/intl/libintl.a will be created. +dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext +dnl implementations (in libc or libintl) without the ngettext() function +dnl will be ignored. If NEEDSYMBOL is specified and is +dnl 'need-formatstring-macros', then GNU gettext implementations that don't +dnl support the ISO C 99 formatstring macros will be ignored. +dnl INTLDIR is used to find the intl libraries. If empty, +dnl the value `$(top_builddir)/intl/' is used. +dnl +dnl The result of the configuration is one of three cases: +dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled +dnl and used. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 2) GNU gettext has been found in the system's C library. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 3) No internationalization, always use English msgid. +dnl Catalog format: none +dnl Catalog extension: none +dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. +dnl The use of .gmo is historical (it was needed to avoid overwriting the +dnl GNU format catalogs when building on a platform with an X/Open gettext), +dnl but we keep it in order not to force irrelevant filename changes on the +dnl maintainers. +dnl +AC_DEFUN([AM_GNU_GETTEXT], +[ + dnl Argument checking. + ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , + [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT +])])])])]) + ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , + [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT +])])])]) + define([gt_included_intl], ifelse([$1], [external], [no], [yes])) + define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) + + AC_REQUIRE([AM_PO_SUBDIRS])dnl + ifelse(gt_included_intl, yes, [ + AC_REQUIRE([AM_INTL_SUBDIR])dnl + ]) + + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Sometimes libintl requires libiconv, so first search for libiconv. + dnl Ideally we would do this search only after the + dnl if test "$USE_NLS" = "yes"; then + dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then + dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT + dnl the configure script would need to contain the same shell code + dnl again, outside any 'if'. There are two solutions: + dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. + dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. + dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not + dnl documented, we avoid it. + ifelse(gt_included_intl, yes, , [ + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + ]) + + dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation. + gt_INTL_MACOSX + + dnl Set USE_NLS. + AC_REQUIRE([AM_NLS]) + + ifelse(gt_included_intl, yes, [ + BUILD_INCLUDED_LIBINTL=no + USE_INCLUDED_LIBINTL=no + ]) + LIBINTL= + LTLIBINTL= + POSUB= + + dnl If we use NLS figure out what method + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + ifelse(gt_included_intl, yes, [ + AC_MSG_CHECKING([whether included gettext is requested]) + AC_ARG_WITH(included-gettext, + [ --with-included-gettext use the GNU gettext library included here], + nls_cv_force_use_gnu_gettext=$withval, + nls_cv_force_use_gnu_gettext=no) + AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + ]) + dnl User does not insist on using GNU NLS library. Figure out what + dnl to use. If GNU gettext is available we use this. Else we have + dnl to fall back to GNU NLS library. + + dnl Add a version number to the cache macros. + define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1))) + define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc]) + define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl]) + + AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, + [AC_TRY_LINK([#include +]ifelse([$2], [need-formatstring-macros], +[[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +]], [])[extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings;], + [bindtextdomain ("", ""); +return * gettext ("")]ifelse([$2], [need-ngettext], [ + * ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings], + gt_cv_func_gnugettext_libc=yes, + gt_cv_func_gnugettext_libc=no)]) + + if test "$gt_cv_func_gnugettext_libc" != "yes"; then + dnl Sometimes libintl requires libiconv, so first search for libiconv. + ifelse(gt_included_intl, yes, , [ + AM_ICONV_LINK + ]) + dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL + dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) + dnl because that would add "-liconv" to LIBINTL and LTLIBINTL + dnl even if libiconv doesn't exist. + AC_LIB_LINKFLAGS_BODY([intl]) + AC_CACHE_CHECK([for GNU gettext in libintl], + gt_cv_func_gnugettext_libintl, + [gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + dnl Now see whether libintl exists and does not depend on libiconv. + AC_TRY_LINK([#include +]ifelse([$2], [need-formatstring-macros], +[[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +]], [])[extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *);], + [bindtextdomain ("", ""); +return * gettext ("")]ifelse([$2], [need-ngettext], [ + * ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias ("")], + gt_cv_func_gnugettext_libintl=yes, + gt_cv_func_gnugettext_libintl=no) + dnl Now see whether libintl exists and depends on libiconv. + if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + AC_TRY_LINK([#include +]ifelse([$2], [need-formatstring-macros], +[[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +]], [])[extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *);], + [bindtextdomain ("", ""); +return * gettext ("")]ifelse([$2], [need-ngettext], [ + * ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias ("")], + [LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + gt_cv_func_gnugettext_libintl=yes + ]) + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS"]) + fi + + dnl If an already present or preinstalled GNU gettext() is found, + dnl use it. But if this macro is used in GNU gettext, and GNU + dnl gettext is already preinstalled in libintl, we update this + dnl libintl. (Cf. the install rule in intl/Makefile.in.) + if test "$gt_cv_func_gnugettext_libc" = "yes" \ + || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + dnl Reset the values set by searching for libintl. + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + ifelse(gt_included_intl, yes, [ + if test "$gt_use_preinstalled_gnugettext" != "yes"; then + dnl GNU gettext is not found in the C library. + dnl Fall back on included GNU gettext library. + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions used to generate GNU NLS library. + BUILD_INCLUDED_LIBINTL=yes + USE_INCLUDED_LIBINTL=yes + LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" + LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" + LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` + fi + + CATOBJEXT= + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions to use GNU gettext tools. + CATOBJEXT=.gmo + fi + ]) + + if test -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Some extra flags are needed during linking. + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + AC_DEFINE(ENABLE_NLS, 1, + [Define to 1 if translation of program messages to the user's native language + is requested.]) + else + USE_NLS=no + fi + fi + + AC_MSG_CHECKING([whether to use NLS]) + AC_MSG_RESULT([$USE_NLS]) + if test "$USE_NLS" = "yes"; then + AC_MSG_CHECKING([where the gettext function comes from]) + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if test "$gt_cv_func_gnugettext_libintl" = "yes"; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + AC_MSG_RESULT([$gt_source]) + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if test "$gt_cv_func_gnugettext_libintl" = "yes"; then + AC_MSG_CHECKING([how to link with libintl]) + AC_MSG_RESULT([$LIBINTL]) + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) + fi + + dnl For backward compatibility. Some packages may be using this. + AC_DEFINE(HAVE_GETTEXT, 1, + [Define if the GNU gettext() function is already present or preinstalled.]) + AC_DEFINE(HAVE_DCGETTEXT, 1, + [Define if the GNU dcgettext() function is already present or preinstalled.]) + fi + + dnl We need to process the po/ directory. + POSUB=po + fi + + ifelse(gt_included_intl, yes, [ + dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL + dnl to 'yes' because some of the testsuite requires it. + if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then + BUILD_INCLUDED_LIBINTL=yes + fi + + dnl Make all variables we use known to autoconf. + AC_SUBST(BUILD_INCLUDED_LIBINTL) + AC_SUBST(USE_INCLUDED_LIBINTL) + AC_SUBST(CATOBJEXT) + + dnl For backward compatibility. Some configure.ins may be using this. + nls_cv_header_intl= + nls_cv_header_libgt= + + dnl For backward compatibility. Some Makefiles may be using this. + DATADIRNAME=share + AC_SUBST(DATADIRNAME) + + dnl For backward compatibility. Some Makefiles may be using this. + INSTOBJEXT=.mo + AC_SUBST(INSTOBJEXT) + + dnl For backward compatibility. Some Makefiles may be using this. + GENCAT=gencat + AC_SUBST(GENCAT) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLOBJS= + if test "$USE_INCLUDED_LIBINTL" = yes; then + INTLOBJS="\$(GETTOBJS)" + fi + AC_SUBST(INTLOBJS) + + dnl Enable libtool support if the surrounding package wishes it. + INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix + AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) + ]) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLLIBS="$LIBINTL" + AC_SUBST(INTLLIBS) + + dnl Make all documented variables known to autoconf. + AC_SUBST(LIBINTL) + AC_SUBST(LTLIBINTL) + AC_SUBST(POSUB) +]) + + +dnl Checks for all prerequisites of the intl subdirectory, +dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, +dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. +AC_DEFUN([AM_INTL_SUBDIR], +[ + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_CANONICAL_HOST])dnl + AC_REQUIRE([gt_GLIBC2])dnl + AC_REQUIRE([AC_PROG_RANLIB])dnl + AC_REQUIRE([gl_VISIBILITY])dnl + AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl + AC_REQUIRE([bh_C_SIGNED])dnl + AC_REQUIRE([gl_AC_TYPE_LONG_LONG])dnl + AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl + AC_REQUIRE([gt_TYPE_WCHAR_T])dnl + AC_REQUIRE([gt_TYPE_WINT_T])dnl + AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) + AC_REQUIRE([gt_TYPE_INTMAX_T]) + AC_REQUIRE([gt_PRINTF_POSIX]) + AC_REQUIRE([gl_GLIBC21])dnl + AC_REQUIRE([gl_XSIZE])dnl + AC_REQUIRE([gt_INTL_MACOSX])dnl + + AC_CHECK_TYPE([ptrdiff_t], , + [AC_DEFINE([ptrdiff_t], [long], + [Define as the type of the result of subtracting two pointers, if the system doesn't define it.]) + ]) + AC_CHECK_HEADERS([stddef.h stdlib.h string.h]) + AC_CHECK_FUNCS([asprintf fwprintf putenv setenv setlocale snprintf wcslen]) + + dnl Use the _snprintf function only if it is declared (because on NetBSD it + dnl is defined as a weak alias of snprintf; we prefer to use the latter). + gt_CHECK_DECL(_snprintf, [#include ]) + gt_CHECK_DECL(_snwprintf, [#include ]) + + dnl Use the *_unlocked functions only if they are declared. + dnl (because some of them were defined without being declared in Solaris + dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built + dnl on Solaris 2.5.1 to run on Solaris 2.6). + dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. + gt_CHECK_DECL(getc_unlocked, [#include ]) + + case $gt_cv_func_printf_posix in + *yes) HAVE_POSIX_PRINTF=1 ;; + *) HAVE_POSIX_PRINTF=0 ;; + esac + AC_SUBST([HAVE_POSIX_PRINTF]) + if test "$ac_cv_func_asprintf" = yes; then + HAVE_ASPRINTF=1 + else + HAVE_ASPRINTF=0 + fi + AC_SUBST([HAVE_ASPRINTF]) + if test "$ac_cv_func_snprintf" = yes; then + HAVE_SNPRINTF=1 + else + HAVE_SNPRINTF=0 + fi + AC_SUBST([HAVE_SNPRINTF]) + if test "$ac_cv_func_wprintf" = yes; then + HAVE_WPRINTF=1 + else + HAVE_WPRINTF=0 + fi + AC_SUBST([HAVE_WPRINTF]) + + AM_LANGINFO_CODESET + gt_LC_MESSAGES + + dnl Compilation on mingw and Cygwin needs special Makefile rules, because + dnl 1. when we install a shared library, we must arrange to export + dnl auxiliary pointer variables for every exported variable, + dnl 2. when we install a shared library and a static library simultaneously, + dnl the include file specifies __declspec(dllimport) and therefore we + dnl must arrange to define the auxiliary pointer variables for the + dnl exported variables _also_ in the static library. + if test "$enable_shared" = yes; then + case "$host_os" in + cygwin*) is_woe32dll=yes ;; + *) is_woe32dll=no ;; + esac + else + is_woe32dll=no + fi + WOE32DLL=$is_woe32dll + AC_SUBST([WOE32DLL]) + + dnl Rename some macros and functions used for locking. + AH_BOTTOM([ +#define __libc_lock_t gl_lock_t +#define __libc_lock_define gl_lock_define +#define __libc_lock_define_initialized gl_lock_define_initialized +#define __libc_lock_init gl_lock_init +#define __libc_lock_lock gl_lock_lock +#define __libc_lock_unlock gl_lock_unlock +#define __libc_lock_recursive_t gl_recursive_lock_t +#define __libc_lock_define_recursive gl_recursive_lock_define +#define __libc_lock_define_initialized_recursive gl_recursive_lock_define_initialized +#define __libc_lock_init_recursive gl_recursive_lock_init +#define __libc_lock_lock_recursive gl_recursive_lock_lock +#define __libc_lock_unlock_recursive gl_recursive_lock_unlock +#define glthread_in_use libintl_thread_in_use +#define glthread_lock_init libintl_lock_init +#define glthread_lock_lock libintl_lock_lock +#define glthread_lock_unlock libintl_lock_unlock +#define glthread_lock_destroy libintl_lock_destroy +#define glthread_rwlock_init libintl_rwlock_init +#define glthread_rwlock_rdlock libintl_rwlock_rdlock +#define glthread_rwlock_wrlock libintl_rwlock_wrlock +#define glthread_rwlock_unlock libintl_rwlock_unlock +#define glthread_rwlock_destroy libintl_rwlock_destroy +#define glthread_recursive_lock_init libintl_recursive_lock_init +#define glthread_recursive_lock_lock libintl_recursive_lock_lock +#define glthread_recursive_lock_unlock libintl_recursive_lock_unlock +#define glthread_recursive_lock_destroy libintl_recursive_lock_destroy +#define glthread_once libintl_once +#define glthread_once_call libintl_once_call +#define glthread_once_singlethreaded libintl_once_singlethreaded +]) +]) + + +dnl Checks for the core files of the intl subdirectory: +dnl dcigettext.c +dnl eval-plural.h +dnl explodename.c +dnl finddomain.c +dnl gettextP.h +dnl gmo.h +dnl hash-string.h hash-string.c +dnl l10nflist.c +dnl libgnuintl.h.in (except the *printf stuff) +dnl loadinfo.h +dnl loadmsgcat.c +dnl localealias.c +dnl log.c +dnl plural-exp.h plural-exp.c +dnl plural.y +dnl Used by libglocale. +AC_DEFUN([gt_INTL_SUBDIR_CORE], +[ + AC_REQUIRE([AC_C_INLINE])dnl + AC_REQUIRE([AC_TYPE_SIZE_T])dnl + AC_REQUIRE([gl_AC_HEADER_STDINT_H]) + AC_REQUIRE([AC_FUNC_ALLOCA])dnl + AC_REQUIRE([AC_FUNC_MMAP])dnl + AC_REQUIRE([gt_INTDIV0])dnl + AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl + AC_REQUIRE([gl_HEADER_INTTYPES_H])dnl + AC_REQUIRE([gt_INTTYPES_PRI])dnl + AC_REQUIRE([gl_LOCK])dnl + + AC_TRY_LINK( + [int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }], + [], + [AC_DEFINE([HAVE_BUILTIN_EXPECT], 1, + [Define to 1 if the compiler understands __builtin_expect.])]) + + AC_CHECK_HEADERS([argz.h limits.h unistd.h sys/param.h]) + AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \ + stpcpy strcasecmp strdup strtoul tsearch argz_count argz_stringify \ + argz_next __fsetlocking]) + + dnl Use the *_unlocked functions only if they are declared. + dnl (because some of them were defined without being declared in Solaris + dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built + dnl on Solaris 2.5.1 to run on Solaris 2.6). + dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. + gt_CHECK_DECL(feof_unlocked, [#include ]) + gt_CHECK_DECL(fgets_unlocked, [#include ]) + + AM_ICONV + + dnl glibc >= 2.4 has a NL_LOCALE_NAME macro when _GNU_SOURCE is defined, + dnl and a _NL_LOCALE_NAME macro always. + AC_CACHE_CHECK([for NL_LOCALE_NAME macro], gt_cv_nl_locale_name, + [AC_TRY_LINK([#include +#include ], + [char* cs = nl_langinfo(_NL_LOCALE_NAME(LC_MESSAGES));], + gt_cv_nl_locale_name=yes, + gt_cv_nl_locale_name=no) + ]) + if test $gt_cv_nl_locale_name = yes; then + AC_DEFINE(HAVE_NL_LOCALE_NAME, 1, + [Define if you have and it defines the NL_LOCALE_NAME macro if _GNU_SOURCE is defined.]) + fi + + dnl intl/plural.c is generated from intl/plural.y. It requires bison, + dnl because plural.y uses bison specific features. It requires at least + dnl bison-1.26 because earlier versions generate a plural.c that doesn't + dnl compile. + dnl bison is only needed for the maintainer (who touches plural.y). But in + dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put + dnl the rule in general Makefile. Now, some people carelessly touch the + dnl files or have a broken "make" program, hence the plural.c rule will + dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not + dnl present or too old. + AC_CHECK_PROGS([INTLBISON], [bison]) + if test -z "$INTLBISON"; then + ac_verc_fail=yes + else + dnl Found it, now check the version. + AC_MSG_CHECKING([version of bison]) +changequote(<<,>>)dnl + ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` + case $ac_prog_version in + '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; + 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) +changequote([,])dnl + ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; + *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; + esac + AC_MSG_RESULT([$ac_prog_version]) + fi + if test $ac_verc_fail = yes; then + INTLBISON=: + fi +]) + + +dnl Checks for special options needed on MacOS X. +dnl Defines INTL_MACOSX_LIBS. +AC_DEFUN([gt_INTL_MACOSX], +[ + dnl Check for API introduced in MacOS X 10.2. + AC_CACHE_CHECK([for CFPreferencesCopyAppValue], + gt_cv_func_CFPreferencesCopyAppValue, + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_TRY_LINK([#include ], + [CFPreferencesCopyAppValue(NULL, NULL)], + [gt_cv_func_CFPreferencesCopyAppValue=yes], + [gt_cv_func_CFPreferencesCopyAppValue=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1, + [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) + fi + dnl Check for API introduced in MacOS X 10.3. + AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent, + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_TRY_LINK([#include ], [CFLocaleCopyCurrent();], + [gt_cv_func_CFLocaleCopyCurrent=yes], + [gt_cv_func_CFLocaleCopyCurrent=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1, + [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + AC_SUBST([INTL_MACOSX_LIBS]) +]) + + +dnl gt_CHECK_DECL(FUNC, INCLUDES) +dnl Check whether a function is declared. +AC_DEFUN([gt_CHECK_DECL], +[ + AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1, + [AC_TRY_COMPILE([$2], [ +#ifndef $1 + char *p = (char *) $1; +#endif +], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)]) + if test $ac_cv_have_decl_$1 = yes; then + gt_value=1 + else + gt_value=0 + fi + AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value], + [Define to 1 if you have the declaration of `$1', and to 0 if you don't.]) +]) + + +dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) + +# iconv.m4 serial AM4 (gettext-0.11.3) +dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], +[ + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([iconv]) +]) + +AC_DEFUN([AM_ICONV_LINK], +[ + dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and + dnl those with the standalone portable GNU libiconv installed). + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + + dnl Add $INCICONV to CPPFLAGS before performing the following checks, + dnl because if the user has installed libiconv and not disabled its use + dnl via --without-libiconv-prefix, he wants to use it. The first + dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. + am_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) + + AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + AC_TRY_LINK([#include +#include ], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + am_cv_func_iconv=yes) + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + AC_TRY_LINK([#include +#include ], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + am_cv_lib_iconv=yes + am_cv_func_iconv=yes) + LIBS="$am_save_LIBS" + fi + ]) + if test "$am_cv_func_iconv" = yes; then + AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) + fi + if test "$am_cv_lib_iconv" = yes; then + AC_MSG_CHECKING([how to link with libiconv]) + AC_MSG_RESULT([$LIBICONV]) + else + dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV + dnl either. + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + AC_SUBST(LIBICONV) + AC_SUBST(LTLIBICONV) +]) + +AC_DEFUN([AM_ICONV], +[ + AM_ICONV_LINK + if test "$am_cv_func_iconv" = yes; then + AC_MSG_CHECKING([for iconv declaration]) + AC_CACHE_VAL(am_cv_proto_iconv, [ + AC_TRY_COMPILE([ +#include +#include +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif +], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") + am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) + am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` + AC_MSG_RESULT([$]{ac_t:- + }[$]am_cv_proto_iconv) + AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, + [Define as const if the declaration of iconv() needs const.]) + fi +]) + +# lib-ld.m4 serial 3 (gettext-0.13) +dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Subroutines of libtool.m4, +dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision +dnl with libtool.m4. + +dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. +AC_DEFUN([AC_LIB_PROG_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, +[# I'd rather use --version here, but apparently some GNU ld's only accept -v. +case `$LD -v 2>&1 conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by GCC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]* | [A-Za-z]:[\\/]*)] + [re_direlt='/[^/][^/]*/\.\./'] + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(acl_cv_path_LD, +[if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break ;; + *) + test "$with_gnu_ld" != yes && break ;; + esac + fi + done + IFS="$ac_save_ifs" +else + acl_cv_path_LD="$LD" # Let the user override the test with a path. +fi]) +LD="$acl_cv_path_LD" +if test -n "$LD"; then + AC_MSG_RESULT($LD) +else + AC_MSG_RESULT(no) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +AC_LIB_PROG_LD_GNU +]) + +# lib-link.m4 serial 8 (gettext-0.15) +dnl Copyright (C) 2001-2006 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_PREREQ(2.50) + +dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and +dnl augments the CPPFLAGS variable. +AC_DEFUN([AC_LIB_LINKFLAGS], +[ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + define([Name],[translit([$1],[./-], [___])]) + define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + ac_cv_lib[]Name[]_libs="$LIB[]NAME" + ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" + ac_cv_lib[]Name[]_cppflags="$INC[]NAME" + ]) + LIB[]NAME="$ac_cv_lib[]Name[]_libs" + LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" + INC[]NAME="$ac_cv_lib[]Name[]_cppflags" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the + dnl results of this search when this library appears as a dependency. + HAVE_LIB[]NAME=yes + undefine([Name]) + undefine([NAME]) +]) + +dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) +dnl searches for libname and the libraries corresponding to explicit and +dnl implicit dependencies, together with the specified include files and +dnl the ability to compile and link the specified testcode. If found, it +dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and +dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and +dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs +dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. +AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], +[ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + define([Name],[translit([$1],[./-], [___])]) + define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + + dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + + dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, + dnl because if the user has installed lib[]Name and not disabled its use + dnl via --without-lib[]Name-prefix, he wants to use it. + ac_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + + AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ + ac_save_LIBS="$LIBS" + LIBS="$LIBS $LIB[]NAME" + AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) + LIBS="$ac_save_LIBS" + ]) + if test "$ac_cv_lib[]Name" = yes; then + HAVE_LIB[]NAME=yes + AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) + AC_MSG_CHECKING([how to link with lib[]$1]) + AC_MSG_RESULT([$LIB[]NAME]) + else + HAVE_LIB[]NAME=no + dnl If $LIB[]NAME didn't lead to a usable library, we don't need + dnl $INC[]NAME either. + CPPFLAGS="$ac_save_CPPFLAGS" + LIB[]NAME= + LTLIB[]NAME= + fi + AC_SUBST([HAVE_LIB]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + undefine([Name]) + undefine([NAME]) +]) + +dnl Determine the platform dependent parameters needed to use rpath: +dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, +dnl hardcode_direct, hardcode_minus_L. +AC_DEFUN([AC_LIB_RPATH], +[ + dnl Tell automake >= 1.10 to complain if config.rpath is missing. + m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) + AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS + AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld + AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host + AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir + AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + ]) + wl="$acl_cv_wl" + libext="$acl_cv_libext" + shlibext="$acl_cv_shlibext" + hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + hardcode_direct="$acl_cv_hardcode_direct" + hardcode_minus_L="$acl_cv_hardcode_minus_L" + dnl Determine whether the user wants rpath handling at all. + AC_ARG_ENABLE(rpath, + [ --disable-rpath do not hardcode runtime library paths], + :, enable_rpath=yes) +]) + +dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. +AC_DEFUN([AC_LIB_LINKFLAGS_BODY], +[ + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_LIB_ARG_WITH([lib$1-prefix], +[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib + --without-lib$1-prefix don't search for lib$1 in includedir and libdir], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + fi + fi +]) + dnl Search the library and its dependencies in $additional_libdir and + dnl $LDFLAGS. Using breadth-first-seach. + LIB[]NAME= + LTLIB[]NAME= + INC[]NAME= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='$1 $2' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + dnl See if it was already located by an earlier AC_LIB_LINKFLAGS + dnl or AC_LIB_HAVE_LINKFLAGS call. + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" + else + dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined + dnl that this library doesn't exist. So just drop it. + : + fi + else + dnl Search the library lib$name in $additional_libdir and $LDFLAGS + dnl and the already constructed $LIBNAME/$LTLIBNAME. + found_dir= + found_la= + found_so= + found_a= + if test $use_additional = yes; then + if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then + found_dir="$additional_libdir" + found_so="$additional_libdir/lib$name.$shlibext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + else + if test -f "$additional_libdir/lib$name.$libext"; then + found_dir="$additional_libdir" + found_a="$additional_libdir/lib$name.$libext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then + found_dir="$dir" + found_so="$dir/lib$name.$shlibext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + else + if test -f "$dir/lib$name.$libext"; then + found_dir="$dir" + found_a="$dir/lib$name.$libext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + dnl Found the library. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + dnl Linking with a shared library. We attempt to hardcode its + dnl directory into the executable's runpath, unless it's the + dnl standard /usr/lib. + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then + dnl No hardcoding is needed. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + dnl The hardcoding into $LIBNAME is system dependent. + if test "$hardcode_direct" = yes; then + dnl Using DIR/libNAME.so during linking hardcodes DIR into the + dnl resulting binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + dnl Rely on "-L$found_dir". + dnl But don't add it if it's already contained in the LDFLAGS + dnl or the already constructed $LIBNAME + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" + fi + if test "$hardcode_minus_L" != no; then + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH + dnl here, because this doesn't fit in flags passed to the + dnl compiler. So give up. No hardcoding. This affects only + dnl very old systems. + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + dnl Linking with a static library. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" + else + dnl We shouldn't come here, but anyway it's good to have a + dnl fallback. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" + fi + fi + dnl Assume the include files are nearby. + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + dnl Potentially add $additional_includedir to $INCNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's /usr/local/include and we are using GCC on Linux, + dnl 3. if it's already present in $CPPFLAGS or the already + dnl constructed $INCNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INC[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $INCNAME. + INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + dnl Look for dependencies. + if test -n "$found_la"; then + dnl Read the .la file. It defines the variables + dnl dlname, library_names, old_library, dependency_libs, current, + dnl age, revision, installed, dlopen, dlpreopen, libdir. + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + dnl We use only dependency_libs. + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's /usr/local/lib and we are using GCC on Linux, + dnl 3. if it's already present in $LDFLAGS or the already + dnl constructed $LIBNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LIBNAME. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LTLIBNAME. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dnl Handle this in the next round. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + dnl Handle this in the next round. Throw away the .la's + dnl directory; it is already contained in a preceding -L + dnl option. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + dnl Most likely an immediate library name. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" + ;; + esac + done + fi + else + dnl Didn't find the library; assume it is in the system directories + dnl known to the linker and runtime loader. (All the system + dnl directories known to the linker should also be known to the + dnl runtime loader, otherwise the system is severely misconfigured.) + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user must + dnl pass all path elements in one option. We can arrange that for a + dnl single library, but not when more than one $LIBNAMEs are used. + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" + done + dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + else + dnl The -rpath options are cumulative. + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + dnl When using libtool, the option that works for both libraries and + dnl executables is -R. The -R options are cumulative. + for found_dir in $ltrpathdirs; do + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" + done + fi +]) + +dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, +dnl unless already present in VAR. +dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes +dnl contains two or three consecutive elements that belong together. +AC_DEFUN([AC_LIB_APPENDTOVAR], +[ + for element in [$2]; do + haveit= + for x in $[$1]; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + [$1]="${[$1]}${[$1]:+ }$element" + fi + done +]) + +dnl For those cases where a variable contains several -L and -l options +dnl referring to unknown libraries and directories, this macro determines the +dnl necessary additional linker options for the runtime path. +dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) +dnl sets LDADDVAR to linker options needed together with LIBSVALUE. +dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, +dnl otherwise linking without libtool is assumed. +AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], +[ + AC_REQUIRE([AC_LIB_RPATH]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + $1= + if test "$enable_rpath" != no; then + if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode directories into the resulting + dnl binary. + rpathdirs= + next= + for opt in $2; do + if test -n "$next"; then + dir="$next" + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem"; then + rpathdirs="$rpathdirs $dir" + fi + next= + else + case $opt in + -L) next=yes ;; + -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem"; then + rpathdirs="$rpathdirs $dir" + fi + next= ;; + *) next= ;; + esac + fi + done + if test "X$rpathdirs" != "X"; then + if test -n ""$3""; then + dnl libtool is used for linking. Use -R options. + for dir in $rpathdirs; do + $1="${$1}${$1:+ }-R$dir" + done + else + dnl The linker is used for linking directly. + if test -n "$hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user + dnl must pass all path elements in one option. + alldirs= + for dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="$flag" + else + dnl The -rpath options are cumulative. + for dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$dir" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="${$1}${$1:+ }$flag" + done + fi + fi + fi + fi + fi + AC_SUBST([$1]) +]) + +# lib-prefix.m4 serial 5 (gettext-0.15) +dnl Copyright (C) 2001-2005 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and +dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't +dnl require excessive bracketing. +ifdef([AC_HELP_STRING], +[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], +[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) + +dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed +dnl to access previously installed libraries. The basic assumption is that +dnl a user will want packages to use other packages he previously installed +dnl with the same --prefix option. +dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate +dnl libraries, but is otherwise very convenient. +AC_DEFUN([AC_LIB_PREFIX], +[ + AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_LIB_ARG_WITH([lib-prefix], +[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + fi + fi +]) + if test $use_additional = yes; then + dnl Potentially add $additional_includedir to $CPPFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's already present in $CPPFLAGS, + dnl 3. if it's /usr/local/include and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + for x in $CPPFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $CPPFLAGS. + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" + fi + fi + fi + fi + dnl Potentially add $additional_libdir to $LDFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's already present in $LDFLAGS, + dnl 3. if it's /usr/local/lib and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then + haveit= + for x in $LDFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LDFLAGS. + LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" + fi + fi + fi + fi + fi +]) + +dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, +dnl acl_final_exec_prefix, containing the values to which $prefix and +dnl $exec_prefix will expand at the end of the configure script. +AC_DEFUN([AC_LIB_PREPARE_PREFIX], +[ + dnl Unfortunately, prefix and exec_prefix get only finally determined + dnl at the end of configure. + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the +dnl variables prefix and exec_prefix bound to the values they will have +dnl at the end of the configure script. +AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], +[ + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + $1 + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_PREPARE_MULTILIB creates a variable acl_libdirstem, containing +dnl the basename of the libdir, either "lib" or "lib64". +AC_DEFUN([AC_LIB_PREPARE_MULTILIB], +[ + dnl There is no formal standard regarding lib and lib64. The current + dnl practice is that on a system supporting 32-bit and 64-bit instruction + dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit + dnl libraries go under $prefix/lib. We determine the compiler's default + dnl mode by looking at the compiler's library search path. If at least + dnl of its elements ends in /lib64 or points to a directory whose absolute + dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the + dnl default, namely "lib". + acl_libdirstem=lib + searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi +]) + +# nls.m4 serial 3 (gettext-0.15) +dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ(2.50) + +AC_DEFUN([AM_NLS], +[ + AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE(nls, + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT($USE_NLS) + AC_SUBST(USE_NLS) +]) + +# po.m4 serial 13 (gettext-0.15) +dnl Copyright (C) 1995-2006 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ(2.50) + +dnl Checks for all prerequisites of the po subdirectory. +AC_DEFUN([AM_PO_SUBDIRS], +[ + AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake + AC_REQUIRE([AM_NLS])dnl + + dnl Perform the following tests also if --disable-nls has been given, + dnl because they are needed for "make dist" to work. + + dnl Search for GNU msgfmt in the PATH. + dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. + dnl The second test excludes FreeBSD msgfmt. + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + + dnl Test whether it is GNU msgfmt >= 0.15. +changequote(,)dnl + case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; + *) MSGFMT_015=$MSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([MSGFMT_015]) +changequote(,)dnl + case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; + *) GMSGFMT_015=$GMSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([GMSGFMT_015]) + + dnl Search for GNU xgettext 0.12 or newer in the PATH. + dnl The first test excludes Solaris xgettext and early GNU xgettext versions. + dnl The second test excludes FreeBSD xgettext. + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + dnl Remove leftover from FreeBSD xgettext call. + rm -f messages.po + + dnl Test whether it is GNU xgettext >= 0.15. +changequote(,)dnl + case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; + *) XGETTEXT_015=$XGETTEXT ;; + esac +changequote([,])dnl + AC_SUBST([XGETTEXT_015]) + + dnl Search for GNU msgmerge 0.11 or newer in the PATH. + AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, + [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) + + dnl Installation directories. + dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we + dnl have to define it here, so that it can be used in po/Makefile. + test -n "$localedir" || localedir='${datadir}/locale' + AC_SUBST([localedir]) + + AC_CONFIG_COMMANDS([po-directories], [[ + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assigment from automake < 1.5. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + # Hide the ALL_LINGUAS assigment from automake < 1.5. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done]], + [# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it + # from automake < 1.5. + eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + ]) +]) + +dnl Postprocesses a Makefile in a directory containing PO files. +AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], +[ + # When this code is run, in config.status, two variables have already been + # set: + # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, + # - LINGUAS is the value of the environment variable LINGUAS at configure + # time. + +changequote(,)dnl + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + # Find a way to echo strings without interpreting backslash. + if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='echo' + else + if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='printf %s\n' + else + echo_func () { + cat < "$ac_file.tmp" + if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` + cat >> "$ac_file.tmp" < /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` + cat >> "$ac_file.tmp" <> "$ac_file.tmp" <, 1996. + +AC_PREREQ(2.50) + +# Search path for a program which passes the given test. + +dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN([AM_PATH_PROG_WITH_TEST], +[ +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL(ac_cv_path_$1, +[case "[$]$1" in + [[\\/]]* | ?:[[\\/]]*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in ifelse([$5], , $PATH, [$5]); do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +]) + +# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_MKDIR_P +# --------------- +# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. +# +# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories +# created by `make install' are always world readable, even if the +# installer happens to have an overly restrictive umask (e.g. 077). +# This was a mistake. There are at least two reasons why we must not +# use `-m 0755': +# - it causes special bits like SGID to be ignored, +# - it may be too restrictive (some setups expect 775 directories). +# +# Do not use -m 0755 and let people choose whatever they expect by +# setting umask. +# +# We cannot accept any implementation of `mkdir' that recognizes `-p'. +# Some implementations (such as Solaris 8's) are not thread-safe: if a +# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' +# concurrently, both version can detect that a/ is missing, but only +# one can create it and the other will error out. Consequently we +# restrict ourselves to GNU make (using the --version option ensures +# this.) +AC_DEFUN([AM_PROG_MKDIR_P], +[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then + # We used to keeping the `.' as first argument, in order to + # allow $(mkdir_p) to be used without argument. As in + # $(mkdir_p) $(somedir) + # where $(somedir) is conditionally defined. However this is wrong + # for two reasons: + # 1. if the package is installed by a user who cannot write `.' + # make install will fail, + # 2. the above comment should most certainly read + # $(mkdir_p) $(DESTDIR)$(somedir) + # so it does not work when $(somedir) is undefined and + # $(DESTDIR) is not. + # To support the latter case, we have to write + # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), + # so the `.' trick is pointless. + mkdir_p='mkdir -p --' +else + # On NextStep and OpenStep, the `mkdir' command does not + # recognize any option. It will interpret all options as + # directories to create, and then abort because `.' already + # exists. + for d in ./-p ./--version; + do + test -d $d && rmdir $d + done + # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. + if test -f "$ac_aux_dir/mkinstalldirs"; then + mkdir_p='$(mkinstalldirs)' + else + mkdir_p='$(install_sh) -d' + fi +fi +AC_SUBST([mkdir_p])]) + +m4_include([buildlib/tools.m4]) diff --git a/apt-inst/contrib/arfile.cc b/apt-inst/contrib/arfile.cc new file mode 100644 index 0000000..54d90bf --- /dev/null +++ b/apt-inst/contrib/arfile.cc @@ -0,0 +1,155 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: arfile.cc,v 1.6.2.1 2004/01/16 18:58:50 mdz Exp $ +/* ###################################################################### + + AR File - Handle an 'AR' archive + + AR Archives have plain text headers at the start of each file + section. The headers are aligned on a 2 byte boundry. + + Information about the structure of AR files can be found in ar(5) + on a BSD system, or in the binutils source. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/arfile.h" +#endif +#include +#include +#include + +#include + /*}}}*/ +#include + +struct ARArchive::MemberHeader +{ + char Name[16]; + char MTime[12]; + char UID[6]; + char GID[6]; + char Mode[8]; + char Size[10]; + char Magic[2]; +}; + +// ARArchive::ARArchive - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +ARArchive::ARArchive(FileFd &File) : List(0), File(File) +{ + LoadHeaders(); +} + /*}}}*/ +// ARArchive::~ARArchive - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +ARArchive::~ARArchive() +{ + while (List != 0) + { + Member *Tmp = List; + List = List->Next; + delete Tmp; + } +} + /*}}}*/ +// ARArchive::LoadHeaders - Load the headers from each file /*{{{*/ +// --------------------------------------------------------------------- +/* AR files are structured with a 8 byte magic string followed by a 60 + byte plain text header then the file data, another header, data, etc */ +bool ARArchive::LoadHeaders() +{ + signed long Left = File.Size(); + + // Check the magic byte + char Magic[8]; + if (File.Read(Magic,sizeof(Magic)) == false) + return false; + if (memcmp(Magic,"!\012",sizeof(Magic)) != 0) + return _error->Error(_("Invalid archive signature")); + Left -= sizeof(Magic); + + // Read the member list + while (Left > 0) + { + MemberHeader Head; + if (File.Read(&Head,sizeof(Head)) == false) + return _error->Error(_("Error reading archive member header")); + Left -= sizeof(Head); + + // Convert all of the integer members + Member *Memb = new Member(); + if (StrToNum(Head.MTime,Memb->MTime,sizeof(Head.MTime)) == false || + StrToNum(Head.UID,Memb->UID,sizeof(Head.UID)) == false || + StrToNum(Head.GID,Memb->GID,sizeof(Head.GID)) == false || + StrToNum(Head.Mode,Memb->Mode,sizeof(Head.Mode),8) == false || + StrToNum(Head.Size,Memb->Size,sizeof(Head.Size)) == false) + { + delete Memb; + return _error->Error(_("Invalid archive member header")); + } + + // Check for an extra long name string + if (memcmp(Head.Name,"#1/",3) == 0) + { + char S[300]; + unsigned long Len; + if (StrToNum(Head.Name+3,Len,sizeof(Head.Size)-3) == false || + Len >= strlen(S)) + { + delete Memb; + return _error->Error(_("Invalid archive member header")); + } + if (File.Read(S,Len) == false) + return false; + S[Len] = 0; + Memb->Name = S; + Memb->Size -= Len; + Left -= Len; + } + else + { + unsigned int I = sizeof(Head.Name) - 1; + for (; Head.Name[I] == ' '; I--); + Memb->Name = string(Head.Name,I+1); + } + + // Account for the AR header alignment + unsigned Skip = Memb->Size % 2; + + // Add it to the list + Memb->Next = List; + List = Memb; + Memb->Start = File.Tell(); + if (File.Skip(Memb->Size + Skip) == false) + return false; + if (Left < (signed)(Memb->Size + Skip)) + return _error->Error(_("Archive is too short")); + Left -= Memb->Size + Skip; + } + if (Left != 0) + return _error->Error(_("Failed to read the archive headers")); + + return true; +} + /*}}}*/ +// ARArchive::FindMember - Find a name in the member list /*{{{*/ +// --------------------------------------------------------------------- +/* Find a member with the given name */ +const ARArchive::Member *ARArchive::FindMember(const char *Name) const +{ + const Member *Res = List; + while (Res != 0) + { + if (Res->Name == Name) + return Res; + Res = Res->Next; + } + + return 0; +} + /*}}}*/ diff --git a/apt-inst/contrib/arfile.h b/apt-inst/contrib/arfile.h new file mode 100644 index 0000000..6c54d3e --- /dev/null +++ b/apt-inst/contrib/arfile.h @@ -0,0 +1,68 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: arfile.h,v 1.2 2001/02/20 07:03:16 jgg Exp $ +/* ###################################################################### + + AR File - Handle an 'AR' archive + + This is a reader for the usual 4.4 BSD AR format. It allows raw + stream access to a single member at a time. Basically all this class + provides is header parsing and verification. It is up to the client + to correctly make use of the stream start/stop points. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_ARFILE_H +#define PKGLIB_ARFILE_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/arfile.h" +#endif + +#include +#include + +class ARArchive +{ + struct MemberHeader; + public: + struct Member; + + protected: + + // Linked list of members + Member *List; + + bool LoadHeaders(); + + public: + + // The stream file + FileFd &File; + + // Locate a member by name + const Member *FindMember(const char *Name) const; + + ARArchive(FileFd &File); + ~ARArchive(); +}; + +// A member of the archive +struct ARArchive::Member +{ + // Fields from the header + string Name; + unsigned long MTime; + unsigned long UID; + unsigned long GID; + unsigned long Mode; + unsigned long Size; + + // Location of the data. + unsigned long Start; + Member *Next; + + Member() : Start(0), Next(0) {}; +}; + +#endif diff --git a/apt-inst/contrib/extracttar.cc b/apt-inst/contrib/extracttar.cc new file mode 100644 index 0000000..062c06f --- /dev/null +++ b/apt-inst/contrib/extracttar.cc @@ -0,0 +1,348 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: extracttar.cc,v 1.8.2.1 2004/01/16 18:58:50 mdz Exp $ +/* ###################################################################### + + Extract a Tar - Tar Extractor + + Some performance measurements showed that zlib performed quite poorly + in comparision to a forked gzip process. This tar extractor makes use + of the fact that dup'd file descriptors have the same seek pointer + and that gzip will not read past the end of a compressed stream, + even if there is more data. We use the dup property to track extraction + progress and the gzip feature to just feed gzip a fd in the middle + of an AR file. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/extracttar.h" +#endif +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + /*}}}*/ + +using namespace std; + +// The on disk header for a tar file. +struct ExtractTar::TarHeader +{ + char Name[100]; + char Mode[8]; + char UserID[8]; + char GroupID[8]; + char Size[12]; + char MTime[12]; + char Checksum[8]; + char LinkFlag; + char LinkName[100]; + char MagicNumber[8]; + char UserName[32]; + char GroupName[32]; + char Major[8]; + char Minor[8]; +}; + +// ExtractTar::ExtractTar - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +ExtractTar::ExtractTar(FileFd &Fd,unsigned long Max,string DecompressionProgram) : File(Fd), + MaxInSize(Max), DecompressProg(DecompressionProgram) + +{ + GZPid = -1; + InFd = -1; + Eof = false; +} + /*}}}*/ +// ExtractTar::ExtractTar - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +ExtractTar::~ExtractTar() +{ + // Error close + Done(true); +} + /*}}}*/ +// ExtractTar::Done - Reap the gzip sub process /*{{{*/ +// --------------------------------------------------------------------- +/* If the force flag is given then error messages are suppressed - this + means we hit the end of the tar file but there was still gzip data. */ +bool ExtractTar::Done(bool Force) +{ + InFd.Close(); + if (GZPid <= 0) + return true; + + /* If there is a pending error then we are cleaning up gzip and are + not interested in it's failures */ + if (_error->PendingError() == true) + Force = true; + + // Make sure we clean it up! + kill(GZPid,SIGINT); + string confvar = string("dir::bin::") + DecompressProg; + if (ExecWait(GZPid,_config->Find(confvar.c_str(),DecompressProg.c_str()).c_str(), + Force) == false) + { + GZPid = -1; + return Force; + } + + GZPid = -1; + return true; +} + /*}}}*/ +// ExtractTar::StartGzip - Startup gzip /*{{{*/ +// --------------------------------------------------------------------- +/* This creates a gzip sub process that has its input as the file itself. + If this tar file is embedded into something like an ar file then + gzip will efficiently ignore the extra bits. */ +bool ExtractTar::StartGzip() +{ + int Pipes[2]; + if (pipe(Pipes) != 0) + return _error->Errno("pipe",_("Failed to create pipes")); + + // Fork off the process + GZPid = ExecFork(); + + // Spawn the subprocess + if (GZPid == 0) + { + // Setup the FDs + dup2(Pipes[1],STDOUT_FILENO); + dup2(File.Fd(),STDIN_FILENO); + int Fd = open("/dev/null",O_RDWR); + if (Fd == -1) + _exit(101); + dup2(Fd,STDERR_FILENO); + close(Fd); + SetCloseExec(STDOUT_FILENO,false); + SetCloseExec(STDIN_FILENO,false); + SetCloseExec(STDERR_FILENO,false); + + const char *Args[3]; + string confvar = string("dir::bin::") + DecompressProg; + string argv0 = _config->Find(confvar.c_str(),DecompressProg.c_str()); + Args[0] = argv0.c_str(); + Args[1] = "-d"; + Args[2] = 0; + execvp(Args[0],(char **)Args); + cerr << _("Failed to exec gzip ") << Args[0] << endl; + _exit(100); + } + + // Fix up our FDs + InFd.Fd(Pipes[0]); + close(Pipes[1]); + return true; +} + /*}}}*/ +// ExtractTar::Go - Perform extraction /*{{{*/ +// --------------------------------------------------------------------- +/* This reads each 512 byte block from the archive and extracts the header + information into the Item structure. Then it resolves the UID/GID and + invokes the correct processing function. */ +bool ExtractTar::Go(pkgDirStream &Stream) +{ + if (StartGzip() == false) + return false; + + // Loop over all blocks + string LastLongLink; + string LastLongName; + while (1) + { + bool BadRecord = false; + unsigned char Block[512]; + if (InFd.Read(Block,sizeof(Block),true) == false) + return false; + + if (InFd.Eof() == true) + break; + + // Get the checksum + TarHeader *Tar = (TarHeader *)Block; + unsigned long CheckSum; + if (StrToNum(Tar->Checksum,CheckSum,sizeof(Tar->Checksum),8) == false) + return _error->Error(_("Corrupted archive")); + + /* Compute the checksum field. The actual checksum is blanked out + with spaces so it is not included in the computation */ + unsigned long NewSum = 0; + memset(Tar->Checksum,' ',sizeof(Tar->Checksum)); + for (int I = 0; I != sizeof(Block); I++) + NewSum += Block[I]; + + /* Check for a block of nulls - in this case we kill gzip, GNU tar + does this.. */ + if (NewSum == ' '*sizeof(Tar->Checksum)) + return Done(true); + + if (NewSum != CheckSum) + return _error->Error(_("Tar checksum failed, archive corrupted")); + + // Decode all of the fields + pkgDirStream::Item Itm; + if (StrToNum(Tar->Mode,Itm.Mode,sizeof(Tar->Mode),8) == false || + StrToNum(Tar->UserID,Itm.UID,sizeof(Tar->UserID),8) == false || + StrToNum(Tar->GroupID,Itm.GID,sizeof(Tar->GroupID),8) == false || + StrToNum(Tar->Size,Itm.Size,sizeof(Tar->Size),8) == false || + StrToNum(Tar->MTime,Itm.MTime,sizeof(Tar->MTime),8) == false || + StrToNum(Tar->Major,Itm.Major,sizeof(Tar->Major),8) == false || + StrToNum(Tar->Minor,Itm.Minor,sizeof(Tar->Minor),8) == false) + return _error->Error(_("Corrupted archive")); + + // Grab the filename + if (LastLongName.empty() == false) + Itm.Name = (char *)LastLongName.c_str(); + else + { + Tar->Name[sizeof(Tar->Name)] = 0; + Itm.Name = Tar->Name; + } + if (Itm.Name[0] == '.' && Itm.Name[1] == '/' && Itm.Name[2] != 0) + Itm.Name += 2; + + // Grab the link target + Tar->Name[sizeof(Tar->LinkName)] = 0; + Itm.LinkTarget = Tar->LinkName; + + if (LastLongLink.empty() == false) + Itm.LinkTarget = (char *)LastLongLink.c_str(); + + // Convert the type over + switch (Tar->LinkFlag) + { + case NormalFile0: + case NormalFile: + Itm.Type = pkgDirStream::Item::File; + break; + + case HardLink: + Itm.Type = pkgDirStream::Item::HardLink; + break; + + case SymbolicLink: + Itm.Type = pkgDirStream::Item::SymbolicLink; + break; + + case CharacterDevice: + Itm.Type = pkgDirStream::Item::CharDevice; + break; + + case BlockDevice: + Itm.Type = pkgDirStream::Item::BlockDevice; + break; + + case Directory: + Itm.Type = pkgDirStream::Item::Directory; + break; + + case FIFO: + Itm.Type = pkgDirStream::Item::FIFO; + break; + + case GNU_LongLink: + { + unsigned long Length = Itm.Size; + unsigned char Block[512]; + while (Length > 0) + { + if (InFd.Read(Block,sizeof(Block),true) == false) + return false; + if (Length <= sizeof(Block)) + { + LastLongLink.append(Block,Block+sizeof(Block)); + break; + } + LastLongLink.append(Block,Block+sizeof(Block)); + Length -= sizeof(Block); + } + continue; + } + + case GNU_LongName: + { + unsigned long Length = Itm.Size; + unsigned char Block[512]; + while (Length > 0) + { + if (InFd.Read(Block,sizeof(Block),true) == false) + return false; + if (Length < sizeof(Block)) + { + LastLongName.append(Block,Block+sizeof(Block)); + break; + } + LastLongName.append(Block,Block+sizeof(Block)); + Length -= sizeof(Block); + } + continue; + } + + default: + BadRecord = true; + _error->Warning(_("Unknown TAR header type %u, member %s"),(unsigned)Tar->LinkFlag,Tar->Name); + break; + } + + int Fd = -1; + if (BadRecord == false) + if (Stream.DoItem(Itm,Fd) == false) + return false; + + // Copy the file over the FD + unsigned long Size = Itm.Size; + while (Size != 0) + { + unsigned char Junk[32*1024]; + unsigned long Read = min(Size,(unsigned long)sizeof(Junk)); + if (InFd.Read(Junk,((Read+511)/512)*512) == false) + return false; + + if (BadRecord == false) + { + if (Fd > 0) + { + if (write(Fd,Junk,Read) != (signed)Read) + return Stream.Fail(Itm,Fd); + } + else + { + /* An Fd of -2 means to send to a special processing + function */ + if (Fd == -2) + if (Stream.Process(Itm,Junk,Read,Itm.Size - Size) == false) + return Stream.Fail(Itm,Fd); + } + } + + Size -= Read; + } + + // And finish up + if (Itm.Size != 0 && BadRecord == false) + if (Stream.FinishedFile(Itm,Fd) == false) + return false; + + LastLongName.erase(); + LastLongLink.erase(); + } + + return Done(false); +} + /*}}}*/ diff --git a/apt-inst/contrib/extracttar.h b/apt-inst/contrib/extracttar.h new file mode 100644 index 0000000..6daf00a --- /dev/null +++ b/apt-inst/contrib/extracttar.h @@ -0,0 +1,59 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: extracttar.h,v 1.2 2001/02/20 07:03:17 jgg Exp $ +/* ###################################################################### + + Extract a Tar - Tar Extractor + + The tar extractor takes an ordinary gzip compressed tar stream from + the given file and explodes it, passing the individual items to the + given Directory Stream for processing. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_EXTRACTTAR_H +#define PKGLIB_EXTRACTTAR_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/extracttar.h" +#endif + +#include +#include + +#include + +using std::min; + +class ExtractTar +{ + protected: + + struct TarHeader; + + // The varios types items can be + enum ItemType {NormalFile0 = '\0',NormalFile = '0',HardLink = '1', + SymbolicLink = '2',CharacterDevice = '3', + BlockDevice = '4',Directory = '5',FIFO = '6', + GNU_LongLink = 'K',GNU_LongName = 'L'}; + + FileFd &File; + unsigned long MaxInSize; + int GZPid; + FileFd InFd; + bool Eof; + string DecompressProg; + + // Fork and reap gzip + bool StartGzip(); + bool Done(bool Force); + + public: + + bool Go(pkgDirStream &Stream); + + ExtractTar(FileFd &Fd,unsigned long Max,string DecompressionProgram); + virtual ~ExtractTar(); +}; + +#endif diff --git a/apt-inst/database.cc b/apt-inst/database.cc new file mode 100644 index 0000000..beee692 --- /dev/null +++ b/apt-inst/database.cc @@ -0,0 +1,30 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: database.cc,v 1.2 2001/02/20 07:03:16 jgg Exp $ +/* ###################################################################### + + Data Base Abstraction + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/database.h" +#endif + +#include + /*}}}*/ + +// DataBase::GetMetaTmp - Get the temp dir /*{{{*/ +// --------------------------------------------------------------------- +/* This re-initializes the meta temporary directory if it hasn't yet + been inited for this cycle. The flag is the emptyness of MetaDir */ +bool pkgDataBase::GetMetaTmp(string &Dir) +{ + if (MetaDir.empty() == true) + if (InitMetaTmp(MetaDir) == false) + return false; + Dir = MetaDir; + return true; +} + /*}}}*/ diff --git a/apt-inst/database.h b/apt-inst/database.h new file mode 100644 index 0000000..0972d40 --- /dev/null +++ b/apt-inst/database.h @@ -0,0 +1,56 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: database.h,v 1.2 2001/02/20 07:03:16 jgg Exp $ +/* ###################################################################### + + Data Base Abstraction + + This class provides a simple interface to an abstract notion of a + database directory for storing state information about the system. + + The 'Meta' information for a package is the control information and + setup scripts stored inside the archive. GetMetaTmp returns the name of + a directory that is used to store named files containing the control + information. + + The File Listing is the database of installed files. It is loaded + into the memory/persistent cache structure by the ReadFileList method. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_DATABASE_H +#define PKGLIB_DATABASE_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/database.h" +#endif + +#include +#include + +class pkgDataBase +{ + protected: + + pkgCacheGenerator *Cache; + pkgFLCache *FList; + string MetaDir; + virtual bool InitMetaTmp(string &Dir) = 0; + + public: + + // Some manipulators for the cache and generator + inline pkgCache &GetCache() {return Cache->GetCache();}; + inline pkgFLCache &GetFLCache() {return *FList;}; + inline pkgCacheGenerator &GetGenerator() {return *Cache;}; + + bool GetMetaTmp(string &Dir); + virtual bool ReadyFileList(OpProgress &Progress) = 0; + virtual bool ReadyPkgCache(OpProgress &Progress) = 0; + virtual bool LoadChanges() = 0; + + pkgDataBase() : Cache(0), FList(0) {}; + virtual ~pkgDataBase() {delete Cache; delete FList;}; +}; + +#endif diff --git a/apt-inst/deb/debfile.cc b/apt-inst/deb/debfile.cc new file mode 100644 index 0000000..84906ff --- /dev/null +++ b/apt-inst/deb/debfile.cc @@ -0,0 +1,276 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: debfile.cc,v 1.3.2.1 2004/01/16 18:58:50 mdz Exp $ +/* ###################################################################### + + Debian Archive File (.deb) + + .DEB archives are AR files containing two tars and an empty marker + member called 'debian-binary'. The two tars contain the meta data and + the actual archive contents. Thus this class is a very simple wrapper + around ar/tar to simply extract the right tar files. + + It also uses the deb package list parser to parse the control file + into the cache. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/debfile.h" +#endif + +#include +#include +#include +#include + +#include +#include +#include + /*}}}*/ + +// DebFile::debDebFile - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* Open the AR file and check for consistency */ +debDebFile::debDebFile(FileFd &File) : File(File), AR(File) +{ + if (_error->PendingError() == true) + return; + + if (!CheckMember("debian-binary")) { + _error->Error(_("This is not a valid DEB archive, missing '%s' member"), "debian-binary"); + return; + } + + if (!CheckMember("control.tar.gz")) { + _error->Error(_("This is not a valid DEB archive, missing '%s' member"), "control.tar.gz"); + return; + } + + if (!CheckMember("data.tar.gz") && !CheckMember("data.tar.bz2")) { + _error->Error(_("This is not a valid DEB archive, it has no '%s' or '%s' member"), "data.tar.gz", "data.tar.bz2"); + return; + } +} + /*}}}*/ +// DebFile::CheckMember - Check if a named member is in the archive /*{{{*/ +// --------------------------------------------------------------------- +/* This is used to check for a correct deb and to give nicer error messages + for people playing around. */ +bool debDebFile::CheckMember(const char *Name) +{ + if (AR.FindMember(Name) == 0) + return false; + return true; +} + /*}}}*/ +// DebFile::GotoMember - Jump to a Member /*{{{*/ +// --------------------------------------------------------------------- +/* Jump in the file to the start of a named member and return the information + about that member. The caller can then read from the file up to the + returned size. Note, since this relies on the file position this is + a destructive operation, it also changes the last returned Member + structure - so don't nest them! */ +const ARArchive::Member *debDebFile::GotoMember(const char *Name) +{ + // Get the archive member and positition the file + const ARArchive::Member *Member = AR.FindMember(Name); + if (Member == 0) + { + return 0; + } + if (File.Seek(Member->Start) == false) + return 0; + + return Member; +} + /*}}}*/ +// DebFile::ExtractControl - Extract Control information /*{{{*/ +// --------------------------------------------------------------------- +/* Extract the control information into the Database's temporary + directory. */ +bool debDebFile::ExtractControl(pkgDataBase &DB) +{ + // Get the archive member and positition the file + const ARArchive::Member *Member = GotoMember("control.tar.gz"); + if (Member == 0) + return false; + + // Prepare Tar + ControlExtract Extract; + ExtractTar Tar(File,Member->Size,"gzip"); + if (_error->PendingError() == true) + return false; + + // Get into the temporary directory + string Cwd = SafeGetCWD(); + string Tmp; + if (DB.GetMetaTmp(Tmp) == false) + return false; + if (chdir(Tmp.c_str()) != 0) + return _error->Errno("chdir",_("Couldn't change to %s"),Tmp.c_str()); + + // Do extraction + if (Tar.Go(Extract) == false) + return false; + + // Switch out of the tmp directory. + if (chdir(Cwd.c_str()) != 0) + chdir("/"); + + return true; +} + /*}}}*/ +// DebFile::ExtractArchive - Extract the archive data itself /*{{{*/ +// --------------------------------------------------------------------- +/* Simple wrapper around tar.. */ +bool debDebFile::ExtractArchive(pkgDirStream &Stream) +{ + // Get the archive member and positition the file + const ARArchive::Member *Member = AR.FindMember("data.tar.gz"); + const char *Compressor = "gzip"; + if (Member == 0) { + Member = AR.FindMember("data.tar.bz2"); + Compressor = "bzip2"; + } + if (Member == 0) + return _error->Error(_("Internal error, could not locate member")); + if (File.Seek(Member->Start) == false) + return false; + + // Prepare Tar + ExtractTar Tar(File,Member->Size,Compressor); + if (_error->PendingError() == true) + return false; + return Tar.Go(Stream); +} + /*}}}*/ +// DebFile::MergeControl - Merge the control information /*{{{*/ +// --------------------------------------------------------------------- +/* This reads the extracted control file into the cache and returns the + version that was parsed. All this really does is select the correct + parser and correct file to parse. */ +pkgCache::VerIterator debDebFile::MergeControl(pkgDataBase &DB) +{ + // Open the control file + string Tmp; + if (DB.GetMetaTmp(Tmp) == false) + return pkgCache::VerIterator(DB.GetCache()); + FileFd Fd(Tmp + "control",FileFd::ReadOnly); + if (_error->PendingError() == true) + return pkgCache::VerIterator(DB.GetCache()); + + // Parse it + debListParser Parse(&Fd); + pkgCache::VerIterator Ver(DB.GetCache()); + if (DB.GetGenerator().MergeList(Parse,&Ver) == false) + return pkgCache::VerIterator(DB.GetCache()); + + if (Ver.end() == true) + _error->Error(_("Failed to locate a valid control file")); + return Ver; +} + /*}}}*/ + +// DebFile::ControlExtract::DoItem - Control Tar Extraction /*{{{*/ +// --------------------------------------------------------------------- +/* This directory stream handler for the control tar handles extracting + it into the temporary meta directory. It only extracts files, it does + not create directories, links or anything else. */ +bool debDebFile::ControlExtract::DoItem(Item &Itm,int &Fd) +{ + if (Itm.Type != Item::File) + return true; + + /* Cleanse the file name, prevent people from trying to unpack into + absolute paths, .., etc */ + for (char *I = Itm.Name; *I != 0; I++) + if (*I == '/') + *I = '_'; + + /* Force the ownership to be root and ensure correct permissions, + go-w, the rest are left untouched */ + Itm.UID = 0; + Itm.GID = 0; + Itm.Mode &= ~(S_IWGRP | S_IWOTH); + + return pkgDirStream::DoItem(Itm,Fd); +} + /*}}}*/ + +// MemControlExtract::DoItem - Check if it is the control file /*{{{*/ +// --------------------------------------------------------------------- +/* This sets up to extract the control block member file into a memory + block of just the right size. All other files go into the bit bucket. */ +bool debDebFile::MemControlExtract::DoItem(Item &Itm,int &Fd) +{ + // At the control file, allocate buffer memory. + if (Member == Itm.Name) + { + delete [] Control; + Control = new char[Itm.Size+2]; + IsControl = true; + Fd = -2; // Signal to pass to Process + Length = Itm.Size; + } + else + IsControl = false; + + return true; +} + /*}}}*/ +// MemControlExtract::Process - Process extracting the control file /*{{{*/ +// --------------------------------------------------------------------- +/* Just memcopy the block from the tar extractor and put it in the right + place in the pre-allocated memory block. */ +bool debDebFile::MemControlExtract::Process(Item &Itm,const unsigned char *Data, + unsigned long Size,unsigned long Pos) +{ + memcpy(Control + Pos, Data,Size); + return true; +} + /*}}}*/ +// MemControlExtract::Read - Read the control information from the deb /*{{{*/ +// --------------------------------------------------------------------- +/* This uses the internal tar extractor to fetch the control file, and then + it parses it into a tag section parser. */ +bool debDebFile::MemControlExtract::Read(debDebFile &Deb) +{ + // Get the archive member and positition the file + const ARArchive::Member *Member = Deb.GotoMember("control.tar.gz"); + if (Member == 0) + return false; + + // Extract it. + ExtractTar Tar(Deb.GetFile(),Member->Size,"gzip"); + if (Tar.Go(*this) == false) + return false; + + if (Control == 0) + return true; + + Control[Length] = '\n'; + Control[Length+1] = '\n'; + if (Section.Scan(Control,Length+2) == false) + return _error->Error(_("Unparsable control file")); + return true; +} + /*}}}*/ +// MemControlExtract::TakeControl - Parse a memory block /*{{{*/ +// --------------------------------------------------------------------- +/* The given memory block is loaded into the parser and parsed as a control + record. */ +bool debDebFile::MemControlExtract::TakeControl(const void *Data,unsigned long Size) +{ + delete [] Control; + Control = new char[Size+2]; + Length = Size; + memcpy(Control,Data,Size); + + Control[Length] = '\n'; + Control[Length+1] = '\n'; + return Section.Scan(Control,Length+2); +} + /*}}}*/ + diff --git a/apt-inst/deb/debfile.h b/apt-inst/deb/debfile.h new file mode 100644 index 0000000..d89b852 --- /dev/null +++ b/apt-inst/deb/debfile.h @@ -0,0 +1,92 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: debfile.h,v 1.2 2001/02/20 07:03:17 jgg Exp $ +/* ###################################################################### + + Debian Archive File (.deb) + + This Class handles all the operations performed directly on .deb + files. It makes use of the AR and TAR classes to give the necessary + external interface. + + There are only two things that can be done with a raw package, + extract it's control information and extract the contents itself. + + This should probably subclass an as-yet unwritten super class to + produce a generic archive mechanism. + + The memory control file extractor is useful to extract a single file + into memory from the control.tar.gz + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_DEBFILE_H +#define PKGLIB_DEBFILE_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/debfile.h" +#endif + +#include +#include +#include +#include + +class debDebFile +{ + protected: + + FileFd &File; + ARArchive AR; + + bool CheckMember(const char *Name); + + public: + + class ControlExtract; + class MemControlExtract; + + bool ExtractControl(pkgDataBase &DB); + bool ExtractArchive(pkgDirStream &Stream); + pkgCache::VerIterator MergeControl(pkgDataBase &DB); + const ARArchive::Member *GotoMember(const char *Name); + inline FileFd &GetFile() {return File;}; + + debDebFile(FileFd &File); +}; + +class debDebFile::ControlExtract : public pkgDirStream +{ + public: + + virtual bool DoItem(Item &Itm,int &Fd); +}; + +class debDebFile::MemControlExtract : public pkgDirStream +{ + bool IsControl; + + public: + + char *Control; + pkgTagSection Section; + unsigned long Length; + string Member; + + // Members from DirStream + virtual bool DoItem(Item &Itm,int &Fd); + virtual bool Process(Item &Itm,const unsigned char *Data, + unsigned long Size,unsigned long Pos); + + + // Helpers + bool Read(debDebFile &Deb); + bool TakeControl(const void *Data,unsigned long Size); + + MemControlExtract() : IsControl(false), Control(0), Length(0), Member("control") {}; + MemControlExtract(string Member) : IsControl(false), Control(0), Length(0), Member(Member) {}; + ~MemControlExtract() {delete [] Control;}; +}; + /*}}}*/ + +#endif diff --git a/apt-inst/deb/dpkgdb.cc b/apt-inst/deb/dpkgdb.cc new file mode 100644 index 0000000..133acb8 --- /dev/null +++ b/apt-inst/deb/dpkgdb.cc @@ -0,0 +1,495 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: dpkgdb.cc,v 1.7.2.1 2004/01/16 18:58:50 mdz Exp $ +/* ###################################################################### + + DPKGv1 Database Implemenation + + This class provides parsers and other implementations for the DPKGv1 + database. It reads the diversion file, the list files and the status + file to build both the list of currently installed files and the + currently installed package list. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/dpkgdb.h" +#endif + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + /*}}}*/ +using namespace std; + +// EraseDir - Erase A Directory /*{{{*/ +// --------------------------------------------------------------------- +/* This is necessary to create a new empty sub directory. The caller should + invoke mkdir after this with the proper permissions and check for + error. Maybe stick this in fileutils */ +static bool EraseDir(const char *Dir) +{ + // First we try a simple RM + if (rmdir(Dir) == 0 || + errno == ENOENT) + return true; + + // A file? Easy enough.. + if (errno == ENOTDIR) + { + if (unlink(Dir) != 0) + return _error->Errno("unlink",_("Failed to remove %s"),Dir); + return true; + } + + // Should not happen + if (errno != ENOTEMPTY) + return _error->Errno("rmdir",_("Failed to remove %s"),Dir); + + // Purge it using rm + pid_t Pid = ExecFork(); + + // Spawn the subprocess + if (Pid == 0) + { + execlp(_config->Find("Dir::Bin::rm","/bin/rm").c_str(), + "rm","-rf","--",Dir,(char *)NULL); + _exit(100); + } + return ExecWait(Pid,_config->Find("dir::bin::rm","/bin/rm").c_str()); +} + /*}}}*/ +// DpkgDB::debDpkgDB - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +debDpkgDB::debDpkgDB() : CacheMap(0), FileMap(0) +{ + AdminDir = flNotFile(_config->Find("Dir::State::status")); + DiverInode = 0; + DiverTime = 0; +} + /*}}}*/ +// DpkgDB::~debDpkgDB - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +debDpkgDB::~debDpkgDB() +{ + delete Cache; + Cache = 0; + delete CacheMap; + CacheMap = 0; + + delete FList; + FList = 0; + delete FileMap; + FileMap = 0; +} + /*}}}*/ +// DpkgDB::InitMetaTmp - Get the temp dir for meta information /*{{{*/ +// --------------------------------------------------------------------- +/* This creats+empties the meta temporary directory /var/lib/dpkg/tmp.ci + Only one package at a time can be using the returned meta directory. */ +bool debDpkgDB::InitMetaTmp(string &Dir) +{ + string Tmp = AdminDir + "tmp.ci/"; + if (EraseDir(Tmp.c_str()) == false) + return _error->Error(_("Unable to create %s"),Tmp.c_str()); + if (mkdir(Tmp.c_str(),0755) != 0) + return _error->Errno("mkdir",_("Unable to create %s"),Tmp.c_str()); + + // Verify it is on the same filesystem as the main info directory + dev_t Dev; + struct stat St; + if (stat((AdminDir + "info").c_str(),&St) != 0) + return _error->Errno("stat",_("Failed to stat %sinfo"),AdminDir.c_str()); + Dev = St.st_dev; + if (stat(Tmp.c_str(),&St) != 0) + return _error->Errno("stat",_("Failed to stat %s"),Tmp.c_str()); + if (Dev != St.st_dev) + return _error->Error(_("The info and temp directories need to be on the same filesystem")); + + // Done + Dir = Tmp; + return true; +} + /*}}}*/ +// DpkgDB::ReadyPkgCache - Prepare the cache with the current status /*{{{*/ +// --------------------------------------------------------------------- +/* This reads in the status file into an empty cache. This really needs + to be somehow unified with the high level APT notion of the Database + directory, but there is no clear way on how to do that yet. */ +bool debDpkgDB::ReadyPkgCache(OpProgress &Progress) +{ + if (Cache != 0) + { + Progress.OverallProgress(1,1,1,_("Reading package lists")); + return true; + } + + if (CacheMap != 0) + { + delete CacheMap; + CacheMap = 0; + } + + if (pkgMakeOnlyStatusCache(Progress,&CacheMap) == false) + return false; + Cache->DropProgress(); + + return true; +} + /*}}}*/ +// DpkgDB::ReadFList - Read the File Listings in /*{{{*/ +// --------------------------------------------------------------------- +/* This reads the file listing in from the state directory. This is a + performance critical routine, as it needs to parse about 50k lines of + text spread over a hundred or more files. For an initial cold start + most of the time is spent in reading file inodes and so on, not + actually parsing. */ +bool debDpkgDB::ReadFList(OpProgress &Progress) +{ + // Count the number of packages we need to read information for + unsigned long Total = 0; + pkgCache &Cache = this->Cache->GetCache(); + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + { + // Only not installed packages have no files. + if (I->CurrentState == pkgCache::State::NotInstalled) + continue; + Total++; + } + + /* Switch into the admin dir, this prevents useless lookups for the + path components */ + string Cwd = SafeGetCWD(); + if (chdir((AdminDir + "info/").c_str()) != 0) + return _error->Errno("chdir",_("Failed to change to the admin dir %sinfo"),AdminDir.c_str()); + + // Allocate a buffer. Anything larger than this buffer will be mmaped + unsigned long BufSize = 32*1024; + char *Buffer = new char[BufSize]; + + // Begin Loading them + unsigned long Count = 0; + char Name[300]; + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + { + /* Only not installed packages have no files. ConfFile packages have + file lists but we don't want to read them in */ + if (I->CurrentState == pkgCache::State::NotInstalled || + I->CurrentState == pkgCache::State::ConfigFiles) + continue; + + // Fetch a package handle to associate with the file + pkgFLCache::PkgIterator FlPkg = FList->GetPkg(I.Name(),0,true); + if (FlPkg.end() == true) + { + _error->Error(_("Internal error getting a package name")); + break; + } + + Progress.OverallProgress(Count,Total,1,_("Reading file listing")); + + // Open the list file + snprintf(Name,sizeof(Name),"%s.list",I.Name()); + int Fd = open(Name,O_RDONLY); + + /* Okay this is very strange and bad.. Best thing is to bail and + instruct the user to look into it. */ + struct stat Stat; + if (Fd == -1 || fstat(Fd,&Stat) != 0) + { + _error->Errno("open",_("Failed to open the list file '%sinfo/%s'. If you " + "cannot restore this file then make it empty " + "and immediately re-install the same version of the package!"), + AdminDir.c_str(),Name); + break; + } + + // Set File to be a memory buffer containing the whole file + char *File; + if ((unsigned)Stat.st_size < BufSize) + { + if (read(Fd,Buffer,Stat.st_size) != Stat.st_size) + { + _error->Errno("read",_("Failed reading the list file %sinfo/%s"), + AdminDir.c_str(),Name); + close(Fd); + break; + } + File = Buffer; + } + else + { + // Use mmap + File = (char *)mmap(0,Stat.st_size,PROT_READ,MAP_PRIVATE,Fd,0); + if (File == (char *)(-1)) + { + _error->Errno("mmap",_("Failed reading the list file %sinfo/%s"), + AdminDir.c_str(),Name); + close(Fd); + break; + } + } + + // Parse it + const char *Start = File; + const char *End = File; + const char *Finish = File + Stat.st_size; + for (; End < Finish; End++) + { + // Not an end of line + if (*End != '\n' && End + 1 < Finish) + continue; + + // Skip blank lines + if (End - Start > 1) + { + pkgFLCache::NodeIterator Node = FList->GetNode(Start,End, + FlPkg.Offset(),true,false); + if (Node.end() == true) + { + _error->Error(_("Internal error getting a node")); + break; + } + } + + // Skip past the end of line + for (; *End == '\n' && End < Finish; End++); + Start = End; + } + + close(Fd); + if ((unsigned)Stat.st_size >= BufSize) + munmap((caddr_t)File,Stat.st_size); + + // Failed + if (End < Finish) + break; + + Count++; + } + + delete [] Buffer; + if (chdir(Cwd.c_str()) != 0) + chdir("/"); + + return !_error->PendingError(); +} + /*}}}*/ +// DpkgDB::ReadDiversions - Load the diversions file /*{{{*/ +// --------------------------------------------------------------------- +/* Read the diversion file in from disk. This is usually invoked by + LoadChanges before performing an operation that uses the FLCache. */ +bool debDpkgDB::ReadDiversions() +{ + struct stat Stat; + if (stat((AdminDir + "diversions").c_str(),&Stat) != 0) + return true; + + if (_error->PendingError() == true) + return false; + + FILE *Fd = fopen((AdminDir + "diversions").c_str(),"r"); + if (Fd == 0) + return _error->Errno("fopen",_("Failed to open the diversions file %sdiversions"),AdminDir.c_str()); + + FList->BeginDiverLoad(); + while (1) + { + char From[300]; + char To[300]; + char Package[100]; + + // Read the three lines in + if (fgets(From,sizeof(From),Fd) == 0) + break; + if (fgets(To,sizeof(To),Fd) == 0 || + fgets(Package,sizeof(Package),Fd) == 0) + { + _error->Error(_("The diversion file is corrupted")); + break; + } + + // Strip the \ns + unsigned long Len = strlen(From); + if (Len < 2 || From[Len-1] != '\n') + _error->Error(_("Invalid line in the diversion file: %s"),From); + else + From[Len-1] = 0; + Len = strlen(To); + if (Len < 2 || To[Len-1] != '\n') + _error->Error(_("Invalid line in the diversion file: %s"),To); + else + To[Len-1] = 0; + Len = strlen(Package); + if (Len < 2 || Package[Len-1] != '\n') + _error->Error(_("Invalid line in the diversion file: %s"),Package); + else + Package[Len-1] = 0; + + // Make sure the lines were parsed OK + if (_error->PendingError() == true) + break; + + // Fetch a package + if (strcmp(Package,":") == 0) + Package[0] = 0; + pkgFLCache::PkgIterator FlPkg = FList->GetPkg(Package,0,true); + if (FlPkg.end() == true) + { + _error->Error(_("Internal error getting a package name")); + break; + } + + // Install the diversion + if (FList->AddDiversion(FlPkg,From,To) == false) + { + _error->Error(_("Internal error adding a diversion")); + break; + } + } + if (_error->PendingError() == false) + FList->FinishDiverLoad(); + + DiverInode = Stat.st_ino; + DiverTime = Stat.st_mtime; + + fclose(Fd); + return !_error->PendingError(); +} + /*}}}*/ +// DpkgDB::ReadFileList - Read the file listing /*{{{*/ +// --------------------------------------------------------------------- +/* Read in the file listing. The file listing is created from three + sources, *.list, Conffile sections and the Diversion table. */ +bool debDpkgDB::ReadyFileList(OpProgress &Progress) +{ + if (Cache == 0) + return _error->Error(_("The pkg cache must be initialized first")); + if (FList != 0) + { + Progress.OverallProgress(1,1,1,_("Reading file listing")); + return true; + } + + // Create the cache and read in the file listing + FileMap = new DynamicMMap(MMap::Public); + FList = new pkgFLCache(*FileMap); + if (_error->PendingError() == true || + ReadFList(Progress) == false || + ReadConfFiles() == false || + ReadDiversions() == false) + { + delete FList; + delete FileMap; + FileMap = 0; + FList = 0; + return false; + } + + cout << "Node: " << FList->HeaderP->NodeCount << ',' << FList->HeaderP->UniqNodes << endl; + cout << "Dir: " << FList->HeaderP->DirCount << endl; + cout << "Package: " << FList->HeaderP->PackageCount << endl; + cout << "HashSize: " << FList->HeaderP->HashSize << endl; + cout << "Size: " << FileMap->Size() << endl; + cout << endl; + + return true; +} + /*}}}*/ +// DpkgDB::ReadConfFiles - Read the conf file sections from the s-file /*{{{*/ +// --------------------------------------------------------------------- +/* Reading the conf files is done by reparsing the status file. This is + actually rather fast so it is no big deal. */ +bool debDpkgDB::ReadConfFiles() +{ + FileFd File(_config->FindFile("Dir::State::status"),FileFd::ReadOnly); + pkgTagFile Tags(&File); + if (_error->PendingError() == true) + return false; + + pkgTagSection Section; + while (1) + { + // Skip to the next section + unsigned long Offset = Tags.Offset(); + if (Tags.Step(Section) == false) + break; + + // Parse the line + const char *Start; + const char *Stop; + if (Section.Find("Conffiles",Start,Stop) == false) + continue; + + const char *PkgStart; + const char *PkgEnd; + if (Section.Find("Package",PkgStart,PkgEnd) == false) + return _error->Error(_("Failed to find a Package: header, offset %lu"),Offset); + + // Snag a package record for it + pkgFLCache::PkgIterator FlPkg = FList->GetPkg(PkgStart,PkgEnd,true); + if (FlPkg.end() == true) + return _error->Error(_("Internal error getting a package name")); + + // Parse the conf file lines + while (1) + { + for (; isspace(*Start) != 0 && Start < Stop; Start++); + if (Start == Stop) + break; + + // Split it into words + const char *End = Start; + for (; isspace(*End) == 0 && End < Stop; End++); + const char *StartMd5 = End; + for (; isspace(*StartMd5) != 0 && StartMd5 < Stop; StartMd5++); + const char *EndMd5 = StartMd5; + for (; isspace(*EndMd5) == 0 && EndMd5 < Stop; EndMd5++); + if (StartMd5 == EndMd5 || Start == End) + return _error->Error(_("Bad ConfFile section in the status file. Offset %lu"),Offset); + + // Insert a new entry + unsigned char MD5[16]; + if (Hex2Num(string(StartMd5,EndMd5-StartMd5),MD5,16) == false) + return _error->Error(_("Error parsing MD5. Offset %lu"),Offset); + + if (FList->AddConfFile(Start,End,FlPkg,MD5) == false) + return false; + Start = EndMd5; + } + } + + return true; +} + /*}}}*/ +// DpkgDB::LoadChanges - Read in any changed state files /*{{{*/ +// --------------------------------------------------------------------- +/* The only file in the dpkg system that can change while packages are + unpacking is the diversions file. */ +bool debDpkgDB::LoadChanges() +{ + struct stat Stat; + if (stat((AdminDir + "diversions").c_str(),&Stat) != 0) + return true; + if (DiverInode == Stat.st_ino && DiverTime == Stat.st_mtime) + return true; + return ReadDiversions(); +} + /*}}}*/ diff --git a/apt-inst/deb/dpkgdb.h b/apt-inst/deb/dpkgdb.h new file mode 100644 index 0000000..ddbb6d6 --- /dev/null +++ b/apt-inst/deb/dpkgdb.h @@ -0,0 +1,53 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: dpkgdb.h,v 1.2 2001/02/20 07:03:17 jgg Exp $ +/* ###################################################################### + + DPKGv1 Data Base Implemenation + + The DPKGv1 database is typically stored in /var/lib/dpkg/. For + DPKGv1 the 'meta' information is the contents of the .deb control.tar.gz + member prepended by the package name. The meta information is unpacked + in its temporary directory and then migrated into the main list dir + at a checkpoint. + + Journaling is providing by syncronized file writes to the updates sub + directory. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_DPKGDB_H +#define PKGLIB_DPKGDB_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/dpkgdb.h" +#endif + +#include + +class debDpkgDB : public pkgDataBase +{ + protected: + + string AdminDir; + DynamicMMap *CacheMap; + DynamicMMap *FileMap; + unsigned long DiverInode; + signed long DiverTime; + + virtual bool InitMetaTmp(string &Dir); + bool ReadFList(OpProgress &Progress); + bool ReadDiversions(); + bool ReadConfFiles(); + + public: + + virtual bool ReadyFileList(OpProgress &Progress); + virtual bool ReadyPkgCache(OpProgress &Progress); + virtual bool LoadChanges(); + + debDpkgDB(); + virtual ~debDpkgDB(); +}; + +#endif diff --git a/apt-inst/dirstream.cc b/apt-inst/dirstream.cc new file mode 100644 index 0000000..898ede3 --- /dev/null +++ b/apt-inst/dirstream.cc @@ -0,0 +1,120 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: dirstream.cc,v 1.3.2.1 2004/01/16 18:58:50 mdz Exp $ +/* ###################################################################### + + Directory Stream + + This class provides a simple basic extractor that can be used for + a number of purposes. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/dirstream.h" +#endif + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + /*}}}*/ + +// DirStream::DoItem - Process an item /*{{{*/ +// --------------------------------------------------------------------- +/* This is a very simple extractor, it does not deal with things like + overwriting directories with files and so on. */ +bool pkgDirStream::DoItem(Item &Itm,int &Fd) +{ + switch (Itm.Type) + { + case Item::File: + { + /* Open the output file, NDELAY is used to prevent this from + blowing up on device special files.. */ + int iFd = open(Itm.Name,O_NDELAY|O_WRONLY|O_CREAT|O_TRUNC|O_APPEND, + Itm.Mode); + if (iFd < 0) + return _error->Errno("open",_("Failed to write file %s"), + Itm.Name); + + // fchmod deals with umask and fchown sets the ownership + if (fchmod(iFd,Itm.Mode) != 0) + return _error->Errno("fchmod",_("Failed to write file %s"), + Itm.Name); + if (fchown(iFd,Itm.UID,Itm.GID) != 0 && errno != EPERM) + return _error->Errno("fchown",_("Failed to write file %s"), + Itm.Name); + Fd = iFd; + return true; + } + + case Item::HardLink: + case Item::SymbolicLink: + case Item::CharDevice: + case Item::BlockDevice: + case Item::Directory: + { + struct stat Buf; + // check if the dir is already there, if so return true + if (stat(Itm.Name,&Buf) == 0) + { + if(S_ISDIR(Buf.st_mode)) + return true; + // something else is there already, return false + return false; + } + // nothing here, create the dir + if(mkdir(Itm.Name,Itm.Mode) < 0) + return false; + return true; + break; + } + case Item::FIFO: + break; + } + + return true; +} + /*}}}*/ +// DirStream::FinishedFile - Finished processing a file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgDirStream::FinishedFile(Item &Itm,int Fd) +{ + if (Fd < 0) + return true; + + if (close(Fd) != 0) + return _error->Errno("close",_("Failed to close file %s"),Itm.Name); + + /* Set the modification times. The only way it can fail is if someone + has futzed with our file, which is intolerable :> */ + struct utimbuf Time; + Time.actime = Itm.MTime; + Time.modtime = Itm.MTime; + if (utime(Itm.Name,&Time) != 0) + _error->Errno("utime",_("Failed to close file %s"),Itm.Name); + + return true; +} + /*}}}*/ +// DirStream::Fail - Failed processing a file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgDirStream::Fail(Item &Itm,int Fd) +{ + if (Fd < 0) + return true; + + close(Fd); + return false; +} + /*}}}*/ diff --git a/apt-inst/dirstream.h b/apt-inst/dirstream.h new file mode 100644 index 0000000..dfb480b --- /dev/null +++ b/apt-inst/dirstream.h @@ -0,0 +1,61 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: dirstream.h,v 1.2 2001/02/20 07:03:16 jgg Exp $ +/* ###################################################################### + + Directory Stream + + When unpacking the contents of the archive are passed into a directory + stream class for analysis and processing. The class controls all aspects + of actually writing the directory stream from disk. The low level + archive handlers are only responsible for decoding the archive format + and sending events (via method calls) to the specified directory + stream. + + When unpacking a real file the archive handler is passed back a file + handle to write the data to, this is to support strange + archives+unpacking methods. If that fd is -1 then the file data is + simply ignored. + + The provided defaults do the 'Right Thing' for a normal unpacking + process (ie 'tar') + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_DIRSTREAM_H +#define PKGLIB_DIRSTREAM_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/dirstream.h" +#endif + +class pkgDirStream +{ + public: + + // All possible information about a component + struct Item + { + enum Type_t {File, HardLink, SymbolicLink, CharDevice, BlockDevice, + Directory, FIFO} Type; + char *Name; + char *LinkTarget; + unsigned long Mode; + unsigned long UID; + unsigned long GID; + unsigned long Size; + unsigned long MTime; + unsigned long Major; + unsigned long Minor; + }; + + virtual bool DoItem(Item &Itm,int &Fd); + virtual bool Fail(Item &Itm,int Fd); + virtual bool FinishedFile(Item &Itm,int Fd); + virtual bool Process(Item &Itm,const unsigned char *Data, + unsigned long Size,unsigned long Pos) {return true;}; + + virtual ~pkgDirStream() {}; +}; + +#endif diff --git a/apt-inst/dpkg-diffs.txt b/apt-inst/dpkg-diffs.txt new file mode 100644 index 0000000..d161055 --- /dev/null +++ b/apt-inst/dpkg-diffs.txt @@ -0,0 +1,5 @@ +- Replacing directories with files + dpkg permits this with the weak condition that the directory is owned only + by the package. APT requires that the directory have no files that are not + owned by the package. Replaces are specifically not checked to prevent + file list corruption. diff --git a/apt-inst/extract.cc b/apt-inst/extract.cc new file mode 100644 index 0000000..2568ed9 --- /dev/null +++ b/apt-inst/extract.cc @@ -0,0 +1,512 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: extract.cc,v 1.6.2.1 2004/01/16 18:58:50 mdz Exp $ +/* ###################################################################### + + Archive Extraction Directory Stream + + Extraction for each file is a bit of an involved process. Each object + undergoes an atomic backup, overwrite, erase sequence. First the + object is unpacked to '.dpkg.new' then the original is hardlinked to + '.dpkg.tmp' and finally the new object is renamed to overwrite the old + one. From an external perspective the file never ceased to exist. + After the archive has been sucessfully unpacked the .dpkg.tmp files + are erased. A failure causes all the .dpkg.tmp files to be restored. + + Decisions about unpacking go like this: + - Store the original filename in the file listing + - Resolve any diversions that would effect this file, all checks + below apply to the diverted name, not the real one. + - Resolve any symlinked configuration files. + - If the existing file does not exist then .dpkg-tmp is checked for. + [Note, this is reduced to only check if a file was expected to be + there] + - If the existing link/file is not a directory then it is replaced + irregardless + - If the existing link/directory is being replaced by a directory then + absolutely nothing happens. + - If the existing link/directory is being replaced by a link then + absolutely nothing happens. + - If the existing link/directory is being replaced by a non-directory + then this will abort if the package is not the sole owner of the + directory. [Note, this is changed to not happen if the directory + non-empty - that is, it only includes files that are part of this + package - prevents removing user files accidentally.] + - If the non-directory exists in the listing database and it + does not belong to the current package then an overwrite condition + is invoked. + + As we unpack we record the file list differences in the FL cache. If + we need to unroll the the FL cache knows which files have been unpacked + and can undo. When we need to erase then it knows which files have not + been unpacked. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/extract.h" +#endif +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + /*}}}*/ +using namespace std; + +static const char *TempExt = "dpkg-tmp"; +//static const char *NewExt = "dpkg-new"; + +// Extract::pkgExtract - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgExtract::pkgExtract(pkgFLCache &FLCache,pkgCache::VerIterator Ver) : + FLCache(FLCache), Ver(Ver) +{ + FLPkg = FLCache.GetPkg(Ver.ParentPkg().Name(),true); + if (FLPkg.end() == true) + return; + Debug = true; +} + /*}}}*/ +// Extract::DoItem - Handle a single item from the stream /*{{{*/ +// --------------------------------------------------------------------- +/* This performs the setup for the extraction.. */ +bool pkgExtract::DoItem(Item &Itm,int &Fd) +{ + char Temp[sizeof(FileName)]; + + /* Strip any leading/trailing /s from the filename, then copy it to the + temp buffer and re-apply the leading / We use a class variable + to store the new filename for use by the three extraction funcs */ + char *End = FileName+1; + const char *I = Itm.Name; + for (; *I != 0 && *I == '/'; I++); + *FileName = '/'; + for (; *I != 0 && End < FileName + sizeof(FileName); I++, End++) + *End = *I; + if (End + 20 >= FileName + sizeof(FileName)) + return _error->Error(_("The path %s is too long"),Itm.Name); + for (; End > FileName && End[-1] == '/'; End--); + *End = 0; + Itm.Name = FileName; + + /* Lookup the file. Nde is the file [group] we are going to write to and + RealNde is the actual node we are manipulating. Due to diversions + they may be entirely different. */ + pkgFLCache::NodeIterator Nde = FLCache.GetNode(Itm.Name,End,0,false,false); + pkgFLCache::NodeIterator RealNde = Nde; + + // See if the file is already in the file listing + unsigned long FileGroup = RealNde->File; + for (; RealNde.end() == false && FileGroup == RealNde->File; RealNde++) + if (RealNde.RealPackage() == FLPkg) + break; + + // Nope, create an entry + if (RealNde.end() == true) + { + RealNde = FLCache.GetNode(Itm.Name,End,FLPkg.Offset(),true,false); + if (RealNde.end() == true) + return false; + RealNde->Flags |= pkgFLCache::Node::NewFile; + } + + /* Check if this entry already was unpacked. The only time this should + ever happen is if someone has hacked tar to support capabilities, in + which case this needs to be modified anyhow.. */ + if ((RealNde->Flags & pkgFLCache::Node::Unpacked) == + pkgFLCache::Node::Unpacked) + return _error->Error(_("Unpacking %s more than once"),Itm.Name); + + if (Nde.end() == true) + Nde = RealNde; + + /* Consider a diverted file - We are not permitted to divert directories, + but everything else is fair game (including conf files!) */ + if ((Nde->Flags & pkgFLCache::Node::Diversion) != 0) + { + if (Itm.Type == Item::Directory) + return _error->Error(_("The directory %s is diverted"),Itm.Name); + + /* A package overwriting a diversion target is just the same as + overwriting a normally owned file and is checked for below in + the overwrites mechanism */ + + /* If this package is trying to overwrite the target of a diversion, + that is never, ever permitted */ + pkgFLCache::DiverIterator Div = Nde.Diversion(); + if (Div.DivertTo() == Nde) + return _error->Error(_("The package is trying to write to the " + "diversion target %s/%s"),Nde.DirN(),Nde.File()); + + // See if it is us and we are following it in the right direction + if (Div->OwnerPkg != FLPkg.Offset() && Div.DivertFrom() == Nde) + { + Nde = Div.DivertTo(); + End = FileName + snprintf(FileName,sizeof(FileName)-20,"%s/%s", + Nde.DirN(),Nde.File()); + if (End <= FileName) + return _error->Error(_("The diversion path is too long")); + } + } + + // Deal with symlinks and conf files + if ((RealNde->Flags & pkgFLCache::Node::NewConfFile) == + pkgFLCache::Node::NewConfFile) + { + string Res = flNoLink(Itm.Name); + if (Res.length() > sizeof(FileName)) + return _error->Error(_("The path %s is too long"),Res.c_str()); + if (Debug == true) + clog << "Followed conf file from " << FileName << " to " << Res << endl; + Itm.Name = strcpy(FileName,Res.c_str()); + } + + /* Get information about the existing file, and attempt to restore + a backup if it does not exist */ + struct stat LExisting; + bool EValid = false; + if (lstat(Itm.Name,&LExisting) != 0) + { + // This is bad news. + if (errno != ENOENT) + return _error->Errno("stat",_("Failed to stat %s"),Itm.Name); + + // See if we can recover the backup file + if (Nde.end() == false) + { + snprintf(Temp,sizeof(Temp),"%s.%s",Itm.Name,TempExt); + if (rename(Temp,Itm.Name) != 0 && errno != ENOENT) + return _error->Errno("rename",_("Failed to rename %s to %s"), + Temp,Itm.Name); + if (stat(Itm.Name,&LExisting) != 0) + { + if (errno != ENOENT) + return _error->Errno("stat",_("Failed to stat %s"),Itm.Name); + } + else + EValid = true; + } + } + else + EValid = true; + + /* If the file is a link we need to stat its destination, get the + existing file modes */ + struct stat Existing = LExisting; + if (EValid == true && S_ISLNK(Existing.st_mode)) + { + if (stat(Itm.Name,&Existing) != 0) + { + if (errno != ENOENT) + return _error->Errno("stat",_("Failed to stat %s"),Itm.Name); + Existing = LExisting; + } + } + + // We pretend a non-existing file looks like it is a normal file + if (EValid == false) + Existing.st_mode = S_IFREG; + + /* Okay, at this point 'Existing' is the stat information for the + real non-link file */ + + /* The only way this can be a no-op is if a directory is being + replaced by a directory or by a link */ + if (S_ISDIR(Existing.st_mode) != 0 && + (Itm.Type == Item::Directory || Itm.Type == Item::SymbolicLink)) + return true; + + /* Non-Directory being replaced by non-directory. We check for over + writes here. */ + if (Nde.end() == false) + { + if (HandleOverwrites(Nde) == false) + return false; + } + + /* Directory being replaced by a non-directory - this needs to see if + the package is the owner and then see if the directory would be + empty after the package is removed [ie no user files will be + erased] */ + if (S_ISDIR(Existing.st_mode) != 0) + { + if (CheckDirReplace(Itm.Name) == false) + return _error->Error(_("The directory %s is being replaced by a non-directory"),Itm.Name); + } + + if (Debug == true) + clog << "Extract " << string(Itm.Name,End) << endl; +/* if (Count != 0) + return _error->Error(_("Done"));*/ + + return true; +} + /*}}}*/ +// Extract::Finished - Sequence finished, erase the temp files /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgExtract::Finished() +{ + return true; +} + /*}}}*/ +// Extract::Aborted - Sequence aborted, undo all our unpacking /*{{{*/ +// --------------------------------------------------------------------- +/* This undoes everything that was done by all calls to the DoItem method + and restores the File Listing cache to its original form. It bases its + actions on the flags value for each node in the cache. */ +bool pkgExtract::Aborted() +{ + if (Debug == true) + clog << "Aborted, backing out" << endl; + + pkgFLCache::NodeIterator Files = FLPkg.Files(); + map_ptrloc *Last = &FLPkg->Files; + + /* Loop over all files, restore those that have been unpacked from their + dpkg-tmp entires */ + while (Files.end() == false) + { + // Locate the hash bucket for the node and locate its group head + pkgFLCache::NodeIterator Nde(FLCache,FLCache.HashNode(Files)); + for (; Nde.end() == false && Files->File != Nde->File; Nde++); + if (Nde.end() == true) + return _error->Error(_("Failed to locate node in its hash bucket")); + + if (snprintf(FileName,sizeof(FileName)-20,"%s/%s", + Nde.DirN(),Nde.File()) <= 0) + return _error->Error(_("The path is too long")); + + // Deal with diversions + if ((Nde->Flags & pkgFLCache::Node::Diversion) != 0) + { + pkgFLCache::DiverIterator Div = Nde.Diversion(); + + // See if it is us and we are following it in the right direction + if (Div->OwnerPkg != FLPkg.Offset() && Div.DivertFrom() == Nde) + { + Nde = Div.DivertTo(); + if (snprintf(FileName,sizeof(FileName)-20,"%s/%s", + Nde.DirN(),Nde.File()) <= 0) + return _error->Error(_("The diversion path is too long")); + } + } + + // Deal with overwrites+replaces + for (; Nde.end() == false && Files->File == Nde->File; Nde++) + { + if ((Nde->Flags & pkgFLCache::Node::Replaced) == + pkgFLCache::Node::Replaced) + { + if (Debug == true) + clog << "De-replaced " << FileName << " from " << Nde.RealPackage()->Name << endl; + Nde->Flags &= ~pkgFLCache::Node::Replaced; + } + } + + // Undo the change in the filesystem + if (Debug == true) + clog << "Backing out " << FileName; + + // Remove a new node + if ((Files->Flags & pkgFLCache::Node::NewFile) == + pkgFLCache::Node::NewFile) + { + if (Debug == true) + clog << " [new node]" << endl; + pkgFLCache::Node *Tmp = Files; + Files++; + *Last = Tmp->NextPkg; + Tmp->NextPkg = 0; + + FLCache.DropNode(Tmp - FLCache.NodeP); + } + else + { + if (Debug == true) + clog << endl; + + Last = &Files->NextPkg; + Files++; + } + } + + return true; +} + /*}}}*/ +// Extract::Fail - Extraction of a file Failed /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgExtract::Fail(Item &Itm,int Fd) +{ + return pkgDirStream::Fail(Itm,Fd); +} + /*}}}*/ +// Extract::FinishedFile - Finished a file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgExtract::FinishedFile(Item &Itm,int Fd) +{ + return pkgDirStream::FinishedFile(Itm,Fd); +} + /*}}}*/ +// Extract::HandleOverwrites - See if a replaces covers this overwrite /*{{{*/ +// --------------------------------------------------------------------- +/* Check if the file is in a package that is being replaced by this + package or if the file is being overwritten. Note that if the file + is really a directory but it has been erased from the filesystem + this will fail with an overwrite message. This is a limitation of the + dpkg file information format. + + XX If a new package installs and another package replaces files in this + package what should we do? */ +bool pkgExtract::HandleOverwrites(pkgFLCache::NodeIterator Nde, + bool DiverCheck) +{ + pkgFLCache::NodeIterator TmpNde = Nde; + unsigned long DiverOwner = 0; + unsigned long FileGroup = Nde->File; + const char *FirstOwner = 0; + for (; Nde.end() == false && FileGroup == Nde->File; Nde++) + { + if ((Nde->Flags & pkgFLCache::Node::Diversion) != 0) + { + /* Store the diversion owner if this is the forward direction + of the diversion */ + if (DiverCheck == true) + DiverOwner = Nde.Diversion()->OwnerPkg; + continue; + } + + pkgFLCache::PkgIterator FPkg(FLCache,Nde.RealPackage()); + if (FPkg.end() == true || FPkg == FLPkg) + continue; + + /* This tests trips when we are checking a diversion to see + if something has already been diverted by this diversion */ + if (FPkg.Offset() == DiverOwner) + continue; + FirstOwner = FPkg.Name(); + + // Now see if this package matches one in a replace depends + pkgCache::DepIterator Dep = Ver.DependsList(); + bool Ok = false; + for (; Dep.end() == false; Dep++) + { + if (Dep->Type != pkgCache::Dep::Replaces) + continue; + + // Does the replaces apply to this package? + if (strcmp(Dep.TargetPkg().Name(),FPkg.Name()) != 0) + continue; + + /* Check the version for match. I do not think CurrentVer can be + 0 if we are here.. */ + pkgCache::PkgIterator Pkg = Dep.TargetPkg(); + if (Pkg->CurrentVer == 0) + { + _error->Warning(_("Overwrite package match with no version for %s"),Pkg.Name()); + continue; + } + + // Replaces is met + if (debVS.CheckDep(Pkg.CurrentVer().VerStr(),Dep->CompareOp,Dep.TargetVer()) == true) + { + if (Debug == true) + clog << "Replaced file " << Nde.DirN() << '/' << Nde.File() << " from " << Pkg.Name() << endl; + Nde->Flags |= pkgFLCache::Node::Replaced; + Ok = true; + break; + } + } + + // Negative Hit + if (Ok == false) + return _error->Error(_("File %s/%s overwrites the one in the package %s"), + Nde.DirN(),Nde.File(),FPkg.Name()); + } + + /* If this is a diversion we might have to recurse to process + the other side of it */ + if ((TmpNde->Flags & pkgFLCache::Node::Diversion) != 0) + { + pkgFLCache::DiverIterator Div = TmpNde.Diversion(); + if (Div.DivertTo() == TmpNde) + return HandleOverwrites(Div.DivertFrom(),true); + } + + return true; +} + /*}}}*/ +// Extract::CheckDirReplace - See if this directory can be erased /*{{{*/ +// --------------------------------------------------------------------- +/* If this directory is owned by a single package and that package is + replacing it with something non-directoryish then dpkg allows this. + We increase the requirement to be that the directory is non-empty after + the package is removed */ +bool pkgExtract::CheckDirReplace(string Dir,unsigned int Depth) +{ + // Looping? + if (Depth > 40) + return false; + + if (Dir[Dir.size() - 1] != '/') + Dir += '/'; + + DIR *D = opendir(Dir.c_str()); + if (D == 0) + return _error->Errno("opendir",_("Unable to read %s"),Dir.c_str()); + + string File; + for (struct dirent *Dent = readdir(D); Dent != 0; Dent = readdir(D)) + { + // Skip some files + if (strcmp(Dent->d_name,".") == 0 || + strcmp(Dent->d_name,"..") == 0) + continue; + + // Look up the node + File = Dir + Dent->d_name; + pkgFLCache::NodeIterator Nde = FLCache.GetNode(File.c_str(), + File.c_str() + File.length(),0,false,false); + + // The file is not owned by this package + if (Nde.end() != false || Nde.RealPackage() != FLPkg) + { + closedir(D); + return false; + } + + // See if it is a directory + struct stat St; + if (lstat(File.c_str(),&St) != 0) + { + closedir(D); + return _error->Errno("lstat",_("Unable to stat %s"),File.c_str()); + } + + // Recurse down directories + if (S_ISDIR(St.st_mode) != 0) + { + if (CheckDirReplace(File,Depth + 1) == false) + { + closedir(D); + return false; + } + } + } + + // No conflicts + closedir(D); + return true; +} + /*}}}*/ diff --git a/apt-inst/extract.h b/apt-inst/extract.h new file mode 100644 index 0000000..a9152a2 --- /dev/null +++ b/apt-inst/extract.h @@ -0,0 +1,52 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: extract.h,v 1.2 2001/02/20 07:03:16 jgg Exp $ +/* ###################################################################### + + Archive Extraction Directory Stream + + This Directory Stream implements extraction of an archive into the + filesystem. It makes the choices on what files should be unpacked and + replaces as well as guiding the actual unpacking. + + When the unpacking sequence is completed one of the two functions, + Finished or Aborted must be called. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_EXTRACT_H +#define PKGLIB_EXTRACT_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/extract.h" +#endif + +#include +#include +#include + +class pkgExtract : public pkgDirStream +{ + pkgFLCache &FLCache; + pkgCache::VerIterator Ver; + pkgFLCache::PkgIterator FLPkg; + char FileName[1024]; + bool Debug; + + bool HandleOverwrites(pkgFLCache::NodeIterator Nde, + bool DiverCheck = false); + bool CheckDirReplace(string Dir,unsigned int Depth = 0); + + public: + + virtual bool DoItem(Item &Itm,int &Fd); + virtual bool Fail(Item &Itm,int Fd); + virtual bool FinishedFile(Item &Itm,int Fd); + + bool Finished(); + bool Aborted(); + + pkgExtract(pkgFLCache &FLCache,pkgCache::VerIterator Ver); +}; + +#endif diff --git a/apt-inst/filelist.cc b/apt-inst/filelist.cc new file mode 100644 index 0000000..f14c641 --- /dev/null +++ b/apt-inst/filelist.cc @@ -0,0 +1,591 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: filelist.cc,v 1.4.2.1 2004/01/16 18:58:50 mdz Exp $ +/* ###################################################################### + + File Listing - Manages a Cache of File -> Package names. + + Diversions add some signficant complexity to the system. To keep + storage space down in the very special case of a diverted file no + extra bytes are allocated in the Node structure. Instead a diversion + is inserted directly into the hash table and its flag bit set. Every + lookup for that filename will always return the diversion. + + The hash buckets are stored in sorted form, with diversions having + the higest sort order. Identical files are assigned the same file + pointer, thus after a search all of the nodes owning that file can be + found by iterating down the bucket. + + Re-updates of diversions (another extremely special case) are done by + marking all diversions as untouched, then loading the entire diversion + list again, touching each diversion and then finally going back and + releasing all untouched diversions. It is assumed that the diversion + table will always be quite small and be a very irregular case. + + Diversions that are user-installed are represented by a package with + an empty name string. + + Conf files are handled like diversions by changing the meaning of the + Pointer field to point to a conf file entry - again to reduce over + head for a special case. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/filelist.h" +#endif + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + /*}}}*/ + +using namespace std; + +// FlCache::Header::Header - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* Initialize the header variables. These are the defaults used when + creating new caches */ +pkgFLCache::Header::Header() +{ + Signature = 0xEA3F1295; + + /* Whenever the structures change the major version should be bumped, + whenever the generator changes the minor version should be bumped. */ + MajorVersion = 1; + MinorVersion = 0; + Dirty = true; + + HeaderSz = sizeof(pkgFLCache::Header); + NodeSz = sizeof(pkgFLCache::Node); + DirSz = sizeof(pkgFLCache::Directory); + PackageSz = sizeof(pkgFLCache::Package); + DiversionSz = sizeof(pkgFLCache::Diversion); + ConfFileSz = sizeof(pkgFLCache::ConfFile); + + NodeCount = 0; + DirCount = 0; + PackageCount = 0; + DiversionCount = 0; + ConfFileCount = 0; + HashSize = 1 << 14; + + FileHash = 0; + DirTree = 0; + Packages = 0; + Diversions = 0; + UniqNodes = 0; + memset(Pools,0,sizeof(Pools)); +} + /*}}}*/ +// FLCache::Header::CheckSizes - Check if the two headers have same *sz /*{{{*/ +// --------------------------------------------------------------------- +/* Compare to make sure we are matching versions */ +bool pkgFLCache::Header::CheckSizes(Header &Against) const +{ + if (HeaderSz == Against.HeaderSz && + NodeSz == Against.NodeSz && + DirSz == Against.DirSz && + DiversionSz == Against.DiversionSz && + PackageSz == Against.PackageSz && + ConfFileSz == Against.ConfFileSz) + return true; + return false; +} + /*}}}*/ + +// FLCache::pkgFLCache - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* If this is a new cache then a new header and hash table are instantaited + otherwise the existing ones are mearly attached */ +pkgFLCache::pkgFLCache(DynamicMMap &Map) : Map(Map) +{ + if (_error->PendingError() == true) + return; + + LastTreeLookup = 0; + LastLookupSize = 0; + + // Apply the typecasts + HeaderP = (Header *)Map.Data(); + NodeP = (Node *)Map.Data(); + DirP = (Directory *)Map.Data(); + DiverP = (Diversion *)Map.Data(); + PkgP = (Package *)Map.Data(); + ConfP = (ConfFile *)Map.Data(); + StrP = (char *)Map.Data(); + AnyP = (unsigned char *)Map.Data(); + + // New mapping, create the basic cache structures + if (Map.Size() == 0) + { + Map.RawAllocate(sizeof(pkgFLCache::Header)); + *HeaderP = pkgFLCache::Header(); + HeaderP->FileHash = Map.RawAllocate(sizeof(pkgFLCache::Node)*HeaderP->HashSize, + sizeof(pkgFLCache::Node))/sizeof(pkgFLCache::Node); + } + + FileHash = NodeP + HeaderP->FileHash; + + // Setup the dynamic map manager + HeaderP->Dirty = true; + Map.Sync(0,sizeof(pkgFLCache::Header)); + Map.UsePools(*HeaderP->Pools,sizeof(HeaderP->Pools)/sizeof(HeaderP->Pools[0])); +} + /*}}}*/ +// FLCache::TreeLookup - Perform a lookup in a generic tree /*{{{*/ +// --------------------------------------------------------------------- +/* This is a simple generic tree lookup. The first three entries of + the Directory structure are used as a template, but any other similar + structure could be used in it's place. */ +map_ptrloc pkgFLCache::TreeLookup(map_ptrloc *Base,const char *Text, + const char *TextEnd,unsigned long Size, + unsigned int *Count,bool Insert) +{ + pkgFLCache::Directory *Dir; + + // Check our last entry cache + if (LastTreeLookup != 0 && LastLookupSize == Size) + { + Dir = (pkgFLCache::Directory *)(AnyP + LastTreeLookup*Size); + if (stringcmp(Text,TextEnd,StrP + Dir->Name) == 0) + return LastTreeLookup; + } + + while (1) + { + // Allocate a new one + if (*Base == 0) + { + if (Insert == false) + return 0; + + *Base = Map.Allocate(Size); + if (*Base == 0) + return 0; + + (*Count)++; + Dir = (pkgFLCache::Directory *)(AnyP + *Base*Size); + Dir->Name = Map.WriteString(Text,TextEnd - Text); + LastTreeLookup = *Base; + LastLookupSize = Size; + return *Base; + } + + // Compare this node + Dir = (pkgFLCache::Directory *)(AnyP + *Base*Size); + int Res = stringcmp(Text,TextEnd,StrP + Dir->Name); + if (Res == 0) + { + LastTreeLookup = *Base; + LastLookupSize = Size; + return *Base; + } + + if (Res > 0) + Base = &Dir->Left; + if (Res < 0) + Base = &Dir->Right; + } +} + /*}}}*/ +// FLCache::PrintTree - Print out a tree /*{{{*/ +// --------------------------------------------------------------------- +/* This is a simple generic tree dumper, ment for debugging. */ +void pkgFLCache::PrintTree(map_ptrloc Base,unsigned long Size) +{ + if (Base == 0) + return; + + pkgFLCache::Directory *Dir = (pkgFLCache::Directory *)(AnyP + Base*Size); + PrintTree(Dir->Left,Size); + cout << (StrP + Dir->Name) << endl; + PrintTree(Dir->Right,Size); +} + /*}}}*/ +// FLCache::GetPkg - Get a package pointer /*{{{*/ +// --------------------------------------------------------------------- +/* Locate a package by name in it's tree, this is just a wrapper for + TreeLookup */ +pkgFLCache::PkgIterator pkgFLCache::GetPkg(const char *Name,const char *NameEnd, + bool Insert) +{ + if (NameEnd == 0) + NameEnd = Name + strlen(Name); + + map_ptrloc Pos = TreeLookup(&HeaderP->Packages,Name,NameEnd, + sizeof(pkgFLCache::Package), + &HeaderP->PackageCount,Insert); + if (Pos == 0) + return pkgFLCache::PkgIterator(); + return pkgFLCache::PkgIterator(*this,PkgP + Pos); +} + /*}}}*/ +// FLCache::GetNode - Get the node associated with the filename /*{{{*/ +// --------------------------------------------------------------------- +/* Lookup a node in the hash table. If Insert is true then a new node is + always inserted. The hash table can have multiple instances of a + single name available. A search returns the first. It is important + that additions for the same name insert after the first entry of + the name group. */ +pkgFLCache::NodeIterator pkgFLCache::GetNode(const char *Name, + const char *NameEnd, + map_ptrloc Loc, + bool Insert,bool Divert) +{ + // Split the name into file and directory, hashing as it is copied + const char *File = Name; + unsigned long HashPos = 0; + for (const char *I = Name; I < NameEnd; I++) + { + HashPos = 1637*HashPos + *I; + if (*I == '/') + File = I; + } + + // Search for it + Node *Hash = NodeP + HeaderP->FileHash + (HashPos % HeaderP->HashSize); + int Res = 0; + map_ptrloc FilePtr = 0; + while (Hash->Pointer != 0) + { + // Compare + Res = stringcmp(File+1,NameEnd,StrP + Hash->File); + if (Res == 0) + Res = stringcmp(Name,File,StrP + DirP[Hash->Dir].Name); + + // Diversion? + if (Res == 0 && Insert == true) + { + /* Dir and File match exactly, we need to reuse the file name + when we link it in */ + FilePtr = Hash->File; + Res = Divert - ((Hash->Flags & Node::Diversion) == Node::Diversion); + } + + // Is a match + if (Res == 0) + { + if (Insert == false) + return NodeIterator(*this,Hash); + + // Only one diversion per name! + if (Divert == true) + return NodeIterator(*this,Hash); + break; + } + + // Out of sort order + if (Res > 0) + break; + + if (Hash->Next != 0) + Hash = NodeP + Hash->Next; + else + break; + } + + // Fail, not found + if (Insert == false) + return NodeIterator(*this); + + // Find a directory node + map_ptrloc Dir = TreeLookup(&HeaderP->DirTree,Name,File, + sizeof(pkgFLCache::Directory), + &HeaderP->DirCount,true); + if (Dir == 0) + return NodeIterator(*this); + + // Allocate a new node + if (Hash->Pointer != 0) + { + // Overwrite or append + if (Res > 0) + { + Node *Next = NodeP + Map.Allocate(sizeof(*Hash)); + if (Next == NodeP) + return NodeIterator(*this); + *Next = *Hash; + Hash->Next = Next - NodeP; + } + else + { + unsigned long NewNext = Map.Allocate(sizeof(*Hash)); + if (NewNext == 0) + return NodeIterator(*this); + NodeP[NewNext].Next = Hash->Next; + Hash->Next = NewNext; + Hash = NodeP + Hash->Next; + } + } + + // Insert into the new item + Hash->Dir = Dir; + Hash->Pointer = Loc; + Hash->Flags = 0; + if (Divert == true) + Hash->Flags |= Node::Diversion; + + if (FilePtr != 0) + Hash->File = FilePtr; + else + { + HeaderP->UniqNodes++; + Hash->File = Map.WriteString(File+1,NameEnd - File-1); + } + + // Link the node to the package list + if (Divert == false && Loc == 0) + { + Hash->Next = PkgP[Loc].Files; + PkgP[Loc].Files = Hash - NodeP; + } + + HeaderP->NodeCount++; + return NodeIterator(*this,Hash); +} + /*}}}*/ +// FLCache::HashNode - Return the hash bucket for the node /*{{{*/ +// --------------------------------------------------------------------- +/* This is one of two hashing functions. The other is inlined into the + GetNode routine. */ +pkgFLCache::Node *pkgFLCache::HashNode(NodeIterator const &Nde) +{ + // Hash the node + unsigned long HashPos = 0; + for (const char *I = Nde.DirN(); *I != 0; I++) + HashPos = 1637*HashPos + *I; + HashPos = 1637*HashPos + '/'; + for (const char *I = Nde.File(); *I != 0; I++) + HashPos = 1637*HashPos + *I; + return NodeP + HeaderP->FileHash + (HashPos % HeaderP->HashSize); +} + /*}}}*/ +// FLCache::DropNode - Drop a node from the hash table /*{{{*/ +// --------------------------------------------------------------------- +/* This erases a node from the hash table. Note that this does not unlink + the node from the package linked list. */ +void pkgFLCache::DropNode(map_ptrloc N) +{ + if (N == 0) + return; + + NodeIterator Nde(*this,NodeP + N); + + if (Nde->NextPkg != 0) + _error->Warning(_("DropNode called on still linked node")); + + // Locate it in the hash table + Node *Last = 0; + Node *Hash = HashNode(Nde); + while (Hash->Pointer != 0) + { + // Got it + if (Hash == Nde) + { + // Top of the bucket.. + if (Last == 0) + { + Hash->Pointer = 0; + if (Hash->Next == 0) + return; + *Hash = NodeP[Hash->Next]; + // Release Hash->Next + return; + } + Last->Next = Hash->Next; + // Release Hash + return; + } + + Last = Hash; + if (Hash->Next != 0) + Hash = NodeP + Hash->Next; + else + break; + } + + _error->Error(_("Failed to locate the hash element!")); +} + /*}}}*/ +// FLCache::BeginDiverLoad - Start reading new diversions /*{{{*/ +// --------------------------------------------------------------------- +/* Tag all the diversions as untouched */ +void pkgFLCache::BeginDiverLoad() +{ + for (DiverIterator I = DiverBegin(); I.end() == false; I++) + I->Flags = 0; +} + /*}}}*/ +// FLCache::FinishDiverLoad - Finish up a new diversion load /*{{{*/ +// --------------------------------------------------------------------- +/* This drops any untouched diversions. In effect removing any diversions + that where not loaded (ie missing from the diversion file) */ +void pkgFLCache::FinishDiverLoad() +{ + map_ptrloc *Cur = &HeaderP->Diversions; + while (*Cur != 0) + { + Diversion *Div = DiverP + *Cur; + if ((Div->Flags & Diversion::Touched) == Diversion::Touched) + { + Cur = &Div->Next; + continue; + } + + // Purge! + DropNode(Div->DivertTo); + DropNode(Div->DivertFrom); + *Cur = Div->Next; + } +} + /*}}}*/ +// FLCache::AddDiversion - Add a new diversion /*{{{*/ +// --------------------------------------------------------------------- +/* Add a new diversion to the diverion tables and make sure that it is + unique and non-chaining. */ +bool pkgFLCache::AddDiversion(PkgIterator const &Owner, + const char *From,const char *To) +{ + /* Locate the two hash nodes we are going to manipulate. If there + are pre-existing diversions then they will be returned */ + NodeIterator FromN = GetNode(From,From+strlen(From),0,true,true); + NodeIterator ToN = GetNode(To,To+strlen(To),0,true,true); + if (FromN.end() == true || ToN.end() == true) + return _error->Error(_("Failed to allocate diversion")); + + // Should never happen + if ((FromN->Flags & Node::Diversion) != Node::Diversion || + (ToN->Flags & Node::Diversion) != Node::Diversion) + return _error->Error(_("Internal error in AddDiversion")); + + // Now, try to reclaim an existing diversion.. + map_ptrloc Diver = 0; + if (FromN->Pointer != 0) + Diver = FromN->Pointer; + + /* Make sure from and to point to the same diversion, if they dont + then we are trying to intermix diversions - very bad */ + if (ToN->Pointer != 0 && ToN->Pointer != Diver) + { + // It could be that the other diversion is no longer in use + if ((DiverP[ToN->Pointer].Flags & Diversion::Touched) == Diversion::Touched) + return _error->Error(_("Trying to overwrite a diversion, %s -> %s and %s/%s"), + From,To,ToN.File(),ToN.Dir().Name()); + + // We can erase it. + Diversion *Div = DiverP + ToN->Pointer; + ToN->Pointer = 0; + + if (Div->DivertTo == ToN.Offset()) + Div->DivertTo = 0; + if (Div->DivertFrom == ToN.Offset()) + Div->DivertFrom = 0; + + // This diversion will be cleaned up by FinishDiverLoad + } + + // Allocate a new diversion + if (Diver == 0) + { + Diver = Map.Allocate(sizeof(Diversion)); + if (Diver == 0) + return false; + DiverP[Diver].Next = HeaderP->Diversions; + HeaderP->Diversions = Diver; + HeaderP->DiversionCount++; + } + + // Can only have one diversion of the same files + Diversion *Div = DiverP + Diver; + if ((Div->Flags & Diversion::Touched) == Diversion::Touched) + return _error->Error(_("Double add of diversion %s -> %s"),From,To); + + // Setup the From/To links + if (Div->DivertFrom != FromN.Offset() && Div->DivertFrom != ToN.Offset()) + DropNode(Div->DivertFrom); + Div->DivertFrom = FromN.Offset(); + if (Div->DivertTo != FromN.Offset() && Div->DivertTo != ToN.Offset()) + DropNode(Div->DivertTo); + Div->DivertTo = ToN.Offset(); + + // Link it to the two nodes + FromN->Pointer = Diver; + ToN->Pointer = Diver; + + // And the package + Div->OwnerPkg = Owner.Offset(); + Div->Flags |= Diversion::Touched; + + return true; +} + /*}}}*/ +// FLCache::AddConfFile - Add a new configuration file /*{{{*/ +// --------------------------------------------------------------------- +/* This simply adds a new conf file node to the hash table. This is only + used by the status file reader. It associates a hash with each conf + file entry that exists in the status file and the list file for + the proper package. Duplicate conf files (across packages) are left + up to other routines to deal with. */ +bool pkgFLCache::AddConfFile(const char *Name,const char *NameEnd, + PkgIterator const &Owner, + const unsigned char *Sum) +{ + NodeIterator Nde = GetNode(Name,NameEnd,0,false,false); + if (Nde.end() == true) + return true; + + unsigned long File = Nde->File; + for (; Nde->File == File && Nde.end() == false; Nde++) + { + if (Nde.RealPackage() != Owner) + continue; + + if ((Nde->Flags & Node::ConfFile) == Node::ConfFile) + return _error->Error(_("Duplicate conf file %s/%s"),Nde.DirN(),Nde.File()); + + // Allocate a new conf file structure + map_ptrloc Conf = Map.Allocate(sizeof(ConfFile)); + if (Conf == 0) + return false; + ConfP[Conf].OwnerPkg = Owner.Offset(); + memcpy(ConfP[Conf].MD5,Sum,sizeof(ConfP[Conf].MD5)); + + Nde->Pointer = Conf; + Nde->Flags |= Node::ConfFile; + return true; + } + + /* This means the conf file has been replaced, but the entry in the + status file was not updated */ + return true; +} + /*}}}*/ + +// NodeIterator::RealPackage - Return the package for this node /*{{{*/ +// --------------------------------------------------------------------- +/* Since the package pointer is indirected in all sorts of interesting ways + this is used to get a pointer to the owning package */ +pkgFLCache::Package *pkgFLCache::NodeIterator::RealPackage() const +{ + if (Nde->Pointer == 0) + return 0; + + if ((Nde->Flags & Node::ConfFile) == Node::ConfFile) + return Owner->PkgP + Owner->ConfP[Nde->Pointer].OwnerPkg; + + // Diversions are ignored + if ((Nde->Flags & Node::Diversion) == Node::Diversion) + return 0; + + return Owner->PkgP + Nde->Pointer; +} + /*}}}*/ diff --git a/apt-inst/filelist.h b/apt-inst/filelist.h new file mode 100644 index 0000000..7536a2f --- /dev/null +++ b/apt-inst/filelist.h @@ -0,0 +1,314 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: filelist.h,v 1.2 2001/02/20 07:03:16 jgg Exp $ +/* ###################################################################### + + File Listing - Manages a Cache of File -> Package names. + + This is identical to the Package cache, except that the generator + (which is much simpler) is integrated directly into the main class, + and it has been designed to handle live updates. + + The storage content of the class is maintained in a memory map and is + written directly to the file system. Performance is traded against + space to give something that performs well and remains small. + The average per file usage is 32 bytes which yeilds about a meg every + 36k files. Directory paths are collected into a binary tree and stored + only once, this offsets the cost of the hash nodes enough to keep + memory usage slightly less than the sum of the filenames. + + The file names are stored into a fixed size chained hash table that is + linked to the package name and to the directory component. + + Each file node has a set of associated flags that indicate the current + state of the file. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_FILELIST_H +#define PKGLIB_FILELIST_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/filelist.h" +#endif + +#include + +class pkgFLCache +{ + public: + struct Header; + struct Node; + struct Directory; + struct Package; + struct Diversion; + struct ConfFile; + + class NodeIterator; + class DirIterator; + class PkgIterator; + class DiverIterator; + + protected: + string CacheFile; + DynamicMMap ⤅ + map_ptrloc LastTreeLookup; + unsigned long LastLookupSize; + + // Helpers for the addition algorithms + map_ptrloc TreeLookup(map_ptrloc *Base,const char *Text,const char *TextEnd, + unsigned long Size,unsigned int *Count = 0, + bool Insert = false); + + public: + + // Pointers to the arrays of items + Header *HeaderP; + Node *NodeP; + Directory *DirP; + Package *PkgP; + Diversion *DiverP; + ConfFile *ConfP; + char *StrP; + unsigned char *AnyP; + + // Quick accessors + Node *FileHash; + + // Accessors + Header &Head() {return *HeaderP;}; + void PrintTree(map_ptrloc Base,unsigned long Size); + + // Add/Find things + PkgIterator GetPkg(const char *Name,const char *End,bool Insert); + inline PkgIterator GetPkg(const char *Name,bool Insert); + NodeIterator GetNode(const char *Name, + const char *NameEnd, + map_ptrloc Loc, + bool Insert,bool Divert); + Node *HashNode(NodeIterator const &N); + void DropNode(map_ptrloc Node); + + inline DiverIterator DiverBegin(); + + // Diversion control + void BeginDiverLoad(); + void FinishDiverLoad(); + bool AddDiversion(PkgIterator const &Owner,const char *From, + const char *To); + bool AddConfFile(const char *Name,const char *NameEnd, + PkgIterator const &Owner,const unsigned char *Sum); + + pkgFLCache(DynamicMMap &Map); +// ~pkgFLCache(); +}; + +struct pkgFLCache::Header +{ + // Signature information + unsigned long Signature; + short MajorVersion; + short MinorVersion; + bool Dirty; + + // Size of structure values + unsigned HeaderSz; + unsigned NodeSz; + unsigned DirSz; + unsigned PackageSz; + unsigned DiversionSz; + unsigned ConfFileSz; + + // Structure Counts; + unsigned int NodeCount; + unsigned int DirCount; + unsigned int PackageCount; + unsigned int DiversionCount; + unsigned int ConfFileCount; + unsigned int HashSize; + unsigned long UniqNodes; + + // Offsets + map_ptrloc FileHash; + map_ptrloc DirTree; + map_ptrloc Packages; + map_ptrloc Diversions; + + /* Allocation pools, there should be one of these for each structure + excluding the header */ + DynamicMMap::Pool Pools[5]; + + bool CheckSizes(Header &Against) const; + Header(); +}; + +/* The bit field is used to advoid incurring an extra 4 bytes x 40000, + Pointer is the most infrequently used member of the structure */ +struct pkgFLCache::Node +{ + map_ptrloc Dir; // Dir + map_ptrloc File; // String + unsigned Pointer:24; // Package/Diversion/ConfFile + unsigned Flags:8; // Package + map_ptrloc Next; // Node + map_ptrloc NextPkg; // Node + + enum Flags {Diversion = (1<<0),ConfFile = (1<<1), + NewConfFile = (1<<2),NewFile = (1<<3), + Unpacked = (1<<4),Replaced = (1<<5)}; +}; + +struct pkgFLCache::Directory +{ + map_ptrloc Left; // Directory + map_ptrloc Right; // Directory + map_ptrloc Name; // String +}; + +struct pkgFLCache::Package +{ + map_ptrloc Left; // Package + map_ptrloc Right; // Package + map_ptrloc Name; // String + map_ptrloc Files; // Node +}; + +struct pkgFLCache::Diversion +{ + map_ptrloc OwnerPkg; // Package + map_ptrloc DivertFrom; // Node + map_ptrloc DivertTo; // String + + map_ptrloc Next; // Diversion + unsigned long Flags; + + enum Flags {Touched = (1<<0)}; +}; + +struct pkgFLCache::ConfFile +{ + map_ptrloc OwnerPkg; // Package + unsigned char MD5[16]; +}; + +class pkgFLCache::PkgIterator +{ + Package *Pkg; + pkgFLCache *Owner; + + public: + + inline bool end() const {return Owner == 0 || Pkg == Owner->PkgP?true:false;} + + // Accessors + inline Package *operator ->() {return Pkg;}; + inline Package const *operator ->() const {return Pkg;}; + inline Package const &operator *() const {return *Pkg;}; + inline operator Package *() {return Pkg == Owner->PkgP?0:Pkg;}; + inline operator Package const *() const {return Pkg == Owner->PkgP?0:Pkg;}; + + inline unsigned long Offset() const {return Pkg - Owner->PkgP;}; + inline const char *Name() const {return Pkg->Name == 0?0:Owner->StrP + Pkg->Name;}; + inline pkgFLCache::NodeIterator Files() const; + + PkgIterator() : Pkg(0), Owner(0) {}; + PkgIterator(pkgFLCache &Owner,Package *Trg) : Pkg(Trg), Owner(&Owner) {}; +}; + +class pkgFLCache::DirIterator +{ + Directory *Dir; + pkgFLCache *Owner; + + public: + + // Accessors + inline Directory *operator ->() {return Dir;}; + inline Directory const *operator ->() const {return Dir;}; + inline Directory const &operator *() const {return *Dir;}; + inline operator Directory *() {return Dir == Owner->DirP?0:Dir;}; + inline operator Directory const *() const {return Dir == Owner->DirP?0:Dir;}; + + inline const char *Name() const {return Dir->Name == 0?0:Owner->StrP + Dir->Name;}; + + DirIterator() : Dir(0), Owner(0) {}; + DirIterator(pkgFLCache &Owner,Directory *Trg) : Dir(Trg), Owner(&Owner) {}; +}; + +class pkgFLCache::DiverIterator +{ + Diversion *Diver; + pkgFLCache *Owner; + + public: + + // Iteration + void operator ++(int) {if (Diver != Owner->DiverP) Diver = Owner->DiverP + Diver->Next;}; + inline void operator ++() {operator ++(0);}; + inline bool end() const {return Owner == 0 || Diver == Owner->DiverP;}; + + // Accessors + inline Diversion *operator ->() {return Diver;}; + inline Diversion const *operator ->() const {return Diver;}; + inline Diversion const &operator *() const {return *Diver;}; + inline operator Diversion *() {return Diver == Owner->DiverP?0:Diver;}; + inline operator Diversion const *() const {return Diver == Owner->DiverP?0:Diver;}; + + inline PkgIterator OwnerPkg() const {return PkgIterator(*Owner,Owner->PkgP + Diver->OwnerPkg);}; + inline NodeIterator DivertFrom() const; + inline NodeIterator DivertTo() const; + + DiverIterator() : Diver(0), Owner(0) {}; + DiverIterator(pkgFLCache &Owner,Diversion *Trg) : Diver(Trg), Owner(&Owner) {}; +}; + +class pkgFLCache::NodeIterator +{ + Node *Nde; + enum {NdePkg, NdeHash} Type; + pkgFLCache *Owner; + + public: + + // Iteration + void operator ++(int) {if (Nde != Owner->NodeP) Nde = Owner->NodeP + + (Type == NdePkg?Nde->NextPkg:Nde->Next);}; + inline void operator ++() {operator ++(0);}; + inline bool end() const {return Owner == 0 || Nde == Owner->NodeP;}; + + // Accessors + inline Node *operator ->() {return Nde;}; + inline Node const *operator ->() const {return Nde;}; + inline Node const &operator *() const {return *Nde;}; + inline operator Node *() {return Nde == Owner->NodeP?0:Nde;}; + inline operator Node const *() const {return Nde == Owner->NodeP?0:Nde;}; + inline unsigned long Offset() const {return Nde - Owner->NodeP;}; + inline DirIterator Dir() const {return DirIterator(*Owner,Owner->DirP + Nde->Dir);}; + inline DiverIterator Diversion() const {return DiverIterator(*Owner,Owner->DiverP + Nde->Pointer);}; + inline const char *File() const {return Nde->File == 0?0:Owner->StrP + Nde->File;}; + inline const char *DirN() const {return Owner->StrP + Owner->DirP[Nde->Dir].Name;}; + Package *RealPackage() const; + + NodeIterator() : Nde(0), Type(NdeHash), Owner(0) {}; + NodeIterator(pkgFLCache &Owner) : Nde(Owner.NodeP), Type(NdeHash), Owner(&Owner) {}; + NodeIterator(pkgFLCache &Owner,Node *Trg) : Nde(Trg), Type(NdeHash), Owner(&Owner) {}; + NodeIterator(pkgFLCache &Owner,Node *Trg,Package *) : Nde(Trg), Type(NdePkg), Owner(&Owner) {}; +}; + +/* Inlines with forward references that cannot be included directly in their + respsective classes */ +inline pkgFLCache::NodeIterator pkgFLCache::DiverIterator::DivertFrom() const + {return NodeIterator(*Owner,Owner->NodeP + Diver->DivertFrom);}; +inline pkgFLCache::NodeIterator pkgFLCache::DiverIterator::DivertTo() const + {return NodeIterator(*Owner,Owner->NodeP + Diver->DivertTo);}; + +inline pkgFLCache::NodeIterator pkgFLCache::PkgIterator::Files() const + {return NodeIterator(*Owner,Owner->NodeP + Pkg->Files,Pkg);}; + +inline pkgFLCache::DiverIterator pkgFLCache::DiverBegin() + {return DiverIterator(*this,DiverP + HeaderP->Diversions);}; + +inline pkgFLCache::PkgIterator pkgFLCache::GetPkg(const char *Name,bool Insert) + {return GetPkg(Name,Name+strlen(Name),Insert);}; + +#endif diff --git a/apt-inst/makefile b/apt-inst/makefile new file mode 100644 index 0000000..c4c96c5 --- /dev/null +++ b/apt-inst/makefile @@ -0,0 +1,33 @@ +# -*- make -*- +BASE=.. +SUBDIR=apt-inst + +# Header location +SUBDIRS = contrib deb +HEADER_TARGETDIRS = apt-pkg + +# Bring in the default rules +include ../buildlib/defaults.mak + +# The library name +LIBRARY=apt-inst +LIBEXT= +#$(GLIBC_VER)$(LIBSTDCPP_VER) +MAJOR=1.1 +MINOR=0 +SLIBS=$(PTHREADLIB) -lapt-pkg +APT_DOMAIN:=libapt-inst$(MAJOR) + +# Source code for the contributed non-core things +SOURCE = contrib/extracttar.cc contrib/arfile.cc + +# Source code for the main library +SOURCE+= filelist.cc database.cc dirstream.cc extract.cc \ + deb/dpkgdb.cc deb/debfile.cc + +# Public header files +HEADERS = extracttar.h arfile.h filelist.h database.h extract.h \ + dpkgdb.h dirstream.h debfile.h + +HEADERS := $(addprefix apt-pkg/,$(HEADERS)) +include $(LIBRARY_H) diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc new file mode 100644 index 0000000..3e281a7 --- /dev/null +++ b/apt-pkg/acquire-item.cc @@ -0,0 +1,1591 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: acquire-item.cc,v 1.46.2.9 2004/01/16 18:51:11 mdz Exp $ +/* ###################################################################### + + Acquire Item - Item to acquire + + Each item can download to exactly one file at a time. This means you + cannot create an item that fetches two uri's to two files at the same + time. The pkgAcqIndex class creates a second class upon instantiation + to fetch the other index files because of this. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/acquire-item.h" +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include + /*}}}*/ + +using namespace std; + +// Acquire::Item::Item - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgAcquire::Item::Item(pkgAcquire *Owner) : Owner(Owner), FileSize(0), + PartialSize(0), Mode(0), ID(0), Complete(false), + Local(false), QueueCounter(0) +{ + Owner->Add(this); + Status = StatIdle; +} + /*}}}*/ +// Acquire::Item::~Item - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgAcquire::Item::~Item() +{ + Owner->Remove(this); +} + /*}}}*/ +// Acquire::Item::Failed - Item failed to download /*{{{*/ +// --------------------------------------------------------------------- +/* We return to an idle state if there are still other queues that could + fetch this object */ +void pkgAcquire::Item::Failed(string Message,pkgAcquire::MethodConfig *Cnf) +{ + Status = StatIdle; + ErrorText = LookupTag(Message,"Message"); + if (QueueCounter <= 1) + { + /* This indicates that the file is not available right now but might + be sometime later. If we do a retry cycle then this should be + retried [CDROMs] */ + if (Cnf->LocalOnly == true && + StringToBool(LookupTag(Message,"Transient-Failure"),false) == true) + { + Status = StatIdle; + Dequeue(); + return; + } + + Status = StatError; + Dequeue(); + } +} + /*}}}*/ +// Acquire::Item::Start - Item has begun to download /*{{{*/ +// --------------------------------------------------------------------- +/* Stash status and the file size. Note that setting Complete means + sub-phases of the acquire process such as decompresion are operating */ +void pkgAcquire::Item::Start(string /*Message*/,unsigned long Size) +{ + Status = StatFetching; + if (FileSize == 0 && Complete == false) + FileSize = Size; +} + /*}}}*/ +// Acquire::Item::Done - Item downloaded OK /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgAcquire::Item::Done(string Message,unsigned long Size,string, + pkgAcquire::MethodConfig *Cnf) +{ + // We just downloaded something.. + string FileName = LookupTag(Message,"Filename"); + // we only inform the Log class if it was actually not a local thing + if (Complete == false && !Local && FileName == DestFile) + { + if (Owner->Log != 0) + Owner->Log->Fetched(Size,atoi(LookupTag(Message,"Resume-Point","0").c_str())); + } + + if (FileSize == 0) + FileSize= Size; + + Status = StatDone; + ErrorText = string(); + Owner->Dequeue(this); +} + /*}}}*/ +// Acquire::Item::Rename - Rename a file /*{{{*/ +// --------------------------------------------------------------------- +/* This helper function is used by alot of item methods as thier final + step */ +void pkgAcquire::Item::Rename(string From,string To) +{ + if (rename(From.c_str(),To.c_str()) != 0) + { + char S[300]; + snprintf(S,sizeof(S),_("rename failed, %s (%s -> %s)."),strerror(errno), + From.c_str(),To.c_str()); + Status = StatError; + ErrorText = S; + } +} + /*}}}*/ + + + +// AcqDiffIndex::AcqDiffIndex - Constructor +// --------------------------------------------------------------------- +/* Get the DiffIndex file first and see if there are patches availabe + * If so, create a pkgAcqIndexDiffs fetcher that will get and apply the + * patches. If anything goes wrong in that process, it will fall back to + * the original packages file + */ +pkgAcqDiffIndex::pkgAcqDiffIndex(pkgAcquire *Owner, + string URI,string URIDesc,string ShortDesc, + string ExpectedMD5) + : Item(Owner), RealURI(URI), ExpectedMD5(ExpectedMD5), Description(URIDesc) +{ + + Debug = _config->FindB("Debug::pkgAcquire::Diffs",false); + + Desc.Description = URIDesc + "/DiffIndex"; + Desc.Owner = this; + Desc.ShortDesc = ShortDesc; + Desc.URI = URI + ".diff/Index"; + + DestFile = _config->FindDir("Dir::State::lists") + "partial/"; + DestFile += URItoFileName(URI) + string(".DiffIndex"); + + if(Debug) + std::clog << "pkgAcqDiffIndex: " << Desc.URI << std::endl; + + // look for the current package file + CurrentPackagesFile = _config->FindDir("Dir::State::lists"); + CurrentPackagesFile += URItoFileName(RealURI); + + // FIXME: this file:/ check is a hack to prevent fetching + // from local sources. this is really silly, and + // should be fixed cleanly as soon as possible + if(!FileExists(CurrentPackagesFile) || + Desc.URI.substr(0,strlen("file:/")) == "file:/") + { + // we don't have a pkg file or we don't want to queue + if(Debug) + std::clog << "No index file, local or canceld by user" << std::endl; + Failed("", NULL); + return; + } + + if(Debug) + std::clog << "pkgAcqIndexDiffs::pkgAcqIndexDiffs(): " + << CurrentPackagesFile << std::endl; + + QueueURI(Desc); + +} + +// AcqIndex::Custom600Headers - Insert custom request headers /*{{{*/ +// --------------------------------------------------------------------- +/* The only header we use is the last-modified header. */ +string pkgAcqDiffIndex::Custom600Headers() +{ + string Final = _config->FindDir("Dir::State::lists"); + Final += URItoFileName(RealURI) + string(".IndexDiff"); + + if(Debug) + std::clog << "Custom600Header-IMS: " << Final << std::endl; + + struct stat Buf; + if (stat(Final.c_str(),&Buf) != 0) + return "\nIndex-File: true"; + + return "\nIndex-File: true\nLast-Modified: " + TimeRFC1123(Buf.st_mtime); +} + + +bool pkgAcqDiffIndex::ParseDiffIndex(string IndexDiffFile) +{ + if(Debug) + std::clog << "pkgAcqIndexDiffs::ParseIndexDiff() " << IndexDiffFile + << std::endl; + + pkgTagSection Tags; + string ServerSha1; + vector available_patches; + + FileFd Fd(IndexDiffFile,FileFd::ReadOnly); + pkgTagFile TF(&Fd); + if (_error->PendingError() == true) + return false; + + if(TF.Step(Tags) == true) + { + string local_sha1; + bool found = false; + DiffInfo d; + string size; + + string tmp = Tags.FindS("SHA1-Current"); + std::stringstream ss(tmp); + ss >> ServerSha1; + + FileFd fd(CurrentPackagesFile, FileFd::ReadOnly); + SHA1Summation SHA1; + SHA1.AddFD(fd.Fd(), fd.Size()); + local_sha1 = string(SHA1.Result()); + + if(local_sha1 == ServerSha1) + { + // we have the same sha1 as the server + if(Debug) + std::clog << "Package file is up-to-date" << std::endl; + // set found to true, this will queue a pkgAcqIndexDiffs with + // a empty availabe_patches + found = true; + } + else + { + if(Debug) + std::clog << "SHA1-Current: " << ServerSha1 << std::endl; + + // check the historie and see what patches we need + string history = Tags.FindS("SHA1-History"); + std::stringstream hist(history); + while(hist >> d.sha1 >> size >> d.file) + { + d.size = atoi(size.c_str()); + // read until the first match is found + if(d.sha1 == local_sha1) + found=true; + // from that point on, we probably need all diffs + if(found) + { + if(Debug) + std::clog << "Need to get diff: " << d.file << std::endl; + available_patches.push_back(d); + } + } + } + + // we have something, queue the next diff + if(found) + { + // queue the diffs + int last_space = Description.rfind(" "); + if(last_space != string::npos) + Description.erase(last_space, Description.size()-last_space); + new pkgAcqIndexDiffs(Owner, RealURI, Description, Desc.ShortDesc, + ExpectedMD5, available_patches); + Complete = false; + Status = StatDone; + Dequeue(); + return true; + } + } + + // Nothing found, report and return false + // Failing here is ok, if we return false later, the full + // IndexFile is queued + if(Debug) + std::clog << "Can't find a patch in the index file" << std::endl; + return false; +} + +void pkgAcqDiffIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf) +{ + if(Debug) + std::clog << "pkgAcqDiffIndex failed: " << Desc.URI << std::endl + << "Falling back to normal index file aquire" << std::endl; + + new pkgAcqIndex(Owner, RealURI, Description, Desc.ShortDesc, + ExpectedMD5); + + Complete = false; + Status = StatDone; + Dequeue(); +} + +void pkgAcqDiffIndex::Done(string Message,unsigned long Size,string Md5Hash, + pkgAcquire::MethodConfig *Cnf) +{ + if(Debug) + std::clog << "pkgAcqDiffIndex::Done(): " << Desc.URI << std::endl; + + Item::Done(Message,Size,Md5Hash,Cnf); + + string FinalFile; + FinalFile = _config->FindDir("Dir::State::lists")+URItoFileName(RealURI); + + // sucess in downloading the index + // rename the index + FinalFile += string(".IndexDiff"); + if(Debug) + std::clog << "Renaming: " << DestFile << " -> " << FinalFile + << std::endl; + Rename(DestFile,FinalFile); + chmod(FinalFile.c_str(),0644); + DestFile = FinalFile; + + if(!ParseDiffIndex(DestFile)) + return Failed("", NULL); + + Complete = true; + Status = StatDone; + Dequeue(); + return; +} + + + +// AcqIndexDiffs::AcqIndexDiffs - Constructor +// --------------------------------------------------------------------- +/* The package diff is added to the queue. one object is constructed + * for each diff and the index + */ +pkgAcqIndexDiffs::pkgAcqIndexDiffs(pkgAcquire *Owner, + string URI,string URIDesc,string ShortDesc, + string ExpectedMD5, vector diffs) + : Item(Owner), RealURI(URI), ExpectedMD5(ExpectedMD5), + available_patches(diffs) +{ + + DestFile = _config->FindDir("Dir::State::lists") + "partial/"; + DestFile += URItoFileName(URI); + + Debug = _config->FindB("Debug::pkgAcquire::Diffs",false); + + Description = URIDesc; + Desc.Owner = this; + Desc.ShortDesc = ShortDesc; + + if(available_patches.size() == 0) + { + // we are done (yeah!) + Finish(true); + } + else + { + // get the next diff + State = StateFetchDiff; + QueueNextDiff(); + } +} + + +void pkgAcqIndexDiffs::Failed(string Message,pkgAcquire::MethodConfig *Cnf) +{ + if(Debug) + std::clog << "pkgAcqIndexDiffs failed: " << Desc.URI << std::endl + << "Falling back to normal index file aquire" << std::endl; + new pkgAcqIndex(Owner, RealURI, Description,Desc.ShortDesc, + ExpectedMD5); + Finish(); +} + + +// helper that cleans the item out of the fetcher queue +void pkgAcqIndexDiffs::Finish(bool allDone) +{ + // we restore the original name, this is required, otherwise + // the file will be cleaned + if(allDone) + { + DestFile = _config->FindDir("Dir::State::lists"); + DestFile += URItoFileName(RealURI); + + // do the final md5sum checking + MD5Summation sum; + FileFd Fd(DestFile, FileFd::ReadOnly); + sum.AddFD(Fd.Fd(), Fd.Size()); + Fd.Close(); + string MD5 = (string)sum.Result(); + + if (!ExpectedMD5.empty() && MD5 != ExpectedMD5) + { + Status = StatAuthError; + ErrorText = _("MD5Sum mismatch"); + Rename(DestFile,DestFile + ".FAILED"); + Dequeue(); + return; + } + + // this is for the "real" finish + Complete = true; + Status = StatDone; + Dequeue(); + if(Debug) + std::clog << "\n\nallDone: " << DestFile << "\n" << std::endl; + return; + } + + if(Debug) + std::clog << "Finishing: " << Desc.URI << std::endl; + Complete = false; + Status = StatDone; + Dequeue(); + return; +} + + + +bool pkgAcqIndexDiffs::QueueNextDiff() +{ + + // calc sha1 of the just patched file + string FinalFile = _config->FindDir("Dir::State::lists"); + FinalFile += URItoFileName(RealURI); + + FileFd fd(FinalFile, FileFd::ReadOnly); + SHA1Summation SHA1; + SHA1.AddFD(fd.Fd(), fd.Size()); + string local_sha1 = string(SHA1.Result()); + if(Debug) + std::clog << "QueueNextDiff: " + << FinalFile << " (" << local_sha1 << ")"<::iterator I=available_patches.begin(); + available_patches.size() > 0 && + I != available_patches.end() && + (*I).sha1 != local_sha1; + I++) + { + available_patches.erase(I); + } + + // error checking and falling back if no patch was found + if(available_patches.size() == 0) + { + Failed("", NULL); + return false; + } + + // queue the right diff + Desc.URI = string(RealURI) + ".diff/" + available_patches[0].file + ".gz"; + Desc.Description = Description + " " + available_patches[0].file + string(".pdiff"); + + DestFile = _config->FindDir("Dir::State::lists") + "partial/"; + DestFile += URItoFileName(RealURI + ".diff/" + available_patches[0].file); + + if(Debug) + std::clog << "pkgAcqIndexDiffs::QueueNextDiff(): " << Desc.URI << std::endl; + + QueueURI(Desc); + + return true; +} + + + +void pkgAcqIndexDiffs::Done(string Message,unsigned long Size,string Md5Hash, + pkgAcquire::MethodConfig *Cnf) +{ + if(Debug) + std::clog << "pkgAcqIndexDiffs::Done(): " << Desc.URI << std::endl; + + Item::Done(Message,Size,Md5Hash,Cnf); + + string FinalFile; + FinalFile = _config->FindDir("Dir::State::lists")+URItoFileName(RealURI); + + // sucess in downloading a diff, enter ApplyDiff state + if(State == StateFetchDiff) + { + + if(Debug) + std::clog << "Sending to gzip method: " << FinalFile << std::endl; + + string FileName = LookupTag(Message,"Filename"); + State = StateUnzipDiff; + Local = true; + Desc.URI = "gzip:" + FileName; + DestFile += ".decomp"; + QueueURI(Desc); + Mode = "gzip"; + return; + } + + // sucess in downloading a diff, enter ApplyDiff state + if(State == StateUnzipDiff) + { + + // rred excepts the patch as $FinalFile.ed + Rename(DestFile,FinalFile+".ed"); + + if(Debug) + std::clog << "Sending to rred method: " << FinalFile << std::endl; + + State = StateApplyDiff; + Local = true; + Desc.URI = "rred:" + FinalFile; + QueueURI(Desc); + Mode = "rred"; + return; + } + + + // success in download/apply a diff, queue next (if needed) + if(State == StateApplyDiff) + { + // remove the just applied patch + available_patches.erase(available_patches.begin()); + + // move into place + if(Debug) + { + std::clog << "Moving patched file in place: " << std::endl + << DestFile << " -> " << FinalFile << std::endl; + } + Rename(DestFile,FinalFile); + chmod(FinalFile.c_str(),0644); + + // see if there is more to download + if(available_patches.size() > 0) { + new pkgAcqIndexDiffs(Owner, RealURI, Description, Desc.ShortDesc, + ExpectedMD5, available_patches); + return Finish(); + } else + return Finish(true); + } +} + + +// AcqIndex::AcqIndex - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* The package file is added to the queue and a second class is + instantiated to fetch the revision file */ +pkgAcqIndex::pkgAcqIndex(pkgAcquire *Owner, + string URI,string URIDesc,string ShortDesc, + string ExpectedMD5, string comprExt) + : Item(Owner), RealURI(URI), ExpectedMD5(ExpectedMD5) +{ + Decompression = false; + Erase = false; + + DestFile = _config->FindDir("Dir::State::lists") + "partial/"; + DestFile += URItoFileName(URI); + + if(comprExt.empty()) + { + // autoselect the compression method + if(FileExists("/bin/bzip2")) + CompressionExtension = ".bz2"; + else + CompressionExtension = ".gz"; + } else { + CompressionExtension = comprExt; + } + Desc.URI = URI + CompressionExtension; + + Desc.Description = URIDesc; + Desc.Owner = this; + Desc.ShortDesc = ShortDesc; + + QueueURI(Desc); +} + /*}}}*/ +// AcqIndex::Custom600Headers - Insert custom request headers /*{{{*/ +// --------------------------------------------------------------------- +/* The only header we use is the last-modified header. */ +string pkgAcqIndex::Custom600Headers() +{ + string Final = _config->FindDir("Dir::State::lists"); + Final += URItoFileName(RealURI); + + struct stat Buf; + if (stat(Final.c_str(),&Buf) != 0) + return "\nIndex-File: true"; + + return "\nIndex-File: true\nLast-Modified: " + TimeRFC1123(Buf.st_mtime); +} + /*}}}*/ + +void pkgAcqIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf) +{ + // no .bz2 found, retry with .gz + if(Desc.URI.substr(Desc.URI.size()-3) == "bz2") { + Desc.URI = Desc.URI.substr(0,Desc.URI.size()-3) + "gz"; + + // retry with a gzip one + new pkgAcqIndex(Owner, RealURI, Desc.Description,Desc.ShortDesc, + ExpectedMD5, string(".gz")); + Status = StatDone; + Complete = false; + Dequeue(); + return; + } + + + Item::Failed(Message,Cnf); +} + + +// AcqIndex::Done - Finished a fetch /*{{{*/ +// --------------------------------------------------------------------- +/* This goes through a number of states.. On the initial fetch the + method could possibly return an alternate filename which points + to the uncompressed version of the file. If this is so the file + is copied into the partial directory. In all other cases the file + is decompressed with a gzip uri. */ +void pkgAcqIndex::Done(string Message,unsigned long Size,string MD5, + pkgAcquire::MethodConfig *Cfg) +{ + Item::Done(Message,Size,MD5,Cfg); + + if (Decompression == true) + { + if (_config->FindB("Debug::pkgAcquire::Auth", false)) + { + std::cerr << std::endl << RealURI << ": Computed MD5: " << MD5; + std::cerr << " Expected MD5: " << ExpectedMD5 << std::endl; + } + + if (MD5.empty()) + { + MD5Summation sum; + FileFd Fd(DestFile, FileFd::ReadOnly); + sum.AddFD(Fd.Fd(), Fd.Size()); + Fd.Close(); + MD5 = (string)sum.Result(); + } + + if (!ExpectedMD5.empty() && MD5 != ExpectedMD5) + { + Status = StatAuthError; + ErrorText = _("MD5Sum mismatch"); + Rename(DestFile,DestFile + ".FAILED"); + return; + } + // Done, move it into position + string FinalFile = _config->FindDir("Dir::State::lists"); + FinalFile += URItoFileName(RealURI); + Rename(DestFile,FinalFile); + chmod(FinalFile.c_str(),0644); + + /* We restore the original name to DestFile so that the clean operation + will work OK */ + DestFile = _config->FindDir("Dir::State::lists") + "partial/"; + DestFile += URItoFileName(RealURI); + + // Remove the compressed version. + if (Erase == true) + unlink(DestFile.c_str()); + return; + } + + Erase = false; + Complete = true; + + // Handle the unzipd case + string FileName = LookupTag(Message,"Alt-Filename"); + if (FileName.empty() == false) + { + // The files timestamp matches + if (StringToBool(LookupTag(Message,"Alt-IMS-Hit"),false) == true) + return; + + Decompression = true; + Local = true; + DestFile += ".decomp"; + Desc.URI = "copy:" + FileName; + QueueURI(Desc); + Mode = "copy"; + return; + } + + FileName = LookupTag(Message,"Filename"); + if (FileName.empty() == true) + { + Status = StatError; + ErrorText = "Method gave a blank filename"; + } + + // The files timestamp matches + if (StringToBool(LookupTag(Message,"IMS-Hit"),false) == true) + return; + + if (FileName == DestFile) + Erase = true; + else + Local = true; + + string compExt = Desc.URI.substr(Desc.URI.size()-3); + char *decompProg; + if(compExt == "bz2") + decompProg = "bzip2"; + else if(compExt == ".gz") + decompProg = "gzip"; + else { + _error->Error("Unsupported extension: %s", compExt.c_str()); + return; + } + + Decompression = true; + DestFile += ".decomp"; + Desc.URI = string(decompProg) + ":" + FileName; + QueueURI(Desc); + Mode = decompProg; +} + +pkgAcqMetaSig::pkgAcqMetaSig(pkgAcquire *Owner, + string URI,string URIDesc,string ShortDesc, + string MetaIndexURI, string MetaIndexURIDesc, + string MetaIndexShortDesc, + const vector* IndexTargets, + indexRecords* MetaIndexParser) : + Item(Owner), RealURI(URI), MetaIndexURI(MetaIndexURI), + MetaIndexURIDesc(MetaIndexURIDesc), MetaIndexShortDesc(MetaIndexShortDesc), + MetaIndexParser(MetaIndexParser), IndexTargets(IndexTargets) +{ + DestFile = _config->FindDir("Dir::State::lists") + "partial/"; + DestFile += URItoFileName(URI); + + // remove any partial downloaded sig-file. it may confuse proxies + // and is too small to warrant a partial download anyway + unlink(DestFile.c_str()); + + // Create the item + Desc.Description = URIDesc; + Desc.Owner = this; + Desc.ShortDesc = ShortDesc; + Desc.URI = URI; + + + string Final = _config->FindDir("Dir::State::lists"); + Final += URItoFileName(RealURI); + struct stat Buf; + if (stat(Final.c_str(),&Buf) == 0) + { + // File was already in place. It needs to be re-verified + // because Release might have changed, so Move it into partial + Rename(Final,DestFile); + } + + QueueURI(Desc); +} + /*}}}*/ +// pkgAcqMetaSig::Custom600Headers - Insert custom request headers /*{{{*/ +// --------------------------------------------------------------------- +/* The only header we use is the last-modified header. */ +string pkgAcqMetaSig::Custom600Headers() +{ + struct stat Buf; + if (stat(DestFile.c_str(),&Buf) != 0) + return "\nIndex-File: true"; + + return "\nIndex-File: true\nLast-Modified: " + TimeRFC1123(Buf.st_mtime); +} + +void pkgAcqMetaSig::Done(string Message,unsigned long Size,string MD5, + pkgAcquire::MethodConfig *Cfg) +{ + Item::Done(Message,Size,MD5,Cfg); + + string FileName = LookupTag(Message,"Filename"); + if (FileName.empty() == true) + { + Status = StatError; + ErrorText = "Method gave a blank filename"; + return; + } + + if (FileName != DestFile) + { + // We have to copy it into place + Local = true; + Desc.URI = "copy:" + FileName; + QueueURI(Desc); + return; + } + + Complete = true; + + // queue a pkgAcqMetaIndex to be verified against the sig we just retrieved + new pkgAcqMetaIndex(Owner, MetaIndexURI, MetaIndexURIDesc, MetaIndexShortDesc, + DestFile, IndexTargets, MetaIndexParser); + +} + /*}}}*/ +void pkgAcqMetaSig::Failed(string Message,pkgAcquire::MethodConfig *Cnf) +{ + + // if we get a network error we fail gracefully + if(LookupTag(Message,"FailReason") == "Timeout" || + LookupTag(Message,"FailReason") == "TmpResolveFailure" || + LookupTag(Message,"FailReason") == "ConnectionRefused") { + Item::Failed(Message,Cnf); + return; + } + + // Delete any existing sigfile when the acquire failed + string Final = _config->FindDir("Dir::State::lists") + URItoFileName(RealURI); + unlink(Final.c_str()); + + // queue a pkgAcqMetaIndex with no sigfile + new pkgAcqMetaIndex(Owner, MetaIndexURI, MetaIndexURIDesc, MetaIndexShortDesc, + "", IndexTargets, MetaIndexParser); + + if (Cnf->LocalOnly == true || + StringToBool(LookupTag(Message,"Transient-Failure"),false) == false) + { + // Ignore this + Status = StatDone; + Complete = false; + Dequeue(); + return; + } + + Item::Failed(Message,Cnf); +} + +pkgAcqMetaIndex::pkgAcqMetaIndex(pkgAcquire *Owner, + string URI,string URIDesc,string ShortDesc, + string SigFile, + const vector* IndexTargets, + indexRecords* MetaIndexParser) : + Item(Owner), RealURI(URI), SigFile(SigFile), AuthPass(false), + MetaIndexParser(MetaIndexParser), IndexTargets(IndexTargets), IMSHit(false) +{ + DestFile = _config->FindDir("Dir::State::lists") + "partial/"; + DestFile += URItoFileName(URI); + + // Create the item + Desc.Description = URIDesc; + Desc.Owner = this; + Desc.ShortDesc = ShortDesc; + Desc.URI = URI; + + QueueURI(Desc); +} + + /*}}}*/ +// pkgAcqMetaIndex::Custom600Headers - Insert custom request headers /*{{{*/ +// --------------------------------------------------------------------- +/* The only header we use is the last-modified header. */ +string pkgAcqMetaIndex::Custom600Headers() +{ + string Final = _config->FindDir("Dir::State::lists"); + Final += URItoFileName(RealURI); + + struct stat Buf; + if (stat(Final.c_str(),&Buf) != 0) + return "\nIndex-File: true"; + + return "\nIndex-File: true\nLast-Modified: " + TimeRFC1123(Buf.st_mtime); +} + +void pkgAcqMetaIndex::Done(string Message,unsigned long Size,string MD5, + pkgAcquire::MethodConfig *Cfg) +{ + Item::Done(Message,Size,MD5,Cfg); + + // MetaIndexes are done in two passes: one to download the + // metaindex with an appropriate method, and a second to verify it + // with the gpgv method + + if (AuthPass == true) + { + AuthDone(Message); + } + else + { + RetrievalDone(Message); + if (!Complete) + // Still more retrieving to do + return; + + if (SigFile == "") + { + // There was no signature file, so we are finished. Download + // the indexes without verification. + QueueIndexes(false); + } + else + { + // There was a signature file, so pass it to gpgv for + // verification + + if (_config->FindB("Debug::pkgAcquire::Auth", false)) + std::cerr << "Metaindex acquired, queueing gpg verification (" + << SigFile << "," << DestFile << ")\n"; + AuthPass = true; + Desc.URI = "gpgv:" + SigFile; + QueueURI(Desc); + Mode = "gpgv"; + } + } +} + +void pkgAcqMetaIndex::RetrievalDone(string Message) +{ + // We have just finished downloading a Release file (it is not + // verified yet) + + string FileName = LookupTag(Message,"Filename"); + if (FileName.empty() == true) + { + Status = StatError; + ErrorText = "Method gave a blank filename"; + return; + } + + if (FileName != DestFile) + { + Local = true; + Desc.URI = "copy:" + FileName; + QueueURI(Desc); + return; + } + + // see if the download was a IMSHit + IMSHit = StringToBool(LookupTag(Message,"IMS-Hit"),false); + + Complete = true; + + string FinalFile = _config->FindDir("Dir::State::lists"); + FinalFile += URItoFileName(RealURI); + + // The files timestamp matches + if (StringToBool(LookupTag(Message,"IMS-Hit"),false) == false) + { + // Move it into position + Rename(DestFile,FinalFile); + } + chmod(FinalFile.c_str(),0644); + DestFile = FinalFile; +} + +void pkgAcqMetaIndex::AuthDone(string Message) +{ + // At this point, the gpgv method has succeeded, so there is a + // valid signature from a key in the trusted keyring. We + // perform additional verification of its contents, and use them + // to verify the indexes we are about to download + + if (!MetaIndexParser->Load(DestFile)) + { + Status = StatAuthError; + ErrorText = MetaIndexParser->ErrorText; + return; + } + + if (!VerifyVendor(Message)) + { + return; + } + + if (_config->FindB("Debug::pkgAcquire::Auth", false)) + std::cerr << "Signature verification succeeded: " + << DestFile << std::endl; + + // Download further indexes with verification + QueueIndexes(true); + + // Done, move signature file into position + + string VerifiedSigFile = _config->FindDir("Dir::State::lists") + + URItoFileName(RealURI) + ".gpg"; + Rename(SigFile,VerifiedSigFile); + chmod(VerifiedSigFile.c_str(),0644); +} + +void pkgAcqMetaIndex::QueueIndexes(bool verify) +{ + for (vector ::const_iterator Target = IndexTargets->begin(); + Target != IndexTargets->end(); + Target++) + { + string ExpectedIndexMD5; + if (verify) + { + const indexRecords::checkSum *Record = MetaIndexParser->Lookup((*Target)->MetaKey); + if (!Record) + { + Status = StatAuthError; + ErrorText = "Unable to find expected entry " + + (*Target)->MetaKey + " in Meta-index file (malformed Release file?)"; + return; + } + ExpectedIndexMD5 = Record->MD5Hash; + if (_config->FindB("Debug::pkgAcquire::Auth", false)) + { + std::cerr << "Queueing: " << (*Target)->URI << std::endl; + std::cerr << "Expected MD5: " << ExpectedIndexMD5 << std::endl; + } + if (ExpectedIndexMD5.empty()) + { + Status = StatAuthError; + ErrorText = "Unable to find MD5 sum for " + + (*Target)->MetaKey + " in Meta-index file"; + return; + } + } + + // Queue Packages file (either diff or full packages files, depending + // on the users option) + if(_config->FindB("Acquire::PDiffs",true) == true) + new pkgAcqDiffIndex(Owner, (*Target)->URI, (*Target)->Description, + (*Target)->ShortDesc, ExpectedIndexMD5); + else + new pkgAcqIndex(Owner, (*Target)->URI, (*Target)->Description, + (*Target)->ShortDesc, ExpectedIndexMD5); + } +} + +bool pkgAcqMetaIndex::VerifyVendor(string Message) +{ +// // Maybe this should be made available from above so we don't have +// // to read and parse it every time? +// pkgVendorList List; +// List.ReadMainList(); + +// const Vendor* Vndr = NULL; +// for (std::vector::const_iterator I = GPGVOutput.begin(); I != GPGVOutput.end(); I++) +// { +// string::size_type pos = (*I).find("VALIDSIG "); +// if (_config->FindB("Debug::Vendor", false)) +// std::cerr << "Looking for VALIDSIG in \"" << (*I) << "\": pos " << pos +// << std::endl; +// if (pos != std::string::npos) +// { +// string Fingerprint = (*I).substr(pos+sizeof("VALIDSIG")); +// if (_config->FindB("Debug::Vendor", false)) +// std::cerr << "Looking for \"" << Fingerprint << "\" in vendor..." << +// std::endl; +// Vndr = List.FindVendor(Fingerprint) != ""; +// if (Vndr != NULL); +// break; +// } +// } + string::size_type pos; + + // check for missing sigs (that where not fatal because otherwise we had + // bombed earlier) + string missingkeys; + string msg = _("There is no public key available for the " + "following key IDs:\n"); + pos = Message.find("NO_PUBKEY "); + if (pos != std::string::npos) + { + string::size_type start = pos+strlen("NO_PUBKEY "); + string Fingerprint = Message.substr(start, Message.find("\n")-start); + missingkeys += (Fingerprint); + } + if(!missingkeys.empty()) + _error->Warning("%s", string(msg+missingkeys).c_str()); + + string Transformed = MetaIndexParser->GetExpectedDist(); + + if (Transformed == "../project/experimental") + { + Transformed = "experimental"; + } + + pos = Transformed.rfind('/'); + if (pos != string::npos) + { + Transformed = Transformed.substr(0, pos); + } + + if (Transformed == ".") + { + Transformed = ""; + } + + if (_config->FindB("Debug::pkgAcquire::Auth", false)) + { + std::cerr << "Got Codename: " << MetaIndexParser->GetDist() << std::endl; + std::cerr << "Expecting Dist: " << MetaIndexParser->GetExpectedDist() << std::endl; + std::cerr << "Transformed Dist: " << Transformed << std::endl; + } + + if (MetaIndexParser->CheckDist(Transformed) == false) + { + // This might become fatal one day +// Status = StatAuthError; +// ErrorText = "Conflicting distribution; expected " +// + MetaIndexParser->GetExpectedDist() + " but got " +// + MetaIndexParser->GetDist(); +// return false; + if (!Transformed.empty()) + { + _error->Warning("Conflicting distribution: %s (expected %s but got %s)", + Desc.Description.c_str(), + Transformed.c_str(), + MetaIndexParser->GetDist().c_str()); + } + } + + return true; +} + /*}}}*/ +// pkgAcqMetaIndex::Failed - no Release file present or no signature +// file present /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgAcqMetaIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf) +{ + if (AuthPass == true) + { + // if we fail the authentication but got the file via a IMS-Hit + // this means that the file wasn't downloaded and that it might be + // just stale (server problem, proxy etc). we delete what we have + // queue it again without i-m-s + // alternatively we could just unlink the file and let the user try again + if (IMSHit) + { + Complete = false; + Local = false; + AuthPass = false; + unlink(DestFile.c_str()); + + DestFile = _config->FindDir("Dir::State::lists") + "partial/"; + DestFile += URItoFileName(RealURI); + Desc.URI = RealURI; + QueueURI(Desc); + return; + } + + // gpgv method failed + _error->Warning("GPG error: %s: %s", + Desc.Description.c_str(), + LookupTag(Message,"Message").c_str()); + + } + + // No Release file was present, or verification failed, so fall + // back to queueing Packages files without verification + QueueIndexes(false); +} + + /*}}}*/ + +// AcqArchive::AcqArchive - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* This just sets up the initial fetch environment and queues the first + possibilitiy */ +pkgAcqArchive::pkgAcqArchive(pkgAcquire *Owner,pkgSourceList *Sources, + pkgRecords *Recs,pkgCache::VerIterator const &Version, + string &StoreFilename) : + Item(Owner), Version(Version), Sources(Sources), Recs(Recs), + StoreFilename(StoreFilename), Vf(Version.FileList()), + Trusted(false) +{ + Retries = _config->FindI("Acquire::Retries",0); + + if (Version.Arch() == 0) + { + _error->Error(_("I wasn't able to locate a file for the %s package. " + "This might mean you need to manually fix this package. " + "(due to missing arch)"), + Version.ParentPkg().Name()); + return; + } + + /* We need to find a filename to determine the extension. We make the + assumption here that all the available sources for this version share + the same extension.. */ + // Skip not source sources, they do not have file fields. + for (; Vf.end() == false; Vf++) + { + if ((Vf.File()->Flags & pkgCache::Flag::NotSource) != 0) + continue; + break; + } + + // Does not really matter here.. we are going to fail out below + if (Vf.end() != true) + { + // If this fails to get a file name we will bomb out below. + pkgRecords::Parser &Parse = Recs->Lookup(Vf); + if (_error->PendingError() == true) + return; + + // Generate the final file name as: package_version_arch.foo + StoreFilename = QuoteString(Version.ParentPkg().Name(),"_:") + '_' + + QuoteString(Version.VerStr(),"_:") + '_' + + QuoteString(Version.Arch(),"_:.") + + "." + flExtension(Parse.FileName()); + } + + // check if we have one trusted source for the package. if so, switch + // to "TrustedOnly" mode + for (pkgCache::VerFileIterator i = Version.FileList(); i.end() == false; i++) + { + pkgIndexFile *Index; + if (Sources->FindIndex(i.File(),Index) == false) + continue; + if (_config->FindB("Debug::pkgAcquire::Auth", false)) + { + std::cerr << "Checking index: " << Index->Describe() + << "(Trusted=" << Index->IsTrusted() << ")\n"; + } + if (Index->IsTrusted()) { + Trusted = true; + break; + } + } + + // "allow-unauthenticated" restores apts old fetching behaviour + // that means that e.g. unauthenticated file:// uris are higher + // priority than authenticated http:// uris + if (_config->FindB("APT::Get::AllowUnauthenticated",false) == true) + Trusted = false; + + // Select a source + if (QueueNext() == false && _error->PendingError() == false) + _error->Error(_("I wasn't able to locate file for the %s package. " + "This might mean you need to manually fix this package."), + Version.ParentPkg().Name()); +} + /*}}}*/ +// AcqArchive::QueueNext - Queue the next file source /*{{{*/ +// --------------------------------------------------------------------- +/* This queues the next available file version for download. It checks if + the archive is already available in the cache and stashs the MD5 for + checking later. */ +bool pkgAcqArchive::QueueNext() +{ + for (; Vf.end() == false; Vf++) + { + // Ignore not source sources + if ((Vf.File()->Flags & pkgCache::Flag::NotSource) != 0) + continue; + + // Try to cross match against the source list + pkgIndexFile *Index; + if (Sources->FindIndex(Vf.File(),Index) == false) + continue; + + // only try to get a trusted package from another source if that source + // is also trusted + if(Trusted && !Index->IsTrusted()) + continue; + + // Grab the text package record + pkgRecords::Parser &Parse = Recs->Lookup(Vf); + if (_error->PendingError() == true) + return false; + + string PkgFile = Parse.FileName(); + MD5 = Parse.MD5Hash(); + if (PkgFile.empty() == true) + return _error->Error(_("The package index files are corrupted. No Filename: " + "field for package %s."), + Version.ParentPkg().Name()); + + Desc.URI = Index->ArchiveURI(PkgFile); + Desc.Description = Index->ArchiveInfo(Version); + Desc.Owner = this; + Desc.ShortDesc = Version.ParentPkg().Name(); + + // See if we already have the file. (Legacy filenames) + FileSize = Version->Size; + string FinalFile = _config->FindDir("Dir::Cache::Archives") + flNotDir(PkgFile); + struct stat Buf; + if (stat(FinalFile.c_str(),&Buf) == 0) + { + // Make sure the size matches + if ((unsigned)Buf.st_size == Version->Size) + { + Complete = true; + Local = true; + Status = StatDone; + StoreFilename = DestFile = FinalFile; + return true; + } + + /* Hmm, we have a file and its size does not match, this means it is + an old style mismatched arch */ + unlink(FinalFile.c_str()); + } + + // Check it again using the new style output filenames + FinalFile = _config->FindDir("Dir::Cache::Archives") + flNotDir(StoreFilename); + if (stat(FinalFile.c_str(),&Buf) == 0) + { + // Make sure the size matches + if ((unsigned)Buf.st_size == Version->Size) + { + Complete = true; + Local = true; + Status = StatDone; + StoreFilename = DestFile = FinalFile; + return true; + } + + /* Hmm, we have a file and its size does not match, this shouldnt + happen.. */ + unlink(FinalFile.c_str()); + } + + DestFile = _config->FindDir("Dir::Cache::Archives") + "partial/" + flNotDir(StoreFilename); + + // Check the destination file + if (stat(DestFile.c_str(),&Buf) == 0) + { + // Hmm, the partial file is too big, erase it + if ((unsigned)Buf.st_size > Version->Size) + unlink(DestFile.c_str()); + else + PartialSize = Buf.st_size; + } + + // Create the item + Local = false; + Desc.URI = Index->ArchiveURI(PkgFile); + Desc.Description = Index->ArchiveInfo(Version); + Desc.Owner = this; + Desc.ShortDesc = Version.ParentPkg().Name(); + QueueURI(Desc); + + Vf++; + return true; + } + return false; +} + /*}}}*/ +// AcqArchive::Done - Finished fetching /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgAcqArchive::Done(string Message,unsigned long Size,string Md5Hash, + pkgAcquire::MethodConfig *Cfg) +{ + Item::Done(Message,Size,Md5Hash,Cfg); + + // Check the size + if (Size != Version->Size) + { + Status = StatError; + ErrorText = _("Size mismatch"); + return; + } + + // Check the md5 + if (Md5Hash.empty() == false && MD5.empty() == false) + { + if (Md5Hash != MD5) + { + Status = StatError; + ErrorText = _("MD5Sum mismatch"); + if(FileExists(DestFile)) + Rename(DestFile,DestFile + ".FAILED"); + return; + } + } + + // Grab the output filename + string FileName = LookupTag(Message,"Filename"); + if (FileName.empty() == true) + { + Status = StatError; + ErrorText = "Method gave a blank filename"; + return; + } + + Complete = true; + + // Reference filename + if (FileName != DestFile) + { + StoreFilename = DestFile = FileName; + Local = true; + return; + } + + // Done, move it into position + string FinalFile = _config->FindDir("Dir::Cache::Archives"); + FinalFile += flNotDir(StoreFilename); + Rename(DestFile,FinalFile); + + StoreFilename = DestFile = FinalFile; + Complete = true; +} + /*}}}*/ +// AcqArchive::Failed - Failure handler /*{{{*/ +// --------------------------------------------------------------------- +/* Here we try other sources */ +void pkgAcqArchive::Failed(string Message,pkgAcquire::MethodConfig *Cnf) +{ + ErrorText = LookupTag(Message,"Message"); + + /* We don't really want to retry on failed media swaps, this prevents + that. An interesting observation is that permanent failures are not + recorded. */ + if (Cnf->Removable == true && + StringToBool(LookupTag(Message,"Transient-Failure"),false) == true) + { + // Vf = Version.FileList(); + while (Vf.end() == false) Vf++; + StoreFilename = string(); + Item::Failed(Message,Cnf); + return; + } + + if (QueueNext() == false) + { + // This is the retry counter + if (Retries != 0 && + Cnf->LocalOnly == false && + StringToBool(LookupTag(Message,"Transient-Failure"),false) == true) + { + Retries--; + Vf = Version.FileList(); + if (QueueNext() == true) + return; + } + + StoreFilename = string(); + Item::Failed(Message,Cnf); + } +} + /*}}}*/ +// AcqArchive::IsTrusted - Determine whether this archive comes from a +// trusted source /*{{{*/ +// --------------------------------------------------------------------- +bool pkgAcqArchive::IsTrusted() +{ + return Trusted; +} + +// AcqArchive::Finished - Fetching has finished, tidy up /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgAcqArchive::Finished() +{ + if (Status == pkgAcquire::Item::StatDone && + Complete == true) + return; + StoreFilename = string(); +} + /*}}}*/ + +// AcqFile::pkgAcqFile - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* The file is added to the queue */ +pkgAcqFile::pkgAcqFile(pkgAcquire *Owner,string URI,string MD5, + unsigned long Size,string Dsc,string ShortDesc, + const string &DestDir, const string &DestFilename) : + Item(Owner), Md5Hash(MD5) +{ + Retries = _config->FindI("Acquire::Retries",0); + + if(!DestFilename.empty()) + DestFile = DestFilename; + else if(!DestDir.empty()) + DestFile = DestDir + "/" + flNotDir(URI); + else + DestFile = flNotDir(URI); + + // Create the item + Desc.URI = URI; + Desc.Description = Dsc; + Desc.Owner = this; + + // Set the short description to the archive component + Desc.ShortDesc = ShortDesc; + + // Get the transfer sizes + FileSize = Size; + struct stat Buf; + if (stat(DestFile.c_str(),&Buf) == 0) + { + // Hmm, the partial file is too big, erase it + if ((unsigned)Buf.st_size > Size) + unlink(DestFile.c_str()); + else + PartialSize = Buf.st_size; + } + + QueueURI(Desc); +} + /*}}}*/ +// AcqFile::Done - Item downloaded OK /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgAcqFile::Done(string Message,unsigned long Size,string MD5, + pkgAcquire::MethodConfig *Cnf) +{ + // Check the md5 + if (Md5Hash.empty() == false && MD5.empty() == false) + { + if (Md5Hash != MD5) + { + Status = StatError; + ErrorText = "MD5Sum mismatch"; + Rename(DestFile,DestFile + ".FAILED"); + return; + } + } + + Item::Done(Message,Size,MD5,Cnf); + + string FileName = LookupTag(Message,"Filename"); + if (FileName.empty() == true) + { + Status = StatError; + ErrorText = "Method gave a blank filename"; + return; + } + + Complete = true; + + // The files timestamp matches + if (StringToBool(LookupTag(Message,"IMS-Hit"),false) == true) + return; + + // We have to copy it into place + if (FileName != DestFile) + { + Local = true; + if (_config->FindB("Acquire::Source-Symlinks",true) == false || + Cnf->Removable == true) + { + Desc.URI = "copy:" + FileName; + QueueURI(Desc); + return; + } + + // Erase the file if it is a symlink so we can overwrite it + struct stat St; + if (lstat(DestFile.c_str(),&St) == 0) + { + if (S_ISLNK(St.st_mode) != 0) + unlink(DestFile.c_str()); + } + + // Symlink the file + if (symlink(FileName.c_str(),DestFile.c_str()) != 0) + { + ErrorText = "Link to " + DestFile + " failure "; + Status = StatError; + Complete = false; + } + } +} + /*}}}*/ +// AcqFile::Failed - Failure handler /*{{{*/ +// --------------------------------------------------------------------- +/* Here we try other sources */ +void pkgAcqFile::Failed(string Message,pkgAcquire::MethodConfig *Cnf) +{ + ErrorText = LookupTag(Message,"Message"); + + // This is the retry counter + if (Retries != 0 && + Cnf->LocalOnly == false && + StringToBool(LookupTag(Message,"Transient-Failure"),false) == true) + { + Retries--; + QueueURI(Desc); + return; + } + + Item::Failed(Message,Cnf); +} + /*}}}*/ diff --git a/apt-pkg/acquire-item.h b/apt-pkg/acquire-item.h new file mode 100644 index 0000000..3649d7a --- /dev/null +++ b/apt-pkg/acquire-item.h @@ -0,0 +1,303 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: acquire-item.h,v 1.26.2.3 2004/01/02 18:51:00 mdz Exp $ +/* ###################################################################### + + Acquire Item - Item to acquire + + When an item is instantiated it will add it self to the local list in + the Owner Acquire class. Derived classes will then call QueueURI to + register all the URI's they wish to fetch at the initial moment. + + Two item classes are provided to provide functionality for downloading + of Index files and downloading of Packages. + + A Archive class is provided for downloading .deb files. It does Md5 + checking and source location as well as a retry algorithm. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_ACQUIRE_ITEM_H +#define PKGLIB_ACQUIRE_ITEM_H + +#include +#include +#include +#include +#include +#include + +#ifdef __GNUG__ +#pragma interface "apt-pkg/acquire-item.h" +#endif + +// Item to acquire +class pkgAcquire::Item +{ + protected: + + // Some private helper methods for registering URIs + pkgAcquire *Owner; + inline void QueueURI(ItemDesc &Item) + {Owner->Enqueue(Item);}; + inline void Dequeue() {Owner->Dequeue(this);}; + + // Safe rename function with timestamp preservation + void Rename(string From,string To); + + public: + + // State of the item + enum {StatIdle, StatFetching, StatDone, StatError, StatAuthError} Status; + string ErrorText; + unsigned long FileSize; + unsigned long PartialSize; + const char *Mode; + unsigned long ID; + bool Complete; + bool Local; + + // Number of queues we are inserted into + unsigned int QueueCounter; + + // File to write the fetch into + string DestFile; + + // Action members invoked by the worker + virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf); + virtual void Done(string Message,unsigned long Size,string Md5Hash, + pkgAcquire::MethodConfig *Cnf); + virtual void Start(string Message,unsigned long Size); + virtual string Custom600Headers() {return string();}; + virtual string DescURI() = 0; + virtual string ShortDesc() {return DescURI();} + virtual void Finished() {}; + + // Inquire functions + virtual string MD5Sum() {return string();}; + pkgAcquire *GetOwner() {return Owner;}; + virtual bool IsTrusted() {return false;}; + + Item(pkgAcquire *Owner); + virtual ~Item(); +}; + +// item for index diffs + +struct DiffInfo { + string file; + string sha1; + unsigned long size; +}; + +class pkgAcqDiffIndex : public pkgAcquire::Item +{ + protected: + bool Debug; + pkgAcquire::ItemDesc Desc; + string RealURI; + string ExpectedMD5; + string CurrentPackagesFile; + string Description; + + public: + // Specialized action members + virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf); + virtual void Done(string Message,unsigned long Size,string Md5Hash, + pkgAcquire::MethodConfig *Cnf); + virtual string DescURI() {return RealURI + "Index";}; + virtual string Custom600Headers(); + + // helpers + bool ParseDiffIndex(string IndexDiffFile); + + pkgAcqDiffIndex(pkgAcquire *Owner,string URI,string URIDesc, + string ShortDesct, string ExpectedMD5); +}; + +class pkgAcqIndexDiffs : public pkgAcquire::Item +{ + protected: + bool Debug; + pkgAcquire::ItemDesc Desc; + string RealURI; + string ExpectedMD5; + + // this is the SHA-1 sum we expect after the patching + string Description; + vector available_patches; + enum {StateFetchIndex,StateFetchDiff,StateUnzipDiff,StateApplyDiff} State; + + public: + + // Specialized action members + virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf); + virtual void Done(string Message,unsigned long Size,string Md5Hash, + pkgAcquire::MethodConfig *Cnf); + virtual string DescURI() {return RealURI + "Index";}; + + // various helpers + bool QueueNextDiff(); + bool ApplyDiff(string PatchFile); + void Finish(bool allDone=false); + + pkgAcqIndexDiffs(pkgAcquire *Owner,string URI,string URIDesc, + string ShortDesct, string ExpectedMD5, + vector diffs=vector()); +}; + +// Item class for index files +class pkgAcqIndex : public pkgAcquire::Item +{ + protected: + + bool Decompression; + bool Erase; + pkgAcquire::ItemDesc Desc; + string RealURI; + string ExpectedMD5; + string CompressionExtension; + + public: + + // Specialized action members + virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf); + virtual void Done(string Message,unsigned long Size,string Md5Hash, + pkgAcquire::MethodConfig *Cnf); + virtual string Custom600Headers(); + virtual string DescURI() {return RealURI + CompressionExtension;}; + + pkgAcqIndex(pkgAcquire *Owner,string URI,string URIDesc, + string ShortDesct, string ExpectedMD5, string compressExt=""); +}; + +struct IndexTarget +{ + string URI; + string Description; + string ShortDesc; + string MetaKey; +}; + +// Item class for index signatures +class pkgAcqMetaSig : public pkgAcquire::Item +{ + protected: + + pkgAcquire::ItemDesc Desc; + string RealURI,MetaIndexURI,MetaIndexURIDesc,MetaIndexShortDesc; + indexRecords* MetaIndexParser; + const vector* IndexTargets; + + public: + + // Specialized action members + virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf); + virtual void Done(string Message,unsigned long Size,string Md5Hash, + pkgAcquire::MethodConfig *Cnf); + virtual string Custom600Headers(); + virtual string DescURI() {return RealURI; }; + + pkgAcqMetaSig(pkgAcquire *Owner,string URI,string URIDesc, string ShortDesc, + string MetaIndexURI, string MetaIndexURIDesc, string MetaIndexShortDesc, + const vector* IndexTargets, + indexRecords* MetaIndexParser); +}; + +// Item class for index signatures +class pkgAcqMetaIndex : public pkgAcquire::Item +{ + protected: + + pkgAcquire::ItemDesc Desc; + string RealURI; // FIXME: is this redundant w/ Desc.URI? + string SigFile; + const vector* IndexTargets; + indexRecords* MetaIndexParser; + bool AuthPass; + // required to deal gracefully with problems caused by incorrect ims hits + bool IMSHit; + + bool VerifyVendor(string Message); + void RetrievalDone(string Message); + void AuthDone(string Message); + void QueueIndexes(bool verify); + + public: + + // Specialized action members + virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf); + virtual void Done(string Message,unsigned long Size,string Md5Hash, + pkgAcquire::MethodConfig *Cnf); + virtual string Custom600Headers(); + virtual string DescURI() {return RealURI; }; + + pkgAcqMetaIndex(pkgAcquire *Owner, + string URI,string URIDesc, string ShortDesc, + string SigFile, + const vector* IndexTargets, + indexRecords* MetaIndexParser); +}; + +// Item class for archive files +class pkgAcqArchive : public pkgAcquire::Item +{ + protected: + + // State information for the retry mechanism + pkgCache::VerIterator Version; + pkgAcquire::ItemDesc Desc; + pkgSourceList *Sources; + pkgRecords *Recs; + string MD5; + string &StoreFilename; + pkgCache::VerFileIterator Vf; + unsigned int Retries; + bool Trusted; + + // Queue the next available file for download. + bool QueueNext(); + + public: + + // Specialized action members + virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf); + virtual void Done(string Message,unsigned long Size,string Md5Hash, + pkgAcquire::MethodConfig *Cnf); + virtual string MD5Sum() {return MD5;}; + virtual string DescURI() {return Desc.URI;}; + virtual string ShortDesc() {return Desc.ShortDesc;}; + virtual void Finished(); + virtual bool IsTrusted(); + + pkgAcqArchive(pkgAcquire *Owner,pkgSourceList *Sources, + pkgRecords *Recs,pkgCache::VerIterator const &Version, + string &StoreFilename); +}; + +// Fetch a generic file to the current directory +class pkgAcqFile : public pkgAcquire::Item +{ + pkgAcquire::ItemDesc Desc; + string Md5Hash; + unsigned int Retries; + + public: + + // Specialized action members + virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf); + virtual void Done(string Message,unsigned long Size,string Md5Hash, + pkgAcquire::MethodConfig *Cnf); + virtual string MD5Sum() {return Md5Hash;}; + virtual string DescURI() {return Desc.URI;}; + + // If DestFilename is empty, download to DestDir/ if + // DestDir is non-empty, $CWD/ otherwise. If + // DestFilename is NOT empty, DestDir is ignored and DestFilename + // is the absolute name to which the file should be downloaded. + pkgAcqFile(pkgAcquire *Owner, string URI, string MD5, unsigned long Size, + string Desc, string ShortDesc, + const string &DestDir="", const string &DestFilename=""); +}; + +#endif diff --git a/apt-pkg/acquire-method.cc b/apt-pkg/acquire-method.cc new file mode 100644 index 0000000..41b832f --- /dev/null +++ b/apt-pkg/acquire-method.cc @@ -0,0 +1,462 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: acquire-method.cc,v 1.27.2.1 2003/12/24 23:09:17 mdz Exp $ +/* ###################################################################### + + Acquire Method + + This is a skeleton class that implements most of the functionality + of a method and some useful functions to make method implementation + simpler. The methods all derive this and specialize it. The most + complex implementation is the http method which needs to provide + pipelining, it runs the message engine at the same time it is + downloading files.. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/acquire-method.h" +#endif +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + /*}}}*/ + +using namespace std; + +// AcqMethod::pkgAcqMethod - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* This constructs the initialization text */ +pkgAcqMethod::pkgAcqMethod(const char *Ver,unsigned long Flags) +{ + char S[300] = ""; + char *End = S; + strcat(End,"100 Capabilities\n"); + sprintf(End+strlen(End),"Version: %s\n",Ver); + + if ((Flags & SingleInstance) == SingleInstance) + strcat(End,"Single-Instance: true\n"); + + if ((Flags & Pipeline) == Pipeline) + strcat(End,"Pipeline: true\n"); + + if ((Flags & SendConfig) == SendConfig) + strcat(End,"Send-Config: true\n"); + + if ((Flags & LocalOnly) == LocalOnly) + strcat(End,"Local-Only: true\n"); + + if ((Flags & NeedsCleanup) == NeedsCleanup) + strcat(End,"Needs-Cleanup: true\n"); + + if ((Flags & Removable) == Removable) + strcat(End,"Removable: true\n"); + strcat(End,"\n"); + + if (write(STDOUT_FILENO,S,strlen(S)) != (signed)strlen(S)) + exit(100); + + SetNonBlock(STDIN_FILENO,true); + + Queue = 0; + QueueBack = 0; +} + /*}}}*/ +// AcqMethod::Fail - A fetch has failed /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgAcqMethod::Fail(bool Transient) +{ + string Err = "Undetermined Error"; + if (_error->empty() == false) + _error->PopMessage(Err); + _error->Discard(); + Fail(Err,Transient); +} + /*}}}*/ +// AcqMethod::Fail - A fetch has failed /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgAcqMethod::Fail(string Err,bool Transient) +{ + // Strip out junk from the error messages + for (string::iterator I = Err.begin(); I != Err.end(); I++) + { + if (*I == '\r') + *I = ' '; + if (*I == '\n') + *I = ' '; + } + + char S[1024]; + if (Queue != 0) + { + snprintf(S,sizeof(S)-50,"400 URI Failure\nURI: %s\n" + "Message: %s %s\n",Queue->Uri.c_str(),Err.c_str(), + FailExtra.c_str()); + + // Dequeue + FetchItem *Tmp = Queue; + Queue = Queue->Next; + delete Tmp; + if (Tmp == QueueBack) + QueueBack = Queue; + } + else + snprintf(S,sizeof(S)-50,"400 URI Failure\nURI: \n" + "Message: %s %s\n",Err.c_str(), + FailExtra.c_str()); + + // Set the transient flag + if (Transient == true) + strcat(S,"Transient-Failure: true\n\n"); + else + strcat(S,"\n"); + + if (write(STDOUT_FILENO,S,strlen(S)) != (signed)strlen(S)) + exit(100); +} + /*}}}*/ +// AcqMethod::URIStart - Indicate a download is starting /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgAcqMethod::URIStart(FetchResult &Res) +{ + if (Queue == 0) + abort(); + + char S[1024] = ""; + char *End = S; + + End += snprintf(S,sizeof(S),"200 URI Start\nURI: %s\n",Queue->Uri.c_str()); + if (Res.Size != 0) + End += snprintf(End,sizeof(S)-4 - (End - S),"Size: %lu\n",Res.Size); + + if (Res.LastModified != 0) + End += snprintf(End,sizeof(S)-4 - (End - S),"Last-Modified: %s\n", + TimeRFC1123(Res.LastModified).c_str()); + + if (Res.ResumePoint != 0) + End += snprintf(End,sizeof(S)-4 - (End - S),"Resume-Point: %lu\n", + Res.ResumePoint); + + strcat(End,"\n"); + if (write(STDOUT_FILENO,S,strlen(S)) != (signed)strlen(S)) + exit(100); +} + /*}}}*/ +// AcqMethod::URIDone - A URI is finished /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgAcqMethod::URIDone(FetchResult &Res, FetchResult *Alt) +{ + if (Queue == 0) + abort(); + + char S[1024] = ""; + char *End = S; + + End += snprintf(S,sizeof(S),"201 URI Done\nURI: %s\n",Queue->Uri.c_str()); + + if (Res.Filename.empty() == false) + End += snprintf(End,sizeof(S)-50 - (End - S),"Filename: %s\n",Res.Filename.c_str()); + + if (Res.Size != 0) + End += snprintf(End,sizeof(S)-50 - (End - S),"Size: %lu\n",Res.Size); + + if (Res.LastModified != 0) + End += snprintf(End,sizeof(S)-50 - (End - S),"Last-Modified: %s\n", + TimeRFC1123(Res.LastModified).c_str()); + + if (Res.MD5Sum.empty() == false) + End += snprintf(End,sizeof(S)-50 - (End - S),"MD5-Hash: %s\n",Res.MD5Sum.c_str()); + if (Res.SHA1Sum.empty() == false) + End += snprintf(End,sizeof(S)-50 - (End - S),"SHA1-Hash: %s\n",Res.SHA1Sum.c_str()); + if (Res.GPGVOutput.size() > 0) + End += snprintf(End,sizeof(S)-50 - (End - S),"GPGVOutput:\n"); + for (vector::iterator I = Res.GPGVOutput.begin(); + I != Res.GPGVOutput.end(); I++) + End += snprintf(End,sizeof(S)-50 - (End - S), " %s\n", (*I).c_str()); + + if (Res.ResumePoint != 0) + End += snprintf(End,sizeof(S)-50 - (End - S),"Resume-Point: %lu\n", + Res.ResumePoint); + + if (Res.IMSHit == true) + strcat(End,"IMS-Hit: true\n"); + End = S + strlen(S); + + if (Alt != 0) + { + if (Alt->Filename.empty() == false) + End += snprintf(End,sizeof(S)-50 - (End - S),"Alt-Filename: %s\n",Alt->Filename.c_str()); + + if (Alt->Size != 0) + End += snprintf(End,sizeof(S)-50 - (End - S),"Alt-Size: %lu\n",Alt->Size); + + if (Alt->LastModified != 0) + End += snprintf(End,sizeof(S)-50 - (End - S),"Alt-Last-Modified: %s\n", + TimeRFC1123(Alt->LastModified).c_str()); + + if (Alt->MD5Sum.empty() == false) + End += snprintf(End,sizeof(S)-50 - (End - S),"Alt-MD5-Hash: %s\n", + Alt->MD5Sum.c_str()); + if (Alt->SHA1Sum.empty() == false) + End += snprintf(End,sizeof(S)-50 - (End - S),"Alt-SHA1-Hash: %s\n", + Alt->SHA1Sum.c_str()); + + if (Alt->IMSHit == true) + strcat(End,"Alt-IMS-Hit: true\n"); + } + + strcat(End,"\n"); + if (write(STDOUT_FILENO,S,strlen(S)) != (signed)strlen(S)) + exit(100); + + // Dequeue + FetchItem *Tmp = Queue; + Queue = Queue->Next; + delete Tmp; + if (Tmp == QueueBack) + QueueBack = Queue; +} + /*}}}*/ +// AcqMethod::MediaFail - Syncronous request for new media /*{{{*/ +// --------------------------------------------------------------------- +/* This sends a 403 Media Failure message to the APT and waits for it + to be ackd */ +bool pkgAcqMethod::MediaFail(string Required,string Drive) +{ + char S[1024]; + snprintf(S,sizeof(S),"403 Media Failure\nMedia: %s\nDrive: %s\n\n", + Required.c_str(),Drive.c_str()); + + if (write(STDOUT_FILENO,S,strlen(S)) != (signed)strlen(S)) + exit(100); + + vector MyMessages; + + /* Here we read messages until we find a 603, each non 603 message is + appended to the main message list for later processing */ + while (1) + { + if (WaitFd(STDIN_FILENO) == false) + return false; + + if (ReadMessages(STDIN_FILENO,MyMessages) == false) + return false; + + string Message = MyMessages.front(); + MyMessages.erase(MyMessages.begin()); + + // Fetch the message number + char *End; + int Number = strtol(Message.c_str(),&End,10); + if (End == Message.c_str()) + { + cerr << "Malformed message!" << endl; + exit(100); + } + + // Change ack + if (Number == 603) + { + while (MyMessages.empty() == false) + { + Messages.push_back(MyMessages.front()); + MyMessages.erase(MyMessages.begin()); + } + + return !StringToBool(LookupTag(Message,"Failed"),false); + } + + Messages.push_back(Message); + } +} + /*}}}*/ +// AcqMethod::Configuration - Handle the configuration message /*{{{*/ +// --------------------------------------------------------------------- +/* This parses each configuration entry and puts it into the _config + Configuration class. */ +bool pkgAcqMethod::Configuration(string Message) +{ + ::Configuration &Cnf = *_config; + + const char *I = Message.c_str(); + const char *MsgEnd = I + Message.length(); + + unsigned int Length = strlen("Config-Item"); + for (; I + Length < MsgEnd; I++) + { + // Not a config item + if (I[Length] != ':' || stringcasecmp(I,I+Length,"Config-Item") != 0) + continue; + + I += Length + 1; + + for (; I < MsgEnd && *I == ' '; I++); + const char *Equals = I; + for (; Equals < MsgEnd && *Equals != '='; Equals++); + const char *End = Equals; + for (; End < MsgEnd && *End != '\n'; End++); + if (End == Equals) + return false; + + Cnf.Set(DeQuoteString(string(I,Equals-I)), + DeQuoteString(string(Equals+1,End-Equals-1))); + I = End; + } + + return true; +} + /*}}}*/ +// AcqMethod::Run - Run the message engine /*{{{*/ +// --------------------------------------------------------------------- +/* Fetch any messages and execute them. In single mode it returns 1 if + there are no more available messages - any other result is a + fatal failure code! */ +int pkgAcqMethod::Run(bool Single) +{ + while (1) + { + // Block if the message queue is empty + if (Messages.empty() == true) + { + if (Single == false) + if (WaitFd(STDIN_FILENO) == false) + break; + if (ReadMessages(STDIN_FILENO,Messages) == false) + break; + } + + // Single mode exits if the message queue is empty + if (Single == true && Messages.empty() == true) + return -1; + + string Message = Messages.front(); + Messages.erase(Messages.begin()); + + // Fetch the message number + char *End; + int Number = strtol(Message.c_str(),&End,10); + if (End == Message.c_str()) + { + cerr << "Malformed message!" << endl; + return 100; + } + + switch (Number) + { + case 601: + if (Configuration(Message) == false) + return 100; + break; + + case 600: + { + FetchItem *Tmp = new FetchItem; + + Tmp->Uri = LookupTag(Message,"URI"); + Tmp->DestFile = LookupTag(Message,"FileName"); + if (StrToTime(LookupTag(Message,"Last-Modified"),Tmp->LastModified) == false) + Tmp->LastModified = 0; + Tmp->IndexFile = StringToBool(LookupTag(Message,"Index-File"),false); + Tmp->Next = 0; + + // Append it to the list + FetchItem **I = &Queue; + for (; *I != 0; I = &(*I)->Next); + *I = Tmp; + if (QueueBack == 0) + QueueBack = Tmp; + + // Notify that this item is to be fetched. + if (Fetch(Tmp) == false) + Fail(); + + break; + } + } + } + + Exit(); + return 0; +} + /*}}}*/ +// AcqMethod::Log - Send a log message /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgAcqMethod::Log(const char *Format,...) +{ + string CurrentURI = ""; + if (Queue != 0) + CurrentURI = Queue->Uri; + + va_list args; + va_start(args,Format); + + // sprintf the description + char S[1024]; + unsigned int Len = snprintf(S,sizeof(S)-4,"101 Log\nURI: %s\n" + "Message: ",CurrentURI.c_str()); + + vsnprintf(S+Len,sizeof(S)-4-Len,Format,args); + strcat(S,"\n\n"); + + if (write(STDOUT_FILENO,S,strlen(S)) != (signed)strlen(S)) + exit(100); +} + /*}}}*/ +// AcqMethod::Status - Send a status message /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgAcqMethod::Status(const char *Format,...) +{ + string CurrentURI = ""; + if (Queue != 0) + CurrentURI = Queue->Uri; + + va_list args; + va_start(args,Format); + + // sprintf the description + char S[1024]; + unsigned int Len = snprintf(S,sizeof(S)-4,"102 Status\nURI: %s\n" + "Message: ",CurrentURI.c_str()); + + vsnprintf(S+Len,sizeof(S)-4-Len,Format,args); + strcat(S,"\n\n"); + + if (write(STDOUT_FILENO,S,strlen(S)) != (signed)strlen(S)) + exit(100); +} + /*}}}*/ + +// AcqMethod::FetchResult::FetchResult - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgAcqMethod::FetchResult::FetchResult() : LastModified(0), + IMSHit(false), Size(0), ResumePoint(0) +{ +} + /*}}}*/ +// AcqMethod::FetchResult::TakeHashes - Load hashes /*{{{*/ +// --------------------------------------------------------------------- +/* This hides the number of hashes we are supporting from the caller. + It just deals with the hash class. */ +void pkgAcqMethod::FetchResult::TakeHashes(Hashes &Hash) +{ + MD5Sum = Hash.MD5.Result(); + SHA1Sum = Hash.SHA1.Result(); +} + /*}}}*/ diff --git a/apt-pkg/acquire-method.h b/apt-pkg/acquire-method.h new file mode 100644 index 0000000..f46209d --- /dev/null +++ b/apt-pkg/acquire-method.h @@ -0,0 +1,89 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: acquire-method.h,v 1.15.2.1 2003/12/24 23:09:17 mdz Exp $ +/* ###################################################################### + + Acquire Method - Method helper class + functions + + These functions are designed to be used within the method task to + ease communication with APT. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_ACQUIRE_METHOD_H +#define PKGLIB_ACQUIRE_METHOD_H + +#include +#include + +#ifdef __GNUG__ +#pragma interface "apt-pkg/acquire-method.h" +#endif + +class Hashes; +class pkgAcqMethod +{ + protected: + + struct FetchItem + { + FetchItem *Next; + + string Uri; + string DestFile; + time_t LastModified; + bool IndexFile; + }; + + struct FetchResult + { + string MD5Sum; + string SHA1Sum; + vector GPGVOutput; + time_t LastModified; + bool IMSHit; + string Filename; + unsigned long Size; + unsigned long ResumePoint; + + void TakeHashes(Hashes &Hash); + FetchResult(); + }; + + // State + vector Messages; + FetchItem *Queue; + FetchItem *QueueBack; + string FailExtra; + + // Handlers for messages + virtual bool Configuration(string Message); + virtual bool Fetch(FetchItem * /*Item*/) {return true;}; + + // Outgoing messages + void Fail(bool Transient = false); + inline void Fail(const char *Why, bool Transient = false) {Fail(string(Why),Transient);}; + void Fail(string Why, bool Transient = false); + void URIStart(FetchResult &Res); + void URIDone(FetchResult &Res,FetchResult *Alt = 0); + bool MediaFail(string Required,string Drive); + virtual void Exit() {}; + + public: + + enum CnfFlags {SingleInstance = (1<<0), + Pipeline = (1<<1), SendConfig = (1<<2), + LocalOnly = (1<<3), NeedsCleanup = (1<<4), + Removable = (1<<5)}; + + void Log(const char *Format,...); + void Status(const char *Format,...); + + int Run(bool Single = false); + inline void SetFailExtraMsg(string Msg) {FailExtra = Msg;}; + + pkgAcqMethod(const char *Ver,unsigned long Flags = 0); + virtual ~pkgAcqMethod() {}; +}; + +#endif diff --git a/apt-pkg/acquire-worker.cc b/apt-pkg/acquire-worker.cc new file mode 100644 index 0000000..d060241 --- /dev/null +++ b/apt-pkg/acquire-worker.cc @@ -0,0 +1,567 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: acquire-worker.cc,v 1.34 2001/05/22 04:42:54 jgg Exp $ +/* ###################################################################### + + Acquire Worker + + The worker process can startup either as a Configuration prober + or as a queue runner. As a configuration prober it only reads the + configuration message and + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/acquire-worker.h" +#endif +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + /*}}}*/ + +using namespace std; + +// Worker::Worker - Constructor for Queue startup /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgAcquire::Worker::Worker(Queue *Q,MethodConfig *Cnf, + pkgAcquireStatus *Log) : Log(Log) +{ + OwnerQ = Q; + Config = Cnf; + Access = Cnf->Access; + CurrentItem = 0; + TotalSize = 0; + CurrentSize = 0; + + Construct(); +} + /*}}}*/ +// Worker::Worker - Constructor for method config startup /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgAcquire::Worker::Worker(MethodConfig *Cnf) +{ + OwnerQ = 0; + Config = Cnf; + Access = Cnf->Access; + CurrentItem = 0; + TotalSize = 0; + CurrentSize = 0; + + Construct(); +} + /*}}}*/ +// Worker::Construct - Constructor helper /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgAcquire::Worker::Construct() +{ + NextQueue = 0; + NextAcquire = 0; + Process = -1; + InFd = -1; + OutFd = -1; + OutReady = false; + InReady = false; + Debug = _config->FindB("Debug::pkgAcquire::Worker",false); +} + /*}}}*/ +// Worker::~Worker - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgAcquire::Worker::~Worker() +{ + close(InFd); + close(OutFd); + + if (Process > 0) + { + /* Closing of stdin is the signal to exit and die when the process + indicates it needs cleanup */ + if (Config->NeedsCleanup == false) + kill(Process,SIGINT); + ExecWait(Process,Access.c_str(),true); + } +} + /*}}}*/ +// Worker::Start - Start the worker process /*{{{*/ +// --------------------------------------------------------------------- +/* This forks the method and inits the communication channel */ +bool pkgAcquire::Worker::Start() +{ + // Get the method path + string Method = _config->FindDir("Dir::Bin::Methods") + Access; + if (FileExists(Method) == false) + return _error->Error(_("The method driver %s could not be found."),Method.c_str()); + + if (Debug == true) + clog << "Starting method '" << Method << '\'' << endl; + + // Create the pipes + int Pipes[4] = {-1,-1,-1,-1}; + if (pipe(Pipes) != 0 || pipe(Pipes+2) != 0) + { + _error->Errno("pipe","Failed to create IPC pipe to subprocess"); + for (int I = 0; I != 4; I++) + close(Pipes[I]); + return false; + } + for (int I = 0; I != 4; I++) + SetCloseExec(Pipes[I],true); + + // Fork off the process + Process = ExecFork(); + if (Process == 0) + { + // Setup the FDs + dup2(Pipes[1],STDOUT_FILENO); + dup2(Pipes[2],STDIN_FILENO); + SetCloseExec(STDOUT_FILENO,false); + SetCloseExec(STDIN_FILENO,false); + SetCloseExec(STDERR_FILENO,false); + + const char *Args[2]; + Args[0] = Method.c_str(); + Args[1] = 0; + execv(Args[0],(char **)Args); + cerr << "Failed to exec method " << Args[0] << endl; + _exit(100); + } + + // Fix up our FDs + InFd = Pipes[0]; + OutFd = Pipes[3]; + SetNonBlock(Pipes[0],true); + SetNonBlock(Pipes[3],true); + close(Pipes[1]); + close(Pipes[2]); + OutReady = false; + InReady = true; + + // Read the configuration data + if (WaitFd(InFd) == false || + ReadMessages() == false) + return _error->Error(_("Method %s did not start correctly"),Method.c_str()); + + RunMessages(); + if (OwnerQ != 0) + SendConfiguration(); + + return true; +} + /*}}}*/ +// Worker::ReadMessages - Read all pending messages into the list /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgAcquire::Worker::ReadMessages() +{ + if (::ReadMessages(InFd,MessageQueue) == false) + return MethodFailure(); + return true; +} + /*}}}*/ +// Worker::RunMessage - Empty the message queue /*{{{*/ +// --------------------------------------------------------------------- +/* This takes the messages from the message queue and runs them through + the parsers in order. */ +bool pkgAcquire::Worker::RunMessages() +{ + while (MessageQueue.empty() == false) + { + string Message = MessageQueue.front(); + MessageQueue.erase(MessageQueue.begin()); + + if (Debug == true) + clog << " <- " << Access << ':' << QuoteString(Message,"\n") << endl; + + // Fetch the message number + char *End; + int Number = strtol(Message.c_str(),&End,10); + if (End == Message.c_str()) + return _error->Error("Invalid message from method %s: %s",Access.c_str(),Message.c_str()); + + string URI = LookupTag(Message,"URI"); + pkgAcquire::Queue::QItem *Itm = 0; + if (URI.empty() == false) + Itm = OwnerQ->FindItem(URI,this); + + // Determine the message number and dispatch + switch (Number) + { + // 100 Capabilities + case 100: + if (Capabilities(Message) == false) + return _error->Error("Unable to process Capabilities message from %s",Access.c_str()); + break; + + // 101 Log + case 101: + if (Debug == true) + clog << " <- (log) " << LookupTag(Message,"Message") << endl; + break; + + // 102 Status + case 102: + Status = LookupTag(Message,"Message"); + break; + + // 200 URI Start + case 200: + { + if (Itm == 0) + { + _error->Error("Method gave invalid 200 URI Start message"); + break; + } + + CurrentItem = Itm; + CurrentSize = 0; + TotalSize = atoi(LookupTag(Message,"Size","0").c_str()); + ResumePoint = atoi(LookupTag(Message,"Resume-Point","0").c_str()); + Itm->Owner->Start(Message,atoi(LookupTag(Message,"Size","0").c_str())); + + // Display update before completion + if (Log != 0 && Log->MorePulses == true) + Log->Pulse(Itm->Owner->GetOwner()); + + if (Log != 0) + Log->Fetch(*Itm); + + break; + } + + // 201 URI Done + case 201: + { + if (Itm == 0) + { + _error->Error("Method gave invalid 201 URI Done message"); + break; + } + + pkgAcquire::Item *Owner = Itm->Owner; + pkgAcquire::ItemDesc Desc = *Itm; + + // Display update before completion + if (Log != 0 && Log->MorePulses == true) + Log->Pulse(Owner->GetOwner()); + + OwnerQ->ItemDone(Itm); + if (TotalSize != 0 && + (unsigned)atoi(LookupTag(Message,"Size","0").c_str()) != TotalSize) + _error->Warning("Bizarre Error - File size is not what the server reported %s %lu", + LookupTag(Message,"Size","0").c_str(),TotalSize); + + Owner->Done(Message,atoi(LookupTag(Message,"Size","0").c_str()), + LookupTag(Message,"MD5-Hash"),Config); + ItemDone(); + + // Log that we are done + if (Log != 0) + { + if (StringToBool(LookupTag(Message,"IMS-Hit"),false) == true || + StringToBool(LookupTag(Message,"Alt-IMS-Hit"),false) == true) + { + /* Hide 'hits' for local only sources - we also manage to + hide gets */ + if (Config->LocalOnly == false) + Log->IMSHit(Desc); + } + else + Log->Done(Desc); + } + break; + } + + // 400 URI Failure + case 400: + { + if (Itm == 0) + { + _error->Error("Method gave invalid 400 URI Failure message"); + break; + } + + // Display update before completion + if (Log != 0 && Log->MorePulses == true) + Log->Pulse(Itm->Owner->GetOwner()); + + pkgAcquire::Item *Owner = Itm->Owner; + pkgAcquire::ItemDesc Desc = *Itm; + OwnerQ->ItemDone(Itm); + Owner->Failed(Message,Config); + ItemDone(); + + if (Log != 0) + Log->Fail(Desc); + + break; + } + + // 401 General Failure + case 401: + _error->Error("Method %s General failure: %s",Access.c_str(),LookupTag(Message,"Message").c_str()); + break; + + // 403 Media Change + case 403: + MediaChange(Message); + break; + } + } + return true; +} + /*}}}*/ +// Worker::Capabilities - 100 Capabilities handler /*{{{*/ +// --------------------------------------------------------------------- +/* This parses the capabilities message and dumps it into the configuration + structure. */ +bool pkgAcquire::Worker::Capabilities(string Message) +{ + if (Config == 0) + return true; + + Config->Version = LookupTag(Message,"Version"); + Config->SingleInstance = StringToBool(LookupTag(Message,"Single-Instance"),false); + Config->Pipeline = StringToBool(LookupTag(Message,"Pipeline"),false); + Config->SendConfig = StringToBool(LookupTag(Message,"Send-Config"),false); + Config->LocalOnly = StringToBool(LookupTag(Message,"Local-Only"),false); + Config->NeedsCleanup = StringToBool(LookupTag(Message,"Needs-Cleanup"),false); + Config->Removable = StringToBool(LookupTag(Message,"Removable"),false); + + // Some debug text + if (Debug == true) + { + clog << "Configured access method " << Config->Access << endl; + clog << "Version:" << Config->Version << + " SingleInstance:" << Config->SingleInstance << + " Pipeline:" << Config->Pipeline << + " SendConfig:" << Config->SendConfig << + " LocalOnly: " << Config->LocalOnly << + " NeedsCleanup: " << Config->NeedsCleanup << + " Removable: " << Config->Removable << endl; + } + + return true; +} + /*}}}*/ +// Worker::MediaChange - Request a media change /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgAcquire::Worker::MediaChange(string Message) +{ + int status_fd = _config->FindI("APT::Status-Fd",-1); + if(status_fd > 0) + { + string Media = LookupTag(Message,"Media"); + string Drive = LookupTag(Message,"Drive"); + ostringstream msg,status; + ioprintf(msg,_("Please insert the disc labeled: " + "'%s' " + "in the drive '%s' and press enter."), + Media.c_str(),Drive.c_str()); + status << "media-change: " // message + << Media << ":" // media + << Drive << ":" // drive + << msg.str() // l10n message + << endl; + write(status_fd, status.str().c_str(), status.str().size()); + } + + if (Log == 0 || Log->MediaChange(LookupTag(Message,"Media"), + LookupTag(Message,"Drive")) == false) + { + char S[300]; + snprintf(S,sizeof(S),"603 Media Changed\nFailed: true\n\n"); + if (Debug == true) + clog << " -> " << Access << ':' << QuoteString(S,"\n") << endl; + OutQueue += S; + OutReady = true; + return true; + } + + char S[300]; + snprintf(S,sizeof(S),"603 Media Changed\n\n"); + if (Debug == true) + clog << " -> " << Access << ':' << QuoteString(S,"\n") << endl; + OutQueue += S; + OutReady = true; + return true; +} + /*}}}*/ +// Worker::SendConfiguration - Send the config to the method /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgAcquire::Worker::SendConfiguration() +{ + if (Config->SendConfig == false) + return true; + + if (OutFd == -1) + return false; + + string Message = "601 Configuration\n"; + Message.reserve(2000); + + /* Write out all of the configuration directives by walking the + configuration tree */ + const Configuration::Item *Top = _config->Tree(0); + for (; Top != 0;) + { + if (Top->Value.empty() == false) + { + string Line = "Config-Item: " + QuoteString(Top->FullTag(),"=\"\n") + "="; + Line += QuoteString(Top->Value,"\n") + '\n'; + Message += Line; + } + + if (Top->Child != 0) + { + Top = Top->Child; + continue; + } + + while (Top != 0 && Top->Next == 0) + Top = Top->Parent; + if (Top != 0) + Top = Top->Next; + } + Message += '\n'; + + if (Debug == true) + clog << " -> " << Access << ':' << QuoteString(Message,"\n") << endl; + OutQueue += Message; + OutReady = true; + + return true; +} + /*}}}*/ +// Worker::QueueItem - Add an item to the outbound queue /*{{{*/ +// --------------------------------------------------------------------- +/* Send a URI Acquire message to the method */ +bool pkgAcquire::Worker::QueueItem(pkgAcquire::Queue::QItem *Item) +{ + if (OutFd == -1) + return false; + + string Message = "600 URI Acquire\n"; + Message.reserve(300); + Message += "URI: " + Item->URI; + Message += "\nFilename: " + Item->Owner->DestFile; + Message += Item->Owner->Custom600Headers(); + Message += "\n\n"; + + if (Debug == true) + clog << " -> " << Access << ':' << QuoteString(Message,"\n") << endl; + OutQueue += Message; + OutReady = true; + + return true; +} + /*}}}*/ +// Worker::OutFdRead - Out bound FD is ready /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgAcquire::Worker::OutFdReady() +{ + int Res; + do + { + Res = write(OutFd,OutQueue.c_str(),OutQueue.length()); + } + while (Res < 0 && errno == EINTR); + + if (Res <= 0) + return MethodFailure(); + + // Hmm.. this should never happen. + if (Res < 0) + return true; + + OutQueue.erase(0,Res); + if (OutQueue.empty() == true) + OutReady = false; + + return true; +} + /*}}}*/ +// Worker::InFdRead - In bound FD is ready /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgAcquire::Worker::InFdReady() +{ + if (ReadMessages() == false) + return false; + RunMessages(); + return true; +} + /*}}}*/ +// Worker::MethodFailure - Called when the method fails /*{{{*/ +// --------------------------------------------------------------------- +/* This is called when the method is belived to have failed, probably because + read returned -1. */ +bool pkgAcquire::Worker::MethodFailure() +{ + _error->Error("Method %s has died unexpectedly!",Access.c_str()); + + ExecWait(Process,Access.c_str(),true); + Process = -1; + close(InFd); + close(OutFd); + InFd = -1; + OutFd = -1; + OutReady = false; + InReady = false; + OutQueue = string(); + MessageQueue.erase(MessageQueue.begin(),MessageQueue.end()); + + return false; +} + /*}}}*/ +// Worker::Pulse - Called periodically /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgAcquire::Worker::Pulse() +{ + if (CurrentItem == 0) + return; + + struct stat Buf; + if (stat(CurrentItem->Owner->DestFile.c_str(),&Buf) != 0) + return; + CurrentSize = Buf.st_size; + + // Hmm? Should not happen... + if (CurrentSize > TotalSize && TotalSize != 0) + TotalSize = CurrentSize; +} + /*}}}*/ +// Worker::ItemDone - Called when the current item is finished /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgAcquire::Worker::ItemDone() +{ + CurrentItem = 0; + CurrentSize = 0; + TotalSize = 0; + Status = string(); +} + /*}}}*/ diff --git a/apt-pkg/acquire-worker.h b/apt-pkg/acquire-worker.h new file mode 100644 index 0000000..6e19522 --- /dev/null +++ b/apt-pkg/acquire-worker.h @@ -0,0 +1,89 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: acquire-worker.h,v 1.12 2001/02/20 07:03:17 jgg Exp $ +/* ###################################################################### + + Acquire Worker - Worker process manager + + Each worker class is associated with exaclty one subprocess. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_ACQUIRE_WORKER_H +#define PKGLIB_ACQUIRE_WORKER_H + +#include + +#ifdef __GNUG__ +#pragma interface "apt-pkg/acquire-worker.h" +#endif + +// Interfacing to the method process +class pkgAcquire::Worker +{ + friend class pkgAcquire; + + protected: + friend class Queue; + + /* Linked list starting at a Queue and a linked list starting + at Acquire */ + Worker *NextQueue; + Worker *NextAcquire; + + // The access association + Queue *OwnerQ; + pkgAcquireStatus *Log; + MethodConfig *Config; + string Access; + + // This is the subprocess IPC setup + pid_t Process; + int InFd; + int OutFd; + bool InReady; + bool OutReady; + + // Various internal things + bool Debug; + vector MessageQueue; + string OutQueue; + + // Private constructor helper + void Construct(); + + // Message handling things + bool ReadMessages(); + bool RunMessages(); + bool InFdReady(); + bool OutFdReady(); + + // The message handlers + bool Capabilities(string Message); + bool SendConfiguration(); + bool MediaChange(string Message); + + bool MethodFailure(); + void ItemDone(); + + public: + + // The curent method state + pkgAcquire::Queue::QItem *CurrentItem; + string Status; + unsigned long CurrentSize; + unsigned long TotalSize; + unsigned long ResumePoint; + + // Load the method and do the startup + bool QueueItem(pkgAcquire::Queue::QItem *Item); + bool Start(); + void Pulse(); + inline const MethodConfig *GetConf() const {return Config;}; + + Worker(Queue *OwnerQ,MethodConfig *Config,pkgAcquireStatus *Log); + Worker(MethodConfig *Config); + ~Worker(); +}; + +#endif diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc new file mode 100644 index 0000000..fff1b2b --- /dev/null +++ b/apt-pkg/acquire.cc @@ -0,0 +1,885 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: acquire.cc,v 1.50 2004/03/17 05:17:11 mdz Exp $ +/* ###################################################################### + + Acquire - File Acquiration + + The core element for the schedual system is the concept of a named + queue. Each queue is unique and each queue has a name derived from the + URI. The degree of paralization can be controled by how the queue + name is derived from the URI. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/acquire.h" +#endif +#include +#include +#include +#include +#include +#include + +#include + +#include +#include + +#include +#include +#include +#include + /*}}}*/ + +using namespace std; + +// Acquire::pkgAcquire - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* We grab some runtime state from the configuration space */ +pkgAcquire::pkgAcquire(pkgAcquireStatus *Log) : Log(Log) +{ + Queues = 0; + Configs = 0; + Workers = 0; + ToFetch = 0; + Running = false; + + string Mode = _config->Find("Acquire::Queue-Mode","host"); + if (strcasecmp(Mode.c_str(),"host") == 0) + QueueMode = QueueHost; + if (strcasecmp(Mode.c_str(),"access") == 0) + QueueMode = QueueAccess; + + Debug = _config->FindB("Debug::pkgAcquire",false); + + // This is really a stupid place for this + struct stat St; + if (stat((_config->FindDir("Dir::State::lists") + "partial/").c_str(),&St) != 0 || + S_ISDIR(St.st_mode) == 0) + _error->Error(_("Lists directory %spartial is missing."), + _config->FindDir("Dir::State::lists").c_str()); + if (stat((_config->FindDir("Dir::Cache::Archives") + "partial/").c_str(),&St) != 0 || + S_ISDIR(St.st_mode) == 0) + _error->Error(_("Archive directory %spartial is missing."), + _config->FindDir("Dir::Cache::Archives").c_str()); +} + /*}}}*/ +// Acquire::~pkgAcquire - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* Free our memory, clean up the queues (destroy the workers) */ +pkgAcquire::~pkgAcquire() +{ + Shutdown(); + + while (Configs != 0) + { + MethodConfig *Jnk = Configs; + Configs = Configs->Next; + delete Jnk; + } +} + /*}}}*/ +// Acquire::Shutdown - Clean out the acquire object /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgAcquire::Shutdown() +{ + while (Items.size() != 0) + { + if (Items[0]->Status == Item::StatFetching) + Items[0]->Status = Item::StatError; + delete Items[0]; + } + + while (Queues != 0) + { + Queue *Jnk = Queues; + Queues = Queues->Next; + delete Jnk; + } +} + /*}}}*/ +// Acquire::Add - Add a new item /*{{{*/ +// --------------------------------------------------------------------- +/* This puts an item on the acquire list. This list is mainly for tracking + item status */ +void pkgAcquire::Add(Item *Itm) +{ + Items.push_back(Itm); +} + /*}}}*/ +// Acquire::Remove - Remove a item /*{{{*/ +// --------------------------------------------------------------------- +/* Remove an item from the acquire list. This is usually not used.. */ +void pkgAcquire::Remove(Item *Itm) +{ + Dequeue(Itm); + + for (ItemIterator I = Items.begin(); I != Items.end();) + { + if (*I == Itm) + { + Items.erase(I); + I = Items.begin(); + } + else + I++; + } +} + /*}}}*/ +// Acquire::Add - Add a worker /*{{{*/ +// --------------------------------------------------------------------- +/* A list of workers is kept so that the select loop can direct their FD + usage. */ +void pkgAcquire::Add(Worker *Work) +{ + Work->NextAcquire = Workers; + Workers = Work; +} + /*}}}*/ +// Acquire::Remove - Remove a worker /*{{{*/ +// --------------------------------------------------------------------- +/* A worker has died. This can not be done while the select loop is running + as it would require that RunFds could handling a changing list state and + it cant.. */ +void pkgAcquire::Remove(Worker *Work) +{ + if (Running == true) + abort(); + + Worker **I = &Workers; + for (; *I != 0;) + { + if (*I == Work) + *I = (*I)->NextAcquire; + else + I = &(*I)->NextAcquire; + } +} + /*}}}*/ +// Acquire::Enqueue - Queue an URI for fetching /*{{{*/ +// --------------------------------------------------------------------- +/* This is the entry point for an item. An item calls this function when + it is constructed which creates a queue (based on the current queue + mode) and puts the item in that queue. If the system is running then + the queue might be started. */ +void pkgAcquire::Enqueue(ItemDesc &Item) +{ + // Determine which queue to put the item in + const MethodConfig *Config; + string Name = QueueName(Item.URI,Config); + if (Name.empty() == true) + return; + + // Find the queue structure + Queue *I = Queues; + for (; I != 0 && I->Name != Name; I = I->Next); + if (I == 0) + { + I = new Queue(Name,this); + I->Next = Queues; + Queues = I; + + if (Running == true) + I->Startup(); + } + + // See if this is a local only URI + if (Config->LocalOnly == true && Item.Owner->Complete == false) + Item.Owner->Local = true; + Item.Owner->Status = Item::StatIdle; + + // Queue it into the named queue + I->Enqueue(Item); + ToFetch++; + + // Some trace stuff + if (Debug == true) + { + clog << "Fetching " << Item.URI << endl; + clog << " to " << Item.Owner->DestFile << endl; + clog << " Queue is: " << Name << endl; + } +} + /*}}}*/ +// Acquire::Dequeue - Remove an item from all queues /*{{{*/ +// --------------------------------------------------------------------- +/* This is called when an item is finished being fetched. It removes it + from all the queues */ +void pkgAcquire::Dequeue(Item *Itm) +{ + Queue *I = Queues; + bool Res = false; + for (; I != 0; I = I->Next) + Res |= I->Dequeue(Itm); + + if (Debug == true) + clog << "Dequeuing " << Itm->DestFile << endl; + if (Res == true) + ToFetch--; +} + /*}}}*/ +// Acquire::QueueName - Return the name of the queue for this URI /*{{{*/ +// --------------------------------------------------------------------- +/* The string returned depends on the configuration settings and the + method parameters. Given something like http://foo.org/bar it can + return http://foo.org or http */ +string pkgAcquire::QueueName(string Uri,MethodConfig const *&Config) +{ + URI U(Uri); + + Config = GetConfig(U.Access); + if (Config == 0) + return string(); + + /* Single-Instance methods get exactly one queue per URI. This is + also used for the Access queue method */ + if (Config->SingleInstance == true || QueueMode == QueueAccess) + return U.Access; + + return U.Access + ':' + U.Host; +} + /*}}}*/ +// Acquire::GetConfig - Fetch the configuration information /*{{{*/ +// --------------------------------------------------------------------- +/* This locates the configuration structure for an access method. If + a config structure cannot be found a Worker will be created to + retrieve it */ +pkgAcquire::MethodConfig *pkgAcquire::GetConfig(string Access) +{ + // Search for an existing config + MethodConfig *Conf; + for (Conf = Configs; Conf != 0; Conf = Conf->Next) + if (Conf->Access == Access) + return Conf; + + // Create the new config class + Conf = new MethodConfig; + Conf->Access = Access; + Conf->Next = Configs; + Configs = Conf; + + // Create the worker to fetch the configuration + Worker Work(Conf); + if (Work.Start() == false) + return 0; + + /* if a method uses DownloadLimit, we switch to SingleInstance mode */ + if(_config->FindI("Acquire::"+Access+"::DlLimit",0) > 0) + Conf->SingleInstance = true; + + return Conf; +} + /*}}}*/ +// Acquire::SetFds - Deal with readable FDs /*{{{*/ +// --------------------------------------------------------------------- +/* Collect FDs that have activity monitors into the fd sets */ +void pkgAcquire::SetFds(int &Fd,fd_set *RSet,fd_set *WSet) +{ + for (Worker *I = Workers; I != 0; I = I->NextAcquire) + { + if (I->InReady == true && I->InFd >= 0) + { + if (Fd < I->InFd) + Fd = I->InFd; + FD_SET(I->InFd,RSet); + } + if (I->OutReady == true && I->OutFd >= 0) + { + if (Fd < I->OutFd) + Fd = I->OutFd; + FD_SET(I->OutFd,WSet); + } + } +} + /*}}}*/ +// Acquire::RunFds - Deal with active FDs /*{{{*/ +// --------------------------------------------------------------------- +/* Dispatch active FDs over to the proper workers. It is very important + that a worker never be erased while this is running! The queue class + should never erase a worker except during shutdown processing. */ +void pkgAcquire::RunFds(fd_set *RSet,fd_set *WSet) +{ + for (Worker *I = Workers; I != 0; I = I->NextAcquire) + { + if (I->InFd >= 0 && FD_ISSET(I->InFd,RSet) != 0) + I->InFdReady(); + if (I->OutFd >= 0 && FD_ISSET(I->OutFd,WSet) != 0) + I->OutFdReady(); + } +} + /*}}}*/ +// Acquire::Run - Run the fetch sequence /*{{{*/ +// --------------------------------------------------------------------- +/* This runs the queues. It manages a select loop for all of the + Worker tasks. The workers interact with the queues and items to + manage the actual fetch. */ +pkgAcquire::RunResult pkgAcquire::Run(int PulseIntervall) +{ + Running = true; + + for (Queue *I = Queues; I != 0; I = I->Next) + I->Startup(); + + if (Log != 0) + Log->Start(); + + bool WasCancelled = false; + + // Run till all things have been acquired + struct timeval tv; + tv.tv_sec = 0; + tv.tv_usec = PulseIntervall; + while (ToFetch > 0) + { + fd_set RFds; + fd_set WFds; + int Highest = 0; + FD_ZERO(&RFds); + FD_ZERO(&WFds); + SetFds(Highest,&RFds,&WFds); + + int Res; + do + { + Res = select(Highest+1,&RFds,&WFds,0,&tv); + } + while (Res < 0 && errno == EINTR); + + if (Res < 0) + { + _error->Errno("select","Select has failed"); + break; + } + + RunFds(&RFds,&WFds); + if (_error->PendingError() == true) + break; + + // Timeout, notify the log class + if (Res == 0 || (Log != 0 && Log->Update == true)) + { + tv.tv_usec = PulseIntervall; + for (Worker *I = Workers; I != 0; I = I->NextAcquire) + I->Pulse(); + if (Log != 0 && Log->Pulse(this) == false) + { + WasCancelled = true; + break; + } + } + } + + if (Log != 0) + Log->Stop(); + + // Shut down the acquire bits + Running = false; + for (Queue *I = Queues; I != 0; I = I->Next) + I->Shutdown(false); + + // Shut down the items + for (ItemIterator I = Items.begin(); I != Items.end(); I++) + (*I)->Finished(); + + if (_error->PendingError()) + return Failed; + if (WasCancelled) + return Cancelled; + return Continue; +} + /*}}}*/ +// Acquire::Bump - Called when an item is dequeued /*{{{*/ +// --------------------------------------------------------------------- +/* This routine bumps idle queues in hopes that they will be able to fetch + the dequeued item */ +void pkgAcquire::Bump() +{ + for (Queue *I = Queues; I != 0; I = I->Next) + I->Bump(); +} + /*}}}*/ +// Acquire::WorkerStep - Step to the next worker /*{{{*/ +// --------------------------------------------------------------------- +/* Not inlined to advoid including acquire-worker.h */ +pkgAcquire::Worker *pkgAcquire::WorkerStep(Worker *I) +{ + return I->NextAcquire; +}; + /*}}}*/ +// Acquire::Clean - Cleans a directory /*{{{*/ +// --------------------------------------------------------------------- +/* This is a bit simplistic, it looks at every file in the dir and sees + if it is part of the download set. */ +bool pkgAcquire::Clean(string Dir) +{ + DIR *D = opendir(Dir.c_str()); + if (D == 0) + return _error->Errno("opendir",_("Unable to read %s"),Dir.c_str()); + + string StartDir = SafeGetCWD(); + if (chdir(Dir.c_str()) != 0) + { + closedir(D); + return _error->Errno("chdir",_("Unable to change to %s"),Dir.c_str()); + } + + for (struct dirent *Dir = readdir(D); Dir != 0; Dir = readdir(D)) + { + // Skip some files.. + if (strcmp(Dir->d_name,"lock") == 0 || + strcmp(Dir->d_name,"partial") == 0 || + strcmp(Dir->d_name,".") == 0 || + strcmp(Dir->d_name,"..") == 0) + continue; + + // Look in the get list + ItemCIterator I = Items.begin(); + for (; I != Items.end(); I++) + if (flNotDir((*I)->DestFile) == Dir->d_name) + break; + + // Nothing found, nuke it + if (I == Items.end()) + unlink(Dir->d_name); + }; + + chdir(StartDir.c_str()); + closedir(D); + return true; +} + /*}}}*/ +// Acquire::TotalNeeded - Number of bytes to fetch /*{{{*/ +// --------------------------------------------------------------------- +/* This is the total number of bytes needed */ +double pkgAcquire::TotalNeeded() +{ + double Total = 0; + for (ItemCIterator I = ItemsBegin(); I != ItemsEnd(); I++) + Total += (*I)->FileSize; + return Total; +} + /*}}}*/ +// Acquire::FetchNeeded - Number of bytes needed to get /*{{{*/ +// --------------------------------------------------------------------- +/* This is the number of bytes that is not local */ +double pkgAcquire::FetchNeeded() +{ + double Total = 0; + for (ItemCIterator I = ItemsBegin(); I != ItemsEnd(); I++) + if ((*I)->Local == false) + Total += (*I)->FileSize; + return Total; +} + /*}}}*/ +// Acquire::PartialPresent - Number of partial bytes we already have /*{{{*/ +// --------------------------------------------------------------------- +/* This is the number of bytes that is not local */ +double pkgAcquire::PartialPresent() +{ + double Total = 0; + for (ItemCIterator I = ItemsBegin(); I != ItemsEnd(); I++) + if ((*I)->Local == false) + Total += (*I)->PartialSize; + return Total; +} + +// Acquire::UriBegin - Start iterator for the uri list /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgAcquire::UriIterator pkgAcquire::UriBegin() +{ + return UriIterator(Queues); +} + /*}}}*/ +// Acquire::UriEnd - End iterator for the uri list /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgAcquire::UriIterator pkgAcquire::UriEnd() +{ + return UriIterator(0); +} + /*}}}*/ + +// Acquire::MethodConfig::MethodConfig - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgAcquire::MethodConfig::MethodConfig() +{ + SingleInstance = false; + Pipeline = false; + SendConfig = false; + LocalOnly = false; + Removable = false; + Next = 0; +} + /*}}}*/ + +// Queue::Queue - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgAcquire::Queue::Queue(string Name,pkgAcquire *Owner) : Name(Name), + Owner(Owner) +{ + Items = 0; + Next = 0; + Workers = 0; + MaxPipeDepth = 1; + PipeDepth = 0; +} + /*}}}*/ +// Queue::~Queue - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgAcquire::Queue::~Queue() +{ + Shutdown(true); + + while (Items != 0) + { + QItem *Jnk = Items; + Items = Items->Next; + delete Jnk; + } +} + /*}}}*/ +// Queue::Enqueue - Queue an item to the queue /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgAcquire::Queue::Enqueue(ItemDesc &Item) +{ + QItem **I = &Items; + for (; *I != 0; I = &(*I)->Next); + + // Create a new item + QItem *Itm = new QItem; + *Itm = Item; + Itm->Next = 0; + *I = Itm; + + Item.Owner->QueueCounter++; + if (Items->Next == 0) + Cycle(); +} + /*}}}*/ +// Queue::Dequeue - Remove an item from the queue /*{{{*/ +// --------------------------------------------------------------------- +/* We return true if we hit something */ +bool pkgAcquire::Queue::Dequeue(Item *Owner) +{ + if (Owner->Status == pkgAcquire::Item::StatFetching) + return _error->Error("Tried to dequeue a fetching object"); + + bool Res = false; + + QItem **I = &Items; + for (; *I != 0;) + { + if ((*I)->Owner == Owner) + { + QItem *Jnk= *I; + *I = (*I)->Next; + Owner->QueueCounter--; + delete Jnk; + Res = true; + } + else + I = &(*I)->Next; + } + + return Res; +} + /*}}}*/ +// Queue::Startup - Start the worker processes /*{{{*/ +// --------------------------------------------------------------------- +/* It is possible for this to be called with a pre-existing set of + workers. */ +bool pkgAcquire::Queue::Startup() +{ + if (Workers == 0) + { + URI U(Name); + pkgAcquire::MethodConfig *Cnf = Owner->GetConfig(U.Access); + if (Cnf == 0) + return false; + + Workers = new Worker(this,Cnf,Owner->Log); + Owner->Add(Workers); + if (Workers->Start() == false) + return false; + + /* When pipelining we commit 10 items. This needs to change when we + added other source retry to have cycle maintain a pipeline depth + on its own. */ + if (Cnf->Pipeline == true) + MaxPipeDepth = 10; + else + MaxPipeDepth = 1; + } + + return Cycle(); +} + /*}}}*/ +// Queue::Shutdown - Shutdown the worker processes /*{{{*/ +// --------------------------------------------------------------------- +/* If final is true then all workers are eliminated, otherwise only workers + that do not need cleanup are removed */ +bool pkgAcquire::Queue::Shutdown(bool Final) +{ + // Delete all of the workers + pkgAcquire::Worker **Cur = &Workers; + while (*Cur != 0) + { + pkgAcquire::Worker *Jnk = *Cur; + if (Final == true || Jnk->GetConf()->NeedsCleanup == false) + { + *Cur = Jnk->NextQueue; + Owner->Remove(Jnk); + delete Jnk; + } + else + Cur = &(*Cur)->NextQueue; + } + + return true; +} + /*}}}*/ +// Queue::FindItem - Find a URI in the item list /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgAcquire::Queue::QItem *pkgAcquire::Queue::FindItem(string URI,pkgAcquire::Worker *Owner) +{ + for (QItem *I = Items; I != 0; I = I->Next) + if (I->URI == URI && I->Worker == Owner) + return I; + return 0; +} + /*}}}*/ +// Queue::ItemDone - Item has been completed /*{{{*/ +// --------------------------------------------------------------------- +/* The worker signals this which causes the item to be removed from the + queue. If this is the last queue instance then it is removed from the + main queue too.*/ +bool pkgAcquire::Queue::ItemDone(QItem *Itm) +{ + PipeDepth--; + if (Itm->Owner->Status == pkgAcquire::Item::StatFetching) + Itm->Owner->Status = pkgAcquire::Item::StatDone; + + if (Itm->Owner->QueueCounter <= 1) + Owner->Dequeue(Itm->Owner); + else + { + Dequeue(Itm->Owner); + Owner->Bump(); + } + + return Cycle(); +} + /*}}}*/ +// Queue::Cycle - Queue new items into the method /*{{{*/ +// --------------------------------------------------------------------- +/* This locates a new idle item and sends it to the worker. If pipelining + is enabled then it keeps the pipe full. */ +bool pkgAcquire::Queue::Cycle() +{ + if (Items == 0 || Workers == 0) + return true; + + if (PipeDepth < 0) + return _error->Error("Pipedepth failure"); + + // Look for a queable item + QItem *I = Items; + while (PipeDepth < (signed)MaxPipeDepth) + { + for (; I != 0; I = I->Next) + if (I->Owner->Status == pkgAcquire::Item::StatIdle) + break; + + // Nothing to do, queue is idle. + if (I == 0) + return true; + + I->Worker = Workers; + I->Owner->Status = pkgAcquire::Item::StatFetching; + PipeDepth++; + if (Workers->QueueItem(I) == false) + return false; + } + + return true; +} + /*}}}*/ +// Queue::Bump - Fetch any pending objects if we are idle /*{{{*/ +// --------------------------------------------------------------------- +/* This is called when an item in multiple queues is dequeued */ +void pkgAcquire::Queue::Bump() +{ + Cycle(); +} + /*}}}*/ + +// AcquireStatus::pkgAcquireStatus - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgAcquireStatus::pkgAcquireStatus() : Update(true), MorePulses(false) +{ + Start(); +} + /*}}}*/ +// AcquireStatus::Pulse - Called periodically /*{{{*/ +// --------------------------------------------------------------------- +/* This computes some internal state variables for the derived classes to + use. It generates the current downloaded bytes and total bytes to download + as well as the current CPS estimate. */ +bool pkgAcquireStatus::Pulse(pkgAcquire *Owner) +{ + TotalBytes = 0; + CurrentBytes = 0; + TotalItems = 0; + CurrentItems = 0; + + // Compute the total number of bytes to fetch + unsigned int Unknown = 0; + unsigned int Count = 0; + for (pkgAcquire::ItemCIterator I = Owner->ItemsBegin(); I != Owner->ItemsEnd(); + I++, Count++) + { + TotalItems++; + if ((*I)->Status == pkgAcquire::Item::StatDone) + CurrentItems++; + + // Totally ignore local items + if ((*I)->Local == true) + continue; + + TotalBytes += (*I)->FileSize; + if ((*I)->Complete == true) + CurrentBytes += (*I)->FileSize; + if ((*I)->FileSize == 0 && (*I)->Complete == false) + Unknown++; + } + + // Compute the current completion + unsigned long ResumeSize = 0; + for (pkgAcquire::Worker *I = Owner->WorkersBegin(); I != 0; + I = Owner->WorkerStep(I)) + if (I->CurrentItem != 0 && I->CurrentItem->Owner->Complete == false) + { + CurrentBytes += I->CurrentSize; + ResumeSize += I->ResumePoint; + + // Files with unknown size always have 100% completion + if (I->CurrentItem->Owner->FileSize == 0 && + I->CurrentItem->Owner->Complete == false) + TotalBytes += I->CurrentSize; + } + + // Normalize the figures and account for unknown size downloads + if (TotalBytes <= 0) + TotalBytes = 1; + if (Unknown == Count) + TotalBytes = Unknown; + + // Wha?! Is not supposed to happen. + if (CurrentBytes > TotalBytes) + CurrentBytes = TotalBytes; + + // Compute the CPS + struct timeval NewTime; + gettimeofday(&NewTime,0); + if (NewTime.tv_sec - Time.tv_sec == 6 && NewTime.tv_usec > Time.tv_usec || + NewTime.tv_sec - Time.tv_sec > 6) + { + double Delta = NewTime.tv_sec - Time.tv_sec + + (NewTime.tv_usec - Time.tv_usec)/1000000.0; + + // Compute the CPS value + if (Delta < 0.01) + CurrentCPS = 0; + else + CurrentCPS = ((CurrentBytes - ResumeSize) - LastBytes)/Delta; + LastBytes = CurrentBytes - ResumeSize; + ElapsedTime = (unsigned long)Delta; + Time = NewTime; + } + + int fd = _config->FindI("APT::Status-Fd",-1); + if(fd > 0) + { + ostringstream status; + + char msg[200]; + long i = CurrentItems < TotalItems ? CurrentItems + 1 : CurrentItems; + unsigned long ETA = + (unsigned long)((TotalBytes - CurrentBytes) / CurrentCPS); + + // only show the ETA if it makes sense + if (ETA > 0 && ETA < 172800 /* two days */ ) + snprintf(msg,sizeof(msg), _("Retrieving file %li of %li (%s remaining)"), i, TotalItems, TimeToStr(ETA).c_str()); + else + snprintf(msg,sizeof(msg), _("Retrieving file %li of %li"), i, TotalItems); + + + + // build the status str + status << "dlstatus:" << i + << ":" << (CurrentBytes/float(TotalBytes)*100.0) + << ":" << msg + << endl; + write(fd, status.str().c_str(), status.str().size()); + } + + return true; +} + /*}}}*/ +// AcquireStatus::Start - Called when the download is started /*{{{*/ +// --------------------------------------------------------------------- +/* We just reset the counters */ +void pkgAcquireStatus::Start() +{ + gettimeofday(&Time,0); + gettimeofday(&StartTime,0); + LastBytes = 0; + CurrentCPS = 0; + CurrentBytes = 0; + TotalBytes = 0; + FetchedBytes = 0; + ElapsedTime = 0; + TotalItems = 0; + CurrentItems = 0; +} + /*}}}*/ +// AcquireStatus::Stop - Finished downloading /*{{{*/ +// --------------------------------------------------------------------- +/* This accurately computes the elapsed time and the total overall CPS. */ +void pkgAcquireStatus::Stop() +{ + // Compute the CPS and elapsed time + struct timeval NewTime; + gettimeofday(&NewTime,0); + + double Delta = NewTime.tv_sec - StartTime.tv_sec + + (NewTime.tv_usec - StartTime.tv_usec)/1000000.0; + + // Compute the CPS value + if (Delta < 0.01) + CurrentCPS = 0; + else + CurrentCPS = FetchedBytes/Delta; + LastBytes = CurrentBytes; + ElapsedTime = (unsigned int)Delta; +} + /*}}}*/ +// AcquireStatus::Fetched - Called when a byte set has been fetched /*{{{*/ +// --------------------------------------------------------------------- +/* This is used to get accurate final transfer rate reporting. */ +void pkgAcquireStatus::Fetched(unsigned long Size,unsigned long Resume) +{ + FetchedBytes += Size - Resume; +} + /*}}}*/ diff --git a/apt-pkg/acquire.h b/apt-pkg/acquire.h new file mode 100644 index 0000000..27bb3d3 --- /dev/null +++ b/apt-pkg/acquire.h @@ -0,0 +1,284 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: acquire.h,v 1.29.2.1 2003/12/24 23:09:17 mdz Exp $ +/* ###################################################################### + + Acquire - File Acquiration + + This module contians the Acquire system. It is responsible for bringing + files into the local pathname space. It deals with URIs for files and + URI handlers responsible for downloading or finding the URIs. + + Each file to download is represented by an Acquire::Item class subclassed + into a specialization. The Item class can add itself to several URI + acquire queues each prioritized by the download scheduler. When the + system is run the proper URI handlers are spawned and the the acquire + queues are fed into the handlers by the schedular until the queues are + empty. This allows for an Item to be downloaded from an alternate source + if the first try turns out to fail. It also alows concurrent downloading + of multiple items from multiple sources as well as dynamic balancing + of load between the sources. + + Schedualing of downloads is done on a first ask first get basis. This + preserves the order of the download as much as possible. And means the + fastest source will tend to process the largest number of files. + + Internal methods and queues for performing gzip decompression, + md5sum hashing and file copying are provided to allow items to apply + a number of transformations to the data files they are working with. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_ACQUIRE_H +#define PKGLIB_ACQUIRE_H + +#include +#include + +using std::vector; +using std::string; + +#ifdef __GNUG__ +#pragma interface "apt-pkg/acquire.h" +#endif + +#include +#include + +class pkgAcquireStatus; +class pkgAcquire +{ + public: + + class Item; + class Queue; + class Worker; + struct MethodConfig; + struct ItemDesc; + friend class Item; + friend class Queue; + + typedef vector::iterator ItemIterator; + typedef vector::const_iterator ItemCIterator; + + protected: + + // List of items to fetch + vector Items; + + // List of active queues and fetched method configuration parameters + Queue *Queues; + Worker *Workers; + MethodConfig *Configs; + pkgAcquireStatus *Log; + unsigned long ToFetch; + + // Configurable parameters for the schedular + enum {QueueHost,QueueAccess} QueueMode; + bool Debug; + bool Running; + + void Add(Item *Item); + void Remove(Item *Item); + void Add(Worker *Work); + void Remove(Worker *Work); + + void Enqueue(ItemDesc &Item); + void Dequeue(Item *Item); + string QueueName(string URI,MethodConfig const *&Config); + + // FDSET managers for derived classes + virtual void SetFds(int &Fd,fd_set *RSet,fd_set *WSet); + virtual void RunFds(fd_set *RSet,fd_set *WSet); + + // A queue calls this when it dequeues an item + void Bump(); + + public: + + MethodConfig *GetConfig(string Access); + + enum RunResult {Continue,Failed,Cancelled}; + + RunResult Run(int PulseIntervall=500000); + void Shutdown(); + + // Simple iteration mechanism + inline Worker *WorkersBegin() {return Workers;}; + Worker *WorkerStep(Worker *I); + inline ItemIterator ItemsBegin() {return Items.begin();}; + inline ItemIterator ItemsEnd() {return Items.end();}; + + // Iterate over queued Item URIs + class UriIterator; + UriIterator UriBegin(); + UriIterator UriEnd(); + + // Cleans out the download dir + bool Clean(string Dir); + + // Returns the size of the total download set + double TotalNeeded(); + double FetchNeeded(); + double PartialPresent(); + + pkgAcquire(pkgAcquireStatus *Log = 0); + virtual ~pkgAcquire(); +}; + +// Description of an Item+URI +struct pkgAcquire::ItemDesc +{ + string URI; + string Description; + string ShortDesc; + Item *Owner; +}; + +// List of possible items queued for download. +class pkgAcquire::Queue +{ + friend class pkgAcquire; + friend class pkgAcquire::UriIterator; + friend class pkgAcquire::Worker; + Queue *Next; + + protected: + + // Queued item + struct QItem : pkgAcquire::ItemDesc + { + QItem *Next; + pkgAcquire::Worker *Worker; + + void operator =(pkgAcquire::ItemDesc const &I) + { + URI = I.URI; + Description = I.Description; + ShortDesc = I.ShortDesc; + Owner = I.Owner; + }; + }; + + // Name of the queue + string Name; + + // Items queued into this queue + QItem *Items; + pkgAcquire::Worker *Workers; + pkgAcquire *Owner; + signed long PipeDepth; + unsigned long MaxPipeDepth; + + public: + + // Put an item into this queue + void Enqueue(ItemDesc &Item); + bool Dequeue(Item *Owner); + + // Find a Queued item + QItem *FindItem(string URI,pkgAcquire::Worker *Owner); + bool ItemStart(QItem *Itm,unsigned long Size); + bool ItemDone(QItem *Itm); + + bool Startup(); + bool Shutdown(bool Final); + bool Cycle(); + void Bump(); + + Queue(string Name,pkgAcquire *Owner); + ~Queue(); +}; + +class pkgAcquire::UriIterator +{ + pkgAcquire::Queue *CurQ; + pkgAcquire::Queue::QItem *CurItem; + + public: + + // Advance to the next item + inline void operator ++() {operator ++();}; + void operator ++(int) + { + CurItem = CurItem->Next; + while (CurItem == 0 && CurQ != 0) + { + CurItem = CurQ->Items; + CurQ = CurQ->Next; + } + }; + + // Accessors + inline pkgAcquire::ItemDesc const *operator ->() const {return CurItem;}; + inline bool operator !=(UriIterator const &rhs) const {return rhs.CurQ != CurQ || rhs.CurItem != CurItem;}; + inline bool operator ==(UriIterator const &rhs) const {return rhs.CurQ == CurQ && rhs.CurItem == CurItem;}; + + UriIterator(pkgAcquire::Queue *Q) : CurQ(Q), CurItem(0) + { + while (CurItem == 0 && CurQ != 0) + { + CurItem = CurQ->Items; + CurQ = CurQ->Next; + } + } +}; + +// Configuration information from each method +struct pkgAcquire::MethodConfig +{ + MethodConfig *Next; + + string Access; + + string Version; + bool SingleInstance; + bool Pipeline; + bool SendConfig; + bool LocalOnly; + bool NeedsCleanup; + bool Removable; + + MethodConfig(); +}; + +class pkgAcquireStatus +{ + protected: + + struct timeval Time; + struct timeval StartTime; + double LastBytes; + double CurrentCPS; + double CurrentBytes; + double TotalBytes; + double FetchedBytes; + unsigned long ElapsedTime; + unsigned long TotalItems; + unsigned long CurrentItems; + + public: + + bool Update; + bool MorePulses; + + // Called by items when they have finished a real download + virtual void Fetched(unsigned long Size,unsigned long ResumePoint); + + // Called to change media + virtual bool MediaChange(string Media,string Drive) = 0; + + // Each of these is called by the workers when an event occures + virtual void IMSHit(pkgAcquire::ItemDesc &/*Itm*/) {}; + virtual void Fetch(pkgAcquire::ItemDesc &/*Itm*/) {}; + virtual void Done(pkgAcquire::ItemDesc &/*Itm*/) {}; + virtual void Fail(pkgAcquire::ItemDesc &/*Itm*/) {}; + virtual bool Pulse(pkgAcquire *Owner); // returns false on user cancel + virtual void Start(); + virtual void Stop(); + + pkgAcquireStatus(); + virtual ~pkgAcquireStatus() {}; +}; + +#endif diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc new file mode 100644 index 0000000..479927d --- /dev/null +++ b/apt-pkg/algorithms.cc @@ -0,0 +1,1234 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: algorithms.cc,v 1.44 2002/11/28 18:49:16 jgg Exp $ +/* ###################################################################### + + Algorithms - A set of misc algorithms + + The pkgProblemResolver class has become insanely complex and + very sophisticated, it handles every test case I have thrown at it + to my satisfaction. Understanding exactly why all the steps the class + does are required is difficult and changing though not very risky + may result in other cases not working. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/algorithms.h" +#endif +#include +#include +#include +#include + +#include + +#include + /*}}}*/ +using namespace std; + +pkgProblemResolver *pkgProblemResolver::This = 0; + +// Simulate::Simulate - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* The legacy translations here of input Pkg iterators is obsolete, + this is not necessary since the pkgCaches are fully shared now. */ +pkgSimulate::pkgSimulate(pkgDepCache *Cache) : pkgPackageManager(Cache), + iPolicy(Cache), + Sim(&Cache->GetCache(),&iPolicy) +{ + Sim.Init(0); + Flags = new unsigned char[Cache->Head().PackageCount]; + memset(Flags,0,sizeof(*Flags)*Cache->Head().PackageCount); + + // Fake a filename so as not to activate the media swapping + string Jnk = "SIMULATE"; + for (unsigned int I = 0; I != Cache->Head().PackageCount; I++) + FileNames[I] = Jnk; +} + /*}}}*/ +// Simulate::Describe - Describe a package /*{{{*/ +// --------------------------------------------------------------------- +/* Parameter Current == true displays the current package version, + Parameter Candidate == true displays the candidate package version */ +void pkgSimulate::Describe(PkgIterator Pkg,ostream &out,bool Current,bool Candidate) +{ + VerIterator Ver(Sim); + + out << Pkg.Name(); + + if (Current == true) + { + Ver = Pkg.CurrentVer(); + if (Ver.end() == false) + out << " [" << Ver.VerStr() << ']'; + } + + if (Candidate == true) + { + Ver = Sim[Pkg].CandidateVerIter(Sim); + if (Ver.end() == true) + return; + + out << " (" << Ver.VerStr() << ' ' << Ver.RelStr() << ')'; + } +} + /*}}}*/ +// Simulate::Install - Simulate unpacking of a package /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgSimulate::Install(PkgIterator iPkg,string /*File*/) +{ + // Adapt the iterator + PkgIterator Pkg = Sim.FindPkg(iPkg.Name()); + Flags[Pkg->ID] = 1; + + cout << "Inst "; + Describe(Pkg,cout,true,true); + Sim.MarkInstall(Pkg,false); + + // Look for broken conflicts+predepends. + for (PkgIterator I = Sim.PkgBegin(); I.end() == false; I++) + { + if (Sim[I].InstallVer == 0) + continue; + + for (DepIterator D = Sim[I].InstVerIter(Sim).DependsList(); D.end() == false;) + { + DepIterator Start; + DepIterator End; + D.GlobOr(Start,End); + if (Start->Type == pkgCache::Dep::Conflicts || + Start->Type == pkgCache::Dep::Obsoletes || + End->Type == pkgCache::Dep::PreDepends) + { + if ((Sim[End] & pkgDepCache::DepGInstall) == 0) + { + cout << " [" << I.Name() << " on " << Start.TargetPkg().Name() << ']'; + if (Start->Type == pkgCache::Dep::Conflicts) + _error->Error("Fatal, conflicts violated %s",I.Name()); + } + } + } + } + + if (Sim.BrokenCount() != 0) + ShortBreaks(); + else + cout << endl; + return true; +} + /*}}}*/ +// Simulate::Configure - Simulate configuration of a Package /*{{{*/ +// --------------------------------------------------------------------- +/* This is not an acurate simulation of relatity, we should really not + install the package.. For some investigations it may be necessary + however. */ +bool pkgSimulate::Configure(PkgIterator iPkg) +{ + // Adapt the iterator + PkgIterator Pkg = Sim.FindPkg(iPkg.Name()); + + Flags[Pkg->ID] = 2; +// Sim.MarkInstall(Pkg,false); + if (Sim[Pkg].InstBroken() == true) + { + cout << "Conf " << Pkg.Name() << " broken" << endl; + + Sim.Update(); + + // Print out each package and the failed dependencies + for (pkgCache::DepIterator D = Sim[Pkg].InstVerIter(Sim).DependsList(); D.end() == false; D++) + { + if (Sim.IsImportantDep(D) == false || + (Sim[D] & pkgDepCache::DepInstall) != 0) + continue; + + if (D->Type == pkgCache::Dep::Obsoletes) + cout << " Obsoletes:" << D.TargetPkg().Name(); + else if (D->Type == pkgCache::Dep::Conflicts) + cout << " Conflicts:" << D.TargetPkg().Name(); + else + cout << " Depends:" << D.TargetPkg().Name(); + } + cout << endl; + + _error->Error("Conf Broken %s",Pkg.Name()); + } + else + { + cout << "Conf "; + Describe(Pkg,cout,false,true); + } + + if (Sim.BrokenCount() != 0) + ShortBreaks(); + else + cout << endl; + + return true; +} + /*}}}*/ +// Simulate::Remove - Simulate the removal of a package /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgSimulate::Remove(PkgIterator iPkg,bool Purge) +{ + // Adapt the iterator + PkgIterator Pkg = Sim.FindPkg(iPkg.Name()); + + Flags[Pkg->ID] = 3; + Sim.MarkDelete(Pkg); + if (Purge == true) + cout << "Purg "; + else + cout << "Remv "; + Describe(Pkg,cout,true,false); + + if (Sim.BrokenCount() != 0) + ShortBreaks(); + else + cout << endl; + + return true; +} + /*}}}*/ +// Simulate::ShortBreaks - Print out a short line describing all breaks /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgSimulate::ShortBreaks() +{ + cout << " ["; + for (PkgIterator I = Sim.PkgBegin(); I.end() == false; I++) + { + if (Sim[I].InstBroken() == true) + { + if (Flags[I->ID] == 0) + cout << I.Name() << ' '; +/* else + cout << I.Name() << "! ";*/ + } + } + cout << ']' << endl; +} + /*}}}*/ +// ApplyStatus - Adjust for non-ok packages /*{{{*/ +// --------------------------------------------------------------------- +/* We attempt to change the state of the all packages that have failed + installation toward their real state. The ordering code will perform + the necessary calculations to deal with the problems. */ +bool pkgApplyStatus(pkgDepCache &Cache) +{ + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + { + if (I->VersionList == 0) + continue; + + // Only choice for a ReInstReq package is to reinstall + if (I->InstState == pkgCache::State::ReInstReq || + I->InstState == pkgCache::State::HoldReInstReq) + { + if (I->CurrentVer != 0 && I.CurrentVer().Downloadable() == true) + Cache.MarkKeep(I); + else + { + // Is this right? Will dpkg choke on an upgrade? + if (Cache[I].CandidateVer != 0 && + Cache[I].CandidateVerIter(Cache).Downloadable() == true) + Cache.MarkInstall(I); + else + return _error->Error(_("The package %s needs to be reinstalled, " + "but I can't find an archive for it."),I.Name()); + } + + continue; + } + + switch (I->CurrentState) + { + /* This means installation failed somehow - it does not need to be + re-unpacked (probably) */ + case pkgCache::State::UnPacked: + case pkgCache::State::HalfConfigured: + if ((I->CurrentVer != 0 && I.CurrentVer().Downloadable() == true) || + I.State() != pkgCache::PkgIterator::NeedsUnpack) + Cache.MarkKeep(I); + else + { + if (Cache[I].CandidateVer != 0 && + Cache[I].CandidateVerIter(Cache).Downloadable() == true) + Cache.MarkInstall(I); + else + Cache.MarkDelete(I); + } + break; + + // This means removal failed + case pkgCache::State::HalfInstalled: + Cache.MarkDelete(I); + break; + + default: + if (I->InstState != pkgCache::State::Ok) + return _error->Error("The package %s is not ok and I " + "don't know how to fix it!",I.Name()); + } + } + return true; +} + /*}}}*/ +// FixBroken - Fix broken packages /*{{{*/ +// --------------------------------------------------------------------- +/* This autoinstalls every broken package and then runs the problem resolver + on the result. */ +bool pkgFixBroken(pkgDepCache &Cache) +{ + // Auto upgrade all broken packages + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + if (Cache[I].NowBroken() == true) + Cache.MarkInstall(I,true); + + /* Fix packages that are in a NeedArchive state but don't have a + downloadable install version */ + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + { + if (I.State() != pkgCache::PkgIterator::NeedsUnpack || + Cache[I].Delete() == true) + continue; + + if (Cache[I].InstVerIter(Cache).Downloadable() == false) + continue; + + Cache.MarkInstall(I,true); + } + + pkgProblemResolver Fix(&Cache); + return Fix.Resolve(true); +} + /*}}}*/ +// DistUpgrade - Distribution upgrade /*{{{*/ +// --------------------------------------------------------------------- +/* This autoinstalls every package and then force installs every + pre-existing package. This creates the initial set of conditions which + most likely contain problems because too many things were installed. + + The problem resolver is used to resolve the problems. + */ +bool pkgDistUpgrade(pkgDepCache &Cache) +{ + /* Auto upgrade all installed packages, this provides the basis + for the installation */ + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + if (I->CurrentVer != 0) + Cache.MarkInstall(I,true); + + /* Now, auto upgrade all essential packages - this ensures that + the essential packages are present and working */ + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + if ((I->Flags & pkgCache::Flag::Essential) == pkgCache::Flag::Essential) + Cache.MarkInstall(I,true); + + /* We do it again over all previously installed packages to force + conflict resolution on them all. */ + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + if (I->CurrentVer != 0) + Cache.MarkInstall(I,false); + + pkgProblemResolver Fix(&Cache); + + // Hold back held packages. + if (_config->FindB("APT::Ignore-Hold",false) == false) + { + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + { + if (I->SelectedState == pkgCache::State::Hold) + { + Fix.Protect(I); + Cache.MarkKeep(I); + } + } + } + + return Fix.Resolve(); +} + /*}}}*/ +// AllUpgrade - Upgrade as many packages as possible /*{{{*/ +// --------------------------------------------------------------------- +/* Right now the system must be consistent before this can be called. + It also will not change packages marked for install, it only tries + to install packages not marked for install */ +bool pkgAllUpgrade(pkgDepCache &Cache) +{ + pkgProblemResolver Fix(&Cache); + + if (Cache.BrokenCount() != 0) + return false; + + // Upgrade all installed packages + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + { + if (Cache[I].Install() == true) + Fix.Protect(I); + + if (_config->FindB("APT::Ignore-Hold",false) == false) + if (I->SelectedState == pkgCache::State::Hold) + continue; + + if (I->CurrentVer != 0 && Cache[I].InstallVer != 0) + Cache.MarkInstall(I,false); + } + + return Fix.ResolveByKeep(); +} + /*}}}*/ +// MinimizeUpgrade - Minimizes the set of packages to be upgraded /*{{{*/ +// --------------------------------------------------------------------- +/* This simply goes over the entire set of packages and tries to keep + each package marked for upgrade. If a conflict is generated then + the package is restored. */ +bool pkgMinimizeUpgrade(pkgDepCache &Cache) +{ + if (Cache.BrokenCount() != 0) + return false; + + // We loop for 10 tries to get the minimal set size. + bool Change = false; + unsigned int Count = 0; + do + { + Change = false; + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + { + // Not interesting + if (Cache[I].Upgrade() == false || Cache[I].NewInstall() == true) + continue; + + // Keep it and see if that is OK + Cache.MarkKeep(I); + if (Cache.BrokenCount() != 0) + Cache.MarkInstall(I,false); + else + { + // If keep didnt actually do anything then there was no change.. + if (Cache[I].Upgrade() == false) + Change = true; + } + } + Count++; + } + while (Change == true && Count < 10); + + if (Cache.BrokenCount() != 0) + return _error->Error("Internal Error in pkgMinimizeUpgrade"); + + return true; +} + /*}}}*/ + +// ProblemResolver::pkgProblemResolver - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgProblemResolver::pkgProblemResolver(pkgDepCache *pCache) : Cache(*pCache) +{ + // Allocate memory + unsigned long Size = Cache.Head().PackageCount; + Scores = new signed short[Size]; + Flags = new unsigned char[Size]; + memset(Flags,0,sizeof(*Flags)*Size); + + // Set debug to true to see its decision logic + Debug = _config->FindB("Debug::pkgProblemResolver",false); +} + /*}}}*/ +// ProblemResolver::~pkgProblemResolver - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgProblemResolver::~pkgProblemResolver() +{ + delete [] Scores; + delete [] Flags; +} + /*}}}*/ +// ProblemResolver::ScoreSort - Sort the list by score /*{{{*/ +// --------------------------------------------------------------------- +/* */ +int pkgProblemResolver::ScoreSort(const void *a,const void *b) +{ + Package const **A = (Package const **)a; + Package const **B = (Package const **)b; + if (This->Scores[(*A)->ID] > This->Scores[(*B)->ID]) + return -1; + if (This->Scores[(*A)->ID] < This->Scores[(*B)->ID]) + return 1; + return 0; +} + /*}}}*/ +// ProblemResolver::MakeScores - Make the score table /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgProblemResolver::MakeScores() +{ + unsigned long Size = Cache.Head().PackageCount; + memset(Scores,0,sizeof(*Scores)*Size); + + // Generate the base scores for a package based on its properties + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + { + if (Cache[I].InstallVer == 0) + continue; + + signed short &Score = Scores[I->ID]; + + /* This is arbitary, it should be high enough to elevate an + essantial package above most other packages but low enough + to allow an obsolete essential packages to be removed by + a conflicts on a powerfull normal package (ie libc6) */ + if ((I->Flags & pkgCache::Flag::Essential) == pkgCache::Flag::Essential) + Score += 100; + + // We transform the priority + // Important Required Standard Optional Extra + signed short PrioMap[] = {0,3,2,1,-1,-2}; + if (Cache[I].InstVerIter(Cache)->Priority <= 5) + Score += PrioMap[Cache[I].InstVerIter(Cache)->Priority]; + + /* This helps to fix oddball problems with conflicting packages + on the same level. We enhance the score of installed packages */ + if (I->CurrentVer != 0) + Score += 1; + } + + // Now that we have the base scores we go and propogate dependencies + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + { + if (Cache[I].InstallVer == 0) + continue; + + for (pkgCache::DepIterator D = Cache[I].InstVerIter(Cache).DependsList(); D.end() == false; D++) + { + if (D->Type == pkgCache::Dep::Depends || D->Type == pkgCache::Dep::PreDepends) + Scores[D.TargetPkg()->ID]++; + } + } + + // Copy the scores to advoid additive looping + SPtrArray OldScores = new signed short[Size]; + memcpy(OldScores,Scores,sizeof(*Scores)*Size); + + /* Now we cause 1 level of dependency inheritance, that is we add the + score of the packages that depend on the target Package. This + fortifies high scoring packages */ + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + { + if (Cache[I].InstallVer == 0) + continue; + + for (pkgCache::DepIterator D = I.RevDependsList(); D.end() == false; D++) + { + // Only do it for the install version + if ((pkgCache::Version *)D.ParentVer() != Cache[D.ParentPkg()].InstallVer || + (D->Type != pkgCache::Dep::Depends && D->Type != pkgCache::Dep::PreDepends)) + continue; + + Scores[I->ID] += abs(OldScores[D.ParentPkg()->ID]); + } + } + + /* Now we propogate along provides. This makes the packages that + provide important packages extremely important */ + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + { + for (pkgCache::PrvIterator P = I.ProvidesList(); P.end() == false; P++) + { + // Only do it once per package + if ((pkgCache::Version *)P.OwnerVer() != Cache[P.OwnerPkg()].InstallVer) + continue; + Scores[P.OwnerPkg()->ID] += abs(Scores[I->ID] - OldScores[I->ID]); + } + } + + /* Protected things are pushed really high up. This number should put them + ahead of everything */ + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + { + if ((Flags[I->ID] & Protected) != 0) + Scores[I->ID] += 10000; + if ((I->Flags & pkgCache::Flag::Essential) == pkgCache::Flag::Essential) + Scores[I->ID] += 5000; + } +} + /*}}}*/ +// ProblemResolver::DoUpgrade - Attempt to upgrade this package /*{{{*/ +// --------------------------------------------------------------------- +/* This goes through and tries to reinstall packages to make this package + installable */ +bool pkgProblemResolver::DoUpgrade(pkgCache::PkgIterator Pkg) +{ + if ((Flags[Pkg->ID] & Upgradable) == 0 || Cache[Pkg].Upgradable() == false) + return false; + if ((Flags[Pkg->ID] & Protected) == Protected) + return false; + + Flags[Pkg->ID] &= ~Upgradable; + + bool WasKept = Cache[Pkg].Keep(); + Cache.MarkInstall(Pkg,false); + + // This must be a virtual package or something like that. + if (Cache[Pkg].InstVerIter(Cache).end() == true) + return false; + + // Isolate the problem dependency + bool Fail = false; + for (pkgCache::DepIterator D = Cache[Pkg].InstVerIter(Cache).DependsList(); D.end() == false;) + { + // Compute a single dependency element (glob or) + pkgCache::DepIterator Start = D; + pkgCache::DepIterator End = D; + unsigned char State = 0; + for (bool LastOR = true; D.end() == false && LastOR == true;) + { + State |= Cache[D]; + LastOR = (D->CompareOp & pkgCache::Dep::Or) == pkgCache::Dep::Or; + D++; + if (LastOR == true) + End = D; + } + + // We only worry about critical deps. + if (End.IsCritical() != true) + continue; + + // Iterate over all the members in the or group + while (1) + { + // Dep is ok now + if ((Cache[End] & pkgDepCache::DepGInstall) == pkgDepCache::DepGInstall) + break; + + // Do not change protected packages + PkgIterator P = Start.SmartTargetPkg(); + if ((Flags[P->ID] & Protected) == Protected) + { + if (Debug == true) + clog << " Reinst Failed because of protected " << P.Name() << endl; + Fail = true; + } + else + { + // Upgrade the package if the candidate version will fix the problem. + if ((Cache[Start] & pkgDepCache::DepCVer) == pkgDepCache::DepCVer) + { + if (DoUpgrade(P) == false) + { + if (Debug == true) + clog << " Reinst Failed because of " << P.Name() << endl; + Fail = true; + } + else + { + Fail = false; + break; + } + } + else + { + /* We let the algorithm deal with conflicts on its next iteration, + it is much smarter than us */ + if (Start->Type == pkgCache::Dep::Conflicts || + Start->Type == pkgCache::Dep::Obsoletes) + break; + + if (Debug == true) + clog << " Reinst Failed early because of " << Start.TargetPkg().Name() << endl; + Fail = true; + } + } + + if (Start == End) + break; + Start++; + } + if (Fail == true) + break; + } + + // Undo our operations - it might be smart to undo everything this did.. + if (Fail == true) + { + if (WasKept == true) + Cache.MarkKeep(Pkg); + else + Cache.MarkDelete(Pkg); + return false; + } + + if (Debug == true) + clog << " Re-Instated " << Pkg.Name() << endl; + return true; +} + /*}}}*/ +// ProblemResolver::Resolve - Run the resolution pass /*{{{*/ +// --------------------------------------------------------------------- +/* This routines works by calculating a score for each package. The score + is derived by considering the package's priority and all reverse + dependents giving an integer that reflects the amount of breakage that + adjusting the package will inflict. + + It goes from highest score to lowest and corrects all of the breaks by + keeping or removing the dependant packages. If that fails then it removes + the package itself and goes on. The routine should be able to intelligently + go from any broken state to a fixed state. + + The BrokenFix flag enables a mode where the algorithm tries to + upgrade packages to advoid problems. */ +bool pkgProblemResolver::Resolve(bool BrokenFix) +{ + unsigned long Size = Cache.Head().PackageCount; + + // Record which packages are marked for install + bool Again = false; + do + { + Again = false; + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + { + if (Cache[I].Install() == true) + Flags[I->ID] |= PreInstalled; + else + { + if (Cache[I].InstBroken() == true && BrokenFix == true) + { + Cache.MarkInstall(I,false); + if (Cache[I].Install() == true) + Again = true; + } + + Flags[I->ID] &= ~PreInstalled; + } + Flags[I->ID] |= Upgradable; + } + } + while (Again == true); + + if (Debug == true) + clog << "Starting" << endl; + + MakeScores(); + + /* We have to order the packages so that the broken fixing pass + operates from highest score to lowest. This prevents problems when + high score packages cause the removal of lower score packages that + would cause the removal of even lower score packages. */ + SPtrArray PList = new pkgCache::Package *[Size]; + pkgCache::Package **PEnd = PList; + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + *PEnd++ = I; + This = this; + qsort(PList,PEnd - PList,sizeof(*PList),&ScoreSort); + +/* for (pkgCache::Package **K = PList; K != PEnd; K++) + if (Scores[(*K)->ID] != 0) + { + pkgCache::PkgIterator Pkg(Cache,*K); + clog << Scores[(*K)->ID] << ' ' << Pkg.Name() << + ' ' << (pkgCache::Version *)Pkg.CurrentVer() << ' ' << + Cache[Pkg].InstallVer << ' ' << Cache[Pkg].CandidateVer << endl; + } */ + + if (Debug == true) + clog << "Starting 2" << endl; + + /* Now consider all broken packages. For each broken package we either + remove the package or fix it's problem. We do this once, it should + not be possible for a loop to form (that is a < b < c and fixing b by + changing a breaks c) */ + bool Change = true; + for (int Counter = 0; Counter != 10 && Change == true; Counter++) + { + Change = false; + for (pkgCache::Package **K = PList; K != PEnd; K++) + { + pkgCache::PkgIterator I(Cache,*K); + + /* We attempt to install this and see if any breaks result, + this takes care of some strange cases */ + if (Cache[I].CandidateVer != Cache[I].InstallVer && + I->CurrentVer != 0 && Cache[I].InstallVer != 0 && + (Flags[I->ID] & PreInstalled) != 0 && + (Flags[I->ID] & Protected) == 0 && + (Flags[I->ID] & ReInstateTried) == 0) + { + if (Debug == true) + clog << " Try to Re-Instate " << I.Name() << endl; + unsigned long OldBreaks = Cache.BrokenCount(); + pkgCache::Version *OldVer = Cache[I].InstallVer; + Flags[I->ID] &= ReInstateTried; + + Cache.MarkInstall(I,false); + if (Cache[I].InstBroken() == true || + OldBreaks < Cache.BrokenCount()) + { + if (OldVer == 0) + Cache.MarkDelete(I); + else + Cache.MarkKeep(I); + } + else + if (Debug == true) + clog << "Re-Instated " << I.Name() << " (" << OldBreaks << " vs " << Cache.BrokenCount() << ')' << endl; + } + + if (Cache[I].InstallVer == 0 || Cache[I].InstBroken() == false) + continue; + + if (Debug == true) + cout << "Investigating " << I.Name() << endl; + + // Isolate the problem dependency + PackageKill KillList[100]; + PackageKill *LEnd = KillList; + bool InOr = false; + pkgCache::DepIterator Start; + pkgCache::DepIterator End; + PackageKill *OldEnd = LEnd; + + enum {OrRemove,OrKeep} OrOp = OrRemove; + for (pkgCache::DepIterator D = Cache[I].InstVerIter(Cache).DependsList(); + D.end() == false || InOr == true;) + { + // Compute a single dependency element (glob or) + if (Start == End) + { + // Decide what to do + if (InOr == true) + { + if (OldEnd == LEnd && OrOp == OrRemove) + { + if ((Flags[I->ID] & Protected) != Protected) + { + if (Debug == true) + clog << " Or group remove for " << I.Name() << endl; + Cache.MarkDelete(I); + Change = true; + } + } + if (OldEnd == LEnd && OrOp == OrKeep) + { + if (Debug == true) + clog << " Or group keep for " << I.Name() << endl; + Cache.MarkKeep(I); + Change = true; + } + } + + /* We do an extra loop (as above) to finalize the or group + processing */ + InOr = false; + OrOp = OrRemove; + D.GlobOr(Start,End); + if (Start.end() == true) + break; + + // We only worry about critical deps. + if (End.IsCritical() != true) + continue; + + InOr = Start != End; + OldEnd = LEnd; + } + else + Start++; + + // Dep is ok + if ((Cache[End] & pkgDepCache::DepGInstall) == pkgDepCache::DepGInstall) + { + InOr = false; + continue; + } + + if (Debug == true) + clog << "Package " << I.Name() << " has broken dep on " << Start.TargetPkg().Name() << endl; + + /* Look across the version list. If there are no possible + targets then we keep the package and bail. This is necessary + if a package has a dep on another package that cant be found */ + SPtrArray VList = Start.AllTargets(); + if (*VList == 0 && (Flags[I->ID] & Protected) != Protected && + Start->Type != pkgCache::Dep::Conflicts && + Start->Type != pkgCache::Dep::Obsoletes && + Cache[I].NowBroken() == false) + { + if (InOr == true) + { + /* No keep choice because the keep being OK could be the + result of another element in the OR group! */ + continue; + } + + Change = true; + Cache.MarkKeep(I); + break; + } + + bool Done = false; + for (pkgCache::Version **V = VList; *V != 0; V++) + { + pkgCache::VerIterator Ver(Cache,*V); + pkgCache::PkgIterator Pkg = Ver.ParentPkg(); + + if (Debug == true) + clog << " Considering " << Pkg.Name() << ' ' << (int)Scores[Pkg->ID] << + " as a solution to " << I.Name() << ' ' << (int)Scores[I->ID] << endl; + + /* Try to fix the package under consideration rather than + fiddle with the VList package */ + if (Scores[I->ID] <= Scores[Pkg->ID] || + ((Cache[Start] & pkgDepCache::DepNow) == 0 && + End->Type != pkgCache::Dep::Conflicts && + End->Type != pkgCache::Dep::Obsoletes)) + { + // Try a little harder to fix protected packages.. + if ((Flags[I->ID] & Protected) == Protected) + { + if (DoUpgrade(Pkg) == true) + { + if (Scores[Pkg->ID] > Scores[I->ID]) + Scores[Pkg->ID] = Scores[I->ID]; + break; + } + + continue; + } + + /* See if a keep will do, unless the package is protected, + then installing it will be necessary */ + bool Installed = Cache[I].Install(); + Cache.MarkKeep(I); + if (Cache[I].InstBroken() == false) + { + // Unwind operation will be keep now + if (OrOp == OrRemove) + OrOp = OrKeep; + + // Restore + if (InOr == true && Installed == true) + Cache.MarkInstall(I,false); + + if (Debug == true) + clog << " Holding Back " << I.Name() << " rather than change " << Start.TargetPkg().Name() << endl; + } + else + { + if (BrokenFix == false || DoUpgrade(I) == false) + { + // Consider other options + if (InOr == false) + { + if (Debug == true) + clog << " Removing " << I.Name() << " rather than change " << Start.TargetPkg().Name() << endl; + Cache.MarkDelete(I); + if (Counter > 1) + { + if (Scores[Pkg->ID] > Scores[I->ID]) + Scores[I->ID] = Scores[Pkg->ID]; + } + } + } + } + + Change = true; + Done = true; + break; + } + else + { + /* This is a conflicts, and the version we are looking + at is not the currently selected version of the + package, which means it is not necessary to + remove/keep */ + if (Cache[Pkg].InstallVer != Ver && + (Start->Type == pkgCache::Dep::Conflicts || + Start->Type == pkgCache::Dep::Obsoletes)) + continue; + + // Skip adding to the kill list if it is protected + if ((Flags[Pkg->ID] & Protected) != 0) + continue; + + if (Debug == true) + clog << " Added " << Pkg.Name() << " to the remove list" << endl; + + LEnd->Pkg = Pkg; + LEnd->Dep = End; + LEnd++; + + if (Start->Type != pkgCache::Dep::Conflicts && + Start->Type != pkgCache::Dep::Obsoletes) + break; + } + } + + // Hm, nothing can possibly satisify this dep. Nuke it. + if (VList[0] == 0 && + Start->Type != pkgCache::Dep::Conflicts && + Start->Type != pkgCache::Dep::Obsoletes && + (Flags[I->ID] & Protected) != Protected) + { + bool Installed = Cache[I].Install(); + Cache.MarkKeep(I); + if (Cache[I].InstBroken() == false) + { + // Unwind operation will be keep now + if (OrOp == OrRemove) + OrOp = OrKeep; + + // Restore + if (InOr == true && Installed == true) + Cache.MarkInstall(I,false); + + if (Debug == true) + clog << " Holding Back " << I.Name() << " because I can't find " << Start.TargetPkg().Name() << endl; + } + else + { + if (Debug == true) + clog << " Removing " << I.Name() << " because I can't find " << Start.TargetPkg().Name() << endl; + if (InOr == false) + Cache.MarkDelete(I); + } + + Change = true; + Done = true; + } + + // Try some more + if (InOr == true) + continue; + + if (Done == true) + break; + } + + // Apply the kill list now + if (Cache[I].InstallVer != 0) + { + for (PackageKill *J = KillList; J != LEnd; J++) + { + Change = true; + if ((Cache[J->Dep] & pkgDepCache::DepGNow) == 0) + { + if (J->Dep->Type == pkgCache::Dep::Conflicts || + J->Dep->Type == pkgCache::Dep::Obsoletes) + { + if (Debug == true) + clog << " Fixing " << I.Name() << " via remove of " << J->Pkg.Name() << endl; + Cache.MarkDelete(J->Pkg); + } + } + else + { + if (Debug == true) + clog << " Fixing " << I.Name() << " via keep of " << J->Pkg.Name() << endl; + Cache.MarkKeep(J->Pkg); + } + + if (Counter > 1) + { + if (Scores[I->ID] > Scores[J->Pkg->ID]) + Scores[J->Pkg->ID] = Scores[I->ID]; + } + } + } + } + } + + if (Debug == true) + clog << "Done" << endl; + + if (Cache.BrokenCount() != 0) + { + // See if this is the result of a hold + pkgCache::PkgIterator I = Cache.PkgBegin(); + for (;I.end() != true; I++) + { + if (Cache[I].InstBroken() == false) + continue; + if ((Flags[I->ID] & Protected) != Protected) + return _error->Error(_("Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.")); + } + return _error->Error(_("Unable to correct problems, you have held broken packages.")); + } + + return true; +} + /*}}}*/ +// ProblemResolver::ResolveByKeep - Resolve problems using keep /*{{{*/ +// --------------------------------------------------------------------- +/* This is the work horse of the soft upgrade routine. It is very gental + in that it does not install or remove any packages. It is assumed that the + system was non-broken previously. */ +bool pkgProblemResolver::ResolveByKeep() +{ + unsigned long Size = Cache.Head().PackageCount; + + if (Debug == true) + clog << "Entering ResolveByKeep" << endl; + + MakeScores(); + + /* We have to order the packages so that the broken fixing pass + operates from highest score to lowest. This prevents problems when + high score packages cause the removal of lower score packages that + would cause the removal of even lower score packages. */ + pkgCache::Package **PList = new pkgCache::Package *[Size]; + pkgCache::Package **PEnd = PList; + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + *PEnd++ = I; + This = this; + qsort(PList,PEnd - PList,sizeof(*PList),&ScoreSort); + + // Consider each broken package + pkgCache::Package **LastStop = 0; + for (pkgCache::Package **K = PList; K != PEnd; K++) + { + pkgCache::PkgIterator I(Cache,*K); + + if (Cache[I].InstallVer == 0 || Cache[I].InstBroken() == false) + continue; + + /* Keep the package. If this works then great, otherwise we have + to be significantly more agressive and manipulate its dependencies */ + if ((Flags[I->ID] & Protected) == 0) + { + if (Debug == true) + clog << "Keeping package " << I.Name() << endl; + Cache.MarkKeep(I); + if (Cache[I].InstBroken() == false) + { + K = PList - 1; + continue; + } + } + + // Isolate the problem dependencies + for (pkgCache::DepIterator D = Cache[I].InstVerIter(Cache).DependsList(); D.end() == false;) + { + DepIterator Start; + DepIterator End; + D.GlobOr(Start,End); + + // We only worry about critical deps. + if (End.IsCritical() != true) + continue; + + // Dep is ok + if ((Cache[End] & pkgDepCache::DepGInstall) == pkgDepCache::DepGInstall) + continue; + + /* Hm, the group is broken.. I suppose the best thing to do is to + is to try every combination of keep/not-keep for the set, but thats + slow, and this never happens, just be conservative and assume the + list of ors is in preference and keep till it starts to work. */ + while (true) + { + if (Debug == true) + clog << "Package " << I.Name() << " has broken dep on " << Start.TargetPkg().Name() << endl; + + // Look at all the possible provides on this package + SPtrArray VList = Start.AllTargets(); + for (pkgCache::Version **V = VList; *V != 0; V++) + { + pkgCache::VerIterator Ver(Cache,*V); + pkgCache::PkgIterator Pkg = Ver.ParentPkg(); + + // It is not keepable + if (Cache[Pkg].InstallVer == 0 || + Pkg->CurrentVer == 0) + continue; + + if ((Flags[I->ID] & Protected) == 0) + { + if (Debug == true) + clog << " Keeping Package " << Pkg.Name() << " due to dep" << endl; + Cache.MarkKeep(Pkg); + } + + if (Cache[I].InstBroken() == false) + break; + } + + if (Cache[I].InstBroken() == false) + break; + + if (Start == End) + break; + Start++; + } + + if (Cache[I].InstBroken() == false) + break; + } + + if (Cache[I].InstBroken() == true) + continue; + + // Restart again. + if (K == LastStop) + return _error->Error("Internal Error, pkgProblemResolver::ResolveByKeep is looping on package %s.",I.Name()); + LastStop = K; + K = PList - 1; + } + + return true; +} + /*}}}*/ +// ProblemResolver::InstallProtect - Install all protected packages /*{{{*/ +// --------------------------------------------------------------------- +/* This is used to make sure protected packages are installed */ +void pkgProblemResolver::InstallProtect() +{ + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + { + if ((Flags[I->ID] & Protected) == Protected) + { + if ((Flags[I->ID] & ToRemove) == ToRemove) + Cache.MarkDelete(I); + else + Cache.MarkInstall(I,false); + } + } +} + /*}}}*/ + +// PrioSortList - Sort a list of versions by priority /*{{{*/ +// --------------------------------------------------------------------- +/* This is ment to be used in conjunction with AllTargets to get a list + of versions ordered by preference. */ +static pkgCache *PrioCache; +static int PrioComp(const void *A,const void *B) +{ + pkgCache::VerIterator L(*PrioCache,*(pkgCache::Version **)A); + pkgCache::VerIterator R(*PrioCache,*(pkgCache::Version **)B); + + if ((L.ParentPkg()->Flags & pkgCache::Flag::Essential) == pkgCache::Flag::Essential && + (R.ParentPkg()->Flags & pkgCache::Flag::Essential) != pkgCache::Flag::Essential) + return 1; + if ((L.ParentPkg()->Flags & pkgCache::Flag::Essential) != pkgCache::Flag::Essential && + (R.ParentPkg()->Flags & pkgCache::Flag::Essential) == pkgCache::Flag::Essential) + return -1; + + if (L->Priority != R->Priority) + return R->Priority - L->Priority; + return strcmp(L.ParentPkg().Name(),R.ParentPkg().Name()); +} +void pkgPrioSortList(pkgCache &Cache,pkgCache::Version **List) +{ + unsigned long Count = 0; + PrioCache = &Cache; + for (pkgCache::Version **I = List; *I != 0; I++) + Count++; + qsort(List,Count,sizeof(*List),PrioComp); +} + /*}}}*/ diff --git a/apt-pkg/algorithms.h b/apt-pkg/algorithms.h new file mode 100644 index 0000000..b952180 --- /dev/null +++ b/apt-pkg/algorithms.h @@ -0,0 +1,137 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: algorithms.h,v 1.10 2001/05/22 04:17:41 jgg Exp $ +/* ###################################################################### + + Algorithms - A set of misc algorithms + + This simulate class displays what the ordering code has done and + analyses it with a fresh new dependency cache. In this way we can + see all of the effects of an upgrade run. + + pkgDistUpgrade computes an upgrade that causes as many packages as + possible to move to the newest verison. + + pkgApplyStatus sets the target state based on the content of the status + field in the status file. It is important to get proper crash recovery. + + pkgFixBroken corrects a broken system so that it is in a sane state. + + pkgAllUpgrade attempts to upgade as many packages as possible but + without installing new packages. + + The problem resolver class contains a number of complex algorithms + to try to best-guess an upgrade state. It solves the problem of + maximizing the number of install state packages while having no broken + packages. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_ALGORITHMS_H +#define PKGLIB_ALGORITHMS_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/algorithms.h" +#endif + +#include +#include + +#include + +using std::ostream; + +class pkgSimulate : public pkgPackageManager +{ + protected: + + class Policy : public pkgDepCache::Policy + { + pkgDepCache *Cache; + public: + + virtual VerIterator GetCandidateVer(PkgIterator Pkg) + { + return (*Cache)[Pkg].CandidateVerIter(*Cache); + } + + Policy(pkgDepCache *Cache) : Cache(Cache) {}; + }; + + unsigned char *Flags; + + Policy iPolicy; + pkgDepCache Sim; + + // The Actuall installation implementation + virtual bool Install(PkgIterator Pkg,string File); + virtual bool Configure(PkgIterator Pkg); + virtual bool Remove(PkgIterator Pkg,bool Purge); + +private: + void ShortBreaks(); + void Describe(PkgIterator iPkg,ostream &out,bool Current,bool Candidate); + + public: + + pkgSimulate(pkgDepCache *Cache); +}; + +class pkgProblemResolver +{ + pkgDepCache &Cache; + typedef pkgCache::PkgIterator PkgIterator; + typedef pkgCache::VerIterator VerIterator; + typedef pkgCache::DepIterator DepIterator; + typedef pkgCache::PrvIterator PrvIterator; + typedef pkgCache::Version Version; + typedef pkgCache::Package Package; + + enum Flags {Protected = (1 << 0), PreInstalled = (1 << 1), + Upgradable = (1 << 2), ReInstateTried = (1 << 3), + ToRemove = (1 << 4)}; + signed short *Scores; + unsigned char *Flags; + bool Debug; + + // Sort stuff + static pkgProblemResolver *This; + static int ScoreSort(const void *a,const void *b); + + struct PackageKill + { + PkgIterator Pkg; + DepIterator Dep; + }; + + void MakeScores(); + bool DoUpgrade(pkgCache::PkgIterator Pkg); + + public: + + inline void Protect(pkgCache::PkgIterator Pkg) {Flags[Pkg->ID] |= Protected;}; + inline void Remove(pkgCache::PkgIterator Pkg) {Flags[Pkg->ID] |= ToRemove;}; + inline void Clear(pkgCache::PkgIterator Pkg) {Flags[Pkg->ID] &= ~(Protected | ToRemove);}; + + // Try to intelligently resolve problems by installing and removing packages + bool Resolve(bool BrokenFix = false); + + // Try to resolve problems only by using keep + bool ResolveByKeep(); + + // Install all protected packages + void InstallProtect(); + + pkgProblemResolver(pkgDepCache *Cache); + ~pkgProblemResolver(); +}; + +bool pkgDistUpgrade(pkgDepCache &Cache); +bool pkgApplyStatus(pkgDepCache &Cache); +bool pkgFixBroken(pkgDepCache &Cache); +bool pkgAllUpgrade(pkgDepCache &Cache); +bool pkgMinimizeUpgrade(pkgDepCache &Cache); + +void pkgPrioSortList(pkgCache &Cache,pkgCache::Version **List); + +#endif diff --git a/apt-pkg/cachefile.cc b/apt-pkg/cachefile.cc new file mode 100644 index 0000000..ab30030 --- /dev/null +++ b/apt-pkg/cachefile.cc @@ -0,0 +1,130 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: cachefile.cc,v 1.8 2002/04/27 04:28:04 jgg Exp $ +/* ###################################################################### + + CacheFile - Simple wrapper class for opening, generating and whatnot + + This class implements a simple 2 line mechanism to open various sorts + of caches. It can operate as root, as not root, show progress and so on, + it transparently handles everything necessary. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/cachefile.h" +#endif + +#include +#include +#include +#include +#include +#include +#include + +#include + /*}}}*/ + +// CacheFile::CacheFile - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgCacheFile::pkgCacheFile() : Map(0), Cache(0), DCache(0), Policy(0) +{ +} + /*}}}*/ +// CacheFile::~CacheFile - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgCacheFile::~pkgCacheFile() +{ + delete DCache; + delete Policy; + delete Cache; + delete Map; + _system->UnLock(true); +} + /*}}}*/ +// CacheFile::BuildCaches - Open and build the cache files /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgCacheFile::BuildCaches(OpProgress &Progress,bool WithLock) +{ + if (WithLock == true) + if (_system->Lock() == false) + return false; + + if (_config->FindB("Debug::NoLocking",false) == true) + WithLock = false; + + if (_error->PendingError() == true) + return false; + + // Read the source list + pkgSourceList List; + if (List.ReadMainList() == false) + return _error->Error(_("The list of sources could not be read.")); + + // Read the caches + bool Res = pkgMakeStatusCache(List,Progress,&Map,!WithLock); + Progress.Done(); + if (Res == false) + return _error->Error(_("The package lists or status file could not be parsed or opened.")); + + /* This sux, remove it someday */ + if (_error->empty() == false) + _error->Warning(_("You may want to run apt-get update to correct these problems")); + + Cache = new pkgCache(Map); + if (_error->PendingError() == true) + return false; + return true; +} + /*}}}*/ +// CacheFile::Open - Open the cache files, creating if necessary /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgCacheFile::Open(OpProgress &Progress,bool WithLock) +{ + if (BuildCaches(Progress,WithLock) == false) + return false; + + // The policy engine + Policy = new pkgPolicy(Cache); + if (_error->PendingError() == true) + return false; + if (ReadPinFile(*Policy) == false) + return false; + + // Create the dependency cache + DCache = new pkgDepCache(Cache,Policy); + if (_error->PendingError() == true) + return false; + + DCache->Init(&Progress); + Progress.Done(); + if (_error->PendingError() == true) + return false; + + return true; +} + /*}}}*/ + +// CacheFile::Close - close the cache files /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgCacheFile::Close() +{ + delete DCache; + delete Policy; + delete Cache; + delete Map; + _system->UnLock(true); + + Map = 0; + DCache = 0; + Policy = 0; + Cache = 0; +} + /*}}}*/ diff --git a/apt-pkg/cachefile.h b/apt-pkg/cachefile.h new file mode 100644 index 0000000..a128c29 --- /dev/null +++ b/apt-pkg/cachefile.h @@ -0,0 +1,57 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: cachefile.h,v 1.5 2002/04/27 04:28:04 jgg Exp $ +/* ###################################################################### + + CacheFile - Simple wrapper class for opening, generating and whatnot + + This class implements a simple 2 line mechanism to open various sorts + of caches. It can operate as root, as not root, show progress and so on, + it transparently handles everything necessary. + + This means it can rebuild caches from the source list and instantiates + and prepares the standard policy mechanism. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_CACHEFILE_H +#define PKGLIB_CACHEFILE_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/cachefile.h" +#endif + +#include + +class pkgPolicy; +class pkgCacheFile +{ + protected: + + MMap *Map; + pkgCache *Cache; + pkgDepCache *DCache; + + public: + + pkgPolicy *Policy; + + // We look pretty much exactly like a pointer to a dep cache + inline operator pkgCache &() {return *Cache;}; + inline operator pkgCache *() {return Cache;}; + inline operator pkgDepCache &() {return *DCache;}; + inline operator pkgDepCache *() {return DCache;}; + inline pkgDepCache *operator ->() {return DCache;}; + inline pkgDepCache &operator *() {return *DCache;}; + inline pkgDepCache::StateCache &operator [](pkgCache::PkgIterator const &I) {return (*DCache)[I];}; + inline unsigned char &operator [](pkgCache::DepIterator const &I) {return (*DCache)[I];}; + + bool BuildCaches(OpProgress &Progress,bool WithLock = true); + bool Open(OpProgress &Progress,bool WithLock = true); + void Close(); + + pkgCacheFile(); + ~pkgCacheFile(); +}; + +#endif diff --git a/apt-pkg/cacheiterators.h b/apt-pkg/cacheiterators.h new file mode 100644 index 0000000..2b326bd --- /dev/null +++ b/apt-pkg/cacheiterators.h @@ -0,0 +1,357 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: cacheiterators.h,v 1.18.2.1 2004/05/08 22:44:27 mdz Exp $ +/* ###################################################################### + + Cache Iterators - Iterators for navigating the cache structure + + The iterators all provides ++,==,!=,->,* and end for their type. + The end function can be used to tell if the list has been fully + traversed. + + Unlike STL iterators these contain helper functions to access the data + that is being iterated over. This is because the data structures can't + be formed in a manner that is intuitive to use and also mmapable. + + For each variable in the target structure that would need a translation + to be accessed correctly a translating function of the same name is + present in the iterator. If applicable the translating function will + return an iterator. + + The DepIterator can iterate over two lists, a list of 'version depends' + or a list of 'package reverse depends'. The type is determined by the + structure passed to the constructor, which should be the structure + that has the depends pointer as a member. The provide iterator has the + same system. + + This header is not user includable, please use apt-pkg/pkgcache.h + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_CACHEITERATORS_H +#define PKGLIB_CACHEITERATORS_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/cacheiterators.h" +#endif + +// Package Iterator +class pkgCache::PkgIterator +{ + friend class pkgCache; + Package *Pkg; + pkgCache *Owner; + long HashIndex; + + protected: + + // This constructor is the 'begin' constructor, never use it. + inline PkgIterator(pkgCache &Owner) : Owner(&Owner), HashIndex(-1) + { + Pkg = Owner.PkgP; + operator ++(0); + }; + + public: + + enum OkState {NeedsNothing,NeedsUnpack,NeedsConfigure}; + + // Iteration + void operator ++(int); + inline void operator ++() {operator ++(0);}; + inline bool end() const {return Owner == 0 || Pkg == Owner->PkgP?true:false;}; + + // Comparison + inline bool operator ==(const PkgIterator &B) const {return Pkg == B.Pkg;}; + inline bool operator !=(const PkgIterator &B) const {return Pkg != B.Pkg;}; + + // Accessors + inline Package *operator ->() {return Pkg;}; + inline Package const *operator ->() const {return Pkg;}; + inline Package const &operator *() const {return *Pkg;}; + inline operator Package *() {return Pkg == Owner->PkgP?0:Pkg;}; + inline operator Package const *() const {return Pkg == Owner->PkgP?0:Pkg;}; + inline pkgCache *Cache() {return Owner;}; + + inline const char *Name() const {return Pkg->Name == 0?0:Owner->StrP + Pkg->Name;}; + inline const char *Section() const {return Pkg->Section == 0?0:Owner->StrP + Pkg->Section;}; + inline bool Purge() const {return Pkg->CurrentState == pkgCache::State::Purge || + (Pkg->CurrentVer == 0 && Pkg->CurrentState == pkgCache::State::NotInstalled);}; + inline VerIterator VersionList() const; + inline VerIterator CurrentVer() const; + inline DepIterator RevDependsList() const; + inline PrvIterator ProvidesList() const; + inline unsigned long Index() const {return Pkg - Owner->PkgP;}; + OkState State() const; + + // Constructors + inline PkgIterator(pkgCache &Owner,Package *Trg) : Pkg(Trg), Owner(&Owner), + HashIndex(0) + { + if (Pkg == 0) + Pkg = Owner.PkgP; + }; + inline PkgIterator() : Pkg(0), Owner(0), HashIndex(0) {}; +}; + +// Version Iterator +class pkgCache::VerIterator +{ + Version *Ver; + pkgCache *Owner; + + void _dummy(); + + public: + + // Iteration + void operator ++(int) {if (Ver != Owner->VerP) Ver = Owner->VerP + Ver->NextVer;}; + inline void operator ++() {operator ++(0);}; + inline bool end() const {return Owner == NULL || (Ver == Owner->VerP?true:false);}; + inline void operator =(const VerIterator &B) {Ver = B.Ver; Owner = B.Owner;}; + + // Comparison + inline bool operator ==(const VerIterator &B) const {return Ver == B.Ver;}; + inline bool operator !=(const VerIterator &B) const {return Ver != B.Ver;}; + int CompareVer(const VerIterator &B) const; + + // Accessors + inline Version *operator ->() {return Ver;}; + inline Version const *operator ->() const {return Ver;}; + inline Version &operator *() {return *Ver;}; + inline Version const &operator *() const {return *Ver;}; + inline operator Version *() {return Ver == Owner->VerP?0:Ver;}; + inline operator Version const *() const {return Ver == Owner->VerP?0:Ver;}; + inline pkgCache *Cache() {return Owner;}; + + inline const char *VerStr() const {return Ver->VerStr == 0?0:Owner->StrP + Ver->VerStr;}; + inline const char *Section() const {return Ver->Section == 0?0:Owner->StrP + Ver->Section;}; + inline const char *Arch() const {return Ver->Arch == 0?0:Owner->StrP + Ver->Arch;}; + inline PkgIterator ParentPkg() const {return PkgIterator(*Owner,Owner->PkgP + Ver->ParentPkg);}; + inline DepIterator DependsList() const; + inline PrvIterator ProvidesList() const; + inline VerFileIterator FileList() const; + inline unsigned long Index() const {return Ver - Owner->VerP;}; + bool Downloadable() const; + inline const char *PriorityType() {return Owner->Priority(Ver->Priority);}; + string RelStr(); + + bool Automatic() const; + VerFileIterator NewestFile() const; + + inline VerIterator() : Ver(0), Owner(0) {}; + inline VerIterator(pkgCache &Owner,Version *Trg = 0) : Ver(Trg), + Owner(&Owner) + { + if (Ver == 0) + Ver = Owner.VerP; + }; +}; + +// Dependency iterator +class pkgCache::DepIterator +{ + Dependency *Dep; + enum {DepVer, DepRev} Type; + pkgCache *Owner; + + void _dummy(); + + public: + + // Iteration + void operator ++(int) {if (Dep != Owner->DepP) Dep = Owner->DepP + + (Type == DepVer?Dep->NextDepends:Dep->NextRevDepends);}; + inline void operator ++() {operator ++(0);}; + inline bool end() const {return Owner == 0 || Dep == Owner->DepP?true:false;}; + + // Comparison + inline bool operator ==(const DepIterator &B) const {return Dep == B.Dep;}; + inline bool operator !=(const DepIterator &B) const {return Dep != B.Dep;}; + + // Accessors + inline Dependency *operator ->() {return Dep;}; + inline Dependency const *operator ->() const {return Dep;}; + inline Dependency &operator *() {return *Dep;}; + inline Dependency const &operator *() const {return *Dep;}; + inline operator Dependency *() {return Dep == Owner->DepP?0:Dep;}; + inline operator Dependency const *() const {return Dep == Owner->DepP?0:Dep;}; + inline pkgCache *Cache() {return Owner;}; + + inline const char *TargetVer() const {return Dep->Version == 0?0:Owner->StrP + Dep->Version;}; + inline PkgIterator TargetPkg() {return PkgIterator(*Owner,Owner->PkgP + Dep->Package);}; + inline PkgIterator SmartTargetPkg() {PkgIterator R(*Owner,0);SmartTargetPkg(R);return R;}; + inline VerIterator ParentVer() {return VerIterator(*Owner,Owner->VerP + Dep->ParentVer);}; + inline PkgIterator ParentPkg() {return PkgIterator(*Owner,Owner->PkgP + Owner->VerP[Dep->ParentVer].ParentPkg);}; + inline bool Reverse() {return Type == DepRev;}; + inline unsigned long Index() const {return Dep - Owner->DepP;}; + bool IsCritical(); + void GlobOr(DepIterator &Start,DepIterator &End); + Version **AllTargets(); + bool SmartTargetPkg(PkgIterator &Result); + inline const char *CompType() {return Owner->CompType(Dep->CompareOp);}; + inline const char *DepType() {return Owner->DepType(Dep->Type);}; + + inline DepIterator(pkgCache &Owner,Dependency *Trg,Version * = 0) : + Dep(Trg), Type(DepVer), Owner(&Owner) + { + if (Dep == 0) + Dep = Owner.DepP; + }; + inline DepIterator(pkgCache &Owner,Dependency *Trg,Package *) : + Dep(Trg), Type(DepRev), Owner(&Owner) + { + if (Dep == 0) + Dep = Owner.DepP; + }; + inline DepIterator() : Dep(0), Type(DepVer), Owner(0) {}; +}; + +// Provides iterator +class pkgCache::PrvIterator +{ + Provides *Prv; + enum {PrvVer, PrvPkg} Type; + pkgCache *Owner; + + void _dummy(); + + public: + + // Iteration + void operator ++(int) {if (Prv != Owner->ProvideP) Prv = Owner->ProvideP + + (Type == PrvVer?Prv->NextPkgProv:Prv->NextProvides);}; + inline void operator ++() {operator ++(0);}; + inline bool end() const {return Owner == 0 || Prv == Owner->ProvideP?true:false;}; + + // Comparison + inline bool operator ==(const PrvIterator &B) const {return Prv == B.Prv;}; + inline bool operator !=(const PrvIterator &B) const {return Prv != B.Prv;}; + + // Accessors + inline Provides *operator ->() {return Prv;}; + inline Provides const *operator ->() const {return Prv;}; + inline Provides &operator *() {return *Prv;}; + inline Provides const &operator *() const {return *Prv;}; + inline operator Provides *() {return Prv == Owner->ProvideP?0:Prv;}; + inline operator Provides const *() const {return Prv == Owner->ProvideP?0:Prv;}; + inline pkgCache *Cache() {return Owner;}; + + inline const char *Name() const {return Owner->StrP + Owner->PkgP[Prv->ParentPkg].Name;}; + inline const char *ProvideVersion() const {return Prv->ProvideVersion == 0?0:Owner->StrP + Prv->ProvideVersion;}; + inline PkgIterator ParentPkg() {return PkgIterator(*Owner,Owner->PkgP + Prv->ParentPkg);}; + inline VerIterator OwnerVer() {return VerIterator(*Owner,Owner->VerP + Prv->Version);}; + inline PkgIterator OwnerPkg() {return PkgIterator(*Owner,Owner->PkgP + Owner->VerP[Prv->Version].ParentPkg);}; + inline unsigned long Index() const {return Prv - Owner->ProvideP;}; + + inline PrvIterator() : Prv(0), Type(PrvVer), Owner(0) {}; + + inline PrvIterator(pkgCache &Owner,Provides *Trg,Version *) : + Prv(Trg), Type(PrvVer), Owner(&Owner) + { + if (Prv == 0) + Prv = Owner.ProvideP; + }; + inline PrvIterator(pkgCache &Owner,Provides *Trg,Package *) : + Prv(Trg), Type(PrvPkg), Owner(&Owner) + { + if (Prv == 0) + Prv = Owner.ProvideP; + }; +}; + +// Package file +class pkgCache::PkgFileIterator +{ + pkgCache *Owner; + PackageFile *File; + + public: + + // Iteration + void operator ++(int) {if (File!= Owner->PkgFileP) File = Owner->PkgFileP + File->NextFile;}; + inline void operator ++() {operator ++(0);}; + inline bool end() const {return File == Owner->PkgFileP?true:false;}; + + // Comparison + inline bool operator ==(const PkgFileIterator &B) const {return File == B.File;}; + inline bool operator !=(const PkgFileIterator &B) const {return File != B.File;}; + + // Accessors + inline PackageFile *operator ->() {return File;}; + inline PackageFile const *operator ->() const {return File;}; + inline PackageFile const &operator *() const {return *File;}; + inline operator PackageFile *() {return File == Owner->PkgFileP?0:File;}; + inline operator PackageFile const *() const {return File == Owner->PkgFileP?0:File;}; + inline pkgCache *Cache() {return Owner;}; + + inline const char *FileName() const {return File->FileName == 0?0:Owner->StrP + File->FileName;}; + inline const char *Archive() const {return File->Archive == 0?0:Owner->StrP + File->Archive;}; + inline const char *Component() const {return File->Component == 0?0:Owner->StrP + File->Component;}; + inline const char *Version() const {return File->Version == 0?0:Owner->StrP + File->Version;}; + inline const char *Origin() const {return File->Origin == 0?0:Owner->StrP + File->Origin;}; + inline const char *Label() const {return File->Label == 0?0:Owner->StrP + File->Label;}; + inline const char *Site() const {return File->Site == 0?0:Owner->StrP + File->Site;}; + inline const char *Architecture() const {return File->Architecture == 0?0:Owner->StrP + File->Architecture;}; + inline const char *IndexType() const {return File->IndexType == 0?0:Owner->StrP + File->IndexType;}; + + inline unsigned long Index() const {return File - Owner->PkgFileP;}; + + bool IsOk(); + string RelStr(); + + // Constructors + inline PkgFileIterator() : Owner(0), File(0) {}; + inline PkgFileIterator(pkgCache &Owner) : Owner(&Owner), File(Owner.PkgFileP) {}; + inline PkgFileIterator(pkgCache &Owner,PackageFile *Trg) : Owner(&Owner), File(Trg) {}; +}; + +// Version File +class pkgCache::VerFileIterator +{ + pkgCache *Owner; + VerFile *FileP; + + public: + + // Iteration + void operator ++(int) {if (FileP != Owner->VerFileP) FileP = Owner->VerFileP + FileP->NextFile;}; + inline void operator ++() {operator ++(0);}; + inline bool end() const {return FileP == Owner->VerFileP?true:false;}; + + // Comparison + inline bool operator ==(const VerFileIterator &B) const {return FileP == B.FileP;}; + inline bool operator !=(const VerFileIterator &B) const {return FileP != B.FileP;}; + + // Accessors + inline VerFile *operator ->() {return FileP;}; + inline VerFile const *operator ->() const {return FileP;}; + inline VerFile const &operator *() const {return *FileP;}; + inline operator VerFile *() {return FileP == Owner->VerFileP?0:FileP;}; + inline operator VerFile const *() const {return FileP == Owner->VerFileP?0:FileP;}; + inline pkgCache *Cache() {return Owner;}; + + inline PkgFileIterator File() const {return PkgFileIterator(*Owner,FileP->File + Owner->PkgFileP);}; + inline unsigned long Index() const {return FileP - Owner->VerFileP;}; + + inline VerFileIterator() : Owner(0), FileP(0) {}; + inline VerFileIterator(pkgCache &Owner,VerFile *Trg) : Owner(&Owner), FileP(Trg) {}; +}; + +// Inlined Begin functions cant be in the class because of order problems +inline pkgCache::VerIterator pkgCache::PkgIterator::VersionList() const + {return VerIterator(*Owner,Owner->VerP + Pkg->VersionList);}; +inline pkgCache::VerIterator pkgCache::PkgIterator::CurrentVer() const + {return VerIterator(*Owner,Owner->VerP + Pkg->CurrentVer);}; +inline pkgCache::DepIterator pkgCache::PkgIterator::RevDependsList() const + {return DepIterator(*Owner,Owner->DepP + Pkg->RevDepends,Pkg);}; +inline pkgCache::PrvIterator pkgCache::PkgIterator::ProvidesList() const + {return PrvIterator(*Owner,Owner->ProvideP + Pkg->ProvidesList,Pkg);}; +inline pkgCache::PrvIterator pkgCache::VerIterator::ProvidesList() const + {return PrvIterator(*Owner,Owner->ProvideP + Ver->ProvidesList,Ver);}; +inline pkgCache::DepIterator pkgCache::VerIterator::DependsList() const + {return DepIterator(*Owner,Owner->DepP + Ver->DependsList,Ver);}; +inline pkgCache::VerFileIterator pkgCache::VerIterator::FileList() const + {return VerFileIterator(*Owner,Owner->VerFileP + Ver->FileList);}; + +#endif diff --git a/apt-pkg/cdrom.cc b/apt-pkg/cdrom.cc new file mode 100644 index 0000000..ce1beb3 --- /dev/null +++ b/apt-pkg/cdrom.cc @@ -0,0 +1,808 @@ +/* + */ + +#ifdef __GNUG__ +#pragma implementation "apt-pkg/cdrom.h" +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#include "indexcopy.h" + +using namespace std; + +// FindPackages - Find the package files on the CDROM /*{{{*/ +// --------------------------------------------------------------------- +/* We look over the cdrom for package files. This is a recursive + search that short circuits when it his a package file in the dir. + This speeds it up greatly as the majority of the size is in the + binary-* sub dirs. */ +bool pkgCdrom::FindPackages(string CD,vector &List, + vector &SList, vector &SigList, + string &InfoDir, pkgCdromStatus *log, + unsigned int Depth) +{ + static ino_t Inodes[9]; + + // if we have a look we "pulse" now + if(log) + log->Update(); + + if (Depth >= 7) + return true; + + if (CD[CD.length()-1] != '/') + CD += '/'; + + if (chdir(CD.c_str()) != 0) + return _error->Errno("chdir","Unable to change to %s",CD.c_str()); + + // Look for a .disk subdirectory + struct stat Buf; + if (stat(".disk",&Buf) == 0) + { + if (InfoDir.empty() == true) + InfoDir = CD + ".disk/"; + } + + // Don't look into directories that have been marked to ingore. + if (stat(".aptignr",&Buf) == 0) + return true; + + + /* Check _first_ for a signature file as apt-cdrom assumes that all files + under a Packages/Source file are in control of that file and stops + the scanning + */ + if (stat("Release.gpg",&Buf) == 0) + { + SigList.push_back(CD); + } + /* Aha! We found some package files. We assume that everything under + this dir is controlled by those package files so we don't look down + anymore */ + if (stat("Packages",&Buf) == 0 || stat("Packages.gz",&Buf) == 0) + { + List.push_back(CD); + + // Continue down if thorough is given + if (_config->FindB("APT::CDROM::Thorough",false) == false) + return true; + } + if (stat("Sources.gz",&Buf) == 0 || stat("Sources",&Buf) == 0) + { + SList.push_back(CD); + + // Continue down if thorough is given + if (_config->FindB("APT::CDROM::Thorough",false) == false) + return true; + } + + DIR *D = opendir("."); + if (D == 0) + return _error->Errno("opendir","Unable to read %s",CD.c_str()); + + // Run over the directory + for (struct dirent *Dir = readdir(D); Dir != 0; Dir = readdir(D)) + { + // Skip some files.. + if (strcmp(Dir->d_name,".") == 0 || + strcmp(Dir->d_name,"..") == 0 || + //strcmp(Dir->d_name,"source") == 0 || + strcmp(Dir->d_name,".disk") == 0 || + strcmp(Dir->d_name,"experimental") == 0 || + strcmp(Dir->d_name,"binary-all") == 0 || + strcmp(Dir->d_name,"debian-installer") == 0) + continue; + + // See if the name is a sub directory + struct stat Buf; + if (stat(Dir->d_name,&Buf) != 0) + continue; + + if (S_ISDIR(Buf.st_mode) == 0) + continue; + + unsigned int I; + for (I = 0; I != Depth; I++) + if (Inodes[I] == Buf.st_ino) + break; + if (I != Depth) + continue; + + // Store the inodes weve seen + Inodes[Depth] = Buf.st_ino; + + // Descend + if (FindPackages(CD + Dir->d_name,List,SList,SigList,InfoDir,log,Depth+1) == false) + break; + + if (chdir(CD.c_str()) != 0) + return _error->Errno("chdir","Unable to change to %s",CD.c_str()); + }; + + closedir(D); + + return !_error->PendingError(); +} + +// Score - We compute a 'score' for a path /*{{{*/ +// --------------------------------------------------------------------- +/* Paths are scored based on how close they come to what I consider + normal. That is ones that have 'dist' 'stable' 'testing' will score + higher than ones without. */ +int pkgCdrom::Score(string Path) +{ + int Res = 0; + if (Path.find("stable/") != string::npos) + Res += 29; + if (Path.find("/binary-") != string::npos) + Res += 20; + if (Path.find("testing/") != string::npos) + Res += 28; + if (Path.find("unstable/") != string::npos) + Res += 27; + if (Path.find("/dists/") != string::npos) + Res += 40; + if (Path.find("/main/") != string::npos) + Res += 20; + if (Path.find("/contrib/") != string::npos) + Res += 20; + if (Path.find("/non-free/") != string::npos) + Res += 20; + if (Path.find("/non-US/") != string::npos) + Res += 20; + if (Path.find("/source/") != string::npos) + Res += 10; + if (Path.find("/debian/") != string::npos) + Res -= 10; + + // check for symlinks in the patch leading to the actual file + // a symlink gets a big penalty + struct stat Buf; + string statPath = flNotFile(Path); + string cdromPath = _config->FindDir("Acquire::cdrom::mount","/cdrom/"); + while(statPath != cdromPath && statPath != "./") { + statPath.resize(statPath.size()-1); // remove the trailing '/' + if (lstat(statPath.c_str(),&Buf) == 0) { + if(S_ISLNK(Buf.st_mode)) { + Res -= 60; + break; + } + } + statPath = flNotFile(statPath); // descent + } + + return Res; +} + + /*}}}*/ +// DropBinaryArch - Dump dirs with a string like /binary-/ /*{{{*/ +// --------------------------------------------------------------------- +/* Here we drop everything that is not this machines arch */ +bool pkgCdrom::DropBinaryArch(vector &List) +{ + char S[300]; + snprintf(S,sizeof(S),"/binary-%s/", + _config->Find("Apt::Architecture").c_str()); + + for (unsigned int I = 0; I < List.size(); I++) + { + const char *Str = List[I].c_str(); + + const char *Res; + if ((Res = strstr(Str,"/binary-")) == 0) + continue; + + // Weird, remove it. + if (strlen(Res) < strlen(S)) + { + List.erase(List.begin() + I); + I--; + continue; + } + + // See if it is our arch + if (stringcmp(Res,Res + strlen(S),S) == 0) + continue; + + // Erase it + List.erase(List.begin() + I); + I--; + } + + return true; +} + + +// DropRepeats - Drop repeated files resulting from symlinks /*{{{*/ +// --------------------------------------------------------------------- +/* Here we go and stat every file that we found and strip dup inodes. */ +bool pkgCdrom::DropRepeats(vector &List,const char *Name) +{ + // Get a list of all the inodes + ino_t *Inodes = new ino_t[List.size()]; + for (unsigned int I = 0; I != List.size(); I++) + { + struct stat Buf; + if (stat((List[I] + Name).c_str(),&Buf) != 0 && + stat((List[I] + Name + ".gz").c_str(),&Buf) != 0) + _error->Errno("stat","Failed to stat %s%s",List[I].c_str(), + Name); + Inodes[I] = Buf.st_ino; + } + + if (_error->PendingError() == true) + return false; + + // Look for dups + for (unsigned int I = 0; I != List.size(); I++) + { + for (unsigned int J = I+1; J < List.size(); J++) + { + // No match + if (Inodes[J] != Inodes[I]) + continue; + + // We score the two paths.. and erase one + int ScoreA = Score(List[I]); + int ScoreB = Score(List[J]); + if (ScoreA < ScoreB) + { + List[I] = string(); + break; + } + + List[J] = string(); + } + } + + // Wipe erased entries + for (unsigned int I = 0; I < List.size();) + { + if (List[I].empty() == false) + I++; + else + List.erase(List.begin()+I); + } + + return true; +} + /*}}}*/ + +// ReduceSourceList - Takes the path list and reduces it /*{{{*/ +// --------------------------------------------------------------------- +/* This takes the list of source list expressed entires and collects + similar ones to form a single entry for each dist */ +void pkgCdrom::ReduceSourcelist(string CD,vector &List) +{ + sort(List.begin(),List.end()); + + // Collect similar entries + for (vector::iterator I = List.begin(); I != List.end(); I++) + { + // Find a space.. + string::size_type Space = (*I).find(' '); + if (Space == string::npos) + continue; + string::size_type SSpace = (*I).find(' ',Space + 1); + if (SSpace == string::npos) + continue; + + string Word1 = string(*I,Space,SSpace-Space); + string Prefix = string(*I,0,Space); + for (vector::iterator J = List.begin(); J != I; J++) + { + // Find a space.. + string::size_type Space2 = (*J).find(' '); + if (Space2 == string::npos) + continue; + string::size_type SSpace2 = (*J).find(' ',Space2 + 1); + if (SSpace2 == string::npos) + continue; + + if (string(*J,0,Space2) != Prefix) + continue; + if (string(*J,Space2,SSpace2-Space2) != Word1) + continue; + + *J += string(*I,SSpace); + *I = string(); + } + } + + // Wipe erased entries + for (unsigned int I = 0; I < List.size();) + { + if (List[I].empty() == false) + I++; + else + List.erase(List.begin()+I); + } +} + /*}}}*/ +// WriteDatabase - Write the CDROM Database file /*{{{*/ +// --------------------------------------------------------------------- +/* We rewrite the configuration class associated with the cdrom database. */ +bool pkgCdrom::WriteDatabase(Configuration &Cnf) +{ + string DFile = _config->FindFile("Dir::State::cdroms"); + string NewFile = DFile + ".new"; + + unlink(NewFile.c_str()); + ofstream Out(NewFile.c_str()); + if (!Out) + return _error->Errno("ofstream::ofstream", + "Failed to open %s.new",DFile.c_str()); + + /* Write out all of the configuration directives by walking the + configuration tree */ + const Configuration::Item *Top = Cnf.Tree(0); + for (; Top != 0;) + { + // Print the config entry + if (Top->Value.empty() == false) + Out << Top->FullTag() + " \"" << Top->Value << "\";" << endl; + + if (Top->Child != 0) + { + Top = Top->Child; + continue; + } + + while (Top != 0 && Top->Next == 0) + Top = Top->Parent; + if (Top != 0) + Top = Top->Next; + } + + Out.close(); + + rename(DFile.c_str(),string(DFile + '~').c_str()); + if (rename(NewFile.c_str(),DFile.c_str()) != 0) + return _error->Errno("rename","Failed to rename %s.new to %s", + DFile.c_str(),DFile.c_str()); + + return true; +} + /*}}}*/ +// WriteSourceList - Write an updated sourcelist /*{{{*/ +// --------------------------------------------------------------------- +/* This reads the old source list and copies it into the new one. It + appends the new CDROM entires just after the first block of comments. + This places them first in the file. It also removes any old entries + that were the same. */ +bool pkgCdrom::WriteSourceList(string Name,vector &List,bool Source) +{ + if (List.size() == 0) + return true; + + string File = _config->FindFile("Dir::Etc::sourcelist"); + + // Open the stream for reading + ifstream F((FileExists(File)?File.c_str():"/dev/null"), + ios::in ); + if (!F != 0) + return _error->Errno("ifstream::ifstream","Opening %s",File.c_str()); + + string NewFile = File + ".new"; + unlink(NewFile.c_str()); + ofstream Out(NewFile.c_str()); + if (!Out) + return _error->Errno("ofstream::ofstream", + "Failed to open %s.new",File.c_str()); + + // Create a short uri without the path + string ShortURI = "cdrom:[" + Name + "]/"; + string ShortURI2 = "cdrom:" + Name + "/"; // For Compatibility + + string Type; + if (Source == true) + Type = "deb-src"; + else + Type = "deb"; + + char Buffer[300]; + int CurLine = 0; + bool First = true; + while (F.eof() == false) + { + F.getline(Buffer,sizeof(Buffer)); + CurLine++; + if (F.fail() && !F.eof()) + return _error->Error(_("Line %u too long in source list %s."), + CurLine,File.c_str()); + _strtabexpand(Buffer,sizeof(Buffer)); + _strstrip(Buffer); + + // Comment or blank + if (Buffer[0] == '#' || Buffer[0] == 0) + { + Out << Buffer << endl; + continue; + } + + if (First == true) + { + for (vector::iterator I = List.begin(); I != List.end(); I++) + { + string::size_type Space = (*I).find(' '); + if (Space == string::npos) + return _error->Error("Internal error"); + Out << Type << " cdrom:[" << Name << "]/" << string(*I,0,Space) << + " " << string(*I,Space+1) << endl; + } + } + First = false; + + // Grok it + string cType; + string URI; + const char *C = Buffer; + if (ParseQuoteWord(C,cType) == false || + ParseQuoteWord(C,URI) == false) + { + Out << Buffer << endl; + continue; + } + + // Emit lines like this one + if (cType != Type || (string(URI,0,ShortURI.length()) != ShortURI && + string(URI,0,ShortURI.length()) != ShortURI2)) + { + Out << Buffer << endl; + continue; + } + } + + // Just in case the file was empty + if (First == true) + { + for (vector::iterator I = List.begin(); I != List.end(); I++) + { + string::size_type Space = (*I).find(' '); + if (Space == string::npos) + return _error->Error("Internal error"); + + Out << "deb cdrom:[" << Name << "]/" << string(*I,0,Space) << + " " << string(*I,Space+1) << endl; + } + } + + Out.close(); + + rename(File.c_str(),string(File + '~').c_str()); + if (rename(NewFile.c_str(),File.c_str()) != 0) + return _error->Errno("rename","Failed to rename %s.new to %s", + File.c_str(),File.c_str()); + + return true; +} + + +bool pkgCdrom::Ident(string &ident, pkgCdromStatus *log) +{ + stringstream msg; + + // Startup + string CDROM = _config->FindDir("Acquire::cdrom::mount","/cdrom/"); + if (CDROM[0] == '.') + CDROM= SafeGetCWD() + '/' + CDROM; + + if(log) { + msg.str(""); + ioprintf(msg, _("Using CD-ROM mount point %s\nMounting CD-ROM\n"), + CDROM.c_str()); + log->Update(msg.str()); + } + if (MountCdrom(CDROM) == false) + return _error->Error("Failed to mount the cdrom."); + + // Hash the CD to get an ID + if(log) + log->Update(_("Identifying.. ")); + + + if (IdentCdrom(CDROM,ident) == false) + { + ident = ""; + return false; + } + + msg.str(""); + ioprintf(msg, "[%s]\n",ident.c_str()); + log->Update(msg.str()); + + + // Read the database + Configuration Database; + string DFile = _config->FindFile("Dir::State::cdroms"); + if (FileExists(DFile) == true) + { + if (ReadConfigFile(Database,DFile) == false) + return _error->Error("Unable to read the cdrom database %s", + DFile.c_str()); + } + if(log) { + msg.str(""); + ioprintf(msg, _("Stored label: %s \n"), + Database.Find("CD::"+ident).c_str()); + log->Update(msg.str()); + } + return true; +} + + +bool pkgCdrom::Add(pkgCdromStatus *log) +{ + stringstream msg; + + // Startup + string CDROM = _config->FindDir("Acquire::cdrom::mount","/cdrom/"); + if (CDROM[0] == '.') + CDROM= SafeGetCWD() + '/' + CDROM; + + if(log) { + log->SetTotal(STEP_LAST); + msg.str(""); + ioprintf(msg, _("Using CD-ROM mount point %s\n"), CDROM.c_str()); + log->Update(msg.str(), STEP_PREPARE); + } + + // Read the database + Configuration Database; + string DFile = _config->FindFile("Dir::State::cdroms"); + if (FileExists(DFile) == true) + { + if (ReadConfigFile(Database,DFile) == false) + return _error->Error("Unable to read the cdrom database %s", + DFile.c_str()); + } + + // Unmount the CD and get the user to put in the one they want + if (_config->FindB("APT::CDROM::NoMount",false) == false) + { + if(log) + log->Update(_("Unmounting CD-ROM\n"), STEP_UNMOUNT); + UnmountCdrom(CDROM); + + if(log) { + log->Update(_("Waiting for disc...\n"), STEP_WAIT); + if(!log->ChangeCdrom()) { + // user aborted + return false; + } + } + + // Mount the new CDROM + log->Update(_("Mounting CD-ROM...\n"), STEP_MOUNT); + if (MountCdrom(CDROM) == false) + return _error->Error("Failed to mount the cdrom."); + } + + // Hash the CD to get an ID + if(log) + log->Update(_("Identifying.. "), STEP_IDENT); + string ID; + if (IdentCdrom(CDROM,ID) == false) + { + log->Update("\n"); + return false; + } + if(log) + log->Update("["+ID+"]\n"); + + if(log) + log->Update(_("Scanning disc for index files..\n"),STEP_SCAN); + + // Get the CD structure + vector List; + vector SourceList; + vector SigList; + string StartDir = SafeGetCWD(); + string InfoDir; + if (FindPackages(CDROM,List,SourceList, SigList,InfoDir,log) == false) + { + log->Update("\n"); + return false; + } + + chdir(StartDir.c_str()); + + if (_config->FindB("Debug::aptcdrom",false) == true) + { + cout << "I found (binary):" << endl; + for (vector::iterator I = List.begin(); I != List.end(); I++) + cout << *I << endl; + cout << "I found (source):" << endl; + for (vector::iterator I = SourceList.begin(); I != SourceList.end(); I++) + cout << *I << endl; + cout << "I found (Signatures):" << endl; + for (vector::iterator I = SigList.begin(); I != SigList.end(); I++) + cout << *I << endl; + } + + //log->Update(_("Cleaning package lists..."), STEP_CLEAN); + + // Fix up the list + DropBinaryArch(List); + DropRepeats(List,"Packages"); + DropRepeats(SourceList,"Sources"); + DropRepeats(SigList,"Release.gpg"); + if(log) { + msg.str(""); + ioprintf(msg, _("Found %i package indexes, %i source indexes and " + "%i signatures\n"), + List.size(), SourceList.size(), SigList.size()); + log->Update(msg.str(), STEP_SCAN); + } + + if (List.size() == 0 && SourceList.size() == 0) + { + UnmountCdrom(CDROM); + return _error->Error("Unable to locate any package files, perhaps this is not a Debian Disc"); + } + + // Check if the CD is in the database + string Name; + if (Database.Exists("CD::" + ID) == false || + _config->FindB("APT::CDROM::Rename",false) == true) + { + // Try to use the CDs label if at all possible + if (InfoDir.empty() == false && + FileExists(InfoDir + "/info") == true) + { + ifstream F(string(InfoDir + "/info").c_str()); + if (!F == 0) + getline(F,Name); + + if (Name.empty() == false) + { + // Escape special characters + string::iterator J = Name.begin(); + for (; J != Name.end(); J++) + if (*J == '"' || *J == ']' || *J == '[') + *J = '_'; + + if(log) { + msg.str(""); + ioprintf(msg, "Found label '%s'\n", Name.c_str()); + log->Update(msg.str()); + } + Database.Set("CD::" + ID + "::Label",Name); + } + } + + if (_config->FindB("APT::CDROM::Rename",false) == true || + Name.empty() == true) + { + if(!log) + { + UnmountCdrom(CDROM); + return _error->Error("No disc name found and no way to ask for it"); + } + + while(true) { + if(!log->AskCdromName(Name)) { + // user canceld + return false; + } + cout << "Name: '" << Name << "'" << endl; + + if (Name.empty() == false && + Name.find('"') == string::npos && + Name.find('[') == string::npos && + Name.find(']') == string::npos) + break; + log->Update(_("That is not a valid name, try again.\n")); + } + } + } + else + Name = Database.Find("CD::" + ID); + + // Escape special characters + string::iterator J = Name.begin(); + for (; J != Name.end(); J++) + if (*J == '"' || *J == ']' || *J == '[') + *J = '_'; + + Database.Set("CD::" + ID,Name); + if(log) { + msg.str(""); + ioprintf(msg, _("This disc is called: \n'%s'\n"), Name.c_str()); + log->Update(msg.str()); + } + + log->Update(_("Copying package lists..."), STEP_COPY); + // take care of the signatures and copy them if they are ok + // (we do this before PackageCopy as it modifies "List" and "SourceList") + SigVerify SignVerify; + SignVerify.CopyAndVerify(CDROM, Name, SigList, List, SourceList); + + // Copy the package files to the state directory + PackageCopy Copy; + SourceCopy SrcCopy; + if (Copy.CopyPackages(CDROM,Name,List, log) == false || + SrcCopy.CopyPackages(CDROM,Name,SourceList, log) == false) + return false; + + // reduce the List so that it takes less space in sources.list + ReduceSourcelist(CDROM,List); + ReduceSourcelist(CDROM,SourceList); + + // Write the database and sourcelist + if (_config->FindB("APT::cdrom::NoAct",false) == false) + { + if (WriteDatabase(Database) == false) + return false; + + if(log) { + log->Update(_("Writing new source list\n"), STEP_WRITE); + } + if (WriteSourceList(Name,List,false) == false || + WriteSourceList(Name,SourceList,true) == false) + return false; + } + + // Print the sourcelist entries + if(log) + log->Update(_("Source list entries for this disc are:\n")); + + for (vector::iterator I = List.begin(); I != List.end(); I++) + { + string::size_type Space = (*I).find(' '); + if (Space == string::npos) + { + UnmountCdrom(CDROM); + return _error->Error("Internal error"); + } + + if(log) { + msg.str(""); + msg << "deb cdrom:[" << Name << "]/" << string(*I,0,Space) << + " " << string(*I,Space+1) << endl; + log->Update(msg.str()); + } + } + + for (vector::iterator I = SourceList.begin(); I != SourceList.end(); I++) + { + string::size_type Space = (*I).find(' '); + if (Space == string::npos) + { + UnmountCdrom(CDROM); + return _error->Error("Internal error"); + } + + if(log) { + msg.str(""); + msg << "deb-src cdrom:[" << Name << "]/" << string(*I,0,Space) << + " " << string(*I,Space+1) << endl; + log->Update(msg.str()); + } + } + + + + // Unmount and finish + if (_config->FindB("APT::CDROM::NoMount",false) == false) { + log->Update(_("Unmounting CD-ROM..."), STEP_LAST); + UnmountCdrom(CDROM); + } + + return true; +} diff --git a/apt-pkg/cdrom.h b/apt-pkg/cdrom.h new file mode 100644 index 0000000..085eb64 --- /dev/null +++ b/apt-pkg/cdrom.h @@ -0,0 +1,71 @@ +#ifndef PKGLIB_CDROM_H +#define PKGLIB_CDROM_H + +#include +#include +#include + +#ifdef __GNUG__ +#pragma interface "apt-pkg/cdrom.h" +#endif + +using namespace std; + +class pkgCdromStatus +{ + protected: + int totalSteps; + + public: + pkgCdromStatus() {}; + virtual ~pkgCdromStatus() {}; + + // total steps + virtual void SetTotal(int total) { totalSteps = total; }; + // update steps, will be called regularly as a "pulse" + virtual void Update(string text="", int current=0) = 0; + + // ask for cdrom insert + virtual bool ChangeCdrom() = 0; + // ask for cdrom name + virtual bool AskCdromName(string &Name) = 0; + // Progress indicator for the Index rewriter + virtual OpProgress* GetOpProgress() {return NULL; }; +}; + +class pkgCdrom +{ + protected: + enum { + STEP_PREPARE = 1, + STEP_UNMOUNT, + STEP_WAIT, + STEP_MOUNT, + STEP_IDENT, + STEP_SCAN, + STEP_COPY, + STEP_WRITE, + STEP_UNMOUNT3, + STEP_LAST + }; + + + bool FindPackages(string CD,vector &List, + vector &SList, vector &SigList, + string &InfoDir, pkgCdromStatus *log, + unsigned int Depth = 0); + bool DropBinaryArch(vector &List); + bool DropRepeats(vector &List,const char *Name); + void ReduceSourcelist(string CD,vector &List); + bool WriteDatabase(Configuration &Cnf); + bool WriteSourceList(string Name,vector &List,bool Source); + int Score(string Path); + + public: + bool Ident(string &ident, pkgCdromStatus *log); + bool Add(pkgCdromStatus *log); +}; + + + +#endif diff --git a/apt-pkg/clean.cc b/apt-pkg/clean.cc new file mode 100644 index 0000000..0d623d8 --- /dev/null +++ b/apt-pkg/clean.cc @@ -0,0 +1,124 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: clean.cc,v 1.4 2001/02/20 07:03:17 jgg Exp $ +/* ###################################################################### + + Clean - Clean out downloaded directories + + ##################################################################### */ + /*}}}*/ +// Includes /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/clean.h" +#endif + +#include +#include +#include +#include + +#include + +#include +#include +#include + /*}}}*/ + +// ArchiveCleaner::Go - Perform smart cleanup of the archive /*{{{*/ +// --------------------------------------------------------------------- +/* Scan the directory for files to erase, we check the version information + against our database to see if it is interesting */ +bool pkgArchiveCleaner::Go(string Dir,pkgCache &Cache) +{ + bool CleanInstalled = _config->FindB("APT::Clean-Installed",true); + string MyArch = _config->Find("APT::Architecture"); + + DIR *D = opendir(Dir.c_str()); + if (D == 0) + return _error->Errno("opendir",_("Unable to read %s"),Dir.c_str()); + + string StartDir = SafeGetCWD(); + if (chdir(Dir.c_str()) != 0) + { + closedir(D); + return _error->Errno("chdir",_("Unable to change to %s"),Dir.c_str()); + } + + for (struct dirent *Dir = readdir(D); Dir != 0; Dir = readdir(D)) + { + // Skip some files.. + if (strcmp(Dir->d_name,"lock") == 0 || + strcmp(Dir->d_name,"partial") == 0 || + strcmp(Dir->d_name,".") == 0 || + strcmp(Dir->d_name,"..") == 0) + continue; + + struct stat St; + if (stat(Dir->d_name,&St) != 0) + { + chdir(StartDir.c_str()); + closedir(D); + return _error->Errno("stat",_("Unable to stat %s."),Dir->d_name); + } + + // Grab the package name + const char *I = Dir->d_name; + for (; *I != 0 && *I != '_';I++); + if (*I != '_') + continue; + string Pkg = DeQuoteString(string(Dir->d_name,I-Dir->d_name)); + + // Grab the version + const char *Start = I + 1; + for (I = Start; *I != 0 && *I != '_';I++); + if (*I != '_') + continue; + string Ver = DeQuoteString(string(Start,I-Start)); + + // Grab the arch + Start = I + 1; + for (I = Start; *I != 0 && *I != '.' ;I++); + if (*I != '.') + continue; + string Arch = DeQuoteString(string(Start,I-Start)); + + if (Arch != "all" && Arch != MyArch) + continue; + + // Lookup the package + pkgCache::PkgIterator P = Cache.FindPkg(Pkg); + if (P.end() != true) + { + pkgCache::VerIterator V = P.VersionList(); + for (; V.end() == false; V++) + { + // See if we can fetch this version at all + bool IsFetchable = false; + for (pkgCache::VerFileIterator J = V.FileList(); + J.end() == false; J++) + { + if (CleanInstalled == true && + (J.File()->Flags & pkgCache::Flag::NotSource) != 0) + continue; + IsFetchable = true; + break; + } + + // See if this verison matches the file + if (IsFetchable == true && Ver == V.VerStr()) + break; + } + + // We found a match, keep the file + if (V.end() == false) + continue; + } + + Erase(Dir->d_name,Pkg,Ver,St); + }; + + chdir(StartDir.c_str()); + closedir(D); + return true; +} + /*}}}*/ diff --git a/apt-pkg/clean.h b/apt-pkg/clean.h new file mode 100644 index 0000000..43164e2 --- /dev/null +++ b/apt-pkg/clean.h @@ -0,0 +1,31 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: clean.h,v 1.2 1999/07/20 05:53:33 jgg Exp $ +/* ###################################################################### + + Clean - Clean out downloaded directories + + ##################################################################### */ + /*}}}*/ +#ifndef APTPKG_CLEAN_H +#define APTPKG_CLEAN_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/clean.h" +#endif + +#include + +class pkgArchiveCleaner +{ + protected: + + virtual void Erase(const char * /*File*/,string /*Pkg*/,string /*Ver*/,struct stat & /*St*/) {}; + + public: + + bool Go(string Dir,pkgCache &Cache); + virtual ~pkgArchiveCleaner() {}; +}; + +#endif diff --git a/apt-pkg/contrib/cdromutl.cc b/apt-pkg/contrib/cdromutl.cc new file mode 100644 index 0000000..ab170ec --- /dev/null +++ b/apt-pkg/contrib/cdromutl.cc @@ -0,0 +1,204 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: cdromutl.cc,v 1.12 2001/02/20 07:03:17 jgg Exp $ +/* ###################################################################### + + CDROM Utilities - Some functions to manipulate CDROM mounts. + + These are here for the cdrom method and apt-cdrom. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/cdromutl.h" +#endif +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + /*}}}*/ + +// IsMounted - Returns true if the mount point is mounted /*{{{*/ +// --------------------------------------------------------------------- +/* This is a simple algorithm that should always work, we stat the mount point + and the '..' file in the mount point and see if they are on the same device. + By definition if they are the same then it is not mounted. This should + account for symlinked mount points as well. */ +bool IsMounted(string &Path) +{ + if (Path.empty() == true) + return false; + + // Need that trailing slash for directories + if (Path[Path.length() - 1] != '/') + Path += '/'; + + /* First we check if the path is actualy mounted, we do this by + stating the path and the previous directory (carefull of links!) + and comparing their device fields. */ + struct stat Buf,Buf2; + if (stat(Path.c_str(),&Buf) != 0 || + stat((Path + "../").c_str(),&Buf2) != 0) + return _error->Errno("stat",_("Unable to stat the mount point %s"),Path.c_str()); + + if (Buf.st_dev == Buf2.st_dev) + return false; + return true; +} + /*}}}*/ +// UnmountCdrom - Unmount a cdrom /*{{{*/ +// --------------------------------------------------------------------- +/* Forking umount works much better than the umount syscall which can + leave /etc/mtab inconsitant. We drop all messages this produces. */ +bool UnmountCdrom(string Path) +{ + if (IsMounted(Path) == false) + return true; + + int Child = ExecFork(); + + // The child + if (Child == 0) + { + // Make all the fds /dev/null + for (int I = 0; I != 3; I++) + dup2(open("/dev/null",O_RDWR),I); + + if (_config->Exists("Acquire::cdrom::"+Path+"::UMount") == true) + { + if (system(_config->Find("Acquire::cdrom::"+Path+"::UMount").c_str()) != 0) + _exit(100); + _exit(0); + } + else + { + const char *Args[10]; + Args[0] = "umount"; + Args[1] = Path.c_str(); + Args[2] = 0; + execvp(Args[0],(char **)Args); + _exit(100); + } + } + + // Wait for mount + return ExecWait(Child,"umount",true); +} + /*}}}*/ +// MountCdrom - Mount a cdrom /*{{{*/ +// --------------------------------------------------------------------- +/* We fork mount and drop all messages */ +bool MountCdrom(string Path) +{ + if (IsMounted(Path) == true) + return true; + + int Child = ExecFork(); + + // The child + if (Child == 0) + { + // Make all the fds /dev/null + for (int I = 0; I != 3; I++) + dup2(open("/dev/null",O_RDWR),I); + + if (_config->Exists("Acquire::cdrom::"+Path+"::Mount") == true) + { + if (system(_config->Find("Acquire::cdrom::"+Path+"::Mount").c_str()) != 0) + _exit(100); + _exit(0); + } + else + { + const char *Args[10]; + Args[0] = "mount"; + Args[1] = Path.c_str(); + Args[2] = 0; + execvp(Args[0],(char **)Args); + _exit(100); + } + } + + // Wait for mount + return ExecWait(Child,"mount",true); +} + /*}}}*/ +// IdentCdrom - Generate a unique string for this CD /*{{{*/ +// --------------------------------------------------------------------- +/* We convert everything we hash into a string, this prevents byte size/order + from effecting the outcome. */ +bool IdentCdrom(string CD,string &Res,unsigned int Version) +{ + MD5Summation Hash; + + string StartDir = SafeGetCWD(); + if (chdir(CD.c_str()) != 0) + return _error->Errno("chdir",_("Unable to change to %s"),CD.c_str()); + + DIR *D = opendir("."); + if (D == 0) + return _error->Errno("opendir",_("Unable to read %s"),CD.c_str()); + + /* Run over the directory, we assume that the reader order will never + change as the media is read-only. In theory if the kernel did + some sort of wacked caching this might not be true.. */ + char S[300]; + for (struct dirent *Dir = readdir(D); Dir != 0; Dir = readdir(D)) + { + // Skip some files.. + if (strcmp(Dir->d_name,".") == 0 || + strcmp(Dir->d_name,"..") == 0) + continue; + + if (Version <= 1) + { + sprintf(S,"%lu",(unsigned long)Dir->d_ino); + } + else + { + struct stat Buf; + if (stat(Dir->d_name,&Buf) != 0) + continue; + sprintf(S,"%lu",(unsigned long)Buf.st_mtime); + } + + Hash.Add(S); + Hash.Add(Dir->d_name); + }; + + chdir(StartDir.c_str()); + closedir(D); + + // Some stats from the fsys + if (_config->FindB("Debug::identcdrom",false) == false) + { + struct statvfs Buf; + if (statvfs(CD.c_str(),&Buf) != 0) + return _error->Errno("statfs",_("Failed to stat the cdrom")); + + // We use a kilobyte block size to advoid overflow + sprintf(S,"%lu %lu",(long)(Buf.f_blocks*(Buf.f_bsize/1024)), + (long)(Buf.f_bfree*(Buf.f_bsize/1024))); + Hash.Add(S); + sprintf(S,"-%u",Version); + } + else + sprintf(S,"-%u.debug",Version); + + Res = Hash.Result().Value() + S; + return true; +} + /*}}}*/ diff --git a/apt-pkg/contrib/cdromutl.h b/apt-pkg/contrib/cdromutl.h new file mode 100644 index 0000000..3180a03 --- /dev/null +++ b/apt-pkg/contrib/cdromutl.h @@ -0,0 +1,25 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: cdromutl.h,v 1.3 2001/05/07 05:06:52 jgg Exp $ +/* ###################################################################### + + CDROM Utilities - Some functions to manipulate CDROM mounts. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_CDROMUTL_H +#define PKGLIB_ACQUIRE_METHOD_H + +#include + +using std::string; + +#ifdef __GNUG__ +#pragma interface "apt-pkg/cdromutl.h" +#endif + +bool MountCdrom(string Path); +bool UnmountCdrom(string Path); +bool IdentCdrom(string CD,string &Res,unsigned int Version = 2); + +#endif diff --git a/apt-pkg/contrib/cmndline.cc b/apt-pkg/contrib/cmndline.cc new file mode 100644 index 0000000..2b3d7dc --- /dev/null +++ b/apt-pkg/contrib/cmndline.cc @@ -0,0 +1,356 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: cmndline.cc,v 1.15 2003/02/10 01:40:58 doogie Exp $ +/* ###################################################################### + + Command Line Class - Sophisticated command line parser + + This source is placed in the Public Domain, do with it what you will + It was originally written by Jason Gunthorpe . + + ##################################################################### */ + /*}}}*/ +// Include files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/cmndline.h" +#endif +#include +#include +#include + +#include + /*}}}*/ +using namespace std; + +// CommandLine::CommandLine - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +CommandLine::CommandLine(Args *AList,Configuration *Conf) : ArgList(AList), + Conf(Conf), FileList(0) +{ +} + /*}}}*/ +// CommandLine::~CommandLine - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +CommandLine::~CommandLine() +{ + delete [] FileList; +} + /*}}}*/ +// CommandLine::Parse - Main action member /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool CommandLine::Parse(int argc,const char **argv) +{ + delete [] FileList; + FileList = new const char *[argc]; + const char **Files = FileList; + int I; + for (I = 1; I != argc; I++) + { + const char *Opt = argv[I]; + + // It is not an option + if (*Opt != '-') + { + *Files++ = Opt; + continue; + } + + Opt++; + + // Double dash signifies the end of option processing + if (*Opt == '-' && Opt[1] == 0) + { + I++; + break; + } + + // Single dash is a short option + if (*Opt != '-') + { + // Iterate over each letter + while (*Opt != 0) + { + // Search for the option + Args *A; + for (A = ArgList; A->end() == false && A->ShortOpt != *Opt; A++); + if (A->end() == true) + return _error->Error(_("Command line option '%c' [from %s] is not known."),*Opt,argv[I]); + + if (HandleOpt(I,argc,argv,Opt,A) == false) + return false; + if (*Opt != 0) + Opt++; + } + continue; + } + + Opt++; + + // Match up to a = against the list + const char *OptEnd = Opt; + Args *A; + for (; *OptEnd != 0 && *OptEnd != '='; OptEnd++); + for (A = ArgList; A->end() == false && + stringcasecmp(Opt,OptEnd,A->LongOpt) != 0; A++); + + // Failed, look for a word after the first - (no-foo) + bool PreceedMatch = false; + if (A->end() == true) + { + for (; Opt != OptEnd && *Opt != '-'; Opt++); + + if (Opt == OptEnd) + return _error->Error(_("Command line option %s is not understood"),argv[I]); + Opt++; + + for (A = ArgList; A->end() == false && + stringcasecmp(Opt,OptEnd,A->LongOpt) != 0; A++); + + // Failed again.. + if (A->end() == true && OptEnd - Opt != 1) + return _error->Error(_("Command line option %s is not understood"),argv[I]); + + // The option could be a single letter option prefixed by a no-.. + if (A->end() == true) + { + for (A = ArgList; A->end() == false && A->ShortOpt != *Opt; A++); + + if (A->end() == true) + return _error->Error(_("Command line option %s is not understood"),argv[I]); + } + + // The option is not boolean + if (A->IsBoolean() == false) + return _error->Error(_("Command line option %s is not boolean"),argv[I]); + PreceedMatch = true; + } + + // Deal with it. + OptEnd--; + if (HandleOpt(I,argc,argv,OptEnd,A,PreceedMatch) == false) + return false; + } + + // Copy any remaining file names over + for (; I != argc; I++) + *Files++ = argv[I]; + *Files = 0; + + return true; +} + /*}}}*/ +// CommandLine::HandleOpt - Handle a single option including all flags /*{{{*/ +// --------------------------------------------------------------------- +/* This is a helper function for parser, it looks at a given argument + and looks for specific patterns in the string, it gets tokanized + -ruffly- like -*[yes|true|enable]-(o|longopt)[=][ ][argument] */ +bool CommandLine::HandleOpt(int &I,int argc,const char *argv[], + const char *&Opt,Args *A,bool PreceedMatch) +{ + const char *Argument = 0; + bool CertainArg = false; + int IncI = 0; + + /* Determine the possible location of an option or 0 if their is + no option */ + if (Opt[1] == 0 || (Opt[1] == '=' && Opt[2] == 0)) + { + if (I + 1 < argc && argv[I+1][0] != '-') + Argument = argv[I+1]; + + // Equals was specified but we fell off the end! + if (Opt[1] == '=' && Argument == 0) + return _error->Error(_("Option %s requires an argument."),argv[I]); + if (Opt[1] == '=') + CertainArg = true; + + IncI = 1; + } + else + { + if (Opt[1] == '=') + { + CertainArg = true; + Argument = Opt + 2; + } + else + Argument = Opt + 1; + } + + // Option is an argument set + if ((A->Flags & HasArg) == HasArg) + { + if (Argument == 0) + return _error->Error(_("Option %s requires an argument."),argv[I]); + Opt += strlen(Opt); + I += IncI; + + // Parse a configuration file + if ((A->Flags & ConfigFile) == ConfigFile) + return ReadConfigFile(*Conf,Argument); + + // Arbitary item specification + if ((A->Flags & ArbItem) == ArbItem) + { + const char *J; + for (J = Argument; *J != 0 && *J != '='; J++); + if (*J == 0) + return _error->Error(_("Option %s: Configuration item specification must have an =."),argv[I]); + + // = is trailing + if (J[1] == 0) + { + if (I+1 >= argc) + return _error->Error(_("Option %s: Configuration item specification must have an =."),argv[I]); + Conf->Set(string(Argument,J-Argument),string(argv[I++ +1])); + } + else + Conf->Set(string(Argument,J-Argument),string(J+1)); + + return true; + } + + const char *I = A->ConfName; + for (; *I != 0 && *I != ' '; I++); + if (*I == ' ') + Conf->Set(string(A->ConfName,0,I-A->ConfName),string(I+1) + Argument); + else + Conf->Set(A->ConfName,string(I) + Argument); + + return true; + } + + // Option is an integer level + if ((A->Flags & IntLevel) == IntLevel) + { + // There might be an argument + if (Argument != 0) + { + char *EndPtr; + unsigned long Value = strtol(Argument,&EndPtr,10); + + // Conversion failed and the argument was specified with an =s + if (EndPtr == Argument && CertainArg == true) + return _error->Error(_("Option %s requires an integer argument, not '%s'"),argv[I],Argument); + + // Conversion was ok, set the value and return + if (EndPtr != 0 && EndPtr != Argument && *EndPtr == 0) + { + Conf->Set(A->ConfName,Value); + Opt += strlen(Opt); + I += IncI; + return true; + } + } + + // Increase the level + Conf->Set(A->ConfName,Conf->FindI(A->ConfName)+1); + return true; + } + + // Option is a boolean + int Sense = -1; // -1 is unspecified, 0 is yes 1 is no + + // Look for an argument. + while (1) + { + // Look at preceeding text + char Buffer[300]; + if (Argument == 0) + { + if (PreceedMatch == false) + break; + + if (strlen(argv[I]) >= sizeof(Buffer)) + return _error->Error(_("Option '%s' is too long"),argv[I]); + + // Skip the leading dash + const char *J = argv[I]; + for (; *J != 0 && *J == '-'; J++); + + const char *JEnd = J; + for (; *JEnd != 0 && *JEnd != '-'; JEnd++); + if (*JEnd != 0) + { + strncpy(Buffer,J,JEnd - J); + Buffer[JEnd - J] = 0; + Argument = Buffer; + CertainArg = true; + } + else + break; + } + + // Check for boolean + Sense = StringToBool(Argument); + if (Sense >= 0) + { + // Eat the argument + if (Argument != Buffer) + { + Opt += strlen(Opt); + I += IncI; + } + break; + } + + if (CertainArg == true) + return _error->Error(_("Sense %s is not understood, try true or false."),Argument); + + Argument = 0; + } + + // Indeterminate sense depends on the flag + if (Sense == -1) + { + if ((A->Flags & InvBoolean) == InvBoolean) + Sense = 0; + else + Sense = 1; + } + + Conf->Set(A->ConfName,Sense); + return true; +} + /*}}}*/ +// CommandLine::FileSize - Count the number of filenames /*{{{*/ +// --------------------------------------------------------------------- +/* */ +unsigned int CommandLine::FileSize() const +{ + unsigned int Count = 0; + for (const char **I = FileList; I != 0 && *I != 0; I++) + Count++; + return Count; +} + /*}}}*/ +// CommandLine::DispatchArg - Do something with the first arg /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool CommandLine::DispatchArg(Dispatch *Map,bool NoMatch) +{ + int I; + for (I = 0; Map[I].Match != 0; I++) + { + if (strcmp(FileList[0],Map[I].Match) == 0) + { + bool Res = Map[I].Handler(*this); + if (Res == false && _error->PendingError() == false) + _error->Error("Handler silently failed"); + return Res; + } + } + + // No matching name + if (Map[I].Match == 0) + { + if (NoMatch == true) + _error->Error(_("Invalid operation %s"),FileList[0]); + } + + return false; +} + /*}}}*/ diff --git a/apt-pkg/contrib/cmndline.h b/apt-pkg/contrib/cmndline.h new file mode 100644 index 0000000..8f46129 --- /dev/null +++ b/apt-pkg/contrib/cmndline.h @@ -0,0 +1,106 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: cmndline.h,v 1.7 1999/10/31 06:32:28 jgg Exp $ +/* ###################################################################### + + Command Line Class - Sophisticated command line parser + + This class provides a unified command line parser/option handliner/ + configuration mechanism. It allows the caller to specify the option + set and map the option set into the configuration class or other + special functioning. + + Filenames are stripped from the option stream and put into their + own array. + + The argument descriptor array can be initialized as: + + CommandLine::Args Args[] = + {{'q',"quiet","apt::get::quiet",CommandLine::IntLevel}, + {0,0,0,0}}; + + The flags mean, + HasArg - Means the argument has a value + IntLevel - Means the argument is an integer level indication, the + following -qqqq (+3) -q5 (=5) -q=5 (=5) are valid + Boolean - Means it is true/false or yes/no. + -d (true) --no-d (false) --yes-d (true) + --long (true) --no-long (false) --yes-long (true) + -d=yes (true) -d=no (false) Words like enable, disable, + true false, yes no and on off are recognized in logical + places. + InvBoolean - Same as boolean but the case with no specified sense + (first case) is set to false. + ConfigFile - Means this flag should be interprited as the name of + a config file to read in at this point in option processing. + Implies HasArg. + ArbItem - Means the item is an arbitary configuration string of + the form item=value, where item is passed directly + to the configuration class. + The default, if the flags are 0 is to use Boolean + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_CMNDLINE_H +#define PKGLIB_CMNDLINE_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/cmndline.h" +#endif + +#include + +class CommandLine +{ + public: + struct Args; + struct Dispatch; + + protected: + + Args *ArgList; + Configuration *Conf; + bool HandleOpt(int &I,int argc,const char *argv[], + const char *&Opt,Args *A,bool PreceedeMatch = false); + + public: + + enum AFlags + { + HasArg = (1 << 0), + IntLevel = (1 << 1), + Boolean = (1 << 2), + InvBoolean = (1 << 3), + ConfigFile = (1 << 4) | HasArg, + ArbItem = (1 << 5) | HasArg + }; + + const char **FileList; + + bool Parse(int argc,const char **argv); + void ShowHelp(); + unsigned int FileSize() const; + bool DispatchArg(Dispatch *List,bool NoMatch = true); + + CommandLine(Args *AList,Configuration *Conf); + ~CommandLine(); +}; + +struct CommandLine::Args +{ + char ShortOpt; + const char *LongOpt; + const char *ConfName; + unsigned long Flags; + + inline bool end() {return ShortOpt == 0 && LongOpt == 0;}; + inline bool IsBoolean() {return Flags == 0 || (Flags & (Boolean|InvBoolean)) != 0;}; +}; + +struct CommandLine::Dispatch +{ + const char *Match; + bool (*Handler)(CommandLine &); +}; + +#endif diff --git a/apt-pkg/contrib/configuration.cc b/apt-pkg/contrib/configuration.cc new file mode 100644 index 0000000..14a000f --- /dev/null +++ b/apt-pkg/contrib/configuration.cc @@ -0,0 +1,785 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: configuration.cc,v 1.28 2004/04/30 04:00:15 mdz Exp $ +/* ###################################################################### + + Configuration Class + + This class provides a configuration file and command line parser + for a tree-oriented configuration environment. All runtime configuration + is stored in here. + + This source is placed in the Public Domain, do with it what you will + It was originally written by Jason Gunthorpe . + + ##################################################################### */ + /*}}}*/ +// Include files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/configuration.h" +#endif +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include + +using namespace std; + /*}}}*/ + +Configuration *_config = new Configuration; + +// Configuration::Configuration - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +Configuration::Configuration() : ToFree(true) +{ + Root = new Item; +} +Configuration::Configuration(const Item *Root) : Root((Item *)Root), ToFree(false) +{ +}; + + /*}}}*/ +// Configuration::~Configuration - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +Configuration::~Configuration() +{ + if (ToFree == false) + return; + + Item *Top = Root; + for (; Top != 0;) + { + if (Top->Child != 0) + { + Top = Top->Child; + continue; + } + + while (Top != 0 && Top->Next == 0) + { + Item *Parent = Top->Parent; + delete Top; + Top = Parent; + } + if (Top != 0) + { + Item *Next = Top->Next; + delete Top; + Top = Next; + } + } +} + /*}}}*/ +// Configuration::Lookup - Lookup a single item /*{{{*/ +// --------------------------------------------------------------------- +/* This will lookup a single item by name below another item. It is a + helper function for the main lookup function */ +Configuration::Item *Configuration::Lookup(Item *Head,const char *S, + unsigned long Len,bool Create) +{ + int Res = 1; + Item *I = Head->Child; + Item **Last = &Head->Child; + + // Empty strings match nothing. They are used for lists. + if (Len != 0) + { + for (; I != 0; Last = &I->Next, I = I->Next) + if ((Res = stringcasecmp(I->Tag,S,S + Len)) == 0) + break; + } + else + for (; I != 0; Last = &I->Next, I = I->Next); + + if (Res == 0) + return I; + if (Create == false) + return 0; + + I = new Item; + I->Tag.assign(S,Len); + I->Next = *Last; + I->Parent = Head; + *Last = I; + return I; +} + /*}}}*/ +// Configuration::Lookup - Lookup a fully scoped item /*{{{*/ +// --------------------------------------------------------------------- +/* This performs a fully scoped lookup of a given name, possibly creating + new items */ +Configuration::Item *Configuration::Lookup(const char *Name,bool Create) +{ + if (Name == 0) + return Root->Child; + + const char *Start = Name; + const char *End = Start + strlen(Name); + const char *TagEnd = Name; + Item *Itm = Root; + for (; End - TagEnd >= 2; TagEnd++) + { + if (TagEnd[0] == ':' && TagEnd[1] == ':') + { + Itm = Lookup(Itm,Start,TagEnd - Start,Create); + if (Itm == 0) + return 0; + TagEnd = Start = TagEnd + 2; + } + } + + // This must be a trailing ::, we create unique items in a list + if (End - Start == 0) + { + if (Create == false) + return 0; + } + + Itm = Lookup(Itm,Start,End - Start,Create); + return Itm; +} + /*}}}*/ +// Configuration::Find - Find a value /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string Configuration::Find(const char *Name,const char *Default) const +{ + const Item *Itm = Lookup(Name); + if (Itm == 0 || Itm->Value.empty() == true) + { + if (Default == 0) + return ""; + else + return Default; + } + + return Itm->Value; +} + /*}}}*/ +// Configuration::FindFile - Find a Filename /*{{{*/ +// --------------------------------------------------------------------- +/* Directories are stored as the base dir in the Parent node and the + sub directory in sub nodes with the final node being the end filename + */ +string Configuration::FindFile(const char *Name,const char *Default) const +{ + const Item *Itm = Lookup(Name); + if (Itm == 0 || Itm->Value.empty() == true) + { + if (Default == 0) + return ""; + else + return Default; + } + + string val = Itm->Value; + while (Itm->Parent != 0 && Itm->Parent->Value.empty() == false) + { + // Absolute + if (val.length() >= 1 && val[0] == '/') + break; + + // ~/foo or ./foo + if (val.length() >= 2 && (val[0] == '~' || val[0] == '.') && val[1] == '/') + break; + + // ../foo + if (val.length() >= 3 && val[0] == '.' && val[1] == '.' && val[2] == '/') + break; + + if (Itm->Parent->Value.end()[-1] != '/') + val.insert(0, "/"); + + val.insert(0, Itm->Parent->Value); + Itm = Itm->Parent; + } + + return val; +} + /*}}}*/ +// Configuration::FindDir - Find a directory name /*{{{*/ +// --------------------------------------------------------------------- +/* This is like findfile execept the result is terminated in a / */ +string Configuration::FindDir(const char *Name,const char *Default) const +{ + string Res = FindFile(Name,Default); + if (Res.end()[-1] != '/') + return Res + '/'; + return Res; +} + /*}}}*/ +// Configuration::FindI - Find an integer value /*{{{*/ +// --------------------------------------------------------------------- +/* */ +int Configuration::FindI(const char *Name,int Default) const +{ + const Item *Itm = Lookup(Name); + if (Itm == 0 || Itm->Value.empty() == true) + return Default; + + char *End; + int Res = strtol(Itm->Value.c_str(),&End,0); + if (End == Itm->Value.c_str()) + return Default; + + return Res; +} + /*}}}*/ +// Configuration::FindB - Find a boolean type /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool Configuration::FindB(const char *Name,bool Default) const +{ + const Item *Itm = Lookup(Name); + if (Itm == 0 || Itm->Value.empty() == true) + return Default; + + return StringToBool(Itm->Value,Default); +} + /*}}}*/ +// Configuration::FindAny - Find an arbitrary type /*{{{*/ +// --------------------------------------------------------------------- +/* a key suffix of /f, /d, /b or /i calls Find{File,Dir,B,I} */ +string Configuration::FindAny(const char *Name,const char *Default) const +{ + string key = Name; + char type = 0; + + if (key.size() > 2 && key.end()[-2] == '/') + { + type = key.end()[-1]; + key.resize(key.size() - 2); + } + + switch (type) + { + // file + case 'f': + return FindFile(key.c_str(), Default); + + // directory + case 'd': + return FindDir(key.c_str(), Default); + + // bool + case 'b': + return FindB(key, Default) ? "true" : "false"; + + // int + case 'i': + { + char buf[16]; + snprintf(buf, sizeof(buf)-1, "%d", FindI(key, Default ? atoi(Default) : 0 )); + return buf; + } + } + + // fallback + return Find(Name, Default); +} + /*}}}*/ +// Configuration::CndSet - Conditinal Set a value /*{{{*/ +// --------------------------------------------------------------------- +/* This will not overwrite */ +void Configuration::CndSet(const char *Name,const string &Value) +{ + Item *Itm = Lookup(Name,true); + if (Itm == 0) + return; + if (Itm->Value.empty() == true) + Itm->Value = Value; +} + /*}}}*/ +// Configuration::Set - Set a value /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void Configuration::Set(const char *Name,const string &Value) +{ + Item *Itm = Lookup(Name,true); + if (Itm == 0) + return; + Itm->Value = Value; +} + /*}}}*/ +// Configuration::Set - Set an integer value /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void Configuration::Set(const char *Name,int Value) +{ + Item *Itm = Lookup(Name,true); + if (Itm == 0) + return; + char S[300]; + snprintf(S,sizeof(S),"%i",Value); + Itm->Value = S; +} + /*}}}*/ +// Configuration::Clear - Clear an single value from a list /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void Configuration::Clear(const string Name, int Value) +{ + char S[300]; + snprintf(S,sizeof(S),"%i",Value); + Clear(Name, S); +} + /*}}}*/ +// Configuration::Clear - Clear an single value from a list /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void Configuration::Clear(const string Name, string Value) +{ + Item *Top = Lookup(Name.c_str(),false); + if (Top == 0 || Top->Child == 0) + return; + + Item *Tmp, *Prev, *I; + Prev = I = Top->Child; + + while(I != NULL) + { + if(I->Value == Value) + { + Tmp = I; + // was first element, point parent to new first element + if(Top->Child == Tmp) + Top->Child = I->Next; + I = I->Next; + Prev->Next = I; + delete Tmp; + } else { + Prev = I; + I = I->Next; + } + } + +} + /*}}}*/ +// Configuration::Clear - Clear an entire tree /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void Configuration::Clear(string Name) +{ + Item *Top = Lookup(Name.c_str(),false); + if (Top == 0) + return; + + Top->Value.clear(); + Item *Stop = Top; + Top = Top->Child; + Stop->Child = 0; + for (; Top != 0;) + { + if (Top->Child != 0) + { + Top = Top->Child; + continue; + } + + while (Top != 0 && Top->Next == 0) + { + Item *Tmp = Top; + Top = Top->Parent; + delete Tmp; + + if (Top == Stop) + return; + } + + Item *Tmp = Top; + if (Top != 0) + Top = Top->Next; + delete Tmp; + } +} + /*}}}*/ +// Configuration::Exists - Returns true if the Name exists /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool Configuration::Exists(const char *Name) const +{ + const Item *Itm = Lookup(Name); + if (Itm == 0) + return false; + return true; +} + /*}}}*/ +// Configuration::ExistsAny - Returns true if the Name, possibly /*{{{*/ +// --------------------------------------------------------------------- +/* qualified by /[fdbi] exists */ +bool Configuration::ExistsAny(const char *Name) const +{ + string key = Name; + + if (key.size() > 2 && key.end()[-2] == '/') + if (key.find_first_of("fdbi",key.size()-1) < key.size()) + { + key.resize(key.size() - 2); + if (Exists(key.c_str())) + return true; + } + else + { + _error->Warning(_("Unrecognized type abbreviation: '%c'"), key.end()[-3]); + } + + return Exists(Name); +} + /*}}}*/ +// Configuration::Dump - Dump the config /*{{{*/ +// --------------------------------------------------------------------- +/* Dump the entire configuration space */ +void Configuration::Dump(ostream& str) +{ + /* Write out all of the configuration directives by walking the + configuration tree */ + const Configuration::Item *Top = Tree(0); + for (; Top != 0;) + { + str << Top->FullTag() << " \"" << Top->Value << "\";" << endl; + + if (Top->Child != 0) + { + Top = Top->Child; + continue; + } + + while (Top != 0 && Top->Next == 0) + Top = Top->Parent; + if (Top != 0) + Top = Top->Next; + } +} + /*}}}*/ + +// Configuration::Item::FullTag - Return the fully scoped tag /*{{{*/ +// --------------------------------------------------------------------- +/* Stop sets an optional max recursion depth if this item is being viewed as + part of a sub tree. */ +string Configuration::Item::FullTag(const Item *Stop) const +{ + if (Parent == 0 || Parent->Parent == 0 || Parent == Stop) + return Tag; + return Parent->FullTag(Stop) + "::" + Tag; +} + /*}}}*/ + +// ReadConfigFile - Read a configuration file /*{{{*/ +// --------------------------------------------------------------------- +/* The configuration format is very much like the named.conf format + used in bind8, in fact this routine can parse most named.conf files. + Sectional config files are like bind's named.conf where there are + sections like 'zone "foo.org" { .. };' This causes each section to be + added in with a tag like "zone::foo.org" instead of being split + tag/value. AsSectional enables Sectional parsing.*/ +bool ReadConfigFile(Configuration &Conf,const string &FName,bool AsSectional, + unsigned Depth) +{ + // Open the stream for reading + ifstream F(FName.c_str(),ios::in); + if (!F != 0) + return _error->Errno("ifstream::ifstream",_("Opening configuration file %s"),FName.c_str()); + + char Buffer[1024]; + string LineBuffer; + string Stack[100]; + unsigned int StackPos = 0; + + // Parser state + string ParentTag; + + int CurLine = 0; + bool InComment = false; + while (F.eof() == false) + { + F.getline(Buffer,sizeof(Buffer)); + CurLine++; + // This should be made to work instead, but this is better than looping + if (F.fail() && !F.eof()) + return _error->Error(_("Line %d too long (max %d)"), CurLine, sizeof(Buffer)); + + _strtabexpand(Buffer,sizeof(Buffer)); + _strstrip(Buffer); + + // Multi line comment + if (InComment == true) + { + for (const char *I = Buffer; *I != 0; I++) + { + if (*I == '*' && I[1] == '/') + { + memmove(Buffer,I+2,strlen(I+2) + 1); + InComment = false; + break; + } + } + if (InComment == true) + continue; + } + + // Discard single line comments + bool InQuote = false; + for (char *I = Buffer; *I != 0; I++) + { + if (*I == '"') + InQuote = !InQuote; + if (InQuote == true) + continue; + + if (*I == '/' && I[1] == '/') + { + *I = 0; + break; + } + } + + // Look for multi line comments + InQuote = false; + for (char *I = Buffer; *I != 0; I++) + { + if (*I == '"') + InQuote = !InQuote; + if (InQuote == true) + continue; + + if (*I == '/' && I[1] == '*') + { + InComment = true; + for (char *J = Buffer; *J != 0; J++) + { + if (*J == '*' && J[1] == '/') + { + memmove(I,J+2,strlen(J+2) + 1); + InComment = false; + break; + } + } + + if (InComment == true) + { + *I = 0; + break; + } + } + } + + // Blank + if (Buffer[0] == 0) + continue; + + // We now have a valid line fragment + InQuote = false; + for (char *I = Buffer; *I != 0;) + { + if (*I == '"') + InQuote = !InQuote; + + if (InQuote == false && (*I == '{' || *I == ';' || *I == '}')) + { + // Put the last fragment into the buffer + char *Start = Buffer; + char *Stop = I; + for (; Start != I && isspace(*Start) != 0; Start++); + for (; Stop != Start && isspace(Stop[-1]) != 0; Stop--); + if (LineBuffer.empty() == false && Stop - Start != 0) + LineBuffer += ' '; + LineBuffer += string(Start,Stop - Start); + + // Remove the fragment + char TermChar = *I; + memmove(Buffer,I + 1,strlen(I + 1) + 1); + I = Buffer; + + // Syntax Error + if (TermChar == '{' && LineBuffer.empty() == true) + return _error->Error(_("Syntax error %s:%u: Block starts with no name."),FName.c_str(),CurLine); + + // No string on this line + if (LineBuffer.empty() == true) + { + if (TermChar == '}') + { + if (StackPos == 0) + ParentTag = string(); + else + ParentTag = Stack[--StackPos]; + } + continue; + } + + // Parse off the tag + string Tag; + const char *Pos = LineBuffer.c_str(); + if (ParseQuoteWord(Pos,Tag) == false) + return _error->Error(_("Syntax error %s:%u: Malformed tag"),FName.c_str(),CurLine); + + // Parse off the word + string Word; + bool NoWord = false; + if (ParseCWord(Pos,Word) == false && + ParseQuoteWord(Pos,Word) == false) + { + if (TermChar != '{') + { + Word = Tag; + Tag = ""; + } + else + NoWord = true; + } + if (strlen(Pos) != 0) + return _error->Error(_("Syntax error %s:%u: Extra junk after value"),FName.c_str(),CurLine); + + // Go down a level + if (TermChar == '{') + { + if (StackPos <= 100) + Stack[StackPos++] = ParentTag; + + /* Make sectional tags incorperate the section into the + tag string */ + if (AsSectional == true && Word.empty() == false) + { + Tag += "::" ; + Tag += Word; + Word = ""; + } + + if (ParentTag.empty() == true) + ParentTag = Tag; + else + ParentTag += string("::") + Tag; + Tag = string(); + } + + // Generate the item name + string Item; + if (ParentTag.empty() == true) + Item = Tag; + else + { + if (TermChar != '{' || Tag.empty() == false) + Item = ParentTag + "::" + Tag; + else + Item = ParentTag; + } + + // Specials + if (Tag.length() >= 1 && Tag[0] == '#') + { + if (ParentTag.empty() == false) + return _error->Error(_("Syntax error %s:%u: Directives can only be done at the top level"),FName.c_str(),CurLine); + Tag.erase(Tag.begin()); + if (Tag == "clear") + Conf.Clear(Word); + else if (Tag == "include") + { + if (Depth > 10) + return _error->Error(_("Syntax error %s:%u: Too many nested includes"),FName.c_str(),CurLine); + if (Word.length() > 2 && Word.end()[-1] == '/') + { + if (ReadConfigDir(Conf,Word,AsSectional,Depth+1) == false) + return _error->Error(_("Syntax error %s:%u: Included from here"),FName.c_str(),CurLine); + } + else + { + if (ReadConfigFile(Conf,Word,AsSectional,Depth+1) == false) + return _error->Error(_("Syntax error %s:%u: Included from here"),FName.c_str(),CurLine); + } + } + else + return _error->Error(_("Syntax error %s:%u: Unsupported directive '%s'"),FName.c_str(),CurLine,Tag.c_str()); + } + else + { + // Set the item in the configuration class + if (NoWord == false) + Conf.Set(Item,Word); + } + + // Empty the buffer + LineBuffer.clear(); + + // Move up a tag, but only if there is no bit to parse + if (TermChar == '}') + { + if (StackPos == 0) + ParentTag.clear(); + else + ParentTag = Stack[--StackPos]; + } + + } + else + I++; + } + + // Store the fragment + const char *Stripd = _strstrip(Buffer); + if (*Stripd != 0 && LineBuffer.empty() == false) + LineBuffer += " "; + LineBuffer += Stripd; + } + + if (LineBuffer.empty() == false) + return _error->Error(_("Syntax error %s:%u: Extra junk at end of file"),FName.c_str(),CurLine); + return true; +} + /*}}}*/ +// ReadConfigDir - Read a directory of config files /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool ReadConfigDir(Configuration &Conf,const string &Dir,bool AsSectional, + unsigned Depth) +{ + DIR *D = opendir(Dir.c_str()); + if (D == 0) + return _error->Errno("opendir",_("Unable to read %s"),Dir.c_str()); + + vector List; + + for (struct dirent *Ent = readdir(D); Ent != 0; Ent = readdir(D)) + { + if (Ent->d_name[0] == '.') + continue; + + // Skip bad file names ala run-parts + const char *C = Ent->d_name; + for (; *C != 0; C++) + if (isalpha(*C) == 0 && isdigit(*C) == 0 && *C != '_' && *C != '-') + break; + if (*C != 0) + continue; + + // Make sure it is a file and not something else + string File = flCombine(Dir,Ent->d_name); + struct stat St; + if (stat(File.c_str(),&St) != 0 || S_ISREG(St.st_mode) == 0) + continue; + + List.push_back(File); + } + closedir(D); + + sort(List.begin(),List.end()); + + // Read the files + for (vector::const_iterator I = List.begin(); I != List.end(); I++) + if (ReadConfigFile(Conf,*I,AsSectional,Depth) == false) + return false; + return true; +} + /*}}}*/ diff --git a/apt-pkg/contrib/configuration.h b/apt-pkg/contrib/configuration.h new file mode 100644 index 0000000..0d4078d --- /dev/null +++ b/apt-pkg/contrib/configuration.h @@ -0,0 +1,117 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: configuration.h,v 1.16 2002/11/11 06:55:50 doogie Exp $ +/* ###################################################################### + + Configuration Class + + This class provides a configuration file and command line parser + for a tree-oriented configuration environment. All runtime configuration + is stored in here. + + Each configuration name is given as a fully scoped string such as + Foo::Bar + And has associated with it a text string. The Configuration class only + provides storage and lookup for this tree, other classes provide + configuration file formats (and parsers/emitters if needed). + + Most things can get by quite happily with, + cout << _config->Find("Foo::Bar") << endl; + + A special extension, support for ordered lists is provided by using the + special syntax, "block::list::" the trailing :: designates the + item as a list. To access the list you must use the tree function on + "block::list". + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_CONFIGURATION_H +#define PKGLIB_CONFIGURATION_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/configuration.h" +#endif + +#include +#include + +using std::string; + +class Configuration +{ + public: + + struct Item + { + string Value; + string Tag; + Item *Parent; + Item *Child; + Item *Next; + + string FullTag(const Item *Stop = 0) const; + + Item() : Parent(0), Child(0), Next(0) {}; + }; + + private: + + Item *Root; + bool ToFree; + + Item *Lookup(Item *Head,const char *S,unsigned long Len,bool Create); + Item *Lookup(const char *Name,bool Create); + inline const Item *Lookup(const char *Name) const + { + return ((Configuration *)this)->Lookup(Name,false); + } + + public: + + string Find(const char *Name,const char *Default = 0) const; + string Find(const string Name,const char *Default = 0) const {return Find(Name.c_str(),Default);}; + string FindFile(const char *Name,const char *Default = 0) const; + string FindDir(const char *Name,const char *Default = 0) const; + int FindI(const char *Name,int Default = 0) const; + int FindI(const string Name,int Default = 0) const {return FindI(Name.c_str(),Default);}; + bool FindB(const char *Name,bool Default = false) const; + bool FindB(const string Name,bool Default = false) const {return FindB(Name.c_str(),Default);}; + string FindAny(const char *Name,const char *Default = 0) const; + + inline void Set(const string Name,string Value) {Set(Name.c_str(),Value);}; + void CndSet(const char *Name,const string &Value); + void Set(const char *Name,const string &Value); + void Set(const char *Name,int Value); + + inline bool Exists(const string Name) const {return Exists(Name.c_str());}; + bool Exists(const char *Name) const; + bool ExistsAny(const char *Name) const; + + // clear a whole tree + void Clear(const string Name); + + // remove a certain value from a list (e.g. the list of "APT::Keep-Fds") + void Clear(const string List, string Value); + void Clear(const string List, int Value); + + inline const Item *Tree(const char *Name) const {return Lookup(Name);}; + + inline void Dump() { Dump(std::clog); }; + void Dump(std::ostream& str); + + Configuration(const Item *Root); + Configuration(); + ~Configuration(); +}; + +extern Configuration *_config; + +bool ReadConfigFile(Configuration &Conf,const string &FName, + bool AsSectional = false, + unsigned Depth = 0); + +bool ReadConfigDir(Configuration &Conf,const string &Dir, + bool AsSectional = false, + unsigned Depth = 0); + +#endif diff --git a/apt-pkg/contrib/crc-16.cc b/apt-pkg/contrib/crc-16.cc new file mode 100644 index 0000000..52a5518 --- /dev/null +++ b/apt-pkg/contrib/crc-16.cc @@ -0,0 +1,76 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: crc-16.cc,v 1.1 1999/05/23 22:55:54 jgg Exp $ +/* ###################################################################### + + CRC16 - Compute a 16bit crc very quickly + + This was ripped out of the linux 2.2 kernel source (irda/crc.c) and + is credited to ppp.c by Michael Callahan and + Al Longyear + + Modified by Jason Gunthorpe to fit the local coding + style, this code is belived to be in the Public Domain. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/crc-16.h" +#endif + +#include + /*}}}*/ + +/* + * This mysterious table is just the CRC of each possible byte. It can be + * computed using the standard bit-at-a-time methods. The polynomial can + * be seen in entry 128, 0x8408. This corresponds to x^0 + x^5 + x^12. + * Add the implicit x^16, and you have the standard CRC-CCITT. + */ +static unsigned short const crc16_table[256] = +{ + 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf, + 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7, + 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e, + 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876, + 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd, + 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5, + 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c, + 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974, + 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb, + 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3, + 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a, + 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72, + 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9, + 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1, + 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738, + 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70, + 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7, + 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff, + 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036, + 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e, + 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5, + 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd, + 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134, + 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c, + 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3, + 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb, + 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232, + 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a, + 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1, + 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9, + 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330, + 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78 +}; + +/* Recompute the FCS with one more character appended. */ +#define CalcFCS(fcs, c) (((fcs) >> 8) ^ crc16_table[((fcs) ^ (c)) & 0xff]) +unsigned short AddCRC16(unsigned short fcs, void const *Buf, + unsigned long len) +{ + unsigned char const *buf = (unsigned char const *)Buf; + while (len--) + fcs = CalcFCS(fcs, *buf++); + return fcs; +} diff --git a/apt-pkg/contrib/crc-16.h b/apt-pkg/contrib/crc-16.h new file mode 100644 index 0000000..757104c --- /dev/null +++ b/apt-pkg/contrib/crc-16.h @@ -0,0 +1,21 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: crc-16.h,v 1.1 1999/05/23 22:55:54 jgg Exp $ +/* ###################################################################### + + CRC16 - Compute a 16bit crc very quickly + + ##################################################################### */ + /*}}}*/ +#ifndef APTPKG_CRC16_H +#define APTPKG_CRC16_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/crc-16.h" +#endif + +#define INIT_FCS 0xffff +unsigned short AddCRC16(unsigned short fcs, void const *buf, + unsigned long len); + +#endif diff --git a/apt-pkg/contrib/error.cc b/apt-pkg/contrib/error.cc new file mode 100644 index 0000000..5fe9bdf --- /dev/null +++ b/apt-pkg/contrib/error.cc @@ -0,0 +1,237 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: error.cc,v 1.11 2002/03/26 07:38:58 jgg Exp $ +/* ###################################################################### + + Global Erorr Class - Global error mechanism + + We use a simple STL vector to store each error record. A PendingFlag + is kept which indicates when the vector contains a Sever error. + + This source is placed in the Public Domain, do with it what you will + It was originally written by Jason Gunthorpe. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/error.h" +#endif + +#include + +#include +#include +#include +#include +#include +#include + +#include "config.h" + /*}}}*/ + +using namespace std; + +// Global Error Object /*{{{*/ +/* If the implementation supports posix threads then the accessor function + is compiled to be thread safe otherwise a non-safe version is used. A + Per-Thread error object is maintained in much the same manner as libc + manages errno */ +#if defined(_POSIX_THREADS) && defined(HAVE_PTHREAD) + #include + + static pthread_key_t ErrorKey; + static void ErrorDestroy(void *Obj) {delete (GlobalError *)Obj;}; + static void KeyAlloc() {pthread_key_create(&ErrorKey,ErrorDestroy);}; + + GlobalError *_GetErrorObj() + { + static pthread_once_t Once = PTHREAD_ONCE_INIT; + pthread_once(&Once,KeyAlloc); + + void *Res = pthread_getspecific(ErrorKey); + if (Res == 0) + pthread_setspecific(ErrorKey,Res = new GlobalError); + return (GlobalError *)Res; + } +#else + GlobalError *_GetErrorObj() + { + static GlobalError *Obj = new GlobalError; + return Obj; + } +#endif + /*}}}*/ + +// GlobalError::GlobalError - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +GlobalError::GlobalError() : List(0), PendingFlag(false) +{ +} + /*}}}*/ +// GlobalError::Errno - Get part of the error string from errno /*{{{*/ +// --------------------------------------------------------------------- +/* Function indicates the stdlib function that failed and Description is + a user string that leads the text. Form is: + Description - Function (errno: strerror) + Carefull of the buffer overrun, sprintf. + */ +bool GlobalError::Errno(const char *Function,const char *Description,...) +{ + va_list args; + va_start(args,Description); + + // sprintf the description + char S[400]; + vsnprintf(S,sizeof(S),Description,args); + snprintf(S + strlen(S),sizeof(S) - strlen(S), + " - %s (%i %s)",Function,errno,strerror(errno)); + + // Put it on the list + Item *Itm = new Item; + Itm->Text = S; + Itm->Error = true; + Insert(Itm); + + PendingFlag = true; + + return false; +} + /*}}}*/ +// GlobalError::WarningE - Get part of the warn string from errno /*{{{*/ +// --------------------------------------------------------------------- +/* Function indicates the stdlib function that failed and Description is + a user string that leads the text. Form is: + Description - Function (errno: strerror) + Carefull of the buffer overrun, sprintf. + */ +bool GlobalError::WarningE(const char *Function,const char *Description,...) +{ + va_list args; + va_start(args,Description); + + // sprintf the description + char S[400]; + vsnprintf(S,sizeof(S),Description,args); + snprintf(S + strlen(S),sizeof(S) - strlen(S)," - %s (%i %s)",Function,errno,strerror(errno)); + + // Put it on the list + Item *Itm = new Item; + Itm->Text = S; + Itm->Error = false; + Insert(Itm); + + return false; +} + /*}}}*/ +// GlobalError::Error - Add an error to the list /*{{{*/ +// --------------------------------------------------------------------- +/* Just vsprintfs and pushes */ +bool GlobalError::Error(const char *Description,...) +{ + va_list args; + va_start(args,Description); + + // sprintf the description + char S[400]; + vsnprintf(S,sizeof(S),Description,args); + + // Put it on the list + Item *Itm = new Item; + Itm->Text = S; + Itm->Error = true; + Insert(Itm); + + PendingFlag = true; + + return false; +} + /*}}}*/ +// GlobalError::Warning - Add a warning to the list /*{{{*/ +// --------------------------------------------------------------------- +/* This doesn't set the pending error flag */ +bool GlobalError::Warning(const char *Description,...) +{ + va_list args; + va_start(args,Description); + + // sprintf the description + char S[400]; + vsnprintf(S,sizeof(S),Description,args); + + // Put it on the list + Item *Itm = new Item; + Itm->Text = S; + Itm->Error = false; + Insert(Itm); + + return false; +} + /*}}}*/ +// GlobalError::PopMessage - Pulls a single message out /*{{{*/ +// --------------------------------------------------------------------- +/* This should be used in a loop checking empty() each cycle. It returns + true if the message is an error. */ +bool GlobalError::PopMessage(string &Text) +{ + if (List == 0) + return false; + + bool Ret = List->Error; + Text = List->Text; + Item *Old = List; + List = List->Next; + delete Old; + + // This really should check the list to see if only warnings are left.. + if (List == 0) + PendingFlag = false; + + return Ret; +} + /*}}}*/ +// GlobalError::DumpErrors - Dump all of the errors/warns to cerr /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void GlobalError::DumpErrors() +{ + // Print any errors or warnings found + string Err; + while (empty() == false) + { + bool Type = PopMessage(Err); + if (Type == true) + cerr << "E: " << Err << endl; + else + cerr << "W: " << Err << endl; + } +} + /*}}}*/ +// GlobalError::Discard - Discard /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void GlobalError::Discard() +{ + while (List != 0) + { + Item *Old = List; + List = List->Next; + delete Old; + } + + PendingFlag = false; +}; + /*}}}*/ +// GlobalError::Insert - Insert a new item at the end /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void GlobalError::Insert(Item *Itm) +{ + Item **End = &List; + for (Item *I = List; I != 0; I = I->Next) + End = &I->Next; + Itm->Next = *End; + *End = Itm; +} + /*}}}*/ diff --git a/apt-pkg/contrib/error.h b/apt-pkg/contrib/error.h new file mode 100644 index 0000000..a5fc1a2 --- /dev/null +++ b/apt-pkg/contrib/error.h @@ -0,0 +1,103 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: error.h,v 1.8 2001/05/07 05:06:52 jgg Exp $ +/* ###################################################################### + + Global Erorr Class - Global error mechanism + + This class has a single global instance. When a function needs to + generate an error condition, such as a read error, it calls a member + in this class to add the error to a stack of errors. + + By using a stack the problem with a scheme like errno is removed and + it allows a very detailed account of what went wrong to be transmitted + to the UI for display. (Errno has problems because each function sets + errno to 0 if it didn't have an error thus eraseing erno in the process + of cleanup) + + Several predefined error generators are provided to handle common + things like errno. The general idea is that all methods return a bool. + If the bool is true then things are OK, if it is false then things + should start being undone and the stack should unwind under program + control. + + A Warning should not force the return of false. Things did not fail, but + they might have had unexpected problems. Errors are stored in a FIFO + so Pop will return the first item.. + + I have some thoughts about extending this into a more general UI<-> + Engine interface, ie allowing the Engine to say 'The disk is full' in + a dialog that says 'Panic' and 'Retry'.. The error generator functions + like errno, Warning and Error return false always so this is normal: + if (open(..)) + return _error->Errno(..); + + This source is placed in the Public Domain, do with it what you will + It was originally written by Jason Gunthorpe. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_ERROR_H +#define PKGLIB_ERROR_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/error.h" +#endif + +#ifdef __GNUG__ +// Methods have a hidden this parameter that is visible to this attribute +#define APT_MFORMAT1 __attribute__ ((format (printf, 2, 3))) +#define APT_MFORMAT2 __attribute__ ((format (printf, 3, 4))) +#else +#define APT_MFORMAT1 +#define APT_MFORMAT2 +#endif + +#include + +using std::string; + +class GlobalError +{ + struct Item + { + string Text; + bool Error; + Item *Next; + }; + + Item *List; + bool PendingFlag; + void Insert(Item *I); + + public: + + // Call to generate an error from a library call. + bool Errno(const char *Function,const char *Description,...) APT_MFORMAT2; + bool WarningE(const char *Function,const char *Description,...) APT_MFORMAT2; + + /* A warning should be considered less severe than an error, and may be + ignored by the client. */ + bool Error(const char *Description,...) APT_MFORMAT1; + bool Warning(const char *Description,...) APT_MFORMAT1; + + // Simple accessors + inline bool PendingError() {return PendingFlag;}; + inline bool empty() {return List == 0;}; + bool PopMessage(string &Text); + void Discard(); + + // Usefull routine to dump to cerr + void DumpErrors(); + + GlobalError(); +}; + +// The 'extra-ansi' syntax is used to help with collisions. +GlobalError *_GetErrorObj(); +#define _error _GetErrorObj() + +#undef APT_MFORMAT1 +#undef APT_MFORMAT2 + +#endif diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc new file mode 100644 index 0000000..9fd7172 --- /dev/null +++ b/apt-pkg/contrib/fileutl.cc @@ -0,0 +1,618 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: fileutl.cc,v 1.42 2002/09/14 05:29:22 jgg Exp $ +/* ###################################################################### + + File Utilities + + CopyFile - Buffered copy of a single file + GetLock - dpkg compatible lock file manipulation (fcntl) + + This source is placed in the Public Domain, do with it what you will + It was originally written by Jason Gunthorpe . + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/fileutl.h" +#endif +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + /*}}}*/ + +using namespace std; + +// CopyFile - Buffered copy of a file /*{{{*/ +// --------------------------------------------------------------------- +/* The caller is expected to set things so that failure causes erasure */ +bool CopyFile(FileFd &From,FileFd &To) +{ + if (From.IsOpen() == false || To.IsOpen() == false) + return false; + + // Buffered copy between fds + SPtrArray Buf = new unsigned char[64000]; + unsigned long Size = From.Size(); + while (Size != 0) + { + unsigned long ToRead = Size; + if (Size > 64000) + ToRead = 64000; + + if (From.Read(Buf,ToRead) == false || + To.Write(Buf,ToRead) == false) + return false; + + Size -= ToRead; + } + + return true; +} + /*}}}*/ +// GetLock - Gets a lock file /*{{{*/ +// --------------------------------------------------------------------- +/* This will create an empty file of the given name and lock it. Once this + is done all other calls to GetLock in any other process will fail with + -1. The return result is the fd of the file, the call should call + close at some time. */ +int GetLock(string File,bool Errors) +{ + int FD = open(File.c_str(),O_RDWR | O_CREAT | O_TRUNC,0640); + if (FD < 0) + { + // Read only .. cant have locking problems there. + if (errno == EROFS) + { + _error->Warning(_("Not using locking for read only lock file %s"),File.c_str()); + return dup(0); // Need something for the caller to close + } + + if (Errors == true) + _error->Errno("open",_("Could not open lock file %s"),File.c_str()); + + // Feh.. We do this to distinguish the lock vs open case.. + errno = EPERM; + return -1; + } + SetCloseExec(FD,true); + + // Aquire a write lock + struct flock fl; + fl.l_type = F_WRLCK; + fl.l_whence = SEEK_SET; + fl.l_start = 0; + fl.l_len = 0; + if (fcntl(FD,F_SETLK,&fl) == -1) + { + if (errno == ENOLCK) + { + _error->Warning(_("Not using locking for nfs mounted lock file %s"),File.c_str()); + return dup(0); // Need something for the caller to close + } + if (Errors == true) + _error->Errno("open",_("Could not get lock %s"),File.c_str()); + + int Tmp = errno; + close(FD); + errno = Tmp; + return -1; + } + + return FD; +} + /*}}}*/ +// FileExists - Check if a file exists /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool FileExists(string File) +{ + struct stat Buf; + if (stat(File.c_str(),&Buf) != 0) + return false; + return true; +} + /*}}}*/ +// SafeGetCWD - This is a safer getcwd that returns a dynamic string /*{{{*/ +// --------------------------------------------------------------------- +/* We return / on failure. */ +string SafeGetCWD() +{ + // Stash the current dir. + char S[300]; + S[0] = 0; + if (getcwd(S,sizeof(S)-2) == 0) + return "/"; + unsigned int Len = strlen(S); + S[Len] = '/'; + S[Len+1] = 0; + return S; +} + /*}}}*/ +// flNotDir - Strip the directory from the filename /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string flNotDir(string File) +{ + string::size_type Res = File.rfind('/'); + if (Res == string::npos) + return File; + Res++; + return string(File,Res,Res - File.length()); +} + /*}}}*/ +// flNotFile - Strip the file from the directory name /*{{{*/ +// --------------------------------------------------------------------- +/* Result ends in a / */ +string flNotFile(string File) +{ + string::size_type Res = File.rfind('/'); + if (Res == string::npos) + return "./"; + Res++; + return string(File,0,Res); +} + /*}}}*/ +// flExtension - Return the extension for the file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string flExtension(string File) +{ + string::size_type Res = File.rfind('.'); + if (Res == string::npos) + return File; + Res++; + return string(File,Res,Res - File.length()); +} + /*}}}*/ +// flNoLink - If file is a symlink then deref it /*{{{*/ +// --------------------------------------------------------------------- +/* If the name is not a link then the returned path is the input. */ +string flNoLink(string File) +{ + struct stat St; + if (lstat(File.c_str(),&St) != 0 || S_ISLNK(St.st_mode) == 0) + return File; + if (stat(File.c_str(),&St) != 0) + return File; + + /* Loop resolving the link. There is no need to limit the number of + loops because the stat call above ensures that the symlink is not + circular */ + char Buffer[1024]; + string NFile = File; + while (1) + { + // Read the link + int Res; + if ((Res = readlink(NFile.c_str(),Buffer,sizeof(Buffer))) <= 0 || + (unsigned)Res >= sizeof(Buffer)) + return File; + + // Append or replace the previous path + Buffer[Res] = 0; + if (Buffer[0] == '/') + NFile = Buffer; + else + NFile = flNotFile(NFile) + Buffer; + + // See if we are done + if (lstat(NFile.c_str(),&St) != 0) + return File; + if (S_ISLNK(St.st_mode) == 0) + return NFile; + } +} + /*}}}*/ +// flCombine - Combine a file and a directory /*{{{*/ +// --------------------------------------------------------------------- +/* If the file is an absolute path then it is just returned, otherwise + the directory is pre-pended to it. */ +string flCombine(string Dir,string File) +{ + if (File.empty() == true) + return string(); + + if (File[0] == '/' || Dir.empty() == true) + return File; + if (File.length() >= 2 && File[0] == '.' && File[1] == '/') + return File; + if (Dir[Dir.length()-1] == '/') + return Dir + File; + return Dir + '/' + File; +} + /*}}}*/ +// SetCloseExec - Set the close on exec flag /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void SetCloseExec(int Fd,bool Close) +{ + if (fcntl(Fd,F_SETFD,(Close == false)?0:FD_CLOEXEC) != 0) + { + cerr << "FATAL -> Could not set close on exec " << strerror(errno) << endl; + exit(100); + } +} + /*}}}*/ +// SetNonBlock - Set the nonblocking flag /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void SetNonBlock(int Fd,bool Block) +{ + int Flags = fcntl(Fd,F_GETFL) & (~O_NONBLOCK); + if (fcntl(Fd,F_SETFL,Flags | ((Block == false)?0:O_NONBLOCK)) != 0) + { + cerr << "FATAL -> Could not set non-blocking flag " << strerror(errno) << endl; + exit(100); + } +} + /*}}}*/ +// WaitFd - Wait for a FD to become readable /*{{{*/ +// --------------------------------------------------------------------- +/* This waits for a FD to become readable using select. It is useful for + applications making use of non-blocking sockets. The timeout is + in seconds. */ +bool WaitFd(int Fd,bool write,unsigned long timeout) +{ + fd_set Set; + struct timeval tv; + FD_ZERO(&Set); + FD_SET(Fd,&Set); + tv.tv_sec = timeout; + tv.tv_usec = 0; + if (write == true) + { + int Res; + do + { + Res = select(Fd+1,0,&Set,0,(timeout != 0?&tv:0)); + } + while (Res < 0 && errno == EINTR); + + if (Res <= 0) + return false; + } + else + { + int Res; + do + { + Res = select(Fd+1,&Set,0,0,(timeout != 0?&tv:0)); + } + while (Res < 0 && errno == EINTR); + + if (Res <= 0) + return false; + } + + return true; +} + /*}}}*/ +// ExecFork - Magical fork that sanitizes the context before execing /*{{{*/ +// --------------------------------------------------------------------- +/* This is used if you want to cleanse the environment for the forked + child, it fixes up the important signals and nukes all of the fds, + otherwise acts like normal fork. */ +pid_t ExecFork() +{ + // Fork off the process + pid_t Process = fork(); + if (Process < 0) + { + cerr << "FATAL -> Failed to fork." << endl; + exit(100); + } + + // Spawn the subprocess + if (Process == 0) + { + // Setup the signals + signal(SIGPIPE,SIG_DFL); + signal(SIGQUIT,SIG_DFL); + signal(SIGINT,SIG_DFL); + signal(SIGWINCH,SIG_DFL); + signal(SIGCONT,SIG_DFL); + signal(SIGTSTP,SIG_DFL); + + set KeepFDs; + Configuration::Item const *Opts = _config->Tree("APT::Keep-Fds"); + if (Opts != 0 && Opts->Child != 0) + { + Opts = Opts->Child; + for (; Opts != 0; Opts = Opts->Next) + { + if (Opts->Value.empty() == true) + continue; + int fd = atoi(Opts->Value.c_str()); + KeepFDs.insert(fd); + } + } + + // Close all of our FDs - just in case + for (int K = 3; K != 40; K++) + { + if(KeepFDs.find(K) == KeepFDs.end()) + fcntl(K,F_SETFD,FD_CLOEXEC); + } + } + + return Process; +} + /*}}}*/ +// ExecWait - Fancy waitpid /*{{{*/ +// --------------------------------------------------------------------- +/* Waits for the given sub process. If Reap is set then no errors are + generated. Otherwise a failed subprocess will generate a proper descriptive + message */ +bool ExecWait(pid_t Pid,const char *Name,bool Reap) +{ + if (Pid <= 1) + return true; + + // Wait and collect the error code + int Status; + while (waitpid(Pid,&Status,0) != Pid) + { + if (errno == EINTR) + continue; + + if (Reap == true) + return false; + + return _error->Error(_("Waited for %s but it wasn't there"),Name); + } + + + // Check for an error code. + if (WIFEXITED(Status) == 0 || WEXITSTATUS(Status) != 0) + { + if (Reap == true) + return false; + if (WIFSIGNALED(Status) != 0 && WTERMSIG(Status) == SIGSEGV) + return _error->Error(_("Sub-process %s received a segmentation fault."),Name); + + if (WIFEXITED(Status) != 0) + return _error->Error(_("Sub-process %s returned an error code (%u)"),Name,WEXITSTATUS(Status)); + + return _error->Error(_("Sub-process %s exited unexpectedly"),Name); + } + + return true; +} + /*}}}*/ + +// FileFd::Open - Open a file /*{{{*/ +// --------------------------------------------------------------------- +/* The most commonly used open mode combinations are given with Mode */ +bool FileFd::Open(string FileName,OpenMode Mode, unsigned long Perms) +{ + Close(); + Flags = AutoClose; + switch (Mode) + { + case ReadOnly: + iFd = open(FileName.c_str(),O_RDONLY); + break; + + case WriteEmpty: + { + struct stat Buf; + if (lstat(FileName.c_str(),&Buf) == 0 && S_ISLNK(Buf.st_mode)) + unlink(FileName.c_str()); + iFd = open(FileName.c_str(),O_RDWR | O_CREAT | O_TRUNC,Perms); + break; + } + + case WriteExists: + iFd = open(FileName.c_str(),O_RDWR); + break; + + case WriteAny: + iFd = open(FileName.c_str(),O_RDWR | O_CREAT,Perms); + break; + + case WriteTemp: + unlink(FileName.c_str()); + iFd = open(FileName.c_str(),O_RDWR | O_CREAT | O_EXCL,Perms); + break; + } + + if (iFd < 0) + return _error->Errno("open",_("Could not open file %s"),FileName.c_str()); + + this->FileName = FileName; + SetCloseExec(iFd,true); + return true; +} + /*}}}*/ +// FileFd::~File - Closes the file /*{{{*/ +// --------------------------------------------------------------------- +/* If the proper modes are selected then we close the Fd and possibly + unlink the file on error. */ +FileFd::~FileFd() +{ + Close(); +} + /*}}}*/ +// FileFd::Read - Read a bit of the file /*{{{*/ +// --------------------------------------------------------------------- +/* We are carefull to handle interruption by a signal while reading + gracefully. */ +bool FileFd::Read(void *To,unsigned long Size,unsigned long *Actual) +{ + int Res; + errno = 0; + if (Actual != 0) + *Actual = 0; + + do + { + Res = read(iFd,To,Size); + if (Res < 0 && errno == EINTR) + continue; + if (Res < 0) + { + Flags |= Fail; + return _error->Errno("read",_("Read error")); + } + + To = (char *)To + Res; + Size -= Res; + if (Actual != 0) + *Actual += Res; + } + while (Res > 0 && Size > 0); + + if (Size == 0) + return true; + + // Eof handling + if (Actual != 0) + { + Flags |= HitEof; + return true; + } + + Flags |= Fail; + return _error->Error(_("read, still have %lu to read but none left"),Size); +} + /*}}}*/ +// FileFd::Write - Write to the file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool FileFd::Write(const void *From,unsigned long Size) +{ + int Res; + errno = 0; + do + { + Res = write(iFd,From,Size); + if (Res < 0 && errno == EINTR) + continue; + if (Res < 0) + { + Flags |= Fail; + return _error->Errno("write",_("Write error")); + } + + From = (char *)From + Res; + Size -= Res; + } + while (Res > 0 && Size > 0); + + if (Size == 0) + return true; + + Flags |= Fail; + return _error->Error(_("write, still have %lu to write but couldn't"),Size); +} + /*}}}*/ +// FileFd::Seek - Seek in the file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool FileFd::Seek(unsigned long To) +{ + if (lseek(iFd,To,SEEK_SET) != (signed)To) + { + Flags |= Fail; + return _error->Error("Unable to seek to %lu",To); + } + + return true; +} + /*}}}*/ +// FileFd::Skip - Seek in the file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool FileFd::Skip(unsigned long Over) +{ + if (lseek(iFd,Over,SEEK_CUR) < 0) + { + Flags |= Fail; + return _error->Error("Unable to seek ahead %lu",Over); + } + + return true; +} + /*}}}*/ +// FileFd::Truncate - Truncate the file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool FileFd::Truncate(unsigned long To) +{ + if (ftruncate(iFd,To) != 0) + { + Flags |= Fail; + return _error->Error("Unable to truncate to %lu",To); + } + + return true; +} + /*}}}*/ +// FileFd::Tell - Current seek position /*{{{*/ +// --------------------------------------------------------------------- +/* */ +unsigned long FileFd::Tell() +{ + off_t Res = lseek(iFd,0,SEEK_CUR); + if (Res == (off_t)-1) + _error->Errno("lseek","Failed to determine the current file position"); + return Res; +} + /*}}}*/ +// FileFd::Size - Return the size of the file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +unsigned long FileFd::Size() +{ + struct stat Buf; + if (fstat(iFd,&Buf) != 0) + return _error->Errno("fstat","Unable to determine the file size"); + return Buf.st_size; +} + /*}}}*/ +// FileFd::Close - Close the file if the close flag is set /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool FileFd::Close() +{ + bool Res = true; + if ((Flags & AutoClose) == AutoClose) + if (iFd >= 0 && close(iFd) != 0) + Res &= _error->Errno("close",_("Problem closing the file")); + iFd = -1; + + if ((Flags & Fail) == Fail && (Flags & DelOnFail) == DelOnFail && + FileName.empty() == false) + if (unlink(FileName.c_str()) != 0) + Res &= _error->WarningE("unlnk",_("Problem unlinking the file")); + return Res; +} + /*}}}*/ +// FileFd::Sync - Sync the file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool FileFd::Sync() +{ +#ifdef _POSIX_SYNCHRONIZED_IO + if (fsync(iFd) != 0) + return _error->Errno("sync",_("Problem syncing the file")); +#endif + return true; +} + /*}}}*/ diff --git a/apt-pkg/contrib/fileutl.h b/apt-pkg/contrib/fileutl.h new file mode 100644 index 0000000..041aa33 --- /dev/null +++ b/apt-pkg/contrib/fileutl.h @@ -0,0 +1,100 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: fileutl.h,v 1.26 2001/05/07 05:06:52 jgg Exp $ +/* ###################################################################### + + File Utilities + + CopyFile - Buffered copy of a single file + GetLock - dpkg compatible lock file manipulation (fcntl) + FileExists - Returns true if the file exists + SafeGetCWD - Returns the CWD in a string with overrun protection + + The file class is a handy abstraction for various functions+classes + that need to accept filenames. + + This source is placed in the Public Domain, do with it what you will + It was originally written by Jason Gunthorpe. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_FILEUTL_H +#define PKGLIB_FILEUTL_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/fileutl.h" +#endif + +#include + +using std::string; + +class FileFd +{ + protected: + int iFd; + + enum LocalFlags {AutoClose = (1<<0),Fail = (1<<1),DelOnFail = (1<<2), + HitEof = (1<<3)}; + unsigned long Flags; + string FileName; + + public: + enum OpenMode {ReadOnly,WriteEmpty,WriteExists,WriteAny,WriteTemp}; + + inline bool Read(void *To,unsigned long Size,bool AllowEof) + { + unsigned long Jnk; + if (AllowEof) + return Read(To,Size,&Jnk); + return Read(To,Size); + } + bool Read(void *To,unsigned long Size,unsigned long *Actual = 0); + bool Write(const void *From,unsigned long Size); + bool Seek(unsigned long To); + bool Skip(unsigned long To); + bool Truncate(unsigned long To); + unsigned long Tell(); + unsigned long Size(); + bool Open(string FileName,OpenMode Mode,unsigned long Perms = 0666); + bool Close(); + bool Sync(); + + // Simple manipulators + inline int Fd() {return iFd;}; + inline void Fd(int fd) {iFd = fd;}; + inline bool IsOpen() {return iFd >= 0;}; + inline bool Failed() {return (Flags & Fail) == Fail;}; + inline void EraseOnFailure() {Flags |= DelOnFail;}; + inline void OpFail() {Flags |= Fail;}; + inline bool Eof() {return (Flags & HitEof) == HitEof;}; + inline string &Name() {return FileName;}; + + FileFd(string FileName,OpenMode Mode,unsigned long Perms = 0666) : iFd(-1), + Flags(0) + { + Open(FileName,Mode,Perms); + }; + FileFd(int Fd = -1) : iFd(Fd), Flags(AutoClose) {}; + FileFd(int Fd,bool) : iFd(Fd), Flags(0) {}; + virtual ~FileFd(); +}; + +bool CopyFile(FileFd &From,FileFd &To); +int GetLock(string File,bool Errors = true); +bool FileExists(string File); +string SafeGetCWD(); +void SetCloseExec(int Fd,bool Close); +void SetNonBlock(int Fd,bool Block); +bool WaitFd(int Fd,bool write = false,unsigned long timeout = 0); +pid_t ExecFork(); +bool ExecWait(pid_t Pid,const char *Name,bool Reap = false); + +// File string manipulators +string flNotDir(string File); +string flNotFile(string File); +string flNoLink(string File); +string flExtension(string File); +string flCombine(string Dir,string File); + +#endif diff --git a/apt-pkg/contrib/hashes.cc b/apt-pkg/contrib/hashes.cc new file mode 100644 index 0000000..9b22a90 --- /dev/null +++ b/apt-pkg/contrib/hashes.cc @@ -0,0 +1,44 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: hashes.cc,v 1.1 2001/03/06 07:15:29 jgg Exp $ +/* ###################################################################### + + Hashes - Simple wrapper around the hash functions + + This is just used to make building the methods simpler, this is the + only interface required.. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/hashes.h" +#endif + +#include + +#include +#include + /*}}}*/ + +// Hashes::AddFD - Add the contents of the FD /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool Hashes::AddFD(int Fd,unsigned long Size) +{ + unsigned char Buf[64*64]; + int Res = 0; + while (Size != 0) + { + Res = read(Fd,Buf,min(Size,(unsigned long)sizeof(Buf))); + if (Res < 0 || (unsigned)Res != min(Size,(unsigned long)sizeof(Buf))) + return false; + Size -= Res; + MD5.Add(Buf,Res); + SHA1.Add(Buf,Res); + SHA256.Add(Buf,Res); + } + return true; +} + /*}}}*/ + diff --git a/apt-pkg/contrib/hashes.h b/apt-pkg/contrib/hashes.h new file mode 100644 index 0000000..eefa7bf --- /dev/null +++ b/apt-pkg/contrib/hashes.h @@ -0,0 +1,46 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: hashes.h,v 1.2 2001/03/11 05:30:20 jgg Exp $ +/* ###################################################################### + + Hashes - Simple wrapper around the hash functions + + This is just used to make building the methods simpler, this is the + only interface required.. + + ##################################################################### */ + /*}}}*/ +#ifndef APTPKG_HASHES_H +#define APTPKG_HASHES_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/hashes.h" +#endif + +#include +#include +#include + +#include + +using std::min; + +class Hashes +{ + public: + + MD5Summation MD5; + SHA1Summation SHA1; + SHA256Summation SHA256; + + inline bool Add(const unsigned char *Data,unsigned long Size) + { + return MD5.Add(Data,Size) && SHA1.Add(Data,Size) && SHA256.Add(Data,Size); + }; + inline bool Add(const char *Data) {return Add((unsigned char *)Data,strlen(Data));}; + bool AddFD(int Fd,unsigned long Size); + inline bool Add(const unsigned char *Beg,const unsigned char *End) + {return Add(Beg,End-Beg);}; +}; + +#endif diff --git a/apt-pkg/contrib/md5.cc b/apt-pkg/contrib/md5.cc new file mode 100644 index 0000000..fded5c8 --- /dev/null +++ b/apt-pkg/contrib/md5.cc @@ -0,0 +1,358 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: md5.cc,v 1.12 2001/05/13 05:15:03 jgg Exp $ +/* ###################################################################### + + MD5Sum - MD5 Message Digest Algorithm. + + This code implements the MD5 message-digest algorithm. The algorithm is + due to Ron Rivest. This code was written by Colin Plumb in 1993, no + copyright is claimed. This code is in the public domain; do with it what + you wish. + + Equivalent code is available from RSA Data Security, Inc. This code has + been tested against that, and is equivalent, except that you don't need to + include two pages of legalese with every copy. + + To compute the message digest of a chunk of bytes, instantiate the class, + and repeatedly call one of the Add() members. When finished the Result + method will return the Hash and finalize the value. + + Changed so as no longer to depend on Colin Plumb's `usual.h' header + definitions; now uses stuff from dpkg's config.h. + - Ian Jackson . + + Changed into a C++ interface and made work with APT's config.h. + - Jason Gunthorpe + + Still in the public domain. + + The classes use arrays of char that are a specific size. We cast those + arrays to uint8_t's and go from there. This allows us to advoid using + the uncommon inttypes.h in a public header or internally newing memory. + In theory if C9x becomes nicely accepted + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/md5.h" +#endif + +#include +#include + +#include +#include +#include // For htonl +#include +#include +#include + /*}}}*/ + +// byteSwap - Swap bytes in a buffer /*{{{*/ +// --------------------------------------------------------------------- +/* Swap n 32 bit longs in given buffer */ +#ifdef WORDS_BIGENDIAN +static void byteSwap(uint32_t *buf, unsigned words) +{ + uint8_t *p = (uint8_t *)buf; + + do + { + *buf++ = (uint32_t)((unsigned)p[3] << 8 | p[2]) << 16 | + ((unsigned)p[1] << 8 | p[0]); + p += 4; + } while (--words); +} +#else +#define byteSwap(buf,words) +#endif + /*}}}*/ +// MD5Transform - Alters an existing MD5 hash /*{{{*/ +// --------------------------------------------------------------------- +/* The core of the MD5 algorithm, this alters an existing MD5 hash to + reflect the addition of 16 longwords of new data. Add blocks + the data and converts bytes into longwords for this routine. */ + +// The four core functions - F1 is optimized somewhat +// #define F1(x, y, z) (x & y | ~x & z) +#define F1(x, y, z) (z ^ (x & (y ^ z))) +#define F2(x, y, z) F1(z, x, y) +#define F3(x, y, z) (x ^ y ^ z) +#define F4(x, y, z) (y ^ (x | ~z)) + +// This is the central step in the MD5 algorithm. +#define MD5STEP(f,w,x,y,z,in,s) \ + (w += f(x,y,z) + in, w = (w<>(32-s)) + x) + +static void MD5Transform(uint32_t buf[4], uint32_t const in[16]) +{ + register uint32_t a, b, c, d; + + a = buf[0]; + b = buf[1]; + c = buf[2]; + d = buf[3]; + + MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7); + MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12); + MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17); + MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22); + MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7); + MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12); + MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17); + MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22); + MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7); + MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12); + MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17); + MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22); + MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7); + MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12); + MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17); + MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22); + + MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5); + MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9); + MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14); + MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20); + MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5); + MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9); + MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14); + MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20); + MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5); + MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9); + MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14); + MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20); + MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5); + MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9); + MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14); + MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20); + + MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4); + MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11); + MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16); + MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23); + MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4); + MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11); + MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16); + MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23); + MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4); + MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11); + MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16); + MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23); + MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4); + MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11); + MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16); + MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23); + + MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6); + MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10); + MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15); + MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21); + MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6); + MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10); + MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15); + MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21); + MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6); + MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10); + MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15); + MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21); + MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6); + MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10); + MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15); + MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21); + + buf[0] += a; + buf[1] += b; + buf[2] += c; + buf[3] += d; +} + /*}}}*/ +// MD5SumValue::MD5SumValue - Constructs the summation from a string /*{{{*/ +// --------------------------------------------------------------------- +/* The string form of a MD5 is a 32 character hex number */ +MD5SumValue::MD5SumValue(string Str) +{ + memset(Sum,0,sizeof(Sum)); + Set(Str); +} + /*}}}*/ +// MD5SumValue::MD5SumValue - Default constructor /*{{{*/ +// --------------------------------------------------------------------- +/* Sets the value to 0 */ +MD5SumValue::MD5SumValue() +{ + memset(Sum,0,sizeof(Sum)); +} + /*}}}*/ +// MD5SumValue::Set - Set the sum from a string /*{{{*/ +// --------------------------------------------------------------------- +/* Converts the hex string into a set of chars */ +bool MD5SumValue::Set(string Str) +{ + return Hex2Num(Str,Sum,sizeof(Sum)); +} + /*}}}*/ +// MD5SumValue::Value - Convert the number into a string /*{{{*/ +// --------------------------------------------------------------------- +/* Converts the set of chars into a hex string in lower case */ +string MD5SumValue::Value() const +{ + char Conv[16] = {'0','1','2','3','4','5','6','7','8','9','a','b', + 'c','d','e','f'}; + char Result[33]; + Result[32] = 0; + + // Convert each char into two letters + int J = 0; + int I = 0; + for (; I != 32; J++, I += 2) + { + Result[I] = Conv[Sum[J] >> 4]; + Result[I + 1] = Conv[Sum[J] & 0xF]; + } + + return string(Result); +} + /*}}}*/ +// MD5SumValue::operator == - Comparitor /*{{{*/ +// --------------------------------------------------------------------- +/* Call memcmp on the buffer */ +bool MD5SumValue::operator ==(const MD5SumValue &rhs) const +{ + return memcmp(Sum,rhs.Sum,sizeof(Sum)) == 0; +} + /*}}}*/ +// MD5Summation::MD5Summation - Initialize the summer /*{{{*/ +// --------------------------------------------------------------------- +/* This assigns the deep magic initial values */ +MD5Summation::MD5Summation() +{ + uint32_t *buf = (uint32_t *)Buf; + uint32_t *bytes = (uint32_t *)Bytes; + + buf[0] = 0x67452301; + buf[1] = 0xefcdab89; + buf[2] = 0x98badcfe; + buf[3] = 0x10325476; + + bytes[0] = 0; + bytes[1] = 0; + Done = false; +} + /*}}}*/ +// MD5Summation::Add - 'Add' a data set to the hash /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool MD5Summation::Add(const unsigned char *data,unsigned long len) +{ + if (Done == true) + return false; + + uint32_t *buf = (uint32_t *)Buf; + uint32_t *bytes = (uint32_t *)Bytes; + uint32_t *in = (uint32_t *)In; + + // Update byte count and carry (this could be done with a long long?) + uint32_t t = bytes[0]; + if ((bytes[0] = t + len) < t) + bytes[1]++; + + // Space available (at least 1) + t = 64 - (t & 0x3f); + if (t > len) + { + memcpy((unsigned char *)in + 64 - t,data,len); + return true; + } + + // First chunk is an odd size + memcpy((unsigned char *)in + 64 - t,data,t); + byteSwap(in, 16); + MD5Transform(buf,in); + data += t; + len -= t; + + // Process data in 64-byte chunks + while (len >= 64) + { + memcpy(in,data,64); + byteSwap(in,16); + MD5Transform(buf,in); + data += 64; + len -= 64; + } + + // Handle any remaining bytes of data. + memcpy(in,data,len); + + return true; +} + /*}}}*/ +// MD5Summation::AddFD - Add the contents of a FD to the hash /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool MD5Summation::AddFD(int Fd,unsigned long Size) +{ + unsigned char Buf[64*64]; + int Res = 0; + while (Size != 0) + { + Res = read(Fd,Buf,min(Size,(unsigned long)sizeof(Buf))); + if (Res < 0 || (unsigned)Res != min(Size,(unsigned long)sizeof(Buf))) + return false; + Size -= Res; + Add(Buf,Res); + } + return true; +} + /*}}}*/ +// MD5Summation::Result - Returns the value of the sum /*{{{*/ +// --------------------------------------------------------------------- +/* Because this must add in the last bytes of the series it prevents anyone + from calling add after. */ +MD5SumValue MD5Summation::Result() +{ + uint32_t *buf = (uint32_t *)Buf; + uint32_t *bytes = (uint32_t *)Bytes; + uint32_t *in = (uint32_t *)In; + + if (Done == false) + { + // Number of bytes in In + int count = bytes[0] & 0x3f; + unsigned char *p = (unsigned char *)in + count; + + // Set the first char of padding to 0x80. There is always room. + *p++ = 0x80; + + // Bytes of padding needed to make 56 bytes (-8..55) + count = 56 - 1 - count; + + // Padding forces an extra block + if (count < 0) + { + memset(p,0,count + 8); + byteSwap(in, 16); + MD5Transform(buf,in); + p = (unsigned char *)in; + count = 56; + } + + memset(p, 0, count); + byteSwap(in, 14); + + // Append length in bits and transform + in[14] = bytes[0] << 3; + in[15] = bytes[1] << 3 | bytes[0] >> 29; + MD5Transform(buf,in); + byteSwap(buf,4); + Done = true; + } + + MD5SumValue V; + memcpy(V.Sum,buf,16); + return V; +} + /*}}}*/ diff --git a/apt-pkg/contrib/md5.h b/apt-pkg/contrib/md5.h new file mode 100644 index 0000000..e280d71 --- /dev/null +++ b/apt-pkg/contrib/md5.h @@ -0,0 +1,79 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: md5.h,v 1.6 2001/05/07 05:06:52 jgg Exp $ +/* ###################################################################### + + MD5SumValue - Storage for a MD5Sum + MD5Summation - MD5 Message Digest Algorithm. + + This is a C++ interface to a set of MD5Sum functions. The class can + store a MD5Sum in 16 bytes of memory. + + A MD5Sum is used to generate a (hopefully) unique 16 byte number for a + block of data. This can be used to gaurd against corruption of a file. + MD5 should not be used for tamper protection, use SHA or something more + secure. + + There are two classes because computing a MD5 is not a continual + operation unless 64 byte blocks are used. Also the summation requires an + extra 18*4 bytes to operate. + + ##################################################################### */ + /*}}}*/ +#ifndef APTPKG_MD5_H +#define APTPKG_MD5_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/md5.h" +#endif + +#include +#include +#include + +using std::string; +using std::min; + +class MD5Summation; + +class MD5SumValue +{ + friend class MD5Summation; + unsigned char Sum[4*4]; + + public: + + // Accessors + bool operator ==(const MD5SumValue &rhs) const; + string Value() const; + inline void Value(unsigned char S[16]) + {for (int I = 0; I != sizeof(Sum); I++) S[I] = Sum[I];}; + inline operator string() const {return Value();}; + bool Set(string Str); + inline void Set(unsigned char S[16]) + {for (int I = 0; I != sizeof(Sum); I++) Sum[I] = S[I];}; + + MD5SumValue(string Str); + MD5SumValue(); +}; + +class MD5Summation +{ + uint32_t Buf[4]; + unsigned char Bytes[2*4]; + unsigned char In[16*4]; + bool Done; + + public: + + bool Add(const unsigned char *Data,unsigned long Size); + inline bool Add(const char *Data) {return Add((unsigned char *)Data,strlen(Data));}; + bool AddFD(int Fd,unsigned long Size); + inline bool Add(const unsigned char *Beg,const unsigned char *End) + {return Add(Beg,End-Beg);}; + MD5SumValue Result(); + + MD5Summation(); +}; + +#endif diff --git a/apt-pkg/contrib/mmap.cc b/apt-pkg/contrib/mmap.cc new file mode 100644 index 0000000..e395e6c --- /dev/null +++ b/apt-pkg/contrib/mmap.cc @@ -0,0 +1,287 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: mmap.cc,v 1.22 2001/05/27 05:19:30 jgg Exp $ +/* ###################################################################### + + MMap Class - Provides 'real' mmap or a faked mmap using read(). + + MMap cover class. + + Some broken versions of glibc2 (libc6) have a broken definition + of mmap that accepts a char * -- all other systems (and libc5) use + void *. We can't safely do anything here that would be portable, so + libc6 generates warnings -- which should be errors, g++ isn't properly + strict. + + The configure test notes that some OS's have broken private mmap's + so on those OS's we can't use mmap. This means we have to use + configure to test mmap and can't rely on the POSIX + _POSIX_MAPPED_FILES test. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/mmap.h" +#endif + +#define _BSD_SOURCE +#include +#include + +#include + +#include +#include +#include +#include + /*}}}*/ + +// MMap::MMap - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +MMap::MMap(FileFd &F,unsigned long Flags) : Flags(Flags), iSize(0), + Base(0) +{ + if ((Flags & NoImmMap) != NoImmMap) + Map(F); +} + /*}}}*/ +// MMap::MMap - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +MMap::MMap(unsigned long Flags) : Flags(Flags), iSize(0), + Base(0) +{ +} + /*}}}*/ +// MMap::~MMap - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +MMap::~MMap() +{ + Close(); +} + /*}}}*/ +// MMap::Map - Perform the mapping /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool MMap::Map(FileFd &Fd) +{ + iSize = Fd.Size(); + + // Set the permissions. + int Prot = PROT_READ; + int Map = MAP_SHARED; + if ((Flags & ReadOnly) != ReadOnly) + Prot |= PROT_WRITE; + if ((Flags & Public) != Public) + Map = MAP_PRIVATE; + + if (iSize == 0) + return _error->Error(_("Can't mmap an empty file")); + + // Map it. + Base = mmap(0,iSize,Prot,Map,Fd.Fd(),0); + if (Base == (void *)-1) + return _error->Errno("mmap",_("Couldn't make mmap of %lu bytes"),iSize); + + return true; +} + /*}}}*/ +// MMap::Close - Close the map /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool MMap::Close(bool DoSync) +{ + if ((Flags & UnMapped) == UnMapped || Base == 0 || iSize == 0) + return true; + + if (DoSync == true) + Sync(); + + if (munmap((char *)Base,iSize) != 0) + _error->Warning("Unable to munmap"); + + iSize = 0; + Base = 0; + return true; +} + /*}}}*/ +// MMap::Sync - Syncronize the map with the disk /*{{{*/ +// --------------------------------------------------------------------- +/* This is done in syncronous mode - the docs indicate that this will + not return till all IO is complete */ +bool MMap::Sync() +{ + if ((Flags & UnMapped) == UnMapped) + return true; + +#ifdef _POSIX_SYNCHRONIZED_IO + if ((Flags & ReadOnly) != ReadOnly) + if (msync((char *)Base,iSize,MS_SYNC) != 0) + return _error->Errno("msync","Unable to write mmap"); +#endif + return true; +} + /*}}}*/ +// MMap::Sync - Syncronize a section of the file to disk /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool MMap::Sync(unsigned long Start,unsigned long Stop) +{ + if ((Flags & UnMapped) == UnMapped) + return true; + +#ifdef _POSIX_SYNCHRONIZED_IO + unsigned long PSize = sysconf(_SC_PAGESIZE); + if ((Flags & ReadOnly) != ReadOnly) + if (msync((char *)Base+(int)(Start/PSize)*PSize,Stop - Start,MS_SYNC) != 0) + return _error->Errno("msync","Unable to write mmap"); +#endif + return true; +} + /*}}}*/ + +// DynamicMMap::DynamicMMap - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +DynamicMMap::DynamicMMap(FileFd &F,unsigned long Flags,unsigned long WorkSpace) : + MMap(F,Flags | NoImmMap), Fd(&F), WorkSpace(WorkSpace) +{ + if (_error->PendingError() == true) + return; + + unsigned long EndOfFile = Fd->Size(); + if (EndOfFile > WorkSpace) + WorkSpace = EndOfFile; + else if(WorkSpace > 0) + { + Fd->Seek(WorkSpace - 1); + char C = 0; + Fd->Write(&C,sizeof(C)); + } + + Map(F); + iSize = EndOfFile; +} + /*}}}*/ +// DynamicMMap::DynamicMMap - Constructor for a non-file backed map /*{{{*/ +// --------------------------------------------------------------------- +/* This is just a fancy malloc really.. */ +DynamicMMap::DynamicMMap(unsigned long Flags,unsigned long WorkSpace) : + MMap(Flags | NoImmMap | UnMapped), Fd(0), WorkSpace(WorkSpace) +{ + if (_error->PendingError() == true) + return; + + Base = new unsigned char[WorkSpace]; + memset(Base,0,WorkSpace); + iSize = 0; +} + /*}}}*/ +// DynamicMMap::~DynamicMMap - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* We truncate the file to the size of the memory data set */ +DynamicMMap::~DynamicMMap() +{ + if (Fd == 0) + { + delete [] (unsigned char *)Base; + return; + } + + unsigned long EndOfFile = iSize; + iSize = WorkSpace; + Close(false); + ftruncate(Fd->Fd(),EndOfFile); +} + /*}}}*/ +// DynamicMMap::RawAllocate - Allocate a raw chunk of unaligned space /*{{{*/ +// --------------------------------------------------------------------- +/* This allocates a block of memory aligned to the given size */ +unsigned long DynamicMMap::RawAllocate(unsigned long Size,unsigned long Aln) +{ + unsigned long Result = iSize; + if (Aln != 0) + Result += Aln - (iSize%Aln); + + iSize = Result + Size; + + // Just in case error check + if (Result + Size > WorkSpace) + { + _error->Error("Dynamic MMap ran out of room"); + return 0; + } + + return Result; +} + /*}}}*/ +// DynamicMMap::Allocate - Pooled aligned allocation /*{{{*/ +// --------------------------------------------------------------------- +/* This allocates an Item of size ItemSize so that it is aligned to its + size in the file. */ +unsigned long DynamicMMap::Allocate(unsigned long ItemSize) +{ + // Look for a matching pool entry + Pool *I; + Pool *Empty = 0; + for (I = Pools; I != Pools + PoolCount; I++) + { + if (I->ItemSize == 0) + Empty = I; + if (I->ItemSize == ItemSize) + break; + } + + // No pool is allocated, use an unallocated one + if (I == Pools + PoolCount) + { + // Woops, we ran out, the calling code should allocate more. + if (Empty == 0) + { + _error->Error("Ran out of allocation pools"); + return 0; + } + + I = Empty; + I->ItemSize = ItemSize; + I->Count = 0; + } + + // Out of space, allocate some more + if (I->Count == 0) + { + I->Count = 20*1024/ItemSize; + I->Start = RawAllocate(I->Count*ItemSize,ItemSize); + } + + I->Count--; + unsigned long Result = I->Start; + I->Start += ItemSize; + return Result/ItemSize; +} + /*}}}*/ +// DynamicMMap::WriteString - Write a string to the file /*{{{*/ +// --------------------------------------------------------------------- +/* Strings are not aligned to anything */ +unsigned long DynamicMMap::WriteString(const char *String, + unsigned long Len) +{ + unsigned long Result = iSize; + // Just in case error check + if (Result + Len > WorkSpace) + { + _error->Error("Dynamic MMap ran out of room"); + return 0; + } + + if (Len == (unsigned long)-1) + Len = strlen(String); + iSize += Len + 1; + memcpy((char *)Base + Result,String,Len); + ((char *)Base)[Result + Len] = 0; + return Result; +} + /*}}}*/ diff --git a/apt-pkg/contrib/mmap.h b/apt-pkg/contrib/mmap.h new file mode 100644 index 0000000..e329b16 --- /dev/null +++ b/apt-pkg/contrib/mmap.h @@ -0,0 +1,105 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: mmap.h,v 1.12 2001/05/14 05:16:43 jgg Exp $ +/* ###################################################################### + + MMap Class - Provides 'real' mmap or a faked mmap using read(). + + The purpose of this code is to provide a generic way for clients to + access the mmap function. In enviroments that do not support mmap + from file fd's this function will use read and normal allocated + memory. + + Writing to a public mmap will always fully comit all changes when the + class is deleted. Ie it will rewrite the file, unless it is readonly + + The DynamicMMap class is used to help the on-disk data structure + generators. It provides a large allocated workspace and members + to allocate space from the workspace in an effecient fashion. + + This source is placed in the Public Domain, do with it what you will + It was originally written by Jason Gunthorpe. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_MMAP_H +#define PKGLIB_MMAP_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/mmap.h" +#endif + +#include +#include + +using std::string; + +/* This should be a 32 bit type, larger tyes use too much ram and smaller + types are too small. Where ever possible 'unsigned long' should be used + instead of this internal type */ +typedef unsigned int map_ptrloc; + +class MMap +{ + protected: + + unsigned long Flags; + unsigned long iSize; + void *Base; + + bool Map(FileFd &Fd); + bool Close(bool DoSync = true); + + public: + + enum OpenFlags {NoImmMap = (1<<0),Public = (1<<1),ReadOnly = (1<<2), + UnMapped = (1<<3)}; + + // Simple accessors + inline operator void *() {return Base;}; + inline void *Data() {return Base;}; + inline unsigned long Size() {return iSize;}; + + // File manipulators + bool Sync(); + bool Sync(unsigned long Start,unsigned long Stop); + + MMap(FileFd &F,unsigned long Flags); + MMap(unsigned long Flags); + virtual ~MMap(); +}; + +class DynamicMMap : public MMap +{ + public: + + // This is the allocation pool structure + struct Pool + { + unsigned long ItemSize; + unsigned long Start; + unsigned long Count; + }; + + protected: + + FileFd *Fd; + unsigned long WorkSpace; + Pool *Pools; + unsigned int PoolCount; + + public: + + // Allocation + unsigned long RawAllocate(unsigned long Size,unsigned long Aln = 0); + unsigned long Allocate(unsigned long ItemSize); + unsigned long WriteString(const char *String,unsigned long Len = (unsigned long)-1); + inline unsigned long WriteString(const string &S) {return WriteString(S.c_str(),S.length());}; + void UsePools(Pool &P,unsigned int Count) {Pools = &P; PoolCount = Count;}; + + DynamicMMap(FileFd &F,unsigned long Flags,unsigned long WorkSpace = 2*1024*1024); + DynamicMMap(unsigned long Flags,unsigned long WorkSpace = 2*1024*1024); + virtual ~DynamicMMap(); +}; + +#endif diff --git a/apt-pkg/contrib/progress.cc b/apt-pkg/contrib/progress.cc new file mode 100644 index 0000000..e3db9a4 --- /dev/null +++ b/apt-pkg/contrib/progress.cc @@ -0,0 +1,221 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: progress.cc,v 1.12 2003/01/11 07:17:04 jgg Exp $ +/* ###################################################################### + + OpProgress - Operation Progress + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/progress.h" +#endif +#include +#include +#include + +#include + +#include +#include + /*}}}*/ + +using namespace std; + +// OpProgress::OpProgress - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +OpProgress::OpProgress() : Current(0), Total(0), Size(0), SubTotal(1), + LastPercent(0), Percent(0) +{ + memset(&LastTime,0,sizeof(LastTime)); +} + /*}}}*/ +// OpProgress::Progress - Sub progress with no state change /*{{{*/ +// --------------------------------------------------------------------- +/* Current is the Base Overall progress in units of Total. Cur is the sub + progress in units of SubTotal. Size is a scaling factor that says what + percent of Total SubTotal is. */ +void OpProgress::Progress(unsigned long Cur) +{ + if (Total == 0 || Size == 0 || SubTotal == 0) + Percent = 0; + else + Percent = (Current + Cur/((float)SubTotal)*Size)*100.0/Total; + Update(); +} + /*}}}*/ +// OpProgress::OverallProgress - Set the overall progress /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void OpProgress::OverallProgress(unsigned long Current, unsigned long Total, + unsigned long Size,const string &Op) +{ + this->Current = Current; + this->Total = Total; + this->Size = Size; + this->Op = Op; + SubOp = string(); + if (Total == 0) + Percent = 0; + else + Percent = Current*100.0/Total; + Update(); +} + /*}}}*/ +// OpProgress::SubProgress - Set the sub progress state /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void OpProgress::SubProgress(unsigned long SubTotal,const string &Op) +{ + this->SubTotal = SubTotal; + SubOp = Op; + if (Total == 0) + Percent = 0; + else + Percent = Current*100.0/Total; + Update(); +} + /*}}}*/ +// OpProgress::SubProgress - Set the sub progress state /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void OpProgress::SubProgress(unsigned long SubTotal) +{ + this->SubTotal = SubTotal; + if (Total == 0) + Percent = 0; + else + Percent = Current*100.0/Total; + Update(); +} + /*}}}*/ +// OpProgress::CheckChange - See if the display should be updated /*{{{*/ +// --------------------------------------------------------------------- +/* Progress calls are made so frequently that if every one resulted in + an update the display would be swamped and the system much slower. + This provides an upper bound on the update rate. */ +bool OpProgress::CheckChange(float Interval) +{ + // New major progress indication + if (Op != LastOp) + { + MajorChange = true; + LastOp = Op; + return true; + } + MajorChange = false; + + if (SubOp != LastSubOp) + { + LastSubOp = SubOp; + return true; + } + + if ((int)LastPercent == (int)Percent) + return false; + + LastPercent = Percent; + + if (Interval == 0) + return false; + + // Check time delta + struct timeval Now; + gettimeofday(&Now,0); + double Diff = Now.tv_sec - LastTime.tv_sec + (Now.tv_usec - LastTime.tv_usec)/1000000.0; + if (Diff < Interval) + return false; + LastTime = Now; + return true; +} + /*}}}*/ +// OpTextProgress::OpTextProgress - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +OpTextProgress::OpTextProgress(Configuration &Config) : + NoUpdate(false), NoDisplay(false), LastLen(0) +{ + if (Config.FindI("quiet",0) >= 1) + NoUpdate = true; + if (Config.FindI("quiet",0) >= 2) + NoDisplay = true; +}; + /*}}}*/ +// OpTextProgress::Done - Clean up the display /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void OpTextProgress::Done() +{ + if (NoUpdate == false && OldOp.empty() == false) + { + char S[300]; + if (_error->PendingError() == true) + snprintf(S,sizeof(S),_("%c%s... Error!"),'\r',OldOp.c_str()); + else + snprintf(S,sizeof(S),_("%c%s... Done"),'\r',OldOp.c_str()); + Write(S); + cout << endl; + OldOp = string(); + } + + if (NoUpdate == true && NoDisplay == false && OldOp.empty() == false) + { + OldOp = string(); + cout << endl; + } +} + /*}}}*/ +// OpTextProgress::Update - Simple text spinner /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void OpTextProgress::Update() +{ + if (CheckChange((NoUpdate == true?0:0.7)) == false) + return; + + // No percent spinner + if (NoUpdate == true) + { + if (MajorChange == false) + return; + if (NoDisplay == false) + { + if (OldOp.empty() == false) + cout << endl; + OldOp = "a"; + cout << Op << "..." << flush; + } + + return; + } + + // Erase the old text and 'log' the event + char S[300]; + if (MajorChange == true && OldOp.empty() == false) + { + snprintf(S,sizeof(S),"\r%s",OldOp.c_str()); + Write(S); + cout << endl; + } + + // Print the spinner + snprintf(S,sizeof(S),"\r%s... %u%%",Op.c_str(),(unsigned int)Percent); + Write(S); + + OldOp = Op; +} + /*}}}*/ +// OpTextProgress::Write - Write the progress string /*{{{*/ +// --------------------------------------------------------------------- +/* This space fills the end to overwrite the previous text */ +void OpTextProgress::Write(const char *S) +{ + cout << S; + for (unsigned int I = strlen(S); I < LastLen; I++) + cout << ' '; + cout << '\r' << flush; + LastLen = strlen(S); +} + /*}}}*/ diff --git a/apt-pkg/contrib/progress.h b/apt-pkg/contrib/progress.h new file mode 100644 index 0000000..20caf4c --- /dev/null +++ b/apt-pkg/contrib/progress.h @@ -0,0 +1,92 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: progress.h,v 1.6 2001/05/07 05:06:52 jgg Exp $ +/* ###################################################################### + + OpProgress - Operation Progress + + This class allows lengthy operations to communicate their progress + to the GUI. The progress model is simple and is not designed to handle + the complex case of the multi-activity aquire class. + + The model is based on the concept of an overall operation consisting + of a series of small sub operations. Each sub operation has it's own + completion status and the overall operation has it's completion status. + The units of the two are not mixed and are completely independent. + + The UI is expected to subclass this to provide the visuals to the user. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_PROGRESS_H +#define PKGLIB_PROGRESS_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/progress.h" +#endif + +#include +#include + +using std::string; + +class Configuration; +class OpProgress +{ + unsigned long Current; + unsigned long Total; + unsigned long Size; + unsigned long SubTotal; + float LastPercent; + + // Change reduction code + struct timeval LastTime; + string LastOp; + string LastSubOp; + + protected: + + string Op; + string SubOp; + float Percent; + + bool MajorChange; + + bool CheckChange(float Interval = 0.7); + virtual void Update() {}; + + public: + + void Progress(unsigned long Current); + void SubProgress(unsigned long SubTotal); + void SubProgress(unsigned long SubTotal,const string &Op); + void OverallProgress(unsigned long Current,unsigned long Total, + unsigned long Size,const string &Op); + virtual void Done() {}; + + OpProgress(); + virtual ~OpProgress() {}; +}; + +class OpTextProgress : public OpProgress +{ + protected: + + string OldOp; + bool NoUpdate; + bool NoDisplay; + unsigned long LastLen; + virtual void Update(); + void Write(const char *S); + + public: + + virtual void Done(); + + OpTextProgress(bool NoUpdate = false) : NoUpdate(NoUpdate), + NoDisplay(false), LastLen(0) {}; + OpTextProgress(Configuration &Config); + virtual ~OpTextProgress() {Done();}; +}; + +#endif diff --git a/apt-pkg/contrib/sha1.cc b/apt-pkg/contrib/sha1.cc new file mode 100644 index 0000000..72eafd4 --- /dev/null +++ b/apt-pkg/contrib/sha1.cc @@ -0,0 +1,361 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: sha1.cc,v 1.3 2001/05/13 05:15:03 jgg Exp $ +/* ###################################################################### + + SHA1 - SHA-1 Secure Hash Algorithm. + + This file is a Public Domain wrapper for the Public Domain SHA1 + calculation code that is at it's end. + + The algorithm was originally implemented by + Steve Reid and later modified by + James H. Brown . + + Modifications for APT were done by Alfredo K. Kojima and Jason + Gunthorpe. + + Still in the public domain. + + Test Vectors (from FIPS PUB 180-1) + "abc" + A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D + "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" + 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1 + A million repetitions of "a" + 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F + + ##################################################################### + */ + /*}}} */ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/sha1.h" +#endif + +#include +#include + +#include +#include +#include +#include +#include + /*}}}*/ + +// SHA1Transform - Alters an existing SHA-1 hash /*{{{*/ +// --------------------------------------------------------------------- +/* The core of the SHA-1 algorithm. This alters an existing SHA-1 hash to + reflect the addition of 16 longwords of new data. Other routines convert + incoming stream data into 16 long word chunks for this routine */ + +#define rol(value,bits) (((value) << (bits)) | ((value) >> (32 - (bits)))) + +/* blk0() and blk() perform the initial expand. */ +/* I got the idea of expanding during the round function from SSLeay */ +#ifndef WORDS_BIGENDIAN +#define blk0(i) (block->l[i] = (rol(block->l[i],24)&0xFF00FF00) \ + |(rol(block->l[i],8)&0x00FF00FF)) +#else +#define blk0(i) block->l[i] +#endif +#define blk(i) (block->l[i&15] = rol(block->l[(i+13)&15]^block->l[(i+8)&15] \ + ^block->l[(i+2)&15]^block->l[i&15],1)) + +/* (R0+R1),R2,R3,R4 are the different operations used in SHA1 */ +#define R0(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk0(i)+0x5A827999+rol(v,5);w=rol(w,30); +#define R1(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk(i)+0x5A827999+rol(v,5);w=rol(w,30); +#define R2(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0x6ED9EBA1+rol(v,5);w=rol(w,30); +#define R3(v,w,x,y,z,i) z+=(((w|x)&y)|(w&x))+blk(i)+0x8F1BBCDC+rol(v,5);w=rol(w,30); +#define R4(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0xCA62C1D6+rol(v,5);w=rol(w,30); + +static void SHA1Transform(uint32_t state[5],uint8_t const buffer[64]) +{ + uint32_t a,b,c,d,e; + typedef union + { + uint8_t c[64]; + uint32_t l[16]; + } + CHAR64LONG16; + CHAR64LONG16 *block; + + uint8_t workspace[64]; + block = (CHAR64LONG16 *)workspace; + memcpy(block,buffer,sizeof(workspace)); + + /* Copy context->state[] to working vars */ + a = state[0]; + b = state[1]; + c = state[2]; + d = state[3]; + e = state[4]; + + /* 4 rounds of 20 operations each. Loop unrolled. */ + R0(a,b,c,d,e,0); + R0(e,a,b,c,d,1); + R0(d,e,a,b,c,2); + R0(c,d,e,a,b,3); + R0(b,c,d,e,a,4); + R0(a,b,c,d,e,5); + R0(e,a,b,c,d,6); + R0(d,e,a,b,c,7); + R0(c,d,e,a,b,8); + R0(b,c,d,e,a,9); + R0(a,b,c,d,e,10); + R0(e,a,b,c,d,11); + R0(d,e,a,b,c,12); + R0(c,d,e,a,b,13); + R0(b,c,d,e,a,14); + R0(a,b,c,d,e,15); + R1(e,a,b,c,d,16); + R1(d,e,a,b,c,17); + R1(c,d,e,a,b,18); + R1(b,c,d,e,a,19); + R2(a,b,c,d,e,20); + R2(e,a,b,c,d,21); + R2(d,e,a,b,c,22); + R2(c,d,e,a,b,23); + R2(b,c,d,e,a,24); + R2(a,b,c,d,e,25); + R2(e,a,b,c,d,26); + R2(d,e,a,b,c,27); + R2(c,d,e,a,b,28); + R2(b,c,d,e,a,29); + R2(a,b,c,d,e,30); + R2(e,a,b,c,d,31); + R2(d,e,a,b,c,32); + R2(c,d,e,a,b,33); + R2(b,c,d,e,a,34); + R2(a,b,c,d,e,35); + R2(e,a,b,c,d,36); + R2(d,e,a,b,c,37); + R2(c,d,e,a,b,38); + R2(b,c,d,e,a,39); + R3(a,b,c,d,e,40); + R3(e,a,b,c,d,41); + R3(d,e,a,b,c,42); + R3(c,d,e,a,b,43); + R3(b,c,d,e,a,44); + R3(a,b,c,d,e,45); + R3(e,a,b,c,d,46); + R3(d,e,a,b,c,47); + R3(c,d,e,a,b,48); + R3(b,c,d,e,a,49); + R3(a,b,c,d,e,50); + R3(e,a,b,c,d,51); + R3(d,e,a,b,c,52); + R3(c,d,e,a,b,53); + R3(b,c,d,e,a,54); + R3(a,b,c,d,e,55); + R3(e,a,b,c,d,56); + R3(d,e,a,b,c,57); + R3(c,d,e,a,b,58); + R3(b,c,d,e,a,59); + R4(a,b,c,d,e,60); + R4(e,a,b,c,d,61); + R4(d,e,a,b,c,62); + R4(c,d,e,a,b,63); + R4(b,c,d,e,a,64); + R4(a,b,c,d,e,65); + R4(e,a,b,c,d,66); + R4(d,e,a,b,c,67); + R4(c,d,e,a,b,68); + R4(b,c,d,e,a,69); + R4(a,b,c,d,e,70); + R4(e,a,b,c,d,71); + R4(d,e,a,b,c,72); + R4(c,d,e,a,b,73); + R4(b,c,d,e,a,74); + R4(a,b,c,d,e,75); + R4(e,a,b,c,d,76); + R4(d,e,a,b,c,77); + R4(c,d,e,a,b,78); + R4(b,c,d,e,a,79); + + /* Add the working vars back into context.state[] */ + state[0] += a; + state[1] += b; + state[2] += c; + state[3] += d; + state[4] += e; +} + /*}}}*/ + +// SHA1SumValue::SHA1SumValue - Constructs the summation from a string /*{{{*/ +// --------------------------------------------------------------------- +/* The string form of a SHA1 is a 40 character hex number */ +SHA1SumValue::SHA1SumValue(string Str) +{ + memset(Sum,0,sizeof(Sum)); + Set(Str); +} + + /*}}} */ +// SHA1SumValue::SHA1SumValue - Default constructor /*{{{*/ +// --------------------------------------------------------------------- +/* Sets the value to 0 */ +SHA1SumValue::SHA1SumValue() +{ + memset(Sum,0,sizeof(Sum)); +} + + /*}}} */ +// SHA1SumValue::Set - Set the sum from a string /*{{{*/ +// --------------------------------------------------------------------- +/* Converts the hex string into a set of chars */ +bool SHA1SumValue::Set(string Str) +{ + return Hex2Num(Str,Sum,sizeof(Sum)); +} + + /*}}} */ +// SHA1SumValue::Value - Convert the number into a string /*{{{*/ +// --------------------------------------------------------------------- +/* Converts the set of chars into a hex string in lower case */ +string SHA1SumValue::Value() const +{ + char Conv[16] = + { '0','1','2','3','4','5','6','7','8','9','a','b', + 'c','d','e','f' + }; + char Result[41]; + Result[40] = 0; + + // Convert each char into two letters + int J = 0; + int I = 0; + for (; I != 40; J++,I += 2) + { + Result[I] = Conv[Sum[J] >> 4]; + Result[I + 1] = Conv[Sum[J] & 0xF]; + } + + return string(Result); +} + + /*}}} */ +// SHA1SumValue::operator == - Comparator /*{{{*/ +// --------------------------------------------------------------------- +/* Call memcmp on the buffer */ +bool SHA1SumValue::operator == (const SHA1SumValue & rhs) const +{ + return memcmp(Sum,rhs.Sum,sizeof(Sum)) == 0; +} + /*}}}*/ +// SHA1Summation::SHA1Summation - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +SHA1Summation::SHA1Summation() +{ + uint32_t *state = (uint32_t *)State; + uint32_t *count = (uint32_t *)Count; + + /* SHA1 initialization constants */ + state[0] = 0x67452301; + state[1] = 0xEFCDAB89; + state[2] = 0x98BADCFE; + state[3] = 0x10325476; + state[4] = 0xC3D2E1F0; + count[0] = 0; + count[1] = 0; + Done = false; +} + /*}}}*/ +// SHA1Summation::Result - Return checksum value /*{{{*/ +// --------------------------------------------------------------------- +/* Add() may not be called after this */ +SHA1SumValue SHA1Summation::Result() +{ + uint32_t *state = (uint32_t *)State; + uint32_t *count = (uint32_t *)Count; + + // Apply the padding + if (Done == false) + { + unsigned char finalcount[8]; + + for (unsigned i = 0; i < 8; i++) + { + // Endian independent + finalcount[i] = (unsigned char) ((count[(i >= 4 ? 0 : 1)] + >> ((3 - (i & 3)) * 8)) & 255); + } + + Add((unsigned char *) "\200",1); + while ((count[0] & 504) != 448) + Add((unsigned char *) "\0",1); + + Add(finalcount,8); /* Should cause a SHA1Transform() */ + + } + + Done = true; + + // Transfer over the result + SHA1SumValue Value; + for (unsigned i = 0; i < 20; i++) + { + Value.Sum[i] = (unsigned char) + ((state[i >> 2] >> ((3 - (i & 3)) * 8)) & 255); + } + return Value; +} + /*}}}*/ +// SHA1Summation::Add - Adds content of buffer into the checksum /*{{{*/ +// --------------------------------------------------------------------- +/* May not be called after Result() is called */ +bool SHA1Summation::Add(const unsigned char *data,unsigned long len) +{ + if (Done) + return false; + + uint32_t *state = (uint32_t *)State; + uint32_t *count = (uint32_t *)Count; + uint8_t *buffer = (uint8_t *)Buffer; + uint32_t i,j; + + j = (count[0] >> 3) & 63; + if ((count[0] += len << 3) < (len << 3)) + count[1]++; + count[1] += (len >> 29); + if ((j + len) > 63) + { + memcpy(&buffer[j],data,(i = 64 - j)); + SHA1Transform(state,buffer); + for (; i + 63 < len; i += 64) + { + SHA1Transform(state,&data[i]); + } + j = 0; + } + else + i = 0; + memcpy(&buffer[j],&data[i],len - i); + + return true; +} + /*}}}*/ +// SHA1Summation::AddFD - Add content of file into the checksum /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool SHA1Summation::AddFD(int Fd,unsigned long Size) +{ + unsigned char Buf[64 * 64]; + int Res = 0; + int ToEOF = (Size == 0); + while (Size != 0 || ToEOF) + { + unsigned n = sizeof(Buf); + if (!ToEOF) n = min(Size,(unsigned long)n); + Res = read(Fd,Buf,n); + if (Res < 0 || (!ToEOF && (unsigned) Res != n)) // error, or short read + return false; + if (ToEOF && Res == 0) // EOF + break; + Size -= Res; + Add(Buf,Res); + } + return true; +} + /*}}}*/ diff --git a/apt-pkg/contrib/sha1.h b/apt-pkg/contrib/sha1.h new file mode 100644 index 0000000..db8ca78 --- /dev/null +++ b/apt-pkg/contrib/sha1.h @@ -0,0 +1,70 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: sha1.h,v 1.3 2001/05/07 05:05:47 jgg Exp $ +/* ###################################################################### + + SHA1SumValue - Storage for a SHA-1 hash. + SHA1Summation - SHA-1 Secure Hash Algorithm. + + This is a C++ interface to a set of SHA1Sum functions, that mirrors + the equivalent MD5 classes. + + ##################################################################### */ + /*}}}*/ +#ifndef APTPKG_SHA1_H +#define APTPKG_SHA1_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/sha1.h" +#endif + +#include +#include + +using std::string; +using std::min; + +class SHA1Summation; + +class SHA1SumValue +{ + friend class SHA1Summation; + unsigned char Sum[20]; + + public: + + // Accessors + bool operator ==(const SHA1SumValue &rhs) const; + string Value() const; + inline void Value(unsigned char S[20]) + {for (int I = 0; I != sizeof(Sum); I++) S[I] = Sum[I];}; + inline operator string() const {return Value();}; + bool Set(string Str); + inline void Set(unsigned char S[20]) + {for (int I = 0; I != sizeof(Sum); I++) Sum[I] = S[I];}; + + SHA1SumValue(string Str); + SHA1SumValue(); +}; + +class SHA1Summation +{ + /* assumes 64-bit alignment just in case */ + unsigned char Buffer[64] __attribute__((aligned(8))); + unsigned char State[5*4] __attribute__((aligned(8))); + unsigned char Count[2*4] __attribute__((aligned(8))); + bool Done; + + public: + + bool Add(const unsigned char *inbuf,unsigned long inlen); + inline bool Add(const char *Data) {return Add((unsigned char *)Data,strlen(Data));}; + bool AddFD(int Fd,unsigned long Size); + inline bool Add(const unsigned char *Beg,const unsigned char *End) + {return Add(Beg,End-Beg);}; + SHA1SumValue Result(); + + SHA1Summation(); +}; + +#endif diff --git a/apt-pkg/contrib/sha256.cc b/apt-pkg/contrib/sha256.cc new file mode 100644 index 0000000..ecda3d8 --- /dev/null +++ b/apt-pkg/contrib/sha256.cc @@ -0,0 +1,430 @@ +/* + * Cryptographic API. + * + * SHA-256, as specified in + * http://csrc.nist.gov/cryptval/shs/sha256-384-512.pdf + * + * SHA-256 code by Jean-Luc Cooke . + * + * Copyright (c) Jean-Luc Cooke + * Copyright (c) Andrew McDonald + * Copyright (c) 2002 James Morris + * + * Ported from the Linux kernel to Apt by Anthony Towns + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + */ + +#ifdef __GNUG__ +#pragma implementation "apt-pkg/sha256.h" +#endif + + +#define SHA256_DIGEST_SIZE 32 +#define SHA256_HMAC_BLOCK_SIZE 64 + +#define ror32(value,bits) (((value) >> (bits)) | ((value) << (32 - (bits)))) + +#include +#include +#include +#include +#include +#include +#include +#include + +typedef uint32_t u32; +typedef uint8_t u8; + +static inline u32 Ch(u32 x, u32 y, u32 z) +{ + return z ^ (x & (y ^ z)); +} + +static inline u32 Maj(u32 x, u32 y, u32 z) +{ + return (x & y) | (z & (x | y)); +} + +#define e0(x) (ror32(x, 2) ^ ror32(x,13) ^ ror32(x,22)) +#define e1(x) (ror32(x, 6) ^ ror32(x,11) ^ ror32(x,25)) +#define s0(x) (ror32(x, 7) ^ ror32(x,18) ^ (x >> 3)) +#define s1(x) (ror32(x,17) ^ ror32(x,19) ^ (x >> 10)) + +#define H0 0x6a09e667 +#define H1 0xbb67ae85 +#define H2 0x3c6ef372 +#define H3 0xa54ff53a +#define H4 0x510e527f +#define H5 0x9b05688c +#define H6 0x1f83d9ab +#define H7 0x5be0cd19 + +static inline void LOAD_OP(int I, u32 *W, const u8 *input) +{ + W[I] = ( ((u32) input[I * 4 + 0] << 24) + | ((u32) input[I * 4 + 1] << 16) + | ((u32) input[I * 4 + 2] << 8) + | ((u32) input[I * 4 + 3])); +} + +static inline void BLEND_OP(int I, u32 *W) +{ + W[I] = s1(W[I-2]) + W[I-7] + s0(W[I-15]) + W[I-16]; +} + +static void sha256_transform(u32 *state, const u8 *input) +{ + u32 a, b, c, d, e, f, g, h, t1, t2; + u32 W[64]; + int i; + + /* load the input */ + for (i = 0; i < 16; i++) + LOAD_OP(i, W, input); + + /* now blend */ + for (i = 16; i < 64; i++) + BLEND_OP(i, W); + + /* load the state into our registers */ + a=state[0]; b=state[1]; c=state[2]; d=state[3]; + e=state[4]; f=state[5]; g=state[6]; h=state[7]; + + /* now iterate */ + t1 = h + e1(e) + Ch(e,f,g) + 0x428a2f98 + W[ 0]; + t2 = e0(a) + Maj(a,b,c); d+=t1; h=t1+t2; + t1 = g + e1(d) + Ch(d,e,f) + 0x71374491 + W[ 1]; + t2 = e0(h) + Maj(h,a,b); c+=t1; g=t1+t2; + t1 = f + e1(c) + Ch(c,d,e) + 0xb5c0fbcf + W[ 2]; + t2 = e0(g) + Maj(g,h,a); b+=t1; f=t1+t2; + t1 = e + e1(b) + Ch(b,c,d) + 0xe9b5dba5 + W[ 3]; + t2 = e0(f) + Maj(f,g,h); a+=t1; e=t1+t2; + t1 = d + e1(a) + Ch(a,b,c) + 0x3956c25b + W[ 4]; + t2 = e0(e) + Maj(e,f,g); h+=t1; d=t1+t2; + t1 = c + e1(h) + Ch(h,a,b) + 0x59f111f1 + W[ 5]; + t2 = e0(d) + Maj(d,e,f); g+=t1; c=t1+t2; + t1 = b + e1(g) + Ch(g,h,a) + 0x923f82a4 + W[ 6]; + t2 = e0(c) + Maj(c,d,e); f+=t1; b=t1+t2; + t1 = a + e1(f) + Ch(f,g,h) + 0xab1c5ed5 + W[ 7]; + t2 = e0(b) + Maj(b,c,d); e+=t1; a=t1+t2; + + t1 = h + e1(e) + Ch(e,f,g) + 0xd807aa98 + W[ 8]; + t2 = e0(a) + Maj(a,b,c); d+=t1; h=t1+t2; + t1 = g + e1(d) + Ch(d,e,f) + 0x12835b01 + W[ 9]; + t2 = e0(h) + Maj(h,a,b); c+=t1; g=t1+t2; + t1 = f + e1(c) + Ch(c,d,e) + 0x243185be + W[10]; + t2 = e0(g) + Maj(g,h,a); b+=t1; f=t1+t2; + t1 = e + e1(b) + Ch(b,c,d) + 0x550c7dc3 + W[11]; + t2 = e0(f) + Maj(f,g,h); a+=t1; e=t1+t2; + t1 = d + e1(a) + Ch(a,b,c) + 0x72be5d74 + W[12]; + t2 = e0(e) + Maj(e,f,g); h+=t1; d=t1+t2; + t1 = c + e1(h) + Ch(h,a,b) + 0x80deb1fe + W[13]; + t2 = e0(d) + Maj(d,e,f); g+=t1; c=t1+t2; + t1 = b + e1(g) + Ch(g,h,a) + 0x9bdc06a7 + W[14]; + t2 = e0(c) + Maj(c,d,e); f+=t1; b=t1+t2; + t1 = a + e1(f) + Ch(f,g,h) + 0xc19bf174 + W[15]; + t2 = e0(b) + Maj(b,c,d); e+=t1; a=t1+t2; + + t1 = h + e1(e) + Ch(e,f,g) + 0xe49b69c1 + W[16]; + t2 = e0(a) + Maj(a,b,c); d+=t1; h=t1+t2; + t1 = g + e1(d) + Ch(d,e,f) + 0xefbe4786 + W[17]; + t2 = e0(h) + Maj(h,a,b); c+=t1; g=t1+t2; + t1 = f + e1(c) + Ch(c,d,e) + 0x0fc19dc6 + W[18]; + t2 = e0(g) + Maj(g,h,a); b+=t1; f=t1+t2; + t1 = e + e1(b) + Ch(b,c,d) + 0x240ca1cc + W[19]; + t2 = e0(f) + Maj(f,g,h); a+=t1; e=t1+t2; + t1 = d + e1(a) + Ch(a,b,c) + 0x2de92c6f + W[20]; + t2 = e0(e) + Maj(e,f,g); h+=t1; d=t1+t2; + t1 = c + e1(h) + Ch(h,a,b) + 0x4a7484aa + W[21]; + t2 = e0(d) + Maj(d,e,f); g+=t1; c=t1+t2; + t1 = b + e1(g) + Ch(g,h,a) + 0x5cb0a9dc + W[22]; + t2 = e0(c) + Maj(c,d,e); f+=t1; b=t1+t2; + t1 = a + e1(f) + Ch(f,g,h) + 0x76f988da + W[23]; + t2 = e0(b) + Maj(b,c,d); e+=t1; a=t1+t2; + + t1 = h + e1(e) + Ch(e,f,g) + 0x983e5152 + W[24]; + t2 = e0(a) + Maj(a,b,c); d+=t1; h=t1+t2; + t1 = g + e1(d) + Ch(d,e,f) + 0xa831c66d + W[25]; + t2 = e0(h) + Maj(h,a,b); c+=t1; g=t1+t2; + t1 = f + e1(c) + Ch(c,d,e) + 0xb00327c8 + W[26]; + t2 = e0(g) + Maj(g,h,a); b+=t1; f=t1+t2; + t1 = e + e1(b) + Ch(b,c,d) + 0xbf597fc7 + W[27]; + t2 = e0(f) + Maj(f,g,h); a+=t1; e=t1+t2; + t1 = d + e1(a) + Ch(a,b,c) + 0xc6e00bf3 + W[28]; + t2 = e0(e) + Maj(e,f,g); h+=t1; d=t1+t2; + t1 = c + e1(h) + Ch(h,a,b) + 0xd5a79147 + W[29]; + t2 = e0(d) + Maj(d,e,f); g+=t1; c=t1+t2; + t1 = b + e1(g) + Ch(g,h,a) + 0x06ca6351 + W[30]; + t2 = e0(c) + Maj(c,d,e); f+=t1; b=t1+t2; + t1 = a + e1(f) + Ch(f,g,h) + 0x14292967 + W[31]; + t2 = e0(b) + Maj(b,c,d); e+=t1; a=t1+t2; + + t1 = h + e1(e) + Ch(e,f,g) + 0x27b70a85 + W[32]; + t2 = e0(a) + Maj(a,b,c); d+=t1; h=t1+t2; + t1 = g + e1(d) + Ch(d,e,f) + 0x2e1b2138 + W[33]; + t2 = e0(h) + Maj(h,a,b); c+=t1; g=t1+t2; + t1 = f + e1(c) + Ch(c,d,e) + 0x4d2c6dfc + W[34]; + t2 = e0(g) + Maj(g,h,a); b+=t1; f=t1+t2; + t1 = e + e1(b) + Ch(b,c,d) + 0x53380d13 + W[35]; + t2 = e0(f) + Maj(f,g,h); a+=t1; e=t1+t2; + t1 = d + e1(a) + Ch(a,b,c) + 0x650a7354 + W[36]; + t2 = e0(e) + Maj(e,f,g); h+=t1; d=t1+t2; + t1 = c + e1(h) + Ch(h,a,b) + 0x766a0abb + W[37]; + t2 = e0(d) + Maj(d,e,f); g+=t1; c=t1+t2; + t1 = b + e1(g) + Ch(g,h,a) + 0x81c2c92e + W[38]; + t2 = e0(c) + Maj(c,d,e); f+=t1; b=t1+t2; + t1 = a + e1(f) + Ch(f,g,h) + 0x92722c85 + W[39]; + t2 = e0(b) + Maj(b,c,d); e+=t1; a=t1+t2; + + t1 = h + e1(e) + Ch(e,f,g) + 0xa2bfe8a1 + W[40]; + t2 = e0(a) + Maj(a,b,c); d+=t1; h=t1+t2; + t1 = g + e1(d) + Ch(d,e,f) + 0xa81a664b + W[41]; + t2 = e0(h) + Maj(h,a,b); c+=t1; g=t1+t2; + t1 = f + e1(c) + Ch(c,d,e) + 0xc24b8b70 + W[42]; + t2 = e0(g) + Maj(g,h,a); b+=t1; f=t1+t2; + t1 = e + e1(b) + Ch(b,c,d) + 0xc76c51a3 + W[43]; + t2 = e0(f) + Maj(f,g,h); a+=t1; e=t1+t2; + t1 = d + e1(a) + Ch(a,b,c) + 0xd192e819 + W[44]; + t2 = e0(e) + Maj(e,f,g); h+=t1; d=t1+t2; + t1 = c + e1(h) + Ch(h,a,b) + 0xd6990624 + W[45]; + t2 = e0(d) + Maj(d,e,f); g+=t1; c=t1+t2; + t1 = b + e1(g) + Ch(g,h,a) + 0xf40e3585 + W[46]; + t2 = e0(c) + Maj(c,d,e); f+=t1; b=t1+t2; + t1 = a + e1(f) + Ch(f,g,h) + 0x106aa070 + W[47]; + t2 = e0(b) + Maj(b,c,d); e+=t1; a=t1+t2; + + t1 = h + e1(e) + Ch(e,f,g) + 0x19a4c116 + W[48]; + t2 = e0(a) + Maj(a,b,c); d+=t1; h=t1+t2; + t1 = g + e1(d) + Ch(d,e,f) + 0x1e376c08 + W[49]; + t2 = e0(h) + Maj(h,a,b); c+=t1; g=t1+t2; + t1 = f + e1(c) + Ch(c,d,e) + 0x2748774c + W[50]; + t2 = e0(g) + Maj(g,h,a); b+=t1; f=t1+t2; + t1 = e + e1(b) + Ch(b,c,d) + 0x34b0bcb5 + W[51]; + t2 = e0(f) + Maj(f,g,h); a+=t1; e=t1+t2; + t1 = d + e1(a) + Ch(a,b,c) + 0x391c0cb3 + W[52]; + t2 = e0(e) + Maj(e,f,g); h+=t1; d=t1+t2; + t1 = c + e1(h) + Ch(h,a,b) + 0x4ed8aa4a + W[53]; + t2 = e0(d) + Maj(d,e,f); g+=t1; c=t1+t2; + t1 = b + e1(g) + Ch(g,h,a) + 0x5b9cca4f + W[54]; + t2 = e0(c) + Maj(c,d,e); f+=t1; b=t1+t2; + t1 = a + e1(f) + Ch(f,g,h) + 0x682e6ff3 + W[55]; + t2 = e0(b) + Maj(b,c,d); e+=t1; a=t1+t2; + + t1 = h + e1(e) + Ch(e,f,g) + 0x748f82ee + W[56]; + t2 = e0(a) + Maj(a,b,c); d+=t1; h=t1+t2; + t1 = g + e1(d) + Ch(d,e,f) + 0x78a5636f + W[57]; + t2 = e0(h) + Maj(h,a,b); c+=t1; g=t1+t2; + t1 = f + e1(c) + Ch(c,d,e) + 0x84c87814 + W[58]; + t2 = e0(g) + Maj(g,h,a); b+=t1; f=t1+t2; + t1 = e + e1(b) + Ch(b,c,d) + 0x8cc70208 + W[59]; + t2 = e0(f) + Maj(f,g,h); a+=t1; e=t1+t2; + t1 = d + e1(a) + Ch(a,b,c) + 0x90befffa + W[60]; + t2 = e0(e) + Maj(e,f,g); h+=t1; d=t1+t2; + t1 = c + e1(h) + Ch(h,a,b) + 0xa4506ceb + W[61]; + t2 = e0(d) + Maj(d,e,f); g+=t1; c=t1+t2; + t1 = b + e1(g) + Ch(g,h,a) + 0xbef9a3f7 + W[62]; + t2 = e0(c) + Maj(c,d,e); f+=t1; b=t1+t2; + t1 = a + e1(f) + Ch(f,g,h) + 0xc67178f2 + W[63]; + t2 = e0(b) + Maj(b,c,d); e+=t1; a=t1+t2; + + state[0] += a; state[1] += b; state[2] += c; state[3] += d; + state[4] += e; state[5] += f; state[6] += g; state[7] += h; + + /* clear any sensitive info... */ + a = b = c = d = e = f = g = h = t1 = t2 = 0; + memset(W, 0, 64 * sizeof(u32)); +} + +SHA256Summation::SHA256Summation() +{ + Sum.state[0] = H0; + Sum.state[1] = H1; + Sum.state[2] = H2; + Sum.state[3] = H3; + Sum.state[4] = H4; + Sum.state[5] = H5; + Sum.state[6] = H6; + Sum.state[7] = H7; + Sum.count[0] = Sum.count[1] = 0; + memset(Sum.buf, 0, sizeof(Sum.buf)); + Done = false; +} + +bool SHA256Summation::Add(const u8 *data, unsigned long len) +{ + struct sha256_ctx *sctx = ∑ + unsigned int i, index, part_len; + + if (Done) return false; + + /* Compute number of bytes mod 128 */ + index = (unsigned int)((sctx->count[0] >> 3) & 0x3f); + + /* Update number of bits */ + if ((sctx->count[0] += (len << 3)) < (len << 3)) { + sctx->count[1]++; + sctx->count[1] += (len >> 29); + } + + part_len = 64 - index; + + /* Transform as many times as possible. */ + if (len >= part_len) { + memcpy(&sctx->buf[index], data, part_len); + sha256_transform(sctx->state, sctx->buf); + + for (i = part_len; i + 63 < len; i += 64) + sha256_transform(sctx->state, &data[i]); + index = 0; + } else { + i = 0; + } + + /* Buffer remaining input */ + memcpy(&sctx->buf[index], &data[i], len-i); + + return true; +} + +SHA256SumValue SHA256Summation::Result() +{ + struct sha256_ctx *sctx = ∑ + if (!Done) { + u8 bits[8]; + unsigned int index, pad_len, t; + static const u8 padding[64] = { 0x80, }; + + /* Save number of bits */ + t = sctx->count[0]; + bits[7] = t; t >>= 8; + bits[6] = t; t >>= 8; + bits[5] = t; t >>= 8; + bits[4] = t; + t = sctx->count[1]; + bits[3] = t; t >>= 8; + bits[2] = t; t >>= 8; + bits[1] = t; t >>= 8; + bits[0] = t; + + /* Pad out to 56 mod 64. */ + index = (sctx->count[0] >> 3) & 0x3f; + pad_len = (index < 56) ? (56 - index) : ((64+56) - index); + Add(padding, pad_len); + + /* Append length (before padding) */ + Add(bits, 8); + } + + Done = true; + + /* Store state in digest */ + + SHA256SumValue res; + u8 *out = res.Sum; + + int i, j; + unsigned int t; + for (i = j = 0; i < 8; i++, j += 4) { + t = sctx->state[i]; + out[j+3] = t; t >>= 8; + out[j+2] = t; t >>= 8; + out[j+1] = t; t >>= 8; + out[j ] = t; + } + + return res; +} + +// SHA256SumValue::SHA256SumValue - Constructs the sum from a string /*{{{*/ +// --------------------------------------------------------------------- +/* The string form of a SHA256 is a 64 character hex number */ +SHA256SumValue::SHA256SumValue(string Str) +{ + memset(Sum,0,sizeof(Sum)); + Set(Str); +} + + /*}}}*/ +// SHA256SumValue::SHA256SumValue - Default constructor /*{{{*/ +// --------------------------------------------------------------------- +/* Sets the value to 0 */ +SHA256SumValue::SHA256SumValue() +{ + memset(Sum,0,sizeof(Sum)); +} + + /*}}}*/ +// SHA256SumValue::Set - Set the sum from a string /*{{{*/ +// --------------------------------------------------------------------- +/* Converts the hex string into a set of chars */ +bool SHA256SumValue::Set(string Str) +{ + return Hex2Num(Str,Sum,sizeof(Sum)); +} + /*}}}*/ +// SHA256SumValue::Value - Convert the number into a string /*{{{*/ +// --------------------------------------------------------------------- +/* Converts the set of chars into a hex string in lower case */ +string SHA256SumValue::Value() const +{ + char Conv[16] = + { '0','1','2','3','4','5','6','7','8','9','a','b', + 'c','d','e','f' + }; + char Result[65]; + Result[64] = 0; + + // Convert each char into two letters + int J = 0; + int I = 0; + for (; I != 64; J++,I += 2) + { + Result[I] = Conv[Sum[J] >> 4]; + Result[I + 1] = Conv[Sum[J] & 0xF]; + } + + return string(Result); +} + + + +// SHA256SumValue::operator == - Comparator /*{{{*/ +// --------------------------------------------------------------------- +/* Call memcmp on the buffer */ +bool SHA256SumValue::operator == (const SHA256SumValue & rhs) const +{ + return memcmp(Sum,rhs.Sum,sizeof(Sum)) == 0; +} + /*}}}*/ + + +// SHA256Summation::AddFD - Add content of file into the checksum /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool SHA256Summation::AddFD(int Fd,unsigned long Size) +{ + unsigned char Buf[64 * 64]; + int Res = 0; + int ToEOF = (Size == 0); + while (Size != 0 || ToEOF) + { + unsigned n = sizeof(Buf); + if (!ToEOF) n = min(Size,(unsigned long)n); + Res = read(Fd,Buf,n); + if (Res < 0 || (!ToEOF && (unsigned) Res != n)) // error, or short read + return false; + if (ToEOF && Res == 0) // EOF + break; + Size -= Res; + Add(Buf,Res); + } + return true; +} + /*}}}*/ + diff --git a/apt-pkg/contrib/sha256.h b/apt-pkg/contrib/sha256.h new file mode 100644 index 0000000..70b3ae2 --- /dev/null +++ b/apt-pkg/contrib/sha256.h @@ -0,0 +1,74 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: sha1.h,v 1.3 2001/05/07 05:05:47 jgg Exp $ +/* ###################################################################### + + SHA256SumValue - Storage for a SHA-256 hash. + SHA256Summation - SHA-256 Secure Hash Algorithm. + + This is a C++ interface to a set of SHA256Sum functions, that mirrors + the equivalent MD5 & SHA1 classes. + + ##################################################################### */ + /*}}}*/ +#ifndef APTPKG_SHA256_H +#define APTPKG_SHA256_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/sha256.h" +#endif + +#include +#include + +using std::string; +using std::min; + +class SHA256Summation; + +class SHA256SumValue +{ + friend class SHA256Summation; + unsigned char Sum[32]; + + public: + + // Accessors + bool operator ==(const SHA256SumValue &rhs) const; + string Value() const; + inline void Value(unsigned char S[32]) + {for (int I = 0; I != sizeof(Sum); I++) S[I] = Sum[I];}; + inline operator string() const {return Value();}; + bool Set(string Str); + inline void Set(unsigned char S[32]) + {for (int I = 0; I != sizeof(Sum); I++) Sum[I] = S[I];}; + + SHA256SumValue(string Str); + SHA256SumValue(); +}; + +struct sha256_ctx { + uint32_t count[2]; + uint32_t state[8]; + uint8_t buf[128]; +}; + +class SHA256Summation +{ + struct sha256_ctx Sum; + + bool Done; + + public: + + bool Add(const unsigned char *inbuf,unsigned long inlen); + inline bool Add(const char *Data) {return Add((unsigned char *)Data,strlen(Data));}; + bool AddFD(int Fd,unsigned long Size); + inline bool Add(const unsigned char *Beg,const unsigned char *End) + {return Add(Beg,End-Beg);}; + SHA256SumValue Result(); + + SHA256Summation(); +}; + +#endif diff --git a/apt-pkg/contrib/sptr.h b/apt-pkg/contrib/sptr.h new file mode 100644 index 0000000..9df0e44 --- /dev/null +++ b/apt-pkg/contrib/sptr.h @@ -0,0 +1,66 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: sptr.h,v 1.3 2001/03/11 07:22:19 jgg Exp $ +/* ###################################################################### + + Trivial non-ref counted 'smart pointer' + + This is really only good to eliminate + { + delete Foo; + return; + } + + Blocks from functions. + + I think G++ has become good enough that doing this won't have much + code size implications. + + ##################################################################### */ + /*}}}*/ +#ifndef SMART_POINTER_H +#define SMART_POINTER_H + +template +class SPtr +{ + public: + T *Ptr; + + inline T *operator ->() {return Ptr;}; + inline T &operator *() {return *Ptr;}; + inline operator T *() {return Ptr;}; + inline operator void *() {return Ptr;}; + inline T *UnGuard() {T *Tmp = Ptr; Ptr = 0; return Tmp;}; + inline void operator =(T *N) {Ptr = N;}; + inline bool operator ==(T *lhs) const {return Ptr == lhs;}; + inline bool operator !=(T *lhs) const {return Ptr != lhs;}; + inline T*Get() {return Ptr;}; + + inline SPtr(T *Ptr) : Ptr(Ptr) {}; + inline SPtr() : Ptr(0) {}; + inline ~SPtr() {delete Ptr;}; +}; + +template +class SPtrArray +{ + public: + T *Ptr; + + //inline T &operator *() {return *Ptr;}; + inline operator T *() {return Ptr;}; + inline operator void *() {return Ptr;}; + inline T *UnGuard() {T *Tmp = Ptr; Ptr = 0; return Tmp;}; + //inline T &operator [](signed long I) {return Ptr[I];}; + inline void operator =(T *N) {Ptr = N;}; + inline bool operator ==(T *lhs) const {return Ptr == lhs;}; + inline bool operator !=(T *lhs) const {return Ptr != lhs;}; + inline T *Get() {return Ptr;}; + + inline SPtrArray(T *Ptr) : Ptr(Ptr) {}; + inline SPtrArray() : Ptr(0) {}; + inline ~SPtrArray() {delete [] Ptr;}; +}; + +#endif diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc new file mode 100644 index 0000000..d961559 --- /dev/null +++ b/apt-pkg/contrib/strutl.cc @@ -0,0 +1,1180 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: strutl.cc,v 1.48 2003/07/18 14:15:11 mdz Exp $ +/* ###################################################################### + + String Util - Some useful string functions. + + These have been collected from here and there to do all sorts of useful + things to strings. They are useful in file parsers, URI handlers and + especially in APT methods. + + This source is placed in the Public Domain, do with it what you will + It was originally written by Jason Gunthorpe + + ##################################################################### */ + /*}}}*/ +// Includes /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/strutl.h" +#endif + +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "config.h" + +using namespace std; + /*}}}*/ + +// strstrip - Remove white space from the front and back of a string /*{{{*/ +// --------------------------------------------------------------------- +/* This is handy to use when parsing a file. It also removes \n's left + over from fgets and company */ +char *_strstrip(char *String) +{ + for (;*String != 0 && (*String == ' ' || *String == '\t'); String++); + + if (*String == 0) + return String; + + char *End = String + strlen(String) - 1; + for (;End != String - 1 && (*End == ' ' || *End == '\t' || *End == '\n' || + *End == '\r'); End--); + End++; + *End = 0; + return String; +}; + /*}}}*/ +// strtabexpand - Converts tabs into 8 spaces /*{{{*/ +// --------------------------------------------------------------------- +/* */ +char *_strtabexpand(char *String,size_t Len) +{ + for (char *I = String; I != I + Len && *I != 0; I++) + { + if (*I != '\t') + continue; + if (I + 8 > String + Len) + { + *I = 0; + return String; + } + + /* Assume the start of the string is 0 and find the next 8 char + division */ + int Len; + if (String == I) + Len = 1; + else + Len = 8 - ((String - I) % 8); + Len -= 2; + if (Len <= 0) + { + *I = ' '; + continue; + } + + memmove(I + Len,I + 1,strlen(I) + 1); + for (char *J = I; J + Len != I; *I = ' ', I++); + } + return String; +} + /*}}}*/ +// ParseQuoteWord - Parse a single word out of a string /*{{{*/ +// --------------------------------------------------------------------- +/* This grabs a single word, converts any % escaped characters to their + proper values and advances the pointer. Double quotes are understood + and striped out as well. This is for URI/URL parsing. It also can + understand [] brackets.*/ +bool ParseQuoteWord(const char *&String,string &Res) +{ + // Skip leading whitespace + const char *C = String; + for (;*C != 0 && *C == ' '; C++); + if (*C == 0) + return false; + + // Jump to the next word + for (;*C != 0 && isspace(*C) == 0; C++) + { + if (*C == '"') + { + for (C++; *C != 0 && *C != '"'; C++); + if (*C == 0) + return false; + } + if (*C == '[') + { + for (C++; *C != 0 && *C != ']'; C++); + if (*C == 0) + return false; + } + } + + // Now de-quote characters + char Buffer[1024]; + char Tmp[3]; + const char *Start = String; + char *I; + for (I = Buffer; I < Buffer + sizeof(Buffer) && Start != C; I++) + { + if (*Start == '%' && Start + 2 < C) + { + Tmp[0] = Start[1]; + Tmp[1] = Start[2]; + Tmp[2] = 0; + *I = (char)strtol(Tmp,0,16); + Start += 3; + continue; + } + if (*Start != '"') + *I = *Start; + else + I--; + Start++; + } + *I = 0; + Res = Buffer; + + // Skip ending white space + for (;*C != 0 && isspace(*C) != 0; C++); + String = C; + return true; +} + /*}}}*/ +// ParseCWord - Parses a string like a C "" expression /*{{{*/ +// --------------------------------------------------------------------- +/* This expects a series of space separated strings enclosed in ""'s. + It concatenates the ""'s into a single string. */ +bool ParseCWord(const char *&String,string &Res) +{ + // Skip leading whitespace + const char *C = String; + for (;*C != 0 && *C == ' '; C++); + if (*C == 0) + return false; + + char Buffer[1024]; + char *Buf = Buffer; + if (strlen(String) >= sizeof(Buffer)) + return false; + + for (; *C != 0; C++) + { + if (*C == '"') + { + for (C++; *C != 0 && *C != '"'; C++) + *Buf++ = *C; + + if (*C == 0) + return false; + + continue; + } + + if (C != String && isspace(*C) != 0 && isspace(C[-1]) != 0) + continue; + if (isspace(*C) == 0) + return false; + *Buf++ = ' '; + } + *Buf = 0; + Res = Buffer; + String = C; + return true; +} + /*}}}*/ +// QuoteString - Convert a string into quoted from /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string QuoteString(const string &Str, const char *Bad) +{ + string Res; + for (string::const_iterator I = Str.begin(); I != Str.end(); I++) + { + if (strchr(Bad,*I) != 0 || isprint(*I) == 0 || + *I <= 0x20 || *I >= 0x7F) + { + char Buf[10]; + sprintf(Buf,"%%%02x",(int)*I); + Res += Buf; + } + else + Res += *I; + } + return Res; +} + /*}}}*/ +// DeQuoteString - Convert a string from quoted from /*{{{*/ +// --------------------------------------------------------------------- +/* This undoes QuoteString */ +string DeQuoteString(const string &Str) +{ + string Res; + for (string::const_iterator I = Str.begin(); I != Str.end(); I++) + { + if (*I == '%' && I + 2 < Str.end()) + { + char Tmp[3]; + Tmp[0] = I[1]; + Tmp[1] = I[2]; + Tmp[2] = 0; + Res += (char)strtol(Tmp,0,16); + I += 2; + continue; + } + else + Res += *I; + } + return Res; +} + + /*}}}*/ +// SizeToStr - Convert a long into a human readable size /*{{{*/ +// --------------------------------------------------------------------- +/* A max of 4 digits are shown before conversion to the next highest unit. + The max length of the string will be 5 chars unless the size is > 10 + YottaBytes (E24) */ +string SizeToStr(double Size) +{ + char S[300]; + double ASize; + if (Size >= 0) + ASize = Size; + else + ASize = -1*Size; + + /* bytes, KiloBytes, MegaBytes, GigaBytes, TeraBytes, PetaBytes, + ExaBytes, ZettaBytes, YottaBytes */ + char Ext[] = {'\0','k','M','G','T','P','E','Z','Y'}; + int I = 0; + while (I <= 8) + { + if (ASize < 100 && I != 0) + { + sprintf(S,"%.1f%c",ASize,Ext[I]); + break; + } + + if (ASize < 10000) + { + sprintf(S,"%.0f%c",ASize,Ext[I]); + break; + } + ASize /= 1000.0; + I++; + } + + return S; +} + /*}}}*/ +// TimeToStr - Convert the time into a string /*{{{*/ +// --------------------------------------------------------------------- +/* Converts a number of seconds to a hms format */ +string TimeToStr(unsigned long Sec) +{ + char S[300]; + + while (1) + { + if (Sec > 60*60*24) + { + sprintf(S,"%lid %lih%lim%lis",Sec/60/60/24,(Sec/60/60) % 24,(Sec/60) % 60,Sec % 60); + break; + } + + if (Sec > 60*60) + { + sprintf(S,"%lih%lim%lis",Sec/60/60,(Sec/60) % 60,Sec % 60); + break; + } + + if (Sec > 60) + { + sprintf(S,"%lim%lis",Sec/60,Sec % 60); + break; + } + + sprintf(S,"%lis",Sec); + break; + } + + return S; +} + /*}}}*/ +// SubstVar - Substitute a string for another string /*{{{*/ +// --------------------------------------------------------------------- +/* This replaces all occurances of Subst with Contents in Str. */ +string SubstVar(const string &Str,const string &Subst,const string &Contents) +{ + string::size_type Pos = 0; + string::size_type OldPos = 0; + string Temp; + + while (OldPos < Str.length() && + (Pos = Str.find(Subst,OldPos)) != string::npos) + { + Temp += string(Str,OldPos,Pos) + Contents; + OldPos = Pos + Subst.length(); + } + + if (OldPos == 0) + return Str; + + return Temp + string(Str,OldPos); +} + +string SubstVar(string Str,const struct SubstVar *Vars) +{ + for (; Vars->Subst != 0; Vars++) + Str = SubstVar(Str,Vars->Subst,*Vars->Contents); + return Str; +} + /*}}}*/ +// URItoFileName - Convert the uri into a unique file name /*{{{*/ +// --------------------------------------------------------------------- +/* This converts a URI into a safe filename. It quotes all unsafe characters + and converts / to _ and removes the scheme identifier. The resulting + file name should be unique and never occur again for a different file */ +string URItoFileName(const string &URI) +{ + // Nuke 'sensitive' items + ::URI U(URI); + U.User.clear(); + U.Password.clear(); + U.Access.clear(); + + // "\x00-\x20{}|\\\\^\\[\\]<>\"\x7F-\xFF"; + string NewURI = QuoteString(U,"\\|{}[]<>\"^~_=!@#$%^&*"); + replace(NewURI.begin(),NewURI.end(),'/','_'); + return NewURI; +} + /*}}}*/ +// Base64Encode - Base64 Encoding routine for short strings /*{{{*/ +// --------------------------------------------------------------------- +/* This routine performs a base64 transformation on a string. It was ripped + from wget and then patched and bug fixed. + + This spec can be found in rfc2045 */ +string Base64Encode(const string &S) +{ + // Conversion table. + static char tbl[64] = {'A','B','C','D','E','F','G','H', + 'I','J','K','L','M','N','O','P', + 'Q','R','S','T','U','V','W','X', + 'Y','Z','a','b','c','d','e','f', + 'g','h','i','j','k','l','m','n', + 'o','p','q','r','s','t','u','v', + 'w','x','y','z','0','1','2','3', + '4','5','6','7','8','9','+','/'}; + + // Pre-allocate some space + string Final; + Final.reserve((4*S.length() + 2)/3 + 2); + + /* Transform the 3x8 bits to 4x6 bits, as required by + base64. */ + for (string::const_iterator I = S.begin(); I < S.end(); I += 3) + { + char Bits[3] = {0,0,0}; + Bits[0] = I[0]; + if (I + 1 < S.end()) + Bits[1] = I[1]; + if (I + 2 < S.end()) + Bits[2] = I[2]; + + Final += tbl[Bits[0] >> 2]; + Final += tbl[((Bits[0] & 3) << 4) + (Bits[1] >> 4)]; + + if (I + 1 >= S.end()) + break; + + Final += tbl[((Bits[1] & 0xf) << 2) + (Bits[2] >> 6)]; + + if (I + 2 >= S.end()) + break; + + Final += tbl[Bits[2] & 0x3f]; + } + + /* Apply the padding elements, this tells how many bytes the remote + end should discard */ + if (S.length() % 3 == 2) + Final += '='; + if (S.length() % 3 == 1) + Final += "=="; + + return Final; +} + /*}}}*/ +// stringcmp - Arbitary string compare /*{{{*/ +// --------------------------------------------------------------------- +/* This safely compares two non-null terminated strings of arbitary + length */ +int stringcmp(const char *A,const char *AEnd,const char *B,const char *BEnd) +{ + for (; A != AEnd && B != BEnd; A++, B++) + if (*A != *B) + break; + + if (A == AEnd && B == BEnd) + return 0; + if (A == AEnd) + return 1; + if (B == BEnd) + return -1; + if (*A < *B) + return -1; + return 1; +} + +#if __GNUC__ >= 3 +int stringcmp(string::const_iterator A,string::const_iterator AEnd, + const char *B,const char *BEnd) +{ + for (; A != AEnd && B != BEnd; A++, B++) + if (*A != *B) + break; + + if (A == AEnd && B == BEnd) + return 0; + if (A == AEnd) + return 1; + if (B == BEnd) + return -1; + if (*A < *B) + return -1; + return 1; +} +int stringcmp(string::const_iterator A,string::const_iterator AEnd, + string::const_iterator B,string::const_iterator BEnd) +{ + for (; A != AEnd && B != BEnd; A++, B++) + if (*A != *B) + break; + + if (A == AEnd && B == BEnd) + return 0; + if (A == AEnd) + return 1; + if (B == BEnd) + return -1; + if (*A < *B) + return -1; + return 1; +} +#endif + /*}}}*/ +// stringcasecmp - Arbitary case insensitive string compare /*{{{*/ +// --------------------------------------------------------------------- +/* */ +int stringcasecmp(const char *A,const char *AEnd,const char *B,const char *BEnd) +{ + for (; A != AEnd && B != BEnd; A++, B++) + if (toupper(*A) != toupper(*B)) + break; + + if (A == AEnd && B == BEnd) + return 0; + if (A == AEnd) + return 1; + if (B == BEnd) + return -1; + if (toupper(*A) < toupper(*B)) + return -1; + return 1; +} +#if __GNUC__ >= 3 +int stringcasecmp(string::const_iterator A,string::const_iterator AEnd, + const char *B,const char *BEnd) +{ + for (; A != AEnd && B != BEnd; A++, B++) + if (toupper(*A) != toupper(*B)) + break; + + if (A == AEnd && B == BEnd) + return 0; + if (A == AEnd) + return 1; + if (B == BEnd) + return -1; + if (toupper(*A) < toupper(*B)) + return -1; + return 1; +} +int stringcasecmp(string::const_iterator A,string::const_iterator AEnd, + string::const_iterator B,string::const_iterator BEnd) +{ + for (; A != AEnd && B != BEnd; A++, B++) + if (toupper(*A) != toupper(*B)) + break; + + if (A == AEnd && B == BEnd) + return 0; + if (A == AEnd) + return 1; + if (B == BEnd) + return -1; + if (toupper(*A) < toupper(*B)) + return -1; + return 1; +} +#endif + /*}}}*/ +// LookupTag - Lookup the value of a tag in a taged string /*{{{*/ +// --------------------------------------------------------------------- +/* The format is like those used in package files and the method + communication system */ +string LookupTag(const string &Message,const char *Tag,const char *Default) +{ + // Look for a matching tag. + int Length = strlen(Tag); + for (string::const_iterator I = Message.begin(); I + Length < Message.end(); I++) + { + // Found the tag + if (I[Length] == ':' && stringcasecmp(I,I+Length,Tag) == 0) + { + // Find the end of line and strip the leading/trailing spaces + string::const_iterator J; + I += Length + 1; + for (; isspace(*I) != 0 && I < Message.end(); I++); + for (J = I; *J != '\n' && J < Message.end(); J++); + for (; J > I && isspace(J[-1]) != 0; J--); + + return string(I,J); + } + + for (; *I != '\n' && I < Message.end(); I++); + } + + // Failed to find a match + if (Default == 0) + return string(); + return Default; +} + /*}}}*/ +// StringToBool - Converts a string into a boolean /*{{{*/ +// --------------------------------------------------------------------- +/* This inspects the string to see if it is true or if it is false and + then returns the result. Several varients on true/false are checked. */ +int StringToBool(const string &Text,int Default) +{ + char *End; + int Res = strtol(Text.c_str(),&End,0); + if (End != Text.c_str() && Res >= 0 && Res <= 1) + return Res; + + // Check for positives + if (strcasecmp(Text.c_str(),"no") == 0 || + strcasecmp(Text.c_str(),"false") == 0 || + strcasecmp(Text.c_str(),"without") == 0 || + strcasecmp(Text.c_str(),"off") == 0 || + strcasecmp(Text.c_str(),"disable") == 0) + return 0; + + // Check for negatives + if (strcasecmp(Text.c_str(),"yes") == 0 || + strcasecmp(Text.c_str(),"true") == 0 || + strcasecmp(Text.c_str(),"with") == 0 || + strcasecmp(Text.c_str(),"on") == 0 || + strcasecmp(Text.c_str(),"enable") == 0) + return 1; + + return Default; +} + /*}}}*/ +// TimeRFC1123 - Convert a time_t into RFC1123 format /*{{{*/ +// --------------------------------------------------------------------- +/* This converts a time_t into a string time representation that is + year 2000 complient and timezone neutral */ +string TimeRFC1123(time_t Date) +{ + struct tm Conv = *gmtime(&Date); + char Buf[300]; + + const char *Day[] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"}; + const char *Month[] = {"Jan","Feb","Mar","Apr","May","Jun","Jul", + "Aug","Sep","Oct","Nov","Dec"}; + + sprintf(Buf,"%s, %02i %s %i %02i:%02i:%02i GMT",Day[Conv.tm_wday], + Conv.tm_mday,Month[Conv.tm_mon],Conv.tm_year+1900,Conv.tm_hour, + Conv.tm_min,Conv.tm_sec); + return Buf; +} + /*}}}*/ +// ReadMessages - Read messages from the FD /*{{{*/ +// --------------------------------------------------------------------- +/* This pulls full messages from the input FD into the message buffer. + It assumes that messages will not pause during transit so no + fancy buffering is used. */ +bool ReadMessages(int Fd, vector &List) +{ + char Buffer[64000]; + char *End = Buffer; + + while (1) + { + int Res = read(Fd,End,sizeof(Buffer) - (End-Buffer)); + if (Res < 0 && errno == EINTR) + continue; + + // Process is dead, this is kind of bad.. + if (Res == 0) + return false; + + // No data + if (Res < 0 && errno == EAGAIN) + return true; + if (Res < 0) + return false; + + End += Res; + + // Look for the end of the message + for (char *I = Buffer; I + 1 < End; I++) + { + if (I[0] != '\n' || I[1] != '\n') + continue; + + // Pull the message out + string Message(Buffer,I-Buffer); + + // Fix up the buffer + for (; I < End && *I == '\n'; I++); + End -= I-Buffer; + memmove(Buffer,I,End-Buffer); + I = Buffer; + + List.push_back(Message); + } + if (End == Buffer) + return true; + + if (WaitFd(Fd) == false) + return false; + } +} + /*}}}*/ +// MonthConv - Converts a month string into a number /*{{{*/ +// --------------------------------------------------------------------- +/* This was lifted from the boa webserver which lifted it from 'wn-v1.07' + Made it a bit more robust with a few touppers though. */ +static int MonthConv(char *Month) +{ + switch (toupper(*Month)) + { + case 'A': + return toupper(Month[1]) == 'P'?3:7; + case 'D': + return 11; + case 'F': + return 1; + case 'J': + if (toupper(Month[1]) == 'A') + return 0; + return toupper(Month[2]) == 'N'?5:6; + case 'M': + return toupper(Month[2]) == 'R'?2:4; + case 'N': + return 10; + case 'O': + return 9; + case 'S': + return 8; + + // Pretend it is January.. + default: + return 0; + } +} + /*}}}*/ +// timegm - Internal timegm function if gnu is not available /*{{{*/ +// --------------------------------------------------------------------- +/* Ripped this evil little function from wget - I prefer the use of + GNU timegm if possible as this technique will have interesting problems + with leap seconds, timezones and other. + + Converts struct tm to time_t, assuming the data in tm is UTC rather + than local timezone (mktime assumes the latter). + + Contributed by Roger Beeman , with the help of + Mark Baushke and the rest of the Gurus at CISCO. */ + +/* Turned it into an autoconf check, because GNU is not the only thing which + can provide timegm. -- 2002-09-22, Joel Baker */ + +#ifndef HAVE_TIMEGM // Now with autoconf! +static time_t timegm(struct tm *t) +{ + time_t tl, tb; + + tl = mktime (t); + if (tl == -1) + return -1; + tb = mktime (gmtime (&tl)); + return (tl <= tb ? (tl + (tl - tb)) : (tl - (tb - tl))); +} +#endif + /*}}}*/ +// StrToTime - Converts a string into a time_t /*{{{*/ +// --------------------------------------------------------------------- +/* This handles all 3 populare time formats including RFC 1123, RFC 1036 + and the C library asctime format. It requires the GNU library function + 'timegm' to convert a struct tm in UTC to a time_t. For some bizzar + reason the C library does not provide any such function :< This also + handles the weird, but unambiguous FTP time format*/ +bool StrToTime(const string &Val,time_t &Result) +{ + struct tm Tm; + char Month[10]; + const char *I = Val.c_str(); + + // Skip the day of the week + for (;*I != 0 && *I != ' '; I++); + + // Handle RFC 1123 time + Month[0] = 0; + if (sscanf(I," %d %3s %d %d:%d:%d GMT",&Tm.tm_mday,Month,&Tm.tm_year, + &Tm.tm_hour,&Tm.tm_min,&Tm.tm_sec) != 6) + { + // Handle RFC 1036 time + if (sscanf(I," %d-%3s-%d %d:%d:%d GMT",&Tm.tm_mday,Month, + &Tm.tm_year,&Tm.tm_hour,&Tm.tm_min,&Tm.tm_sec) == 6) + Tm.tm_year += 1900; + else + { + // asctime format + if (sscanf(I," %3s %d %d:%d:%d %d",Month,&Tm.tm_mday, + &Tm.tm_hour,&Tm.tm_min,&Tm.tm_sec,&Tm.tm_year) != 6) + { + // 'ftp' time + if (sscanf(Val.c_str(),"%4d%2d%2d%2d%2d%2d",&Tm.tm_year,&Tm.tm_mon, + &Tm.tm_mday,&Tm.tm_hour,&Tm.tm_min,&Tm.tm_sec) != 6) + return false; + Tm.tm_mon--; + } + } + } + + Tm.tm_isdst = 0; + if (Month[0] != 0) + Tm.tm_mon = MonthConv(Month); + Tm.tm_year -= 1900; + + // Convert to local time and then to GMT + Result = timegm(&Tm); + return true; +} + /*}}}*/ +// StrToNum - Convert a fixed length string to a number /*{{{*/ +// --------------------------------------------------------------------- +/* This is used in decoding the crazy fixed length string headers in + tar and ar files. */ +bool StrToNum(const char *Str,unsigned long &Res,unsigned Len,unsigned Base) +{ + char S[30]; + if (Len >= sizeof(S)) + return false; + memcpy(S,Str,Len); + S[Len] = 0; + + // All spaces is a zero + Res = 0; + unsigned I; + for (I = 0; S[I] == ' '; I++); + if (S[I] == 0) + return true; + + char *End; + Res = strtoul(S,&End,Base); + if (End == S) + return false; + + return true; +} + /*}}}*/ +// HexDigit - Convert a hex character into an integer /*{{{*/ +// --------------------------------------------------------------------- +/* Helper for Hex2Num */ +static int HexDigit(int c) +{ + if (c >= '0' && c <= '9') + return c - '0'; + if (c >= 'a' && c <= 'f') + return c - 'a' + 10; + if (c >= 'A' && c <= 'F') + return c - 'A' + 10; + return 0; +} + /*}}}*/ +// Hex2Num - Convert a long hex number into a buffer /*{{{*/ +// --------------------------------------------------------------------- +/* The length of the buffer must be exactly 1/2 the length of the string. */ +bool Hex2Num(const string &Str,unsigned char *Num,unsigned int Length) +{ + if (Str.length() != Length*2) + return false; + + // Convert each digit. We store it in the same order as the string + int J = 0; + for (string::const_iterator I = Str.begin(); I != Str.end();J++, I += 2) + { + if (isxdigit(*I) == 0 || isxdigit(I[1]) == 0) + return false; + + Num[J] = HexDigit(I[0]) << 4; + Num[J] += HexDigit(I[1]); + } + + return true; +} + /*}}}*/ +// TokSplitString - Split a string up by a given token /*{{{*/ +// --------------------------------------------------------------------- +/* This is intended to be a faster splitter, it does not use dynamic + memories. Input is changed to insert nulls at each token location. */ +bool TokSplitString(char Tok,char *Input,char **List, + unsigned long ListMax) +{ + // Strip any leading spaces + char *Start = Input; + char *Stop = Start + strlen(Start); + for (; *Start != 0 && isspace(*Start) != 0; Start++); + + unsigned long Count = 0; + char *Pos = Start; + while (Pos != Stop) + { + // Skip to the next Token + for (; Pos != Stop && *Pos != Tok; Pos++); + + // Back remove spaces + char *End = Pos; + for (; End > Start && (End[-1] == Tok || isspace(End[-1]) != 0); End--); + *End = 0; + + List[Count++] = Start; + if (Count >= ListMax) + { + List[Count-1] = 0; + return false; + } + + // Advance pos + for (; Pos != Stop && (*Pos == Tok || isspace(*Pos) != 0 || *Pos == 0); Pos++); + Start = Pos; + } + + List[Count] = 0; + return true; +} + /*}}}*/ +// RegexChoice - Simple regex list/list matcher /*{{{*/ +// --------------------------------------------------------------------- +/* */ +unsigned long RegexChoice(RxChoiceList *Rxs,const char **ListBegin, + const char **ListEnd) +{ + for (RxChoiceList *R = Rxs; R->Str != 0; R++) + R->Hit = false; + + unsigned long Hits = 0; + for (; ListBegin != ListEnd; ListBegin++) + { + // Check if the name is a regex + const char *I; + bool Regex = true; + for (I = *ListBegin; *I != 0; I++) + if (*I == '.' || *I == '?' || *I == '*' || *I == '|') + break; + if (*I == 0) + Regex = false; + + // Compile the regex pattern + regex_t Pattern; + if (Regex == true) + if (regcomp(&Pattern,*ListBegin,REG_EXTENDED | REG_ICASE | + REG_NOSUB) != 0) + Regex = false; + + // Search the list + bool Done = false; + for (RxChoiceList *R = Rxs; R->Str != 0; R++) + { + if (R->Str[0] == 0) + continue; + + if (strcasecmp(R->Str,*ListBegin) != 0) + { + if (Regex == false) + continue; + if (regexec(&Pattern,R->Str,0,0,0) != 0) + continue; + } + Done = true; + + if (R->Hit == false) + Hits++; + + R->Hit = true; + } + + if (Regex == true) + regfree(&Pattern); + + if (Done == false) + _error->Warning(_("Selection %s not found"),*ListBegin); + } + + return Hits; +} + /*}}}*/ +// ioprintf - C format string outputter to C++ iostreams /*{{{*/ +// --------------------------------------------------------------------- +/* This is used to make the internationalization strings easier to translate + and to allow reordering of parameters */ +void ioprintf(ostream &out,const char *format,...) +{ + va_list args; + va_start(args,format); + + // sprintf the description + char S[400]; + vsnprintf(S,sizeof(S),format,args); + out << S; +} + /*}}}*/ +// safe_snprintf - Safer snprintf /*{{{*/ +// --------------------------------------------------------------------- +/* This is a snprintf that will never (ever) go past 'End' and returns a + pointer to the end of the new string. The returned string is always null + terminated unless Buffer == end. This is a better alterantive to using + consecutive snprintfs. */ +char *safe_snprintf(char *Buffer,char *End,const char *Format,...) +{ + va_list args; + unsigned long Did; + + va_start(args,Format); + + if (End <= Buffer) + return End; + + Did = vsnprintf(Buffer,End - Buffer,Format,args); + if (Did < 0 || Buffer + Did > End) + return End; + return Buffer + Did; +} + /*}}}*/ + +// CheckDomainList - See if Host is in a , seperate list /*{{{*/ +// --------------------------------------------------------------------- +/* The domain list is a comma seperate list of domains that are suffix + matched against the argument */ +bool CheckDomainList(const string &Host,const string &List) +{ + string::const_iterator Start = List.begin(); + for (string::const_iterator Cur = List.begin(); Cur <= List.end(); Cur++) + { + if (Cur < List.end() && *Cur != ',') + continue; + + // Match the end of the string.. + if ((Host.size() >= (unsigned)(Cur - Start)) && + Cur - Start != 0 && + stringcasecmp(Host.end() - (Cur - Start),Host.end(),Start,Cur) == 0) + return true; + + Start = Cur + 1; + } + return false; +} + /*}}}*/ + +// URI::CopyFrom - Copy from an object /*{{{*/ +// --------------------------------------------------------------------- +/* This parses the URI into all of its components */ +void URI::CopyFrom(const string &U) +{ + string::const_iterator I = U.begin(); + + // Locate the first colon, this separates the scheme + for (; I < U.end() && *I != ':' ; I++); + string::const_iterator FirstColon = I; + + /* Determine if this is a host type URI with a leading double // + and then search for the first single / */ + string::const_iterator SingleSlash = I; + if (I + 3 < U.end() && I[1] == '/' && I[2] == '/') + SingleSlash += 3; + + /* Find the / indicating the end of the hostname, ignoring /'s in the + square brackets */ + bool InBracket = false; + for (; SingleSlash < U.end() && (*SingleSlash != '/' || InBracket == true); SingleSlash++) + { + if (*SingleSlash == '[') + InBracket = true; + if (InBracket == true && *SingleSlash == ']') + InBracket = false; + } + + if (SingleSlash > U.end()) + SingleSlash = U.end(); + + // We can now write the access and path specifiers + Access.assign(U.begin(),FirstColon); + if (SingleSlash != U.end()) + Path.assign(SingleSlash,U.end()); + if (Path.empty() == true) + Path = "/"; + + // Now we attempt to locate a user:pass@host fragment + if (FirstColon + 2 <= U.end() && FirstColon[1] == '/' && FirstColon[2] == '/') + FirstColon += 3; + else + FirstColon += 1; + if (FirstColon >= U.end()) + return; + + if (FirstColon > SingleSlash) + FirstColon = SingleSlash; + + // Find the colon... + I = FirstColon + 1; + if (I > SingleSlash) + I = SingleSlash; + for (; I < SingleSlash && *I != ':'; I++); + string::const_iterator SecondColon = I; + + // Search for the @ after the colon + for (; I < SingleSlash && *I != '@'; I++); + string::const_iterator At = I; + + // Now write the host and user/pass + if (At == SingleSlash) + { + if (FirstColon < SingleSlash) + Host.assign(FirstColon,SingleSlash); + } + else + { + Host.assign(At+1,SingleSlash); + User.assign(FirstColon,SecondColon); + if (SecondColon < At) + Password.assign(SecondColon+1,At); + } + + // Now we parse the RFC 2732 [] hostnames. + unsigned long PortEnd = 0; + InBracket = false; + for (unsigned I = 0; I != Host.length();) + { + if (Host[I] == '[') + { + InBracket = true; + Host.erase(I,1); + continue; + } + + if (InBracket == true && Host[I] == ']') + { + InBracket = false; + Host.erase(I,1); + PortEnd = I; + continue; + } + I++; + } + + // Tsk, weird. + if (InBracket == true) + { + Host.clear(); + return; + } + + // Now we parse off a port number from the hostname + Port = 0; + string::size_type Pos = Host.rfind(':'); + if (Pos == string::npos || Pos < PortEnd) + return; + + Port = atoi(string(Host,Pos+1).c_str()); + Host.assign(Host,0,Pos); +} + /*}}}*/ +// URI::operator string - Convert the URI to a string /*{{{*/ +// --------------------------------------------------------------------- +/* */ +URI::operator string() +{ + string Res; + + if (Access.empty() == false) + Res = Access + ':'; + + if (Host.empty() == false) + { + if (Access.empty() == false) + Res += "//"; + + if (User.empty() == false) + { + Res += User; + if (Password.empty() == false) + Res += ":" + Password; + Res += "@"; + } + + // Add RFC 2732 escaping characters + if (Access.empty() == false && + (Host.find('/') != string::npos || Host.find(':') != string::npos)) + Res += '[' + Host + ']'; + else + Res += Host; + + if (Port != 0) + { + char S[30]; + sprintf(S,":%u",Port); + Res += S; + } + } + + if (Path.empty() == false) + { + if (Path[0] != '/') + Res += "/" + Path; + else + Res += Path; + } + + return Res; +} + /*}}}*/ +// URI::SiteOnly - Return the schema and site for the URI /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string URI::SiteOnly(const string &URI) +{ + ::URI U(URI); + U.User.clear(); + U.Password.clear(); + U.Path.clear(); + U.Port = 0; + return U; +} + /*}}}*/ diff --git a/apt-pkg/contrib/strutl.h b/apt-pkg/contrib/strutl.h new file mode 100644 index 0000000..6ec2b78 --- /dev/null +++ b/apt-pkg/contrib/strutl.h @@ -0,0 +1,143 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: strutl.h,v 1.22 2003/02/02 22:20:27 jgg Exp $ +/* ###################################################################### + + String Util - These are some useful string functions + + _strstrip is a function to remove whitespace from the front and end + of a string. + + This source is placed in the Public Domain, do with it what you will + It was originally written by Jason Gunthorpe + + ##################################################################### */ + /*}}}*/ +#ifndef STRUTL_H +#define STRUTL_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/strutl.h" +#endif + +#include +#include +#include +#include +#include + +using std::string; +using std::vector; +using std::ostream; + +#ifdef __GNUG__ +// Methods have a hidden this parameter that is visible to this attribute +#define APT_FORMAT2 __attribute__ ((format (printf, 2, 3))) +#define APT_FORMAT3 __attribute__ ((format (printf, 3, 4))) +#else +#define APT_FORMAT2 +#define APT_FORMAT3 +#endif + +char *_strstrip(char *String); +char *_strtabexpand(char *String,size_t Len); +bool ParseQuoteWord(const char *&String,string &Res); +bool ParseCWord(const char *&String,string &Res); +string QuoteString(const string &Str,const char *Bad); +string DeQuoteString(const string &Str); +string SizeToStr(double Bytes); +string TimeToStr(unsigned long Sec); +string Base64Encode(const string &Str); +string URItoFileName(const string &URI); +string TimeRFC1123(time_t Date); +bool StrToTime(const string &Val,time_t &Result); +string LookupTag(const string &Message,const char *Tag,const char *Default = 0); +int StringToBool(const string &Text,int Default = -1); +bool ReadMessages(int Fd, vector &List); +bool StrToNum(const char *Str,unsigned long &Res,unsigned Len,unsigned Base = 0); +bool Hex2Num(const string &Str,unsigned char *Num,unsigned int Length); +bool TokSplitString(char Tok,char *Input,char **List, + unsigned long ListMax); +void ioprintf(ostream &out,const char *format,...) APT_FORMAT2; +char *safe_snprintf(char *Buffer,char *End,const char *Format,...) APT_FORMAT3; +bool CheckDomainList(const string &Host, const string &List); + +#define APT_MKSTRCMP(name,func) \ +inline int name(const char *A,const char *AEnd,const char *B) {return func(A,AEnd,B,B+strlen(B));}; \ +inline int name(string A,const char *B) {return func(A.c_str(),A.c_str()+A.length(),B,B+strlen(B));}; \ +inline int name(string A,string B) {return func(A.c_str(),A.c_str()+A.length(),B.c_str(),B.c_str()+B.length());}; \ +inline int name(string A,const char *B,const char *BEnd) {return func(A.c_str(),A.c_str()+A.length(),B,BEnd);}; + +#define APT_MKSTRCMP2(name,func) \ +inline int name(const char *A,const char *AEnd,const char *B) {return func(A,AEnd,B,B+strlen(B));}; \ +inline int name(string A,const char *B) {return func(A.begin(),A.end(),B,B+strlen(B));}; \ +inline int name(string A,string B) {return func(A.begin(),A.end(),B.begin(),B.end());}; \ +inline int name(string A,const char *B,const char *BEnd) {return func(A.begin(),A.end(),B,BEnd);}; + +int stringcmp(const char *A,const char *AEnd,const char *B,const char *BEnd); +int stringcasecmp(const char *A,const char *AEnd,const char *B,const char *BEnd); + +/* We assume that GCC 3 indicates that libstdc++3 is in use too. In that + case the definition of string::const_iterator is not the same as + const char * and we need these extra functions */ +#if __GNUC__ >= 3 +int stringcmp(string::const_iterator A,string::const_iterator AEnd, + const char *B,const char *BEnd); +int stringcmp(string::const_iterator A,string::const_iterator AEnd, + string::const_iterator B,string::const_iterator BEnd); +int stringcasecmp(string::const_iterator A,string::const_iterator AEnd, + const char *B,const char *BEnd); +int stringcasecmp(string::const_iterator A,string::const_iterator AEnd, + string::const_iterator B,string::const_iterator BEnd); + +inline int stringcmp(string::const_iterator A,string::const_iterator Aend,const char *B) {return stringcmp(A,Aend,B,B+strlen(B));}; +inline int stringcasecmp(string::const_iterator A,string::const_iterator Aend,const char *B) {return stringcasecmp(A,Aend,B,B+strlen(B));}; +#endif + +APT_MKSTRCMP2(stringcmp,stringcmp); +APT_MKSTRCMP2(stringcasecmp,stringcasecmp); + +inline const char *DeNull(const char *s) {return (s == 0?"(null)":s);}; + +class URI +{ + void CopyFrom(const string &From); + + public: + + string Access; + string User; + string Password; + string Host; + string Path; + unsigned int Port; + + operator string(); + inline void operator =(const string &From) {CopyFrom(From);}; + inline bool empty() {return Access.empty();}; + static string SiteOnly(const string &URI); + + URI(string Path) {CopyFrom(Path);}; + URI() : Port(0) {}; +}; + +struct SubstVar +{ + const char *Subst; + const string *Contents; +}; +string SubstVar(string Str,const struct SubstVar *Vars); +string SubstVar(const string &Str,const string &Subst,const string &Contents); + +struct RxChoiceList +{ + void *UserData; + const char *Str; + bool Hit; +}; +unsigned long RegexChoice(RxChoiceList *Rxs,const char **ListBegin, + const char **ListEnd); + +#undef APT_FORMAT2 + +#endif diff --git a/apt-pkg/contrib/system.h b/apt-pkg/contrib/system.h new file mode 100644 index 0000000..7ec3d7f --- /dev/null +++ b/apt-pkg/contrib/system.h @@ -0,0 +1,58 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: system.h,v 1.3 1999/12/10 23:40:29 jgg Exp $ +/* ###################################################################### + + System Header - Usefull private definitions + + This source is placed in the Public Domain, do with it what you will + It was originally written by Brian C. White. + + ##################################################################### */ + /*}}}*/ +// Private header +#ifndef SYSTEM_H +#define SYSTEM_H + +// MIN_VAL(SINT16) will return -0x8000 and MAX_VAL(SINT16) = 0x7FFF +#define MIN_VAL(t) (((t)(-1) > 0) ? (t)( 0) : (t)(((1L<<(sizeof(t)*8-1)) ))) +#define MAX_VAL(t) (((t)(-1) > 0) ? (t)(-1) : (t)(((1L<<(sizeof(t)*8-1))-1))) + +// Min/Max functions +#if !defined(MIN) +#if defined(__HIGHC__) +#define MIN(x,y) _min(x,y) +#define MAX(x,y) _max(x,y) +#endif + +// GNU C++ has a min/max operator +#if defined(__GNUG__) +#define MIN(A,B) ((A) ? (B)) +#endif + +/* Templates tend to mess up existing code that uses min/max because of the + strict matching requirements */ +#if !defined(MIN) +#define MIN(A,B) ((A) < (B)?(A):(B)) +#define MAX(A,B) ((A) > (B)?(A):(B)) +#endif +#endif + +/* Bound functions, bound will return the value b within the limits a-c + bounv will change b so that it is within the limits of a-c. */ +#define _bound(a,b,c) MIN(c,MAX(b,a)) +#define _boundv(a,b,c) b = _bound(a,b,c) +#define ABS(a) (((a) < (0)) ?-(a) : (a)) + +/* Usefull count macro, use on an array of things and it will return the + number of items in the array */ +#define _count(a) (sizeof(a)/sizeof(a[0])) + +// Flag Macros +#define FLAG(f) (1L << (f)) +#define SETFLAG(v,f) ((v) |= FLAG(f)) +#define CLRFLAG(v,f) ((v) &=~FLAG(f)) +#define CHKFLAG(v,f) ((v) & FLAG(f) ? true : false) + +#endif diff --git a/apt-pkg/deb/debindexfile.cc b/apt-pkg/deb/debindexfile.cc new file mode 100644 index 0000000..234521e --- /dev/null +++ b/apt-pkg/deb/debindexfile.cc @@ -0,0 +1,446 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: debindexfile.cc,v 1.5.2.3 2004/01/04 19:11:00 mdz Exp $ +/* ###################################################################### + + Debian Specific sources.list types and the three sorts of Debian + index files. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/debindexfile.h" +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + /*}}}*/ + +// SourcesIndex::debSourcesIndex - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +debSourcesIndex::debSourcesIndex(string URI,string Dist,string Section,bool Trusted) : + pkgIndexFile(Trusted), URI(URI), Dist(Dist), Section(Section) +{ +} + /*}}}*/ +// SourcesIndex::SourceInfo - Short 1 liner describing a source /*{{{*/ +// --------------------------------------------------------------------- +/* The result looks like: + http://foo/ stable/main src 1.1.1 (dsc) */ +string debSourcesIndex::SourceInfo(pkgSrcRecords::Parser const &Record, + pkgSrcRecords::File const &File) const +{ + string Res; + Res = ::URI::SiteOnly(URI) + ' '; + if (Dist[Dist.size() - 1] == '/') + { + if (Dist != "/") + Res += Dist; + } + else + Res += Dist + '/' + Section; + + Res += " "; + Res += Record.Package(); + Res += " "; + Res += Record.Version(); + if (File.Type.empty() == false) + Res += " (" + File.Type + ")"; + return Res; +} + /*}}}*/ +// SourcesIndex::CreateSrcParser - Get a parser for the source files /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgSrcRecords::Parser *debSourcesIndex::CreateSrcParser() const +{ + string SourcesURI = URItoFileName(IndexURI("Sources")); + return new debSrcRecordParser(_config->FindDir("Dir::State::lists") + + SourcesURI,this); +} + /*}}}*/ +// SourcesIndex::Describe - Give a descriptive path to the index /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debSourcesIndex::Describe(bool Short) const +{ + char S[300]; + if (Short == true) + snprintf(S,sizeof(S),"%s",Info("Sources").c_str()); + else + snprintf(S,sizeof(S),"%s (%s)",Info("Sources").c_str(), + IndexFile("Sources").c_str()); + + return S; +} + /*}}}*/ +// SourcesIndex::Info - One liner describing the index URI /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debSourcesIndex::Info(const char *Type) const +{ + string Info = ::URI::SiteOnly(URI) + ' '; + if (Dist[Dist.size() - 1] == '/') + { + if (Dist != "/") + Info += Dist; + } + else + Info += Dist + '/' + Section; + Info += " "; + Info += Type; + return Info; +} + /*}}}*/ +// SourcesIndex::Index* - Return the URI to the index files /*{{{*/ +// --------------------------------------------------------------------- +/* */ +inline string debSourcesIndex::IndexFile(const char *Type) const +{ + return URItoFileName(IndexURI(Type)); +} +string debSourcesIndex::IndexURI(const char *Type) const +{ + string Res; + if (Dist[Dist.size() - 1] == '/') + { + if (Dist != "/") + Res = URI + Dist; + else + Res = URI; + } + else + Res = URI + "dists/" + Dist + '/' + Section + + "/source/"; + + Res += Type; + return Res; +} + /*}}}*/ +// SourcesIndex::Exists - Check if the index is available /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool debSourcesIndex::Exists() const +{ + return FileExists(IndexFile("Sources")); +} + /*}}}*/ +// SourcesIndex::Size - Return the size of the index /*{{{*/ +// --------------------------------------------------------------------- +/* */ +unsigned long debSourcesIndex::Size() const +{ + struct stat S; + if (stat(IndexFile("Sources").c_str(),&S) != 0) + return 0; + return S.st_size; +} + /*}}}*/ + +// PackagesIndex::debPackagesIndex - Contructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +debPackagesIndex::debPackagesIndex(string URI,string Dist,string Section,bool Trusted) : + pkgIndexFile(Trusted), URI(URI), Dist(Dist), Section(Section) +{ +} + /*}}}*/ +// PackagesIndex::ArchiveInfo - Short version of the archive url /*{{{*/ +// --------------------------------------------------------------------- +/* This is a shorter version that is designed to be < 60 chars or so */ +string debPackagesIndex::ArchiveInfo(pkgCache::VerIterator Ver) const +{ + string Res = ::URI::SiteOnly(URI) + ' '; + if (Dist[Dist.size() - 1] == '/') + { + if (Dist != "/") + Res += Dist; + } + else + Res += Dist + '/' + Section; + + Res += " "; + Res += Ver.ParentPkg().Name(); + Res += " "; + Res += Ver.VerStr(); + return Res; +} + /*}}}*/ +// PackagesIndex::Describe - Give a descriptive path to the index /*{{{*/ +// --------------------------------------------------------------------- +/* This should help the user find the index in the sources.list and + in the filesystem for problem solving */ +string debPackagesIndex::Describe(bool Short) const +{ + char S[300]; + if (Short == true) + snprintf(S,sizeof(S),"%s",Info("Packages").c_str()); + else + snprintf(S,sizeof(S),"%s (%s)",Info("Packages").c_str(), + IndexFile("Packages").c_str()); + return S; +} + /*}}}*/ +// PackagesIndex::Info - One liner describing the index URI /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debPackagesIndex::Info(const char *Type) const +{ + string Info = ::URI::SiteOnly(URI) + ' '; + if (Dist[Dist.size() - 1] == '/') + { + if (Dist != "/") + Info += Dist; + } + else + Info += Dist + '/' + Section; + Info += " "; + Info += Type; + return Info; +} + /*}}}*/ +// PackagesIndex::Index* - Return the URI to the index files /*{{{*/ +// --------------------------------------------------------------------- +/* */ +inline string debPackagesIndex::IndexFile(const char *Type) const +{ + return _config->FindDir("Dir::State::lists") + URItoFileName(IndexURI(Type)); +} +string debPackagesIndex::IndexURI(const char *Type) const +{ + string Res; + if (Dist[Dist.size() - 1] == '/') + { + if (Dist != "/") + Res = URI + Dist; + else + Res = URI; + } + else + Res = URI + "dists/" + Dist + '/' + Section + + "/binary-" + _config->Find("APT::Architecture") + '/'; + + Res += Type; + return Res; +} + /*}}}*/ +// PackagesIndex::Exists - Check if the index is available /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool debPackagesIndex::Exists() const +{ + return FileExists(IndexFile("Packages")); +} + /*}}}*/ +// PackagesIndex::Size - Return the size of the index /*{{{*/ +// --------------------------------------------------------------------- +/* This is really only used for progress reporting. */ +unsigned long debPackagesIndex::Size() const +{ + struct stat S; + if (stat(IndexFile("Packages").c_str(),&S) != 0) + return 0; + return S.st_size; +} + /*}}}*/ +// PackagesIndex::Merge - Load the index file into a cache /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool debPackagesIndex::Merge(pkgCacheGenerator &Gen,OpProgress &Prog) const +{ + string PackageFile = IndexFile("Packages"); + FileFd Pkg(PackageFile,FileFd::ReadOnly); + debListParser Parser(&Pkg); + if (_error->PendingError() == true) + return _error->Error("Problem opening %s",PackageFile.c_str()); + + Prog.SubProgress(0,Info("Packages")); + ::URI Tmp(URI); + if (Gen.SelectFile(PackageFile,Tmp.Host,*this) == false) + return _error->Error("Problem with SelectFile %s",PackageFile.c_str()); + + // Store the IMS information + pkgCache::PkgFileIterator File = Gen.GetCurFile(); + struct stat St; + if (fstat(Pkg.Fd(),&St) != 0) + return _error->Errno("fstat","Failed to stat"); + File->Size = St.st_size; + File->mtime = St.st_mtime; + + if (Gen.MergeList(Parser) == false) + return _error->Error("Problem with MergeList %s",PackageFile.c_str()); + + // Check the release file + string ReleaseFile = debReleaseIndex(URI,Dist).MetaIndexFile("Release"); + if (FileExists(ReleaseFile) == true) + { + FileFd Rel(ReleaseFile,FileFd::ReadOnly); + if (_error->PendingError() == true) + return false; + Parser.LoadReleaseInfo(File,Rel,Section); + } + + return true; +} + /*}}}*/ +// PackagesIndex::FindInCache - Find this index /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgCache::PkgFileIterator debPackagesIndex::FindInCache(pkgCache &Cache) const +{ + string FileName = IndexFile("Packages"); + pkgCache::PkgFileIterator File = Cache.FileBegin(); + for (; File.end() == false; File++) + { + if (File.FileName() == NULL || FileName != File.FileName()) + continue; + + struct stat St; + if (stat(File.FileName(),&St) != 0) + return pkgCache::PkgFileIterator(Cache); + if ((unsigned)St.st_size != File->Size || St.st_mtime != File->mtime) + return pkgCache::PkgFileIterator(Cache); + return File; + } + + return File; +} + /*}}}*/ + +// StatusIndex::debStatusIndex - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +debStatusIndex::debStatusIndex(string File) : pkgIndexFile(true), File(File) +{ +} + /*}}}*/ +// StatusIndex::Size - Return the size of the index /*{{{*/ +// --------------------------------------------------------------------- +/* */ +unsigned long debStatusIndex::Size() const +{ + struct stat S; + if (stat(File.c_str(),&S) != 0) + return 0; + return S.st_size; +} + /*}}}*/ +// StatusIndex::Merge - Load the index file into a cache /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool debStatusIndex::Merge(pkgCacheGenerator &Gen,OpProgress &Prog) const +{ + FileFd Pkg(File,FileFd::ReadOnly); + if (_error->PendingError() == true) + return false; + debListParser Parser(&Pkg); + if (_error->PendingError() == true) + return false; + + Prog.SubProgress(0,File); + if (Gen.SelectFile(File,string(),*this,pkgCache::Flag::NotSource) == false) + return _error->Error("Problem with SelectFile %s",File.c_str()); + + // Store the IMS information + pkgCache::PkgFileIterator CFile = Gen.GetCurFile(); + struct stat St; + if (fstat(Pkg.Fd(),&St) != 0) + return _error->Errno("fstat","Failed to stat"); + CFile->Size = St.st_size; + CFile->mtime = St.st_mtime; + CFile->Archive = Gen.WriteUniqString("now"); + + if (Gen.MergeList(Parser) == false) + return _error->Error("Problem with MergeList %s",File.c_str()); + return true; +} + /*}}}*/ +// StatusIndex::FindInCache - Find this index /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgCache::PkgFileIterator debStatusIndex::FindInCache(pkgCache &Cache) const +{ + pkgCache::PkgFileIterator File = Cache.FileBegin(); + for (; File.end() == false; File++) + { + if (this->File != File.FileName()) + continue; + + struct stat St; + if (stat(File.FileName(),&St) != 0) + return pkgCache::PkgFileIterator(Cache); + if ((unsigned)St.st_size != File->Size || St.st_mtime != File->mtime) + return pkgCache::PkgFileIterator(Cache); + return File; + } + return File; +} + /*}}}*/ +// StatusIndex::Exists - Check if the index is available /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool debStatusIndex::Exists() const +{ + // Abort if the file does not exist. + return true; +} + /*}}}*/ + +// Index File types for Debian /*{{{*/ +class debIFTypeSrc : public pkgIndexFile::Type +{ + public: + + debIFTypeSrc() {Label = "Debian Source Index";}; +}; +class debIFTypePkg : public pkgIndexFile::Type +{ + public: + + virtual pkgRecords::Parser *CreatePkgParser(pkgCache::PkgFileIterator File) const + { + return new debRecordParser(File.FileName(),*File.Cache()); + }; + debIFTypePkg() {Label = "Debian Package Index";}; +}; +class debIFTypeStatus : public pkgIndexFile::Type +{ + public: + + virtual pkgRecords::Parser *CreatePkgParser(pkgCache::PkgFileIterator File) const + { + return new debRecordParser(File.FileName(),*File.Cache()); + }; + debIFTypeStatus() {Label = "Debian dpkg status file";}; +}; +static debIFTypeSrc _apt_Src; +static debIFTypePkg _apt_Pkg; +static debIFTypeStatus _apt_Status; + +const pkgIndexFile::Type *debSourcesIndex::GetType() const +{ + return &_apt_Src; +} +const pkgIndexFile::Type *debPackagesIndex::GetType() const +{ + return &_apt_Pkg; +} +const pkgIndexFile::Type *debStatusIndex::GetType() const +{ + return &_apt_Status; +} + + /*}}}*/ diff --git a/apt-pkg/deb/debindexfile.h b/apt-pkg/deb/debindexfile.h new file mode 100644 index 0000000..a1b9583 --- /dev/null +++ b/apt-pkg/deb/debindexfile.h @@ -0,0 +1,110 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: debindexfile.h,v 1.3.2.1 2003/12/24 23:09:17 mdz Exp $ +/* ###################################################################### + + Debian Index Files + + There are three sorts currently + + Package files that have File: tags + Package files that don't (/var/lib/dpkg/status) + Source files + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_DEBINDEXFILE_H +#define PKGLIB_DEBINDEXFILE_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/debindexfile.h" +#endif + +#include + +class debStatusIndex : public pkgIndexFile +{ + string File; + + public: + + virtual const Type *GetType() const; + + // Interface for acquire + virtual string Describe(bool Short) const {return File;}; + + // Interface for the Cache Generator + virtual bool Exists() const; + virtual bool HasPackages() const {return true;}; + virtual unsigned long Size() const; + virtual bool Merge(pkgCacheGenerator &Gen,OpProgress &Prog) const; + virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const; + + debStatusIndex(string File); +}; + +class debPackagesIndex : public pkgIndexFile +{ + string URI; + string Dist; + string Section; + + string Info(const char *Type) const; + string IndexFile(const char *Type) const; + string IndexURI(const char *Type) const; + + public: + + virtual const Type *GetType() const; + + // Stuff for accessing files on remote items + virtual string ArchiveInfo(pkgCache::VerIterator Ver) const; + virtual string ArchiveURI(string File) const {return URI + File;}; + + // Interface for acquire + virtual string Describe(bool Short) const; + + // Interface for the Cache Generator + virtual bool Exists() const; + virtual bool HasPackages() const {return true;}; + virtual unsigned long Size() const; + virtual bool Merge(pkgCacheGenerator &Gen,OpProgress &Prog) const; + virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const; + + debPackagesIndex(string URI,string Dist,string Section,bool Trusted); +}; + +class debSourcesIndex : public pkgIndexFile +{ + string URI; + string Dist; + string Section; + + string Info(const char *Type) const; + string IndexFile(const char *Type) const; + string IndexURI(const char *Type) const; + + public: + + virtual const Type *GetType() const; + + // Stuff for accessing files on remote items + virtual string SourceInfo(pkgSrcRecords::Parser const &Record, + pkgSrcRecords::File const &File) const; + virtual string ArchiveURI(string File) const {return URI + File;}; + + // Interface for acquire + virtual string Describe(bool Short) const; + + // Interface for the record parsers + virtual pkgSrcRecords::Parser *CreateSrcParser() const; + + // Interface for the Cache Generator + virtual bool Exists() const; + virtual bool HasPackages() const {return false;}; + virtual unsigned long Size() const; + + debSourcesIndex(string URI,string Dist,string Section,bool Trusted); +}; + +#endif diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc new file mode 100644 index 0000000..d0dc7a2 --- /dev/null +++ b/apt-pkg/deb/deblistparser.cc @@ -0,0 +1,615 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: deblistparser.cc,v 1.29.2.5 2004/01/06 01:43:44 mdz Exp $ +/* ###################################################################### + + Package Cache Generator - Generator for the cache structure. + + This builds the cache structure from the abstract package list parser. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#include +#include +#include +#include +#include + +#include + +#include + /*}}}*/ + +static debListParser::WordList PrioList[] = {{"important",pkgCache::State::Important}, + {"required",pkgCache::State::Required}, + {"standard",pkgCache::State::Standard}, + {"optional",pkgCache::State::Optional}, + {"extra",pkgCache::State::Extra}, + {}}; + +// ListParser::debListParser - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +debListParser::debListParser(FileFd *File) : Tags(File) +{ + Arch = _config->Find("APT::architecture"); +} + /*}}}*/ +// ListParser::UniqFindTagWrite - Find the tag and write a unq string /*{{{*/ +// --------------------------------------------------------------------- +/* */ +unsigned long debListParser::UniqFindTagWrite(const char *Tag) +{ + const char *Start; + const char *Stop; + if (Section.Find(Tag,Start,Stop) == false) + return 0; + return WriteUniqString(Start,Stop - Start); +} + /*}}}*/ +// ListParser::Package - Return the package name /*{{{*/ +// --------------------------------------------------------------------- +/* This is to return the name of the package this section describes */ +string debListParser::Package() +{ + string Result = Section.FindS("Package"); + if (Result.empty() == true) + _error->Error("Encountered a section with no Package: header"); + return Result; +} + /*}}}*/ +// ListParser::Version - Return the version string /*{{{*/ +// --------------------------------------------------------------------- +/* This is to return the string describing the version in debian form, + epoch:upstream-release. If this returns the blank string then the + entry is assumed to only describe package properties */ +string debListParser::Version() +{ + return Section.FindS("Version"); +} + /*}}}*/ +// ListParser::NewVersion - Fill in the version structure /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool debListParser::NewVersion(pkgCache::VerIterator Ver) +{ + // Parse the section + Ver->Section = UniqFindTagWrite("Section"); + Ver->Arch = UniqFindTagWrite("Architecture"); + + // Archive Size + Ver->Size = (unsigned)Section.FindI("Size"); + + // Unpacked Size (in K) + Ver->InstalledSize = (unsigned)Section.FindI("Installed-Size"); + Ver->InstalledSize *= 1024; + + // Priority + const char *Start; + const char *Stop; + if (Section.Find("Priority",Start,Stop) == true) + { + if (GrabWord(string(Start,Stop-Start),PrioList,Ver->Priority) == false) + Ver->Priority = pkgCache::State::Extra; + } + + if (ParseDepends(Ver,"Depends",pkgCache::Dep::Depends) == false) + return false; + if (ParseDepends(Ver,"Pre-Depends",pkgCache::Dep::PreDepends) == false) + return false; + if (ParseDepends(Ver,"Suggests",pkgCache::Dep::Suggests) == false) + return false; + if (ParseDepends(Ver,"Recommends",pkgCache::Dep::Recommends) == false) + return false; + if (ParseDepends(Ver,"Conflicts",pkgCache::Dep::Conflicts) == false) + return false; + if (ParseDepends(Ver,"Replaces",pkgCache::Dep::Replaces) == false) + return false; + + // Obsolete. + if (ParseDepends(Ver,"Optional",pkgCache::Dep::Suggests) == false) + return false; + + if (ParseProvides(Ver) == false) + return false; + + return true; +} + /*}}}*/ +// ListParser::UsePackage - Update a package structure /*{{{*/ +// --------------------------------------------------------------------- +/* This is called to update the package with any new information + that might be found in the section */ +bool debListParser::UsePackage(pkgCache::PkgIterator Pkg, + pkgCache::VerIterator Ver) +{ + if (Pkg->Section == 0) + Pkg->Section = UniqFindTagWrite("Section"); + if (Section.FindFlag("Essential",Pkg->Flags,pkgCache::Flag::Essential) == false) + return false; + if (Section.FindFlag("Important",Pkg->Flags,pkgCache::Flag::Important) == false) + return false; + + if (strcmp(Pkg.Name(),"apt") == 0) + Pkg->Flags |= pkgCache::Flag::Important; + + if (ParseStatus(Pkg,Ver) == false) + return false; + return true; +} + /*}}}*/ +// ListParser::VersionHash - Compute a unique hash for this version /*{{{*/ +// --------------------------------------------------------------------- +/* */ +unsigned short debListParser::VersionHash() +{ + const char *Sections[] ={"Installed-Size", + "Depends", + "Pre-Depends", +// "Suggests", +// "Recommends", + "Conflicts", + "Replaces",0}; + unsigned long Result = INIT_FCS; + char S[1024]; + for (const char **I = Sections; *I != 0; I++) + { + const char *Start; + const char *End; + if (Section.Find(*I,Start,End) == false || End - Start >= (signed)sizeof(S)) + continue; + + /* Strip out any spaces from the text, this undoes dpkgs reformatting + of certain fields. dpkg also has the rather interesting notion of + reformatting depends operators < -> <= */ + char *I = S; + for (; Start != End; Start++) + { + if (isspace(*Start) == 0) + *I++ = tolower(*Start); + if (*Start == '<' && Start[1] != '<' && Start[1] != '=') + *I++ = '='; + if (*Start == '>' && Start[1] != '>' && Start[1] != '=') + *I++ = '='; + } + + Result = AddCRC16(Result,S,I - S); + } + + return Result; +} + /*}}}*/ +// ListParser::ParseStatus - Parse the status field /*{{{*/ +// --------------------------------------------------------------------- +/* Status lines are of the form, + Status: want flag status + want = unknown, install, hold, deinstall, purge + flag = ok, reinstreq, hold, hold-reinstreq + status = not-installed, unpacked, half-configured, + half-installed, config-files, post-inst-failed, + removal-failed, installed + + Some of the above are obsolete (I think?) flag = hold-* and + status = post-inst-failed, removal-failed at least. + */ +bool debListParser::ParseStatus(pkgCache::PkgIterator Pkg, + pkgCache::VerIterator Ver) +{ + const char *Start; + const char *Stop; + if (Section.Find("Status",Start,Stop) == false) + return true; + + // Isolate the first word + const char *I = Start; + for(; I < Stop && *I != ' '; I++); + if (I >= Stop || *I != ' ') + return _error->Error("Malformed Status line"); + + // Process the want field + WordList WantList[] = {{"unknown",pkgCache::State::Unknown}, + {"install",pkgCache::State::Install}, + {"hold",pkgCache::State::Hold}, + {"deinstall",pkgCache::State::DeInstall}, + {"purge",pkgCache::State::Purge}, + {}}; + if (GrabWord(string(Start,I-Start),WantList,Pkg->SelectedState) == false) + return _error->Error("Malformed 1st word in the Status line"); + + // Isloate the next word + I++; + Start = I; + for(; I < Stop && *I != ' '; I++); + if (I >= Stop || *I != ' ') + return _error->Error("Malformed status line, no 2nd word"); + + // Process the flag field + WordList FlagList[] = {{"ok",pkgCache::State::Ok}, + {"reinstreq",pkgCache::State::ReInstReq}, + {"hold",pkgCache::State::HoldInst}, + {"hold-reinstreq",pkgCache::State::HoldReInstReq}, + {}}; + if (GrabWord(string(Start,I-Start),FlagList,Pkg->InstState) == false) + return _error->Error("Malformed 2nd word in the Status line"); + + // Isloate the last word + I++; + Start = I; + for(; I < Stop && *I != ' '; I++); + if (I != Stop) + return _error->Error("Malformed Status line, no 3rd word"); + + // Process the flag field + WordList StatusList[] = {{"not-installed",pkgCache::State::NotInstalled}, + {"unpacked",pkgCache::State::UnPacked}, + {"half-configured",pkgCache::State::HalfConfigured}, + {"installed",pkgCache::State::Installed}, + {"half-installed",pkgCache::State::HalfInstalled}, + {"config-files",pkgCache::State::ConfigFiles}, + {"post-inst-failed",pkgCache::State::HalfConfigured}, + {"removal-failed",pkgCache::State::HalfInstalled}, + {}}; + if (GrabWord(string(Start,I-Start),StatusList,Pkg->CurrentState) == false) + return _error->Error("Malformed 3rd word in the Status line"); + + /* A Status line marks the package as indicating the current + version as well. Only if it is actually installed.. Otherwise + the interesting dpkg handling of the status file creates bogus + entries. */ + if (!(Pkg->CurrentState == pkgCache::State::NotInstalled || + Pkg->CurrentState == pkgCache::State::ConfigFiles)) + { + if (Ver.end() == true) + _error->Warning("Encountered status field in a non-version description"); + else + Pkg->CurrentVer = Ver.Index(); + } + + return true; +} + +const char *debListParser::ConvertRelation(const char *I,unsigned int &Op) +{ + // Determine the operator + switch (*I) + { + case '<': + I++; + if (*I == '=') + { + I++; + Op = pkgCache::Dep::LessEq; + break; + } + + if (*I == '<') + { + I++; + Op = pkgCache::Dep::Less; + break; + } + + // < is the same as <= and << is really Cs < for some reason + Op = pkgCache::Dep::LessEq; + break; + + case '>': + I++; + if (*I == '=') + { + I++; + Op = pkgCache::Dep::GreaterEq; + break; + } + + if (*I == '>') + { + I++; + Op = pkgCache::Dep::Greater; + break; + } + + // > is the same as >= and >> is really Cs > for some reason + Op = pkgCache::Dep::GreaterEq; + break; + + case '=': + Op = pkgCache::Dep::Equals; + I++; + break; + + // HACK around bad package definitions + default: + Op = pkgCache::Dep::Equals; + break; + } + return I; +} + + /*}}}*/ +// ListParser::ParseDepends - Parse a dependency element /*{{{*/ +// --------------------------------------------------------------------- +/* This parses the dependency elements out of a standard string in place, + bit by bit. */ +const char *debListParser::ParseDepends(const char *Start,const char *Stop, + string &Package,string &Ver, + unsigned int &Op, bool ParseArchFlags) +{ + // Strip off leading space + for (;Start != Stop && isspace(*Start) != 0; Start++); + + // Parse off the package name + const char *I = Start; + for (;I != Stop && isspace(*I) == 0 && *I != '(' && *I != ')' && + *I != ',' && *I != '|'; I++); + + // Malformed, no '(' + if (I != Stop && *I == ')') + return 0; + + if (I == Start) + return 0; + + // Stash the package name + Package.assign(Start,I - Start); + + // Skip white space to the '(' + for (;I != Stop && isspace(*I) != 0 ; I++); + + // Parse a version + if (I != Stop && *I == '(') + { + // Skip the '(' + for (I++; I != Stop && isspace(*I) != 0 ; I++); + if (I + 3 >= Stop) + return 0; + I = ConvertRelation(I,Op); + + // Skip whitespace + for (;I != Stop && isspace(*I) != 0; I++); + Start = I; + for (;I != Stop && *I != ')'; I++); + if (I == Stop || Start == I) + return 0; + + // Skip trailing whitespace + const char *End = I; + for (; End > Start && isspace(End[-1]); End--); + + Ver.assign(Start,End-Start); + I++; + } + else + { + Ver.clear(); + Op = pkgCache::Dep::NoOp; + } + + // Skip whitespace + for (;I != Stop && isspace(*I) != 0; I++); + + if (ParseArchFlags == true) + { + string arch = _config->Find("APT::Architecture"); + + // Parse an architecture + if (I != Stop && *I == '[') + { + // malformed + I++; + if (I == Stop) + return 0; + + const char *End = I; + bool Found = false; + bool NegArch = false; + while (I != Stop) + { + // look for whitespace or ending ']' + while (End != Stop && !isspace(*End) && *End != ']') + End++; + + if (End == Stop) + return 0; + + if (*I == '!') + { + NegArch = true; + I++; + } + + if (stringcmp(arch,I,End) == 0) + Found = true; + + if (*End++ == ']') { + I = End; + break; + } + + I = End; + for (;I != Stop && isspace(*I) != 0; I++); + } + + if (NegArch) + Found = !Found; + + if (Found == false) + Package = ""; /* not for this arch */ + } + + // Skip whitespace + for (;I != Stop && isspace(*I) != 0; I++); + } + + if (I != Stop && *I == '|') + Op |= pkgCache::Dep::Or; + + if (I == Stop || *I == ',' || *I == '|') + { + if (I != Stop) + for (I++; I != Stop && isspace(*I) != 0; I++); + return I; + } + + return 0; +} + /*}}}*/ +// ListParser::ParseDepends - Parse a dependency list /*{{{*/ +// --------------------------------------------------------------------- +/* This is the higher level depends parser. It takes a tag and generates + a complete depends tree for the given version. */ +bool debListParser::ParseDepends(pkgCache::VerIterator Ver, + const char *Tag,unsigned int Type) +{ + const char *Start; + const char *Stop; + if (Section.Find(Tag,Start,Stop) == false) + return true; + + string Package; + string Version; + unsigned int Op; + + while (1) + { + Start = ParseDepends(Start,Stop,Package,Version,Op); + if (Start == 0) + return _error->Error("Problem parsing dependency %s",Tag); + + if (NewDepends(Ver,Package,Version,Op,Type) == false) + return false; + if (Start == Stop) + break; + } + return true; +} + /*}}}*/ +// ListParser::ParseProvides - Parse the provides list /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool debListParser::ParseProvides(pkgCache::VerIterator Ver) +{ + const char *Start; + const char *Stop; + if (Section.Find("Provides",Start,Stop) == false) + return true; + + string Package; + string Version; + unsigned int Op; + + while (1) + { + Start = ParseDepends(Start,Stop,Package,Version,Op); + if (Start == 0) + return _error->Error("Problem parsing Provides line"); + if (Op != pkgCache::Dep::NoOp) { + _error->Warning("Ignoring Provides line with DepCompareOp for package %s", Package.c_str()); + } else { + if (NewProvides(Ver,Package,Version) == false) + return false; + } + + if (Start == Stop) + break; + } + + return true; +} + /*}}}*/ +// ListParser::GrabWord - Matches a word and returns /*{{{*/ +// --------------------------------------------------------------------- +/* Looks for a word in a list of words - for ParseStatus */ +bool debListParser::GrabWord(string Word,WordList *List,unsigned char &Out) +{ + for (unsigned int C = 0; List[C].Str != 0; C++) + { + if (strcasecmp(Word.c_str(),List[C].Str) == 0) + { + Out = List[C].Val; + return true; + } + } + return false; +} + /*}}}*/ +// ListParser::Step - Move to the next section in the file /*{{{*/ +// --------------------------------------------------------------------- +/* This has to be carefull to only process the correct architecture */ +bool debListParser::Step() +{ + iOffset = Tags.Offset(); + while (Tags.Step(Section) == true) + { + /* See if this is the correct Architecture, if it isn't then we + drop the whole section. A missing arch tag only happens (in theory) + inside the Status file, so that is a positive return */ + const char *Start; + const char *Stop; + if (Section.Find("Architecture",Start,Stop) == false) + return true; + + if (stringcmp(Arch,Start,Stop) == 0) + return true; + + if (stringcmp(Start,Stop,"all") == 0) + return true; + + iOffset = Tags.Offset(); + } + return false; +} + /*}}}*/ +// ListParser::LoadReleaseInfo - Load the release information /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool debListParser::LoadReleaseInfo(pkgCache::PkgFileIterator FileI, + FileFd &File, string component) +{ + pkgTagFile Tags(&File, File.Size() + 256); // XXX + pkgTagSection Section; + if (Tags.Step(Section) == false) + return false; + + //mvo: I don't think we need to fill that in (it's unused since apt-0.6) + //FileI->Architecture = WriteUniqString(Arch); + + // apt-secure does no longer download individual (per-section) Release + // file. to provide Component pinning we use the section name now + FileI->Component = WriteUniqString(component); + + const char *Start; + const char *Stop; + if (Section.Find("Suite",Start,Stop) == true) + FileI->Archive = WriteUniqString(Start,Stop - Start); + if (Section.Find("Component",Start,Stop) == true) + FileI->Component = WriteUniqString(Start,Stop - Start); + if (Section.Find("Version",Start,Stop) == true) + FileI->Version = WriteUniqString(Start,Stop - Start); + if (Section.Find("Origin",Start,Stop) == true) + FileI->Origin = WriteUniqString(Start,Stop - Start); + if (Section.Find("Label",Start,Stop) == true) + FileI->Label = WriteUniqString(Start,Stop - Start); + if (Section.Find("Architecture",Start,Stop) == true) + FileI->Architecture = WriteUniqString(Start,Stop - Start); + + if (Section.FindFlag("NotAutomatic",FileI->Flags, + pkgCache::Flag::NotAutomatic) == false) + _error->Warning("Bad NotAutomatic flag"); + + return !_error->PendingError(); +} + /*}}}*/ +// ListParser::GetPrio - Convert the priority from a string /*{{{*/ +// --------------------------------------------------------------------- +/* */ +unsigned char debListParser::GetPrio(string Str) +{ + unsigned char Out; + if (GrabWord(Str,PrioList,Out) == false) + Out = pkgCache::State::Extra; + + return Out; +} + /*}}}*/ diff --git a/apt-pkg/deb/deblistparser.h b/apt-pkg/deb/deblistparser.h new file mode 100644 index 0000000..3a0e042 --- /dev/null +++ b/apt-pkg/deb/deblistparser.h @@ -0,0 +1,69 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: deblistparser.h,v 1.9 2001/02/20 07:03:17 jgg Exp $ +/* ###################################################################### + + Debian Package List Parser - This implements the abstract parser + interface for Debian package files + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_DEBLISTPARSER_H +#define PKGLIB_DEBLISTPARSER_H + +#include +#include + +class debListParser : public pkgCacheGenerator::ListParser +{ + public: + + // Parser Helper + struct WordList + { + const char *Str; + unsigned char Val; + }; + + private: + + pkgTagFile Tags; + pkgTagSection Section; + unsigned long iOffset; + string Arch; + + unsigned long UniqFindTagWrite(const char *Tag); + bool ParseStatus(pkgCache::PkgIterator Pkg,pkgCache::VerIterator Ver); + bool ParseDepends(pkgCache::VerIterator Ver,const char *Tag, + unsigned int Type); + bool ParseProvides(pkgCache::VerIterator Ver); + static bool GrabWord(string Word,WordList *List,unsigned char &Out); + + public: + + static unsigned char GetPrio(string Str); + + // These all operate against the current section + virtual string Package(); + virtual string Version(); + virtual bool NewVersion(pkgCache::VerIterator Ver); + virtual unsigned short VersionHash(); + virtual bool UsePackage(pkgCache::PkgIterator Pkg, + pkgCache::VerIterator Ver); + virtual unsigned long Offset() {return iOffset;}; + virtual unsigned long Size() {return Section.size();}; + + virtual bool Step(); + + bool LoadReleaseInfo(pkgCache::PkgFileIterator FileI,FileFd &File, + string section); + + static const char *ParseDepends(const char *Start,const char *Stop, + string &Package,string &Ver,unsigned int &Op, + bool ParseArchFlags = false); + static const char *ConvertRelation(const char *I,unsigned int &Op); + + debListParser(FileFd *File); +}; + +#endif diff --git a/apt-pkg/deb/debmetaindex.cc b/apt-pkg/deb/debmetaindex.cc new file mode 100644 index 0000000..85e5b16 --- /dev/null +++ b/apt-pkg/deb/debmetaindex.cc @@ -0,0 +1,273 @@ +// ijones, walters + +#ifdef __GNUG__ +#pragma implementation "apt-pkg/debmetaindex.h" +#endif + +#include +#include +#include +#include +#include +#include + +using namespace std; + +string debReleaseIndex::Info(const char *Type, const string Section) const +{ + string Info = ::URI::SiteOnly(URI) + ' '; + if (Dist[Dist.size() - 1] == '/') + { + if (Dist != "/") + Info += Dist; + } + else + Info += Dist + '/' + Section; + Info += " "; + Info += Type; + return Info; +} + +string debReleaseIndex::MetaIndexInfo(const char *Type) const +{ + string Info = ::URI::SiteOnly(URI) + ' '; + if (Dist[Dist.size() - 1] == '/') + { + if (Dist != "/") + Info += Dist; + } + else + Info += Dist; + Info += " "; + Info += Type; + return Info; +} + +string debReleaseIndex::MetaIndexFile(const char *Type) const +{ + return _config->FindDir("Dir::State::lists") + + URItoFileName(MetaIndexURI(Type)); +} + +string debReleaseIndex::MetaIndexURI(const char *Type) const +{ + string Res; + + if (Dist == "/") + Res = URI; + else if (Dist[Dist.size()-1] == '/') + Res = URI + Dist; + else + Res = URI + "dists/" + Dist + "/"; + + Res += Type; + return Res; +} + +string debReleaseIndex::IndexURISuffix(const char *Type, const string Section) const +{ + string Res =""; + if (Dist[Dist.size() - 1] != '/') + Res += Section + "/binary-" + _config->Find("APT::Architecture") + '/'; + return Res + Type; +} + + +string debReleaseIndex::IndexURI(const char *Type, const string Section) const +{ + if (Dist[Dist.size() - 1] == '/') + { + string Res; + if (Dist != "/") + Res = URI + Dist; + else + Res = URI; + return Res + Type; + } + else + return URI + "dists/" + Dist + '/' + IndexURISuffix(Type, Section); + } + +string debReleaseIndex::SourceIndexURISuffix(const char *Type, const string Section) const +{ + string Res =""; + if (Dist[Dist.size() - 1] != '/') + Res += Section + "/source/"; + return Res + Type; +} + +string debReleaseIndex::SourceIndexURI(const char *Type, const string Section) const +{ + string Res; + if (Dist[Dist.size() - 1] == '/') + { + if (Dist != "/") + Res = URI + Dist; + else + Res = URI; + return Res + Type; + } + else + return URI + "dists/" + Dist + "/" + SourceIndexURISuffix(Type, Section); +} + +debReleaseIndex::debReleaseIndex(string URI,string Dist) +{ + this->URI = URI; + this->Dist = Dist; + this->Indexes = NULL; + this->Type = "deb"; +} + +vector * debReleaseIndex::ComputeIndexTargets() const +{ + vector * IndexTargets = new vector ; + for (vector ::const_iterator I = SectionEntries.begin(); + I != SectionEntries.end(); + I++) + { + IndexTarget * Target = new IndexTarget(); + Target->ShortDesc = (*I)->IsSrc ? "Sources" : "Packages"; + Target->MetaKey + = (*I)->IsSrc ? SourceIndexURISuffix(Target->ShortDesc.c_str(), (*I)->Section) + : IndexURISuffix(Target->ShortDesc.c_str(), (*I)->Section); + Target->URI + = (*I)->IsSrc ? SourceIndexURI(Target->ShortDesc.c_str(), (*I)->Section) + : IndexURI(Target->ShortDesc.c_str(), (*I)->Section); + + Target->Description = Info (Target->ShortDesc.c_str(), (*I)->Section); + IndexTargets->push_back (Target); + } + return IndexTargets; +} + /*}}}*/ +bool debReleaseIndex::GetIndexes(pkgAcquire *Owner, bool GetAll) const +{ + // special case for --print-uris + if (GetAll) { + vector *targets = ComputeIndexTargets(); + for (vector ::const_iterator Target = targets->begin(); Target != targets->end(); Target++) { + new pkgAcqIndex(Owner, (*Target)->URI, (*Target)->Description, + (*Target)->ShortDesc, ""); + } + } + new pkgAcqMetaSig(Owner, MetaIndexURI("Release.gpg"), + MetaIndexInfo("Release.gpg"), "Release.gpg", + MetaIndexURI("Release"), MetaIndexInfo("Release"), "Release", + ComputeIndexTargets(), + new indexRecords (Dist)); + + return true; +} + +bool debReleaseIndex::IsTrusted() const +{ + string VerifiedSigFile = _config->FindDir("Dir::State::lists") + + URItoFileName(MetaIndexURI("Release")) + ".gpg"; + + if(_config->FindB("APT::Authentication::TrustCDROM", false)) + if(URI.substr(0,strlen("cdrom:")) == "cdrom:") + return true; + + if (FileExists(VerifiedSigFile)) + return true; + return false; +} + +vector *debReleaseIndex::GetIndexFiles() +{ + if (Indexes != NULL) + return Indexes; + + Indexes = new vector ; + for (vector::const_iterator I = SectionEntries.begin(); + I != SectionEntries.end(); I++) + if ((*I)->IsSrc) + Indexes->push_back(new debSourcesIndex (URI, Dist, (*I)->Section, IsTrusted())); + else + Indexes->push_back(new debPackagesIndex (URI, Dist, (*I)->Section, IsTrusted())); + return Indexes; +} + +void debReleaseIndex::PushSectionEntry(const debSectionEntry *Entry) +{ + SectionEntries.push_back(Entry); +} + +debReleaseIndex::debSectionEntry::debSectionEntry (string Section, bool IsSrc): Section(Section) +{ + this->IsSrc = IsSrc; +} + +class debSLTypeDebian : public pkgSourceList::Type +{ + protected: + + bool CreateItemInternal(vector &List,string URI, + string Dist,string Section, + bool IsSrc) const + { + for (vector::const_iterator I = List.begin(); + I != List.end(); I++) + { + // This check insures that there will be only one Release file + // queued for all the Packages files and Sources files it + // corresponds to. + if ((*I)->GetType() == "deb") + { + debReleaseIndex *Deb = (debReleaseIndex *) (*I); + // This check insures that there will be only one Release file + // queued for all the Packages files and Sources files it + // corresponds to. + if (Deb->GetURI() == URI && Deb->GetDist() == Dist) + { + Deb->PushSectionEntry(new debReleaseIndex::debSectionEntry(Section, IsSrc)); + return true; + } + } + } + // No currently created Release file indexes this entry, so we create a new one. + // XXX determine whether this release is trusted or not + debReleaseIndex *Deb = new debReleaseIndex(URI,Dist); + Deb->PushSectionEntry (new debReleaseIndex::debSectionEntry(Section, IsSrc)); + List.push_back(Deb); + return true; + } +}; + +class debSLTypeDeb : public debSLTypeDebian +{ + public: + + bool CreateItem(vector &List,string URI, + string Dist,string Section) const + { + return CreateItemInternal(List, URI, Dist, Section, false); + } + + debSLTypeDeb() + { + Name = "deb"; + Label = "Standard Debian binary tree"; + } +}; + +class debSLTypeDebSrc : public debSLTypeDebian +{ + public: + + bool CreateItem(vector &List,string URI, + string Dist,string Section) const + { + return CreateItemInternal(List, URI, Dist, Section, true); + } + + debSLTypeDebSrc() + { + Name = "deb-src"; + Label = "Standard Debian source tree"; + } +}; + +debSLTypeDeb _apt_DebType; +debSLTypeDebSrc _apt_DebSrcType; diff --git a/apt-pkg/deb/debmetaindex.h b/apt-pkg/deb/debmetaindex.h new file mode 100644 index 0000000..2b99229 --- /dev/null +++ b/apt-pkg/deb/debmetaindex.h @@ -0,0 +1,48 @@ +// ijones, walters +#ifndef PKGLIB_DEBMETAINDEX_H +#define PKGLIB_DEBMETAINDEX_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/debmetaindex.h" +#endif + +#include +#include + +class debReleaseIndex : public metaIndex { + public: + + class debSectionEntry + { + public: + debSectionEntry (string Section, bool IsSrc); + bool IsSrc; + string Section; + }; + + private: + vector SectionEntries; + + public: + + debReleaseIndex(string URI, string Dist); + + virtual string ArchiveURI(string File) const {return URI + File;}; + virtual bool GetIndexes(pkgAcquire *Owner, bool GetAll=false) const; + vector * ComputeIndexTargets() const; + string Info(const char *Type, const string Section) const; + string MetaIndexInfo(const char *Type) const; + string MetaIndexFile(const char *Types) const; + string MetaIndexURI(const char *Type) const; + string IndexURI(const char *Type, const string Section) const; + string IndexURISuffix(const char *Type, const string Section) const; + string SourceIndexURI(const char *Type, const string Section) const; + string SourceIndexURISuffix(const char *Type, const string Section) const; + virtual vector *GetIndexFiles(); + + virtual bool IsTrusted() const; + + void PushSectionEntry(const debSectionEntry *Entry); +}; + +#endif diff --git a/apt-pkg/deb/debrecords.cc b/apt-pkg/deb/debrecords.cc new file mode 100644 index 0000000..6652a6a --- /dev/null +++ b/apt-pkg/deb/debrecords.cc @@ -0,0 +1,114 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: debrecords.cc,v 1.10 2001/03/13 06:51:46 jgg Exp $ +/* ###################################################################### + + Debian Package Records - Parser for debian package records + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/debrecords.h" +#endif +#include +#include + /*}}}*/ + +// RecordParser::debRecordParser - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +debRecordParser::debRecordParser(string FileName,pkgCache &Cache) : + File(FileName,FileFd::ReadOnly), + Tags(&File,Cache.Head().MaxVerFileSize + 200) +{ +} + /*}}}*/ +// RecordParser::Jump - Jump to a specific record /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool debRecordParser::Jump(pkgCache::VerFileIterator const &Ver) +{ + return Tags.Jump(Section,Ver->Offset); +} + /*}}}*/ +// RecordParser::FileName - Return the archive filename on the site /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debRecordParser::FileName() +{ + return Section.FindS("Filename"); +} + /*}}}*/ +// RecordParser::Name - Return the package name /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debRecordParser::Name() +{ + return Section.FindS("Package"); +} + /*}}}*/ +// RecordParser::MD5Hash - Return the archive hash /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debRecordParser::MD5Hash() +{ + return Section.FindS("MD5Sum"); +} + /*}}}*/ +// RecordParser::SHA1Hash - Return the archive hash /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debRecordParser::SHA1Hash() +{ + return Section.FindS("SHA1Sum"); +} + /*}}}*/ +// RecordParser::Maintainer - Return the maintainer email /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debRecordParser::Maintainer() +{ + return Section.FindS("Maintainer"); +} + /*}}}*/ +// RecordParser::ShortDesc - Return a 1 line description /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debRecordParser::ShortDesc() +{ + string Res = Section.FindS("Description"); + string::size_type Pos = Res.find('\n'); + if (Pos == string::npos) + return Res; + return string(Res,0,Pos); +} + /*}}}*/ +// RecordParser::LongDesc - Return a longer description /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debRecordParser::LongDesc() +{ + return Section.FindS("Description"); +} + /*}}}*/ +// RecordParser::SourcePkg - Return the source package name if any /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debRecordParser::SourcePkg() +{ + string Res = Section.FindS("Source"); + string::size_type Pos = Res.find(' '); + if (Pos == string::npos) + return Res; + return string(Res,0,Pos); +} + /*}}}*/ +// RecordParser::GetRec - Return the whole record /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void debRecordParser::GetRec(const char *&Start,const char *&Stop) +{ + Section.GetSection(Start,Stop); +} + /*}}}*/ diff --git a/apt-pkg/deb/debrecords.h b/apt-pkg/deb/debrecords.h new file mode 100644 index 0000000..efef2e5 --- /dev/null +++ b/apt-pkg/deb/debrecords.h @@ -0,0 +1,53 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: debrecords.h,v 1.8 2001/03/13 06:51:46 jgg Exp $ +/* ###################################################################### + + Debian Package Records - Parser for debian package records + + This provides display-type parsing for the Packages file. This is + different than the the list parser which provides cache generation + services. There should be no overlap between these two. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_DEBRECORDS_H +#define PKGLIB_DEBRECORDS_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/debrecords.h" +#endif + +#include +#include + +class debRecordParser : public pkgRecords::Parser +{ + FileFd File; + pkgTagFile Tags; + pkgTagSection Section; + + protected: + + virtual bool Jump(pkgCache::VerFileIterator const &Ver); + + public: + + // These refer to the archive file for the Version + virtual string FileName(); + virtual string MD5Hash(); + virtual string SHA1Hash(); + virtual string SourcePkg(); + + // These are some general stats about the package + virtual string Maintainer(); + virtual string ShortDesc(); + virtual string LongDesc(); + virtual string Name(); + + virtual void GetRec(const char *&Start,const char *&Stop); + + debRecordParser(string FileName,pkgCache &Cache); +}; + +#endif diff --git a/apt-pkg/deb/debsrcrecords.cc b/apt-pkg/deb/debsrcrecords.cc new file mode 100644 index 0000000..9e87ee5 --- /dev/null +++ b/apt-pkg/deb/debsrcrecords.cc @@ -0,0 +1,158 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: debsrcrecords.cc,v 1.6 2004/03/17 05:58:54 mdz Exp $ +/* ###################################################################### + + Debian Source Package Records - Parser implementation for Debian style + source indexes + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/debsrcrecords.h" +#endif + +#include +#include +#include +#include +#include + +using std::max; + /*}}}*/ + +// SrcRecordParser::Binaries - Return the binaries field /*{{{*/ +// --------------------------------------------------------------------- +/* This member parses the binaries field into a pair of class arrays and + returns a list of strings representing all of the components of the + binaries field. The returned array need not be freed and will be + reused by the next Binaries function call. This function is commonly + used during scanning to find the right package */ +const char **debSrcRecordParser::Binaries() +{ + // This should use Start/Stop too, it is supposed to be efficient after all. + string Bins = Sect.FindS("Binary"); + if (Bins.empty() == true || Bins.length() >= 102400) + return 0; + + if (Bins.length() >= BufSize) + { + delete [] Buffer; + // allocate new size based on buffer (but never smaller than 4000) + BufSize = max((unsigned long)4000, max((unsigned long)Bins.length()+1,2*BufSize)); + Buffer = new char[BufSize]; + } + + strcpy(Buffer,Bins.c_str()); + if (TokSplitString(',',Buffer,StaticBinList, + sizeof(StaticBinList)/sizeof(StaticBinList[0])) == false) + return 0; + + return (const char **)StaticBinList; +} + /*}}}*/ +// SrcRecordParser::BuildDepends - Return the Build-Depends information /*{{{*/ +// --------------------------------------------------------------------- +/* This member parses the build-depends information and returns a list of + package/version records representing the build dependency. The returned + array need not be freed and will be reused by the next call to this + function */ +bool debSrcRecordParser::BuildDepends(vector &BuildDeps, bool ArchOnly) +{ + unsigned int I; + const char *Start, *Stop; + BuildDepRec rec; + const char *fields[] = {"Build-Depends", + "Build-Depends-Indep", + "Build-Conflicts", + "Build-Conflicts-Indep"}; + + BuildDeps.clear(); + + for (I = 0; I < 4; I++) + { + if (ArchOnly && (I == 1 || I == 3)) + continue; + + if (Sect.Find(fields[I], Start, Stop) == false) + continue; + + while (1) + { + Start = debListParser::ParseDepends(Start, Stop, + rec.Package,rec.Version,rec.Op,true); + + if (Start == 0) + return _error->Error("Problem parsing dependency: %s", fields[I]); + rec.Type = I; + + if (rec.Package != "") + BuildDeps.push_back(rec); + + if (Start == Stop) + break; + } + } + + return true; +} + /*}}}*/ +// SrcRecordParser::Files - Return a list of files for this source /*{{{*/ +// --------------------------------------------------------------------- +/* This parses the list of files and returns it, each file is required to have + a complete source package */ +bool debSrcRecordParser::Files(vector &List) +{ + List.erase(List.begin(),List.end()); + + string Files = Sect.FindS("Files"); + if (Files.empty() == true) + return false; + + // Stash the / terminated directory prefix + string Base = Sect.FindS("Directory"); + if (Base.empty() == false && Base[Base.length()-1] != '/') + Base += '/'; + + // Iterate over the entire list grabbing each triplet + const char *C = Files.c_str(); + while (*C != 0) + { + pkgSrcRecords::File F; + string Size; + + // Parse each of the elements + if (ParseQuoteWord(C,F.MD5Hash) == false || + ParseQuoteWord(C,Size) == false || + ParseQuoteWord(C,F.Path) == false) + return _error->Error("Error parsing file record"); + + // Parse the size and append the directory + F.Size = atoi(Size.c_str()); + F.Path = Base + F.Path; + + // Try to guess what sort of file it is we are getting. + string::size_type Pos = F.Path.length()-1; + while (1) + { + string::size_type Tmp = F.Path.rfind('.',Pos); + if (Tmp == string::npos) + break; + F.Type = string(F.Path,Tmp+1,Pos-Tmp); + + if (F.Type == "gz" || F.Type == "bz2") + { + Pos = Tmp-1; + continue; + } + + break; + } + + List.push_back(F); + } + + return true; +} + /*}}}*/ diff --git a/apt-pkg/deb/debsrcrecords.h b/apt-pkg/deb/debsrcrecords.h new file mode 100644 index 0000000..f4e2cb4 --- /dev/null +++ b/apt-pkg/deb/debsrcrecords.h @@ -0,0 +1,58 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: debsrcrecords.h,v 1.8 2004/03/17 05:58:54 mdz Exp $ +/* ###################################################################### + + Debian Source Package Records - Parser implementation for Debian style + source indexes + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_DEBSRCRECORDS_H +#define PKGLIB_DEBSRCRECORDS_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/debsrcrecords.h" +#endif + +#include +#include +#include + +class debSrcRecordParser : public pkgSrcRecords::Parser +{ + FileFd Fd; + pkgTagFile Tags; + pkgTagSection Sect; + char *StaticBinList[400]; + unsigned long iOffset; + char *Buffer; + unsigned long BufSize; + + public: + + virtual bool Restart() {return Tags.Jump(Sect,0);}; + virtual bool Step() {iOffset = Tags.Offset(); return Tags.Step(Sect);}; + virtual bool Jump(unsigned long Off) {iOffset = Off; return Tags.Jump(Sect,Off);}; + + virtual string Package() const {return Sect.FindS("Package");}; + virtual string Version() const {return Sect.FindS("Version");}; + virtual string Maintainer() const {return Sect.FindS("Maintainer");}; + virtual string Section() const {return Sect.FindS("Section");}; + virtual const char **Binaries(); + virtual bool BuildDepends(vector &BuildDeps, bool ArchOnly); + virtual unsigned long Offset() {return iOffset;}; + virtual string AsStr() + { + const char *Start=0,*Stop=0; + Sect.GetSection(Start,Stop); + return string(Start,Stop); + }; + virtual bool Files(vector &F); + + debSrcRecordParser(string File,pkgIndexFile const *Index) + : Parser(Index), Fd(File,FileFd::ReadOnly), Tags(&Fd,102400), + Buffer(0), BufSize(0) {} +}; + +#endif diff --git a/apt-pkg/deb/debsystem.cc b/apt-pkg/deb/debsystem.cc new file mode 100644 index 0000000..2d805ea --- /dev/null +++ b/apt-pkg/deb/debsystem.cc @@ -0,0 +1,230 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: debsystem.cc,v 1.4 2004/01/26 17:01:53 mdz Exp $ +/* ###################################################################### + + System - Abstraction for running on different systems. + + Basic general structure.. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/debsystem.h" +#endif + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + /*}}}*/ + +debSystem debSys; + +// System::debSystem - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +debSystem::debSystem() +{ + LockFD = -1; + LockCount = 0; + StatusFile = 0; + + Label = "Debian dpkg interface"; + VS = &debVS; +} + /*}}}*/ +// System::~debSystem - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +debSystem::~debSystem() +{ + delete StatusFile; +} + /*}}}*/ +// System::Lock - Get the lock /*{{{*/ +// --------------------------------------------------------------------- +/* This mirrors the operations dpkg does when it starts up. Note the + checking of the updates directory. */ +bool debSystem::Lock() +{ + // Disable file locking + if (_config->FindB("Debug::NoLocking",false) == true || LockCount > 1) + { + LockCount++; + return true; + } + + // Create the lockfile + string AdminDir = flNotFile(_config->Find("Dir::State::status")); + LockFD = GetLock(AdminDir + "lock"); + if (LockFD == -1) + { + if (errno == EACCES || errno == EAGAIN) + return _error->Error("Unable to lock the administration directory (%s), " + "is another process using it?",AdminDir.c_str()); + else + return _error->Error("Unable to lock the administration directory (%s), " + "are you root?",AdminDir.c_str()); + } + + // See if we need to abort with a dirty journal + if (CheckUpdates() == true) + { + close(LockFD); + LockFD = -1; + return _error->Error("dpkg was interrupted, you must manually " + "run 'dpkg --configure -a' to correct the problem. "); + } + + LockCount++; + + return true; +} + /*}}}*/ +// System::UnLock - Drop a lock /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool debSystem::UnLock(bool NoErrors) +{ + if (LockCount == 0 && NoErrors == true) + return false; + + if (LockCount < 1) + return _error->Error("Not locked"); + if (--LockCount == 0) + { + close(LockFD); + LockCount = 0; + } + + return true; +} + /*}}}*/ +// System::CheckUpdates - Check if the updates dir is dirty /*{{{*/ +// --------------------------------------------------------------------- +/* This does a check of the updates directory (dpkg journal) to see if it has + any entries in it. */ +bool debSystem::CheckUpdates() +{ + // Check for updates.. (dirty) + string File = flNotFile(_config->Find("Dir::State::status")) + "updates/"; + DIR *DirP = opendir(File.c_str()); + if (DirP == 0) + return false; + + /* We ignore any files that are not all digits, this skips .,.. and + some tmp files dpkg will leave behind.. */ + bool Damaged = false; + for (struct dirent *Ent = readdir(DirP); Ent != 0; Ent = readdir(DirP)) + { + Damaged = true; + for (unsigned int I = 0; Ent->d_name[I] != 0; I++) + { + // Check if its not a digit.. + if (isdigit(Ent->d_name[I]) == 0) + { + Damaged = false; + break; + } + } + if (Damaged == true) + break; + } + closedir(DirP); + + return Damaged; +} + /*}}}*/ +// System::CreatePM - Create the underlying package manager /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgPackageManager *debSystem::CreatePM(pkgDepCache *Cache) const +{ + return new pkgDPkgPM(Cache); +} + /*}}}*/ +// System::Initialize - Setup the configuration space.. /*{{{*/ +// --------------------------------------------------------------------- +/* These are the Debian specific configuration variables.. */ +bool debSystem::Initialize(Configuration &Cnf) +{ + /* These really should be jammed into a generic 'Local Database' engine + which is yet to be determined. The functions in pkgcachegen should + be the only users of these */ + Cnf.CndSet("Dir::State::userstatus","status.user"); // Defunct + Cnf.CndSet("Dir::State::status","/var/lib/dpkg/status"); + Cnf.CndSet("Dir::Bin::dpkg","/usr/bin/dpkg"); + + if (StatusFile) { + delete StatusFile; + StatusFile = 0; + } + + return true; +} + /*}}}*/ +// System::ArchiveSupported - Is a file format supported /*{{{*/ +// --------------------------------------------------------------------- +/* The standard name for a deb is 'deb'.. There are no seperate versions + of .deb to worry about.. */ +bool debSystem::ArchiveSupported(const char *Type) +{ + if (strcmp(Type,"deb") == 0) + return true; + return false; +} + /*}}}*/ +// System::Score - Determine how 'Debiany' this sys is.. /*{{{*/ +// --------------------------------------------------------------------- +/* We check some files that are sure tell signs of this being a Debian + System.. */ +signed debSystem::Score(Configuration const &Cnf) +{ + signed Score = 0; + if (FileExists(Cnf.FindFile("Dir::State::status","/var/lib/dpkg/status")) == true) + Score += 10; + if (FileExists(Cnf.FindFile("Dir::Bin::dpkg","/usr/bin/dpkg")) == true) + Score += 10; + if (FileExists("/etc/debian_version") == true) + Score += 10; + return Score; +} + /*}}}*/ +// System::AddStatusFiles - Register the status files /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool debSystem::AddStatusFiles(vector &List) +{ + if (StatusFile == 0) + StatusFile = new debStatusIndex(_config->FindFile("Dir::State::status")); + List.push_back(StatusFile); + return true; +} + /*}}}*/ +// System::FindIndex - Get an index file for status files /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool debSystem::FindIndex(pkgCache::PkgFileIterator File, + pkgIndexFile *&Found) const +{ + if (StatusFile == 0) + return false; + if (StatusFile->FindInCache(*File.Cache()) == File) + { + Found = StatusFile; + return true; + } + + return false; +} + /*}}}*/ diff --git a/apt-pkg/deb/debsystem.h b/apt-pkg/deb/debsystem.h new file mode 100644 index 0000000..84e57e7 --- /dev/null +++ b/apt-pkg/deb/debsystem.h @@ -0,0 +1,47 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: debsystem.h,v 1.4 2003/01/11 07:16:33 jgg Exp $ +/* ###################################################################### + + System - Debian version of the System Class + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_DEBSYSTEM_H +#define PKGLIB_DEBSYSTEM_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/debsystem.h" +#endif + +#include + +class debStatusIndex; +class debSystem : public pkgSystem +{ + // For locking support + int LockFD; + unsigned LockCount; + bool CheckUpdates(); + + debStatusIndex *StatusFile; + + public: + + virtual bool Lock(); + virtual bool UnLock(bool NoErrors = false); + virtual pkgPackageManager *CreatePM(pkgDepCache *Cache) const; + virtual bool Initialize(Configuration &Cnf); + virtual bool ArchiveSupported(const char *Type); + virtual signed Score(Configuration const &Cnf); + virtual bool AddStatusFiles(std::vector &List); + virtual bool FindIndex(pkgCache::PkgFileIterator File, + pkgIndexFile *&Found) const; + + debSystem(); + ~debSystem(); +}; + +extern debSystem debSys; + +#endif diff --git a/apt-pkg/deb/debversion.cc b/apt-pkg/deb/debversion.cc new file mode 100644 index 0000000..064d8fa --- /dev/null +++ b/apt-pkg/deb/debversion.cc @@ -0,0 +1,271 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: debversion.cc,v 1.8 2003/09/10 23:39:49 mdz Exp $ +/* ###################################################################### + + Debian Version - Versioning system for Debian + + This implements the standard Debian versioning system. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#define APT_COMPATIBILITY 986 +#ifdef __GNUG__ +#pragma implementation "apt-pkg/debversion.h" +#endif + +#include +#include + +#include +#include + /*}}}*/ + +debVersioningSystem debVS; + +// debVS::debVersioningSystem - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +debVersioningSystem::debVersioningSystem() +{ + Label = "Standard .deb"; +} + /*}}}*/ + +// debVS::CmpFragment - Compare versions /*{{{*/ +// --------------------------------------------------------------------- +/* This compares a fragment of the version. This is a slightly adapted + version of what dpkg uses. */ +#define order(x) ((x) == '~' ? -1 \ + : isdigit((x)) ? 0 \ + : !(x) ? 0 \ + : isalpha((x)) ? (x) \ + : (x) + 256) +int debVersioningSystem::CmpFragment(const char *A,const char *AEnd, + const char *B,const char *BEnd) +{ + if (A >= AEnd && B >= BEnd) + return 0; + if (A >= AEnd) + { + if (*B == '~') return 1; + return -1; + } + if (B >= BEnd) + { + if (*A == '~') return -1; + return 1; + } + + /* Iterate over the whole string + What this does is to split the whole string into groups of + numeric and non numeric portions. For instance: + a67bhgs89 + Has 4 portions 'a', '67', 'bhgs', '89'. A more normal: + 2.7.2-linux-1 + Has '2', '.', '7', '.' ,'-linux-','1' */ + const char *lhs = A; + const char *rhs = B; + while (lhs != AEnd && rhs != BEnd) + { + int first_diff = 0; + + while (lhs != AEnd && rhs != BEnd && + (!isdigit(*lhs) || !isdigit(*rhs))) + { + int vc = order(*lhs); + int rc = order(*rhs); + if (vc != rc) + return vc - rc; + lhs++; rhs++; + } + + while (*lhs == '0') + lhs++; + while (*rhs == '0') + rhs++; + while (isdigit(*lhs) && isdigit(*rhs)) + { + if (!first_diff) + first_diff = *lhs - *rhs; + lhs++; + rhs++; + } + + if (isdigit(*lhs)) + return 1; + if (isdigit(*rhs)) + return -1; + if (first_diff) + return first_diff; + } + + // The strings must be equal + if (lhs == AEnd && rhs == BEnd) + return 0; + + // lhs is shorter + if (lhs == AEnd) + { + if (*rhs == '~') return 1; + return -1; + } + + // rhs is shorter + if (rhs == BEnd) + { + if (*lhs == '~') return -1; + return 1; + } + + // Shouldnt happen + return 1; +} + /*}}}*/ +// debVS::CmpVersion - Comparison for versions /*{{{*/ +// --------------------------------------------------------------------- +/* This fragments the version into E:V-R triples and compares each + portion separately. */ +int debVersioningSystem::DoCmpVersion(const char *A,const char *AEnd, + const char *B,const char *BEnd) +{ + // Strip off the epoch and compare it + const char *lhs = A; + const char *rhs = B; + for (;lhs != AEnd && *lhs != ':'; lhs++); + for (;rhs != BEnd && *rhs != ':'; rhs++); + if (lhs == AEnd) + lhs = A; + if (rhs == BEnd) + rhs = B; + + // Special case: a zero epoch is the same as no epoch, + // so remove it. + if (lhs != A) + { + for (; *A == '0'; ++A); + if (A == lhs) + { + ++A; + ++lhs; + } + } + if (rhs != B) + { + for (; *B == '0'; ++B); + if (B == rhs) + { + ++B; + ++rhs; + } + } + + // Compare the epoch + int Res = CmpFragment(A,lhs,B,rhs); + if (Res != 0) + return Res; + + // Skip the : + if (lhs != A) + lhs++; + if (rhs != B) + rhs++; + + // Find the last - + const char *dlhs = AEnd-1; + const char *drhs = BEnd-1; + for (;dlhs > lhs && *dlhs != '-'; dlhs--); + for (;drhs > rhs && *drhs != '-'; drhs--); + + if (dlhs == lhs) + dlhs = AEnd; + if (drhs == rhs) + drhs = BEnd; + + // Compare the main version + Res = CmpFragment(lhs,dlhs,rhs,drhs); + if (Res != 0) + return Res; + + // Skip the - + if (dlhs != lhs) + dlhs++; + if (drhs != rhs) + drhs++; + + return CmpFragment(dlhs,AEnd,drhs,BEnd); +} + /*}}}*/ +// debVS::CheckDep - Check a single dependency /*{{{*/ +// --------------------------------------------------------------------- +/* This simply preforms the version comparison and switch based on + operator. If DepVer is 0 then we are comparing against a provides + with no version. */ +bool debVersioningSystem::CheckDep(const char *PkgVer, + int Op,const char *DepVer) +{ + if (DepVer == 0 || DepVer[0] == 0) + return true; + if (PkgVer == 0 || PkgVer[0] == 0) + return false; + + // Perform the actual comparision. + int Res = CmpVersion(PkgVer,DepVer); + switch (Op & 0x0F) + { + case pkgCache::Dep::LessEq: + if (Res <= 0) + return true; + break; + + case pkgCache::Dep::GreaterEq: + if (Res >= 0) + return true; + break; + + case pkgCache::Dep::Less: + if (Res < 0) + return true; + break; + + case pkgCache::Dep::Greater: + if (Res > 0) + return true; + break; + + case pkgCache::Dep::Equals: + if (Res == 0) + return true; + break; + + case pkgCache::Dep::NotEquals: + if (Res != 0) + return true; + break; + } + + return false; +} + /*}}}*/ +// debVS::UpstreamVersion - Return the upstream version string /*{{{*/ +// --------------------------------------------------------------------- +/* This strips all the debian specific information from the version number */ +string debVersioningSystem::UpstreamVersion(const char *Ver) +{ + // Strip off the bit before the first colon + const char *I = Ver; + for (; *I != 0 && *I != ':'; I++); + if (*I == ':') + Ver = I + 1; + + // Chop off the trailing - + I = Ver; + unsigned Last = strlen(Ver); + for (; *I != 0; I++) + if (*I == '-') + Last = I - Ver; + + return string(Ver,Last); +} + /*}}}*/ diff --git a/apt-pkg/deb/debversion.h b/apt-pkg/deb/debversion.h new file mode 100644 index 0000000..00a8832 --- /dev/null +++ b/apt-pkg/deb/debversion.h @@ -0,0 +1,72 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: debversion.h,v 1.3 2001/05/03 05:25:04 jgg Exp $ +/* ###################################################################### + + Debian Version - Versioning system for Debian + + This implements the standard Debian versioning system. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_DEBVERSION_H +#define PKGLIB_DEBVERSION_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/debversion.h" +#endif + +#include + +class debVersioningSystem : public pkgVersioningSystem +{ + public: + + static int CmpFragment(const char *A, const char *AEnd, const char *B, + const char *BEnd); + + // Compare versions.. + virtual int DoCmpVersion(const char *A,const char *Aend, + const char *B,const char *Bend); + virtual bool CheckDep(const char *PkgVer,int Op,const char *DepVer); + virtual int DoCmpReleaseVer(const char *A,const char *Aend, + const char *B,const char *Bend) + { + return DoCmpVersion(A,Aend,B,Bend); + } + virtual string UpstreamVersion(const char *A); + + debVersioningSystem(); +}; + +extern debVersioningSystem debVS; + +#ifdef APT_COMPATIBILITY +#if APT_COMPATIBILITY != 986 +#warning "Using APT_COMPATIBILITY" +#endif + +inline int pkgVersionCompare(const char *A, const char *B) +{ + return debVS.CmpVersion(A,B); +} +inline int pkgVersionCompare(const char *A, const char *AEnd, + const char *B, const char *BEnd) +{ + return debVS.DoCmpVersion(A,AEnd,B,BEnd); +} +inline int pkgVersionCompare(string A,string B) +{ + return debVS.CmpVersion(A,B); +} +inline bool pkgCheckDep(const char *DepVer,const char *PkgVer,int Op) +{ + return debVS.CheckDep(PkgVer,Op,DepVer); +} +inline string pkgBaseVersion(const char *Ver) +{ + return debVS.UpstreamVersion(Ver); +} +#endif + +#endif diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc new file mode 100644 index 0000000..b4175f7 --- /dev/null +++ b/apt-pkg/deb/dpkgpm.cc @@ -0,0 +1,748 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: dpkgpm.cc,v 1.28 2004/01/27 02:25:01 mdz Exp $ +/* ###################################################################### + + DPKG Package Manager - Provide an interface to dpkg + + ##################################################################### */ + /*}}}*/ +// Includes /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/dpkgpm.h" +#endif +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + /*}}}*/ + +using namespace std; + +// DPkgPM::pkgDPkgPM - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgDPkgPM::pkgDPkgPM(pkgDepCache *Cache) : pkgPackageManager(Cache) +{ +} + /*}}}*/ +// DPkgPM::pkgDPkgPM - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgDPkgPM::~pkgDPkgPM() +{ +} + /*}}}*/ +// DPkgPM::Install - Install a package /*{{{*/ +// --------------------------------------------------------------------- +/* Add an install operation to the sequence list */ +bool pkgDPkgPM::Install(PkgIterator Pkg,string File) +{ + if (File.empty() == true || Pkg.end() == true) + return _error->Error("Internal Error, No file name for %s",Pkg.Name()); + + List.push_back(Item(Item::Install,Pkg,File)); + return true; +} + /*}}}*/ +// DPkgPM::Configure - Configure a package /*{{{*/ +// --------------------------------------------------------------------- +/* Add a configure operation to the sequence list */ +bool pkgDPkgPM::Configure(PkgIterator Pkg) +{ + if (Pkg.end() == true) + return false; + + List.push_back(Item(Item::Configure,Pkg)); + return true; +} + /*}}}*/ +// DPkgPM::Remove - Remove a package /*{{{*/ +// --------------------------------------------------------------------- +/* Add a remove operation to the sequence list */ +bool pkgDPkgPM::Remove(PkgIterator Pkg,bool Purge) +{ + if (Pkg.end() == true) + return false; + + if (Purge == true) + List.push_back(Item(Item::Purge,Pkg)); + else + List.push_back(Item(Item::Remove,Pkg)); + return true; +} + /*}}}*/ +// DPkgPM::RunScripts - Run a set of scripts /*{{{*/ +// --------------------------------------------------------------------- +/* This looks for a list of script sto run from the configuration file, + each one is run with system from a forked child. */ +bool pkgDPkgPM::RunScripts(const char *Cnf) +{ + Configuration::Item const *Opts = _config->Tree(Cnf); + if (Opts == 0 || Opts->Child == 0) + return true; + Opts = Opts->Child; + + // Fork for running the system calls + pid_t Child = ExecFork(); + + // This is the child + if (Child == 0) + { + if (chdir("/tmp/") != 0) + _exit(100); + + unsigned int Count = 1; + for (; Opts != 0; Opts = Opts->Next, Count++) + { + if (Opts->Value.empty() == true) + continue; + + if (system(Opts->Value.c_str()) != 0) + _exit(100+Count); + } + _exit(0); + } + + // Wait for the child + int Status = 0; + while (waitpid(Child,&Status,0) != Child) + { + if (errno == EINTR) + continue; + return _error->Errno("waitpid","Couldn't wait for subprocess"); + } + + // Restore sig int/quit + signal(SIGQUIT,SIG_DFL); + signal(SIGINT,SIG_DFL); + + // Check for an error code. + if (WIFEXITED(Status) == 0 || WEXITSTATUS(Status) != 0) + { + unsigned int Count = WEXITSTATUS(Status); + if (Count > 100) + { + Count -= 100; + for (; Opts != 0 && Count != 1; Opts = Opts->Next, Count--); + _error->Error("Problem executing scripts %s '%s'",Cnf,Opts->Value.c_str()); + } + + return _error->Error("Sub-process returned an error code"); + } + + return true; +} + /*}}}*/ +// DPkgPM::SendV2Pkgs - Send version 2 package info /*{{{*/ +// --------------------------------------------------------------------- +/* This is part of the helper script communication interface, it sends + very complete information down to the other end of the pipe.*/ +bool pkgDPkgPM::SendV2Pkgs(FILE *F) +{ + fprintf(F,"VERSION 2\n"); + + /* Write out all of the configuration directives by walking the + configuration tree */ + const Configuration::Item *Top = _config->Tree(0); + for (; Top != 0;) + { + if (Top->Value.empty() == false) + { + fprintf(F,"%s=%s\n", + QuoteString(Top->FullTag(),"=\"\n").c_str(), + QuoteString(Top->Value,"\n").c_str()); + } + + if (Top->Child != 0) + { + Top = Top->Child; + continue; + } + + while (Top != 0 && Top->Next == 0) + Top = Top->Parent; + if (Top != 0) + Top = Top->Next; + } + fprintf(F,"\n"); + + // Write out the package actions in order. + for (vector::iterator I = List.begin(); I != List.end(); I++) + { + pkgDepCache::StateCache &S = Cache[I->Pkg]; + + fprintf(F,"%s ",I->Pkg.Name()); + // Current version + if (I->Pkg->CurrentVer == 0) + fprintf(F,"- "); + else + fprintf(F,"%s ",I->Pkg.CurrentVer().VerStr()); + + // Show the compare operator + // Target version + if (S.InstallVer != 0) + { + int Comp = 2; + if (I->Pkg->CurrentVer != 0) + Comp = S.InstVerIter(Cache).CompareVer(I->Pkg.CurrentVer()); + if (Comp < 0) + fprintf(F,"> "); + if (Comp == 0) + fprintf(F,"= "); + if (Comp > 0) + fprintf(F,"< "); + fprintf(F,"%s ",S.InstVerIter(Cache).VerStr()); + } + else + fprintf(F,"> - "); + + // Show the filename/operation + if (I->Op == Item::Install) + { + // No errors here.. + if (I->File[0] != '/') + fprintf(F,"**ERROR**\n"); + else + fprintf(F,"%s\n",I->File.c_str()); + } + if (I->Op == Item::Configure) + fprintf(F,"**CONFIGURE**\n"); + if (I->Op == Item::Remove || + I->Op == Item::Purge) + fprintf(F,"**REMOVE**\n"); + + if (ferror(F) != 0) + return false; + } + return true; +} + /*}}}*/ +// DPkgPM::RunScriptsWithPkgs - Run scripts with package names on stdin /*{{{*/ +// --------------------------------------------------------------------- +/* This looks for a list of scripts to run from the configuration file + each one is run and is fed on standard input a list of all .deb files + that are due to be installed. */ +bool pkgDPkgPM::RunScriptsWithPkgs(const char *Cnf) +{ + Configuration::Item const *Opts = _config->Tree(Cnf); + if (Opts == 0 || Opts->Child == 0) + return true; + Opts = Opts->Child; + + unsigned int Count = 1; + for (; Opts != 0; Opts = Opts->Next, Count++) + { + if (Opts->Value.empty() == true) + continue; + + // Determine the protocol version + string OptSec = Opts->Value; + string::size_type Pos; + if ((Pos = OptSec.find(' ')) == string::npos || Pos == 0) + Pos = OptSec.length(); + OptSec = "DPkg::Tools::Options::" + string(Opts->Value.c_str(),Pos); + + unsigned int Version = _config->FindI(OptSec+"::Version",1); + + // Create the pipes + int Pipes[2]; + if (pipe(Pipes) != 0) + return _error->Errno("pipe","Failed to create IPC pipe to subprocess"); + SetCloseExec(Pipes[0],true); + SetCloseExec(Pipes[1],true); + + // Purified Fork for running the script + pid_t Process = ExecFork(); + if (Process == 0) + { + // Setup the FDs + dup2(Pipes[0],STDIN_FILENO); + SetCloseExec(STDOUT_FILENO,false); + SetCloseExec(STDIN_FILENO,false); + SetCloseExec(STDERR_FILENO,false); + + const char *Args[4]; + Args[0] = "/bin/sh"; + Args[1] = "-c"; + Args[2] = Opts->Value.c_str(); + Args[3] = 0; + execv(Args[0],(char **)Args); + _exit(100); + } + close(Pipes[0]); + FILE *F = fdopen(Pipes[1],"w"); + if (F == 0) + return _error->Errno("fdopen","Faild to open new FD"); + + // Feed it the filenames. + bool Die = false; + if (Version <= 1) + { + for (vector::iterator I = List.begin(); I != List.end(); I++) + { + // Only deal with packages to be installed from .deb + if (I->Op != Item::Install) + continue; + + // No errors here.. + if (I->File[0] != '/') + continue; + + /* Feed the filename of each package that is pending install + into the pipe. */ + fprintf(F,"%s\n",I->File.c_str()); + if (ferror(F) != 0) + { + Die = true; + break; + } + } + } + else + Die = !SendV2Pkgs(F); + + fclose(F); + + // Clean up the sub process + if (ExecWait(Process,Opts->Value.c_str()) == false) + return _error->Error("Failure running script %s",Opts->Value.c_str()); + } + + return true; +} + /*}}}*/ +// DPkgPM::Go - Run the sequence /*{{{*/ +// --------------------------------------------------------------------- +/* This globs the operations and calls dpkg + * + * If it is called with "OutStatusFd" set to a valid file descriptor + * apt will report the install progress over this fd. It maps the + * dpkg states a package goes through to human readable (and i10n-able) + * names and calculates a percentage for each step. +*/ +bool pkgDPkgPM::Go(int OutStatusFd) +{ + unsigned int MaxArgs = _config->FindI("Dpkg::MaxArgs",8*1024); + unsigned int MaxArgBytes = _config->FindI("Dpkg::MaxArgBytes",32*1024); + + if (RunScripts("DPkg::Pre-Invoke") == false) + return false; + + if (RunScriptsWithPkgs("DPkg::Pre-Install-Pkgs") == false) + return false; + + // prepare the progress reporting + int Done = 0; + int Total = 0; + // map the dpkg states to the operations that are performed + // (this is sorted in the same way as Item::Ops) + static const struct DpkgState DpkgStatesOpMap[][5] = { + // Install operation + { + {"half-installed", N_("Preparing %s")}, + {"unpacked", N_("Unpacking %s") }, + {NULL, NULL} + }, + // Configure operation + { + {"unpacked",N_("Preparing to configure %s") }, + {"half-configured", N_("Configuring %s") }, + { "installed", N_("Installed %s")}, + {NULL, NULL} + }, + // Remove operation + { + {"half-configured", N_("Preparing for removal of %s")}, + {"half-installed", N_("Removing %s")}, + {"config-files", N_("Removed %s")}, + {NULL, NULL} + }, + // Purge operation + { + {"config-files", N_("Preparing to completely remove %s")}, + {"not-installed", N_("Completely removed %s")}, + {NULL, NULL} + }, + }; + + // the dpkg states that the pkg will run through, the string is + // the package, the vector contains the dpkg states that the package + // will go through + map > PackageOps; + // the dpkg states that are already done; the string is the package + // the int is the state that is already done (e.g. a package that is + // going to be install is already in state "half-installed") + map PackageOpsDone; + + // init the PackageOps map, go over the list of packages that + // that will be [installed|configured|removed|purged] and add + // them to the PackageOps map (the dpkg states it goes through) + // and the PackageOpsTranslations (human readable strings) + for (vector::iterator I = List.begin(); I != List.end();I++) + { + string name = (*I).Pkg.Name(); + PackageOpsDone[name] = 0; + for(int i=0; (DpkgStatesOpMap[(*I).Op][i]).state != NULL; i++) + { + PackageOps[name].push_back(DpkgStatesOpMap[(*I).Op][i]); + Total++; + } + } + + // this loop is runs once per operation + for (vector::iterator I = List.begin(); I != List.end();) + { + vector::iterator J = I; + for (; J != List.end() && J->Op == I->Op; J++); + + // Generate the argument list + const char *Args[MaxArgs + 50]; + if (J - I > (signed)MaxArgs) + J = I + MaxArgs; + + unsigned int n = 0; + unsigned long Size = 0; + string Tmp = _config->Find("Dir::Bin::dpkg","dpkg"); + Args[n++] = Tmp.c_str(); + Size += strlen(Args[n-1]); + + // Stick in any custom dpkg options + Configuration::Item const *Opts = _config->Tree("DPkg::Options"); + if (Opts != 0) + { + Opts = Opts->Child; + for (; Opts != 0; Opts = Opts->Next) + { + if (Opts->Value.empty() == true) + continue; + Args[n++] = Opts->Value.c_str(); + Size += Opts->Value.length(); + } + } + + char status_fd_buf[20]; + int fd[2]; + pipe(fd); + + Args[n++] = "--status-fd"; + Size += strlen(Args[n-1]); + snprintf(status_fd_buf,sizeof(status_fd_buf),"%i", fd[1]); + Args[n++] = status_fd_buf; + Size += strlen(Args[n-1]); + + switch (I->Op) + { + case Item::Remove: + Args[n++] = "--force-depends"; + Size += strlen(Args[n-1]); + Args[n++] = "--force-remove-essential"; + Size += strlen(Args[n-1]); + Args[n++] = "--remove"; + Size += strlen(Args[n-1]); + break; + + case Item::Purge: + Args[n++] = "--force-depends"; + Size += strlen(Args[n-1]); + Args[n++] = "--force-remove-essential"; + Size += strlen(Args[n-1]); + Args[n++] = "--purge"; + Size += strlen(Args[n-1]); + break; + + case Item::Configure: + Args[n++] = "--configure"; + Size += strlen(Args[n-1]); + break; + + case Item::Install: + Args[n++] = "--unpack"; + Size += strlen(Args[n-1]); + break; + } + + // Write in the file or package names + if (I->Op == Item::Install) + { + for (;I != J && Size < MaxArgBytes; I++) + { + if (I->File[0] != '/') + return _error->Error("Internal Error, Pathname to install is not absolute '%s'",I->File.c_str()); + Args[n++] = I->File.c_str(); + Size += strlen(Args[n-1]); + } + } + else + { + for (;I != J && Size < MaxArgBytes; I++) + { + Args[n++] = I->Pkg.Name(); + Size += strlen(Args[n-1]); + } + } + Args[n] = 0; + J = I; + + if (_config->FindB("Debug::pkgDPkgPM",false) == true) + { + for (unsigned int k = 0; k != n; k++) + clog << Args[k] << ' '; + clog << endl; + continue; + } + + cout << flush; + clog << flush; + cerr << flush; + + typedef void (*sighandler_t)(int); + + /* Mask off sig int/quit. We do this because dpkg also does when + it forks scripts. What happens is that when you hit ctrl-c it sends + it to all processes in the group. Since dpkg ignores the signal + it doesn't die but we do! So we must also ignore it */ + sighandler_t old_SIGQUIT = signal(SIGQUIT,SIG_IGN); + sighandler_t old_SIGINT = signal(SIGINT,SIG_IGN); + + // Fork dpkg + pid_t Child; + _config->Set("APT::Keep-Fds::",fd[1]); + Child = ExecFork(); + + // This is the child + if (Child == 0) + { + close(fd[0]); // close the read end of the pipe + + if (chdir(_config->FindDir("DPkg::Run-Directory","/").c_str()) != 0) + _exit(100); + + if (_config->FindB("DPkg::FlushSTDIN",true) == true && isatty(STDIN_FILENO)) + { + int Flags,dummy; + if ((Flags = fcntl(STDIN_FILENO,F_GETFL,dummy)) < 0) + _exit(100); + + // Discard everything in stdin before forking dpkg + if (fcntl(STDIN_FILENO,F_SETFL,Flags | O_NONBLOCK) < 0) + _exit(100); + + while (read(STDIN_FILENO,&dummy,1) == 1); + + if (fcntl(STDIN_FILENO,F_SETFL,Flags & (~(long)O_NONBLOCK)) < 0) + _exit(100); + } + + /* No Job Control Stop Env is a magic dpkg var that prevents it + from using sigstop */ + putenv("DPKG_NO_TSTP=yes"); + execvp(Args[0],(char **)Args); + cerr << "Could not exec dpkg!" << endl; + _exit(100); + } + + // clear the Keep-Fd again + _config->Clear("APT::Keep-Fds",fd[1]); + + // Wait for dpkg + int Status = 0; + + // we read from dpkg here + int _dpkgin = fd[0]; + fcntl(_dpkgin, F_SETFL, O_NONBLOCK); + close(fd[1]); // close the write end of the pipe + + // the read buffers for the communication with dpkg + char line[1024] = {0,}; + char buf[2] = {0,0}; + + // the result of the waitpid call + int res; + + while ((res=waitpid(Child,&Status, WNOHANG)) != Child) { + if(res < 0) { + // FIXME: move this to a function or something, looks ugly here + // error handling, waitpid returned -1 + if (errno == EINTR) + continue; + RunScripts("DPkg::Post-Invoke"); + + // Restore sig int/quit + signal(SIGQUIT,old_SIGQUIT); + signal(SIGINT,old_SIGINT); + return _error->Errno("waitpid","Couldn't wait for subprocess"); + } + + // read a single char, make sure that the read can't block + // (otherwise we may leave zombies) + int len = read(_dpkgin, buf, 1); + + // nothing to read, wait a bit for more + if(len <= 0) + { + usleep(1000); + continue; + } + + // sanity check (should never happen) + if(strlen(line) >= sizeof(line)-10) + { + _error->Error("got a overlong line from dpkg: '%s'",line); + line[0]=0; + } + // append to line, check if we got a complete line + strcat(line, buf); + if(buf[0] != '\n') + continue; + + if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) + std::clog << "got from dpkg '" << line << "'" << std::endl; + + // the status we output + ostringstream status; + + /* dpkg sends strings like this: + 'status: : ' + errors look like this: + 'status: /var/cache/apt/archives/krecipes_0.8.1-0ubuntu1_i386.deb : error : trying to overwrite `/usr/share/doc/kde/HTML/en/krecipes/krectip.png', which is also in package krecipes-data + and conffile-prompt like this + 'status: conffile-prompt: conffile : 'current-conffile' 'new-conffile' useredited distedited + + */ + char* list[5]; + // dpkg sends multiline error messages sometimes (see + // #374195 for a example. we should support this by + // either patching dpkg to not send multiline over the + // statusfd or by rewriting the code here to deal with + // it. for now we just ignore it and not crash + TokSplitString(':', line, list, sizeof(list)/sizeof(list[0])); + char *pkg = list[1]; + char *action = _strstrip(list[2]); + if( pkg == NULL || action == NULL) + { + if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) + std::clog << "ignoring line: not enough ':'" << std::endl; + // reset the line buffer + line[0]=0; + continue; + } + + if(strncmp(action,"error",strlen("error")) == 0) + { + status << "pmerror:" << list[1] + << ":" << (Done/float(Total)*100.0) + << ":" << list[3] + << endl; + if(OutStatusFd > 0) + write(OutStatusFd, status.str().c_str(), status.str().size()); + line[0]=0; + if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) + std::clog << "send: '" << status.str() << "'" << endl; + continue; + } + if(strncmp(action,"conffile",strlen("conffile")) == 0) + { + status << "pmconffile:" << list[1] + << ":" << (Done/float(Total)*100.0) + << ":" << list[3] + << endl; + if(OutStatusFd > 0) + write(OutStatusFd, status.str().c_str(), status.str().size()); + line[0]=0; + if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) + std::clog << "send: '" << status.str() << "'" << endl; + continue; + } + + vector &states = PackageOps[pkg]; + const char *next_action = NULL; + if(PackageOpsDone[pkg] < states.size()) + next_action = states[PackageOpsDone[pkg]].state; + // check if the package moved to the next dpkg state + if(next_action && (strcmp(action, next_action) == 0)) + { + // only read the translation if there is actually a next + // action + const char *translation = _(states[PackageOpsDone[pkg]].str); + char s[200]; + snprintf(s, sizeof(s), translation, pkg); + + // we moved from one dpkg state to a new one, report that + PackageOpsDone[pkg]++; + Done++; + // build the status str + status << "pmstatus:" << pkg + << ":" << (Done/float(Total)*100.0) + << ":" << s + << endl; + if(OutStatusFd > 0) + write(OutStatusFd, status.str().c_str(), status.str().size()); + if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) + std::clog << "send: '" << status.str() << "'" << endl; + + } + if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) + std::clog << "(parsed from dpkg) pkg: " << pkg + << " action: " << action << endl; + + // reset the line buffer + line[0]=0; + } + close(_dpkgin); + + // Restore sig int/quit + signal(SIGQUIT,old_SIGQUIT); + signal(SIGINT,old_SIGINT); + + // Check for an error code. + if (WIFEXITED(Status) == 0 || WEXITSTATUS(Status) != 0) + { + // if it was set to "keep-dpkg-runing" then we won't return + // here but keep the loop going and just report it as a error + // for later + bool stopOnError = _config->FindB("Dpkg::StopOnError",true); + + if(stopOnError) + RunScripts("DPkg::Post-Invoke"); + + if (WIFSIGNALED(Status) != 0 && WTERMSIG(Status) == SIGSEGV) + _error->Error("Sub-process %s received a segmentation fault.",Args[0]); + else if (WIFEXITED(Status) != 0) + _error->Error("Sub-process %s returned an error code (%u)",Args[0],WEXITSTATUS(Status)); + else + _error->Error("Sub-process %s exited unexpectedly",Args[0]); + + if(stopOnError) + return false; + } + } + + if (RunScripts("DPkg::Post-Invoke") == false) + return false; + return true; +} + /*}}}*/ +// pkgDpkgPM::Reset - Dump the contents of the command list /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgDPkgPM::Reset() +{ + List.erase(List.begin(),List.end()); +} + /*}}}*/ diff --git a/apt-pkg/deb/dpkgpm.h b/apt-pkg/deb/dpkgpm.h new file mode 100644 index 0000000..2ff8a9a --- /dev/null +++ b/apt-pkg/deb/dpkgpm.h @@ -0,0 +1,64 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: dpkgpm.h,v 1.8 2001/05/07 05:05:13 jgg Exp $ +/* ###################################################################### + + DPKG Package Manager - Provide an interface to dpkg + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_DPKGPM_H +#define PKGLIB_DPKGPM_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/dpkgpm.h" +#endif + +#include +#include +#include + +using std::vector; + +class pkgDPkgPM : public pkgPackageManager +{ + protected: + + // used for progress reporting + struct DpkgState + { + const char *state; // the dpkg state (e.g. "unpack") + const char *str; // the human readable translation of the state + }; + + struct Item + { + enum Ops {Install, Configure, Remove, Purge} Op; + string File; + PkgIterator Pkg; + Item(Ops Op,PkgIterator Pkg,string File = "") : Op(Op), + File(File), Pkg(Pkg) {}; + Item() {}; + + }; + vector List; + + // Helpers + bool RunScripts(const char *Cnf); + bool RunScriptsWithPkgs(const char *Cnf); + bool SendV2Pkgs(FILE *F); + + // The Actuall installation implementation + virtual bool Install(PkgIterator Pkg,string File); + virtual bool Configure(PkgIterator Pkg); + virtual bool Remove(PkgIterator Pkg,bool Purge = false); + virtual bool Go(int StatusFd=-1); + virtual void Reset(); + + public: + + pkgDPkgPM(pkgDepCache *Cache); + virtual ~pkgDPkgPM(); +}; + +#endif diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc new file mode 100644 index 0000000..58d1d25 --- /dev/null +++ b/apt-pkg/depcache.cc @@ -0,0 +1,874 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: depcache.cc,v 1.25 2001/05/27 05:36:04 jgg Exp $ +/* ###################################################################### + + Dependency Cache - Caches Dependency information. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/depcache.h" +#endif +#include +#include +#include +#include +#include +#include + +#include + /*}}}*/ + +// DepCache::pkgDepCache - Constructors /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgDepCache::pkgDepCache(pkgCache *pCache,Policy *Plcy) : + Cache(pCache), PkgState(0), DepState(0) +{ + delLocalPolicy = 0; + LocalPolicy = Plcy; + if (LocalPolicy == 0) + delLocalPolicy = LocalPolicy = new Policy; +} + /*}}}*/ +// DepCache::~pkgDepCache - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgDepCache::~pkgDepCache() +{ + delete [] PkgState; + delete [] DepState; + delete delLocalPolicy; +} + /*}}}*/ +// DepCache::Init - Generate the initial extra structures. /*{{{*/ +// --------------------------------------------------------------------- +/* This allocats the extension buffers and initializes them. */ +bool pkgDepCache::Init(OpProgress *Prog) +{ + delete [] PkgState; + delete [] DepState; + PkgState = new StateCache[Head().PackageCount]; + DepState = new unsigned char[Head().DependsCount]; + memset(PkgState,0,sizeof(*PkgState)*Head().PackageCount); + memset(DepState,0,sizeof(*DepState)*Head().DependsCount); + + if (Prog != 0) + { + Prog->OverallProgress(0,2*Head().PackageCount,Head().PackageCount, + _("Building dependency tree")); + Prog->SubProgress(Head().PackageCount,_("Candidate versions")); + } + + /* Set the current state of everything. In this state all of the + packages are kept exactly as is. See AllUpgrade */ + int Done = 0; + for (PkgIterator I = PkgBegin(); I.end() != true; I++,Done++) + { + if (Prog != 0) + Prog->Progress(Done); + + // Find the proper cache slot + StateCache &State = PkgState[I->ID]; + State.iFlags = 0; + + // Figure out the install version + State.CandidateVer = GetCandidateVer(I); + State.InstallVer = I.CurrentVer(); + State.Mode = ModeKeep; + + State.Update(I,*this); + } + + if (Prog != 0) + { + + Prog->OverallProgress(Head().PackageCount,2*Head().PackageCount, + Head().PackageCount, + _("Building dependency tree")); + Prog->SubProgress(Head().PackageCount,_("Dependency generation")); + } + + Update(Prog); + + if(Prog != 0) + Prog->Done(); + + return true; +} + /*}}}*/ + +// DepCache::CheckDep - Checks a single dependency /*{{{*/ +// --------------------------------------------------------------------- +/* This first checks the dependency against the main target package and + then walks along the package provides list and checks if each provides + will be installed then checks the provides against the dep. Res will be + set to the package which was used to satisfy the dep. */ +bool pkgDepCache::CheckDep(DepIterator Dep,int Type,PkgIterator &Res) +{ + Res = Dep.TargetPkg(); + + /* Check simple depends. A depends -should- never self match but + we allow it anyhow because dpkg does. Technically it is a packaging + bug. Conflicts may never self match */ + if (Dep.TargetPkg() != Dep.ParentPkg() || + (Dep->Type != Dep::Conflicts && Dep->Type != Dep::Obsoletes)) + { + PkgIterator Pkg = Dep.TargetPkg(); + // Check the base package + if (Type == NowVersion && Pkg->CurrentVer != 0) + if (VS().CheckDep(Pkg.CurrentVer().VerStr(),Dep->CompareOp, + Dep.TargetVer()) == true) + return true; + + if (Type == InstallVersion && PkgState[Pkg->ID].InstallVer != 0) + if (VS().CheckDep(PkgState[Pkg->ID].InstVerIter(*this).VerStr(), + Dep->CompareOp,Dep.TargetVer()) == true) + return true; + + if (Type == CandidateVersion && PkgState[Pkg->ID].CandidateVer != 0) + if (VS().CheckDep(PkgState[Pkg->ID].CandidateVerIter(*this).VerStr(), + Dep->CompareOp,Dep.TargetVer()) == true) + return true; + } + + if (Dep->Type == Dep::Obsoletes) + return false; + + // Check the providing packages + PrvIterator P = Dep.TargetPkg().ProvidesList(); + PkgIterator Pkg = Dep.ParentPkg(); + for (; P.end() != true; P++) + { + /* Provides may never be applied against the same package if it is + a conflicts. See the comment above. */ + if (P.OwnerPkg() == Pkg && Dep->Type == Dep::Conflicts) + continue; + + // Check if the provides is a hit + if (Type == NowVersion) + { + if (P.OwnerPkg().CurrentVer() != P.OwnerVer()) + continue; + } + + if (Type == InstallVersion) + { + StateCache &State = PkgState[P.OwnerPkg()->ID]; + if (State.InstallVer != (Version *)P.OwnerVer()) + continue; + } + + if (Type == CandidateVersion) + { + StateCache &State = PkgState[P.OwnerPkg()->ID]; + if (State.CandidateVer != (Version *)P.OwnerVer()) + continue; + } + + // Compare the versions. + if (VS().CheckDep(P.ProvideVersion(),Dep->CompareOp,Dep.TargetVer()) == true) + { + Res = P.OwnerPkg(); + return true; + } + } + + return false; +} + /*}}}*/ +// DepCache::AddSizes - Add the packages sizes to the counters /*{{{*/ +// --------------------------------------------------------------------- +/* Call with Mult = -1 to preform the inverse opration */ +void pkgDepCache::AddSizes(const PkgIterator &Pkg,signed long Mult) +{ + StateCache &P = PkgState[Pkg->ID]; + + if (Pkg->VersionList == 0) + return; + + if (Pkg.State() == pkgCache::PkgIterator::NeedsConfigure && + P.Keep() == true) + return; + + // Compute the size data + if (P.NewInstall() == true) + { + iUsrSize += (signed)(Mult*P.InstVerIter(*this)->InstalledSize); + iDownloadSize += (signed)(Mult*P.InstVerIter(*this)->Size); + return; + } + + // Upgrading + if (Pkg->CurrentVer != 0 && + (P.InstallVer != (Version *)Pkg.CurrentVer() || + (P.iFlags & ReInstall) == ReInstall) && P.InstallVer != 0) + { + iUsrSize += (signed)(Mult*((signed)P.InstVerIter(*this)->InstalledSize - + (signed)Pkg.CurrentVer()->InstalledSize)); + iDownloadSize += (signed)(Mult*P.InstVerIter(*this)->Size); + return; + } + + // Reinstall + if (Pkg.State() == pkgCache::PkgIterator::NeedsUnpack && + P.Delete() == false) + { + iDownloadSize += (signed)(Mult*P.InstVerIter(*this)->Size); + return; + } + + // Removing + if (Pkg->CurrentVer != 0 && P.InstallVer == 0) + { + iUsrSize -= (signed)(Mult*Pkg.CurrentVer()->InstalledSize); + return; + } +} + /*}}}*/ +// DepCache::AddStates - Add the package to the state counter /*{{{*/ +// --------------------------------------------------------------------- +/* This routine is tricky to use, you must make sure that it is never + called twice for the same package. This means the Remove/Add section + should be as short as possible and not encompass any code that will + calld Remove/Add itself. Remember, dependencies can be circular so + while processing a dep for Pkg it is possible that Add/Remove + will be called on Pkg */ +void pkgDepCache::AddStates(const PkgIterator &Pkg,int Add) +{ + StateCache &State = PkgState[Pkg->ID]; + + // The Package is broken + if ((State.DepState & DepInstMin) != DepInstMin) + iBrokenCount += Add; + + // Bad state + if (Pkg.State() != PkgIterator::NeedsNothing) + iBadCount += Add; + + // Not installed + if (Pkg->CurrentVer == 0) + { + if (State.Mode == ModeDelete && + (State.iFlags | Purge) == Purge && Pkg.Purge() == false) + iDelCount += Add; + + if (State.Mode == ModeInstall) + iInstCount += Add; + return; + } + + // Installed, no upgrade + if (State.Status == 0) + { + if (State.Mode == ModeDelete) + iDelCount += Add; + else + if ((State.iFlags & ReInstall) == ReInstall) + iInstCount += Add; + + return; + } + + // Alll 3 are possible + if (State.Mode == ModeDelete) + iDelCount += Add; + if (State.Mode == ModeKeep) + iKeepCount += Add; + if (State.Mode == ModeInstall) + iInstCount += Add; +} + /*}}}*/ +// DepCache::BuildGroupOrs - Generate the Or group dep data /*{{{*/ +// --------------------------------------------------------------------- +/* The or group results are stored in the last item of the or group. This + allows easy detection of the state of a whole or'd group. */ +void pkgDepCache::BuildGroupOrs(VerIterator const &V) +{ + unsigned char Group = 0; + + for (DepIterator D = V.DependsList(); D.end() != true; D++) + { + // Build the dependency state. + unsigned char &State = DepState[D->ID]; + + /* Invert for Conflicts. We have to do this twice to get the + right sense for a conflicts group */ + if (D->Type == Dep::Conflicts || D->Type == Dep::Obsoletes) + State = ~State; + + // Add to the group if we are within an or.. + State &= 0x7; + Group |= State; + State |= Group << 3; + if ((D->CompareOp & Dep::Or) != Dep::Or) + Group = 0; + + // Invert for Conflicts + if (D->Type == Dep::Conflicts || D->Type == Dep::Obsoletes) + State = ~State; + } +} + /*}}}*/ +// DepCache::VersionState - Perform a pass over a dependency list /*{{{*/ +// --------------------------------------------------------------------- +/* This is used to run over a dependency list and determine the dep + state of the list, filtering it through both a Min check and a Policy + check. The return result will have SetMin/SetPolicy low if a check + fails. It uses the DepState cache for it's computations. */ +unsigned char pkgDepCache::VersionState(DepIterator D,unsigned char Check, + unsigned char SetMin, + unsigned char SetPolicy) +{ + unsigned char Dep = 0xFF; + + while (D.end() != true) + { + // Compute a single dependency element (glob or) + DepIterator Start = D; + unsigned char State = 0; + for (bool LastOR = true; D.end() == false && LastOR == true; D++) + { + State |= DepState[D->ID]; + LastOR = (D->CompareOp & Dep::Or) == Dep::Or; + } + + // Minimum deps that must be satisfied to have a working package + if (Start.IsCritical() == true) + if ((State & Check) != Check) + Dep &= ~SetMin; + + // Policy deps that must be satisfied to install the package + if (IsImportantDep(Start) == true && + (State & Check) != Check) + Dep &= ~SetPolicy; + } + + return Dep; +} + /*}}}*/ +// DepCache::DependencyState - Compute the 3 results for a dep /*{{{*/ +// --------------------------------------------------------------------- +/* This is the main dependency computation bit. It computes the 3 main + results for a dependencys, Now, Install and Candidate. Callers must + invert the result if dealing with conflicts. */ +unsigned char pkgDepCache::DependencyState(DepIterator &D) +{ + unsigned char State = 0; + + if (CheckDep(D,NowVersion) == true) + State |= DepNow; + if (CheckDep(D,InstallVersion) == true) + State |= DepInstall; + if (CheckDep(D,CandidateVersion) == true) + State |= DepCVer; + + return State; +} + /*}}}*/ +// DepCache::UpdateVerState - Compute the Dep member of the state /*{{{*/ +// --------------------------------------------------------------------- +/* This determines the combined dependency representation of a package + for its two states now and install. This is done by using the pre-generated + dependency information. */ +void pkgDepCache::UpdateVerState(PkgIterator Pkg) +{ + // Empty deps are always true + StateCache &State = PkgState[Pkg->ID]; + State.DepState = 0xFF; + + // Check the Current state + if (Pkg->CurrentVer != 0) + { + DepIterator D = Pkg.CurrentVer().DependsList(); + State.DepState &= VersionState(D,DepNow,DepNowMin,DepNowPolicy); + } + + /* Check the candidate state. We do not compare against the whole as + a candidate state but check the candidate version against the + install states */ + if (State.CandidateVer != 0) + { + DepIterator D = State.CandidateVerIter(*this).DependsList(); + State.DepState &= VersionState(D,DepInstall,DepCandMin,DepCandPolicy); + } + + // Check target state which can only be current or installed + if (State.InstallVer != 0) + { + DepIterator D = State.InstVerIter(*this).DependsList(); + State.DepState &= VersionState(D,DepInstall,DepInstMin,DepInstPolicy); + } +} + /*}}}*/ +// DepCache::Update - Figure out all the state information /*{{{*/ +// --------------------------------------------------------------------- +/* This will figure out the state of all the packages and all the + dependencies based on the current policy. */ +void pkgDepCache::Update(OpProgress *Prog) +{ + iUsrSize = 0; + iDownloadSize = 0; + iDelCount = 0; + iInstCount = 0; + iKeepCount = 0; + iBrokenCount = 0; + iBadCount = 0; + + // Perform the depends pass + int Done = 0; + for (PkgIterator I = PkgBegin(); I.end() != true; I++,Done++) + { + if (Prog != 0 && Done%20 == 0) + Prog->Progress(Done); + for (VerIterator V = I.VersionList(); V.end() != true; V++) + { + unsigned char Group = 0; + + for (DepIterator D = V.DependsList(); D.end() != true; D++) + { + // Build the dependency state. + unsigned char &State = DepState[D->ID]; + State = DependencyState(D); + + // Add to the group if we are within an or.. + Group |= State; + State |= Group << 3; + if ((D->CompareOp & Dep::Or) != Dep::Or) + Group = 0; + + // Invert for Conflicts + if (D->Type == Dep::Conflicts || D->Type == Dep::Obsoletes) + State = ~State; + } + } + + // Compute the pacakge dependency state and size additions + AddSizes(I); + UpdateVerState(I); + AddStates(I); + } + + if (Prog != 0) + Prog->Progress(Done); +} + /*}}}*/ +// DepCache::Update - Update the deps list of a package /*{{{*/ +// --------------------------------------------------------------------- +/* This is a helper for update that only does the dep portion of the scan. + It is mainly ment to scan reverse dependencies. */ +void pkgDepCache::Update(DepIterator D) +{ + // Update the reverse deps + for (;D.end() != true; D++) + { + unsigned char &State = DepState[D->ID]; + State = DependencyState(D); + + // Invert for Conflicts + if (D->Type == Dep::Conflicts || D->Type == Dep::Obsoletes) + State = ~State; + + RemoveStates(D.ParentPkg()); + BuildGroupOrs(D.ParentVer()); + UpdateVerState(D.ParentPkg()); + AddStates(D.ParentPkg()); + } +} + /*}}}*/ +// DepCache::Update - Update the related deps of a package /*{{{*/ +// --------------------------------------------------------------------- +/* This is called whenever the state of a package changes. It updates + all cached dependencies related to this package. */ +void pkgDepCache::Update(PkgIterator const &Pkg) +{ + // Recompute the dep of the package + RemoveStates(Pkg); + UpdateVerState(Pkg); + AddStates(Pkg); + + // Update the reverse deps + Update(Pkg.RevDependsList()); + + // Update the provides map for the current ver + if (Pkg->CurrentVer != 0) + for (PrvIterator P = Pkg.CurrentVer().ProvidesList(); + P.end() != true; P++) + Update(P.ParentPkg().RevDependsList()); + + // Update the provides map for the candidate ver + if (PkgState[Pkg->ID].CandidateVer != 0) + for (PrvIterator P = PkgState[Pkg->ID].CandidateVerIter(*this).ProvidesList(); + P.end() != true; P++) + Update(P.ParentPkg().RevDependsList()); +} + + /*}}}*/ + +// DepCache::MarkKeep - Put the package in the keep state /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgDepCache::MarkKeep(PkgIterator const &Pkg,bool Soft) +{ + // Simplifies other routines. + if (Pkg.end() == true) + return; + + /* Reject an attempt to keep a non-source broken installed package, those + must be upgraded */ + if (Pkg.State() == PkgIterator::NeedsUnpack && + Pkg.CurrentVer().Downloadable() == false) + return; + + /* We changed the soft state all the time so the UI is a bit nicer + to use */ + StateCache &P = PkgState[Pkg->ID]; + if (Soft == true) + P.iFlags |= AutoKept; + else + P.iFlags &= ~AutoKept; + + // Check that it is not already kept + if (P.Mode == ModeKeep) + return; + + // We dont even try to keep virtual packages.. + if (Pkg->VersionList == 0) + return; + + P.Flags &= ~Flag::Auto; + RemoveSizes(Pkg); + RemoveStates(Pkg); + + P.Mode = ModeKeep; + if (Pkg->CurrentVer == 0) + P.InstallVer = 0; + else + P.InstallVer = Pkg.CurrentVer(); + + AddStates(Pkg); + + Update(Pkg); + + AddSizes(Pkg); +} + /*}}}*/ +// DepCache::MarkDelete - Put the package in the delete state /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgDepCache::MarkDelete(PkgIterator const &Pkg, bool rPurge) +{ + // Simplifies other routines. + if (Pkg.end() == true) + return; + + // Check that it is not already marked for delete + StateCache &P = PkgState[Pkg->ID]; + P.iFlags &= ~(AutoKept | Purge); + if (rPurge == true) + P.iFlags |= Purge; + + if ((P.Mode == ModeDelete || P.InstallVer == 0) && + (Pkg.Purge() == true || rPurge == false)) + return; + + // We dont even try to delete virtual packages.. + if (Pkg->VersionList == 0) + return; + + RemoveSizes(Pkg); + RemoveStates(Pkg); + + if (Pkg->CurrentVer == 0 && (Pkg.Purge() == true || rPurge == false)) + P.Mode = ModeKeep; + else + P.Mode = ModeDelete; + P.InstallVer = 0; + P.Flags &= Flag::Auto; + + AddStates(Pkg); + Update(Pkg); + AddSizes(Pkg); +} + /*}}}*/ +// DepCache::MarkInstall - Put the package in the install state /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, + unsigned long Depth) +{ + if (Depth > 100) + return; + + // Simplifies other routines. + if (Pkg.end() == true) + return; + + /* Check that it is not already marked for install and that it can be + installed */ + StateCache &P = PkgState[Pkg->ID]; + P.iFlags &= ~AutoKept; + if (P.InstBroken() == false && (P.Mode == ModeInstall || + P.CandidateVer == (Version *)Pkg.CurrentVer())) + { + if (P.CandidateVer == (Version *)Pkg.CurrentVer() && P.InstallVer == 0) + MarkKeep(Pkg); + return; + } + + // See if there is even any possible instalation candidate + if (P.CandidateVer == 0) + return; + + // We dont even try to install virtual packages.. + if (Pkg->VersionList == 0) + return; + + /* Target the candidate version and remove the autoflag. We reset the + autoflag below if this was called recursively. Otherwise the user + should have the ability to de-auto a package by changing its state */ + RemoveSizes(Pkg); + RemoveStates(Pkg); + + P.Mode = ModeInstall; + P.InstallVer = P.CandidateVer; + P.Flags &= ~Flag::Auto; + if (P.CandidateVer == (Version *)Pkg.CurrentVer()) + P.Mode = ModeKeep; + + AddStates(Pkg); + Update(Pkg); + AddSizes(Pkg); + + if (AutoInst == false) + return; + + DepIterator Dep = P.InstVerIter(*this).DependsList(); + for (; Dep.end() != true;) + { + // Grok or groups + DepIterator Start = Dep; + bool Result = true; + unsigned Ors = 0; + for (bool LastOR = true; Dep.end() == false && LastOR == true; Dep++,Ors++) + { + LastOR = (Dep->CompareOp & Dep::Or) == Dep::Or; + + if ((DepState[Dep->ID] & DepInstall) == DepInstall) + Result = false; + } + + // Dep is satisfied okay. + if (Result == false) + continue; + + /* Check if this dep should be consider for install. If it is a user + defined important dep and we are installed a new package then + it will be installed. Otherwise we only worry about critical deps */ + if (IsImportantDep(Start) == false) + continue; + if (Pkg->CurrentVer != 0 && Start.IsCritical() == false) + continue; + + /* If we are in an or group locate the first or that can + succeed. We have already cached this.. */ + for (; Ors > 1 && (DepState[Start->ID] & DepCVer) != DepCVer; Ors--) + Start++; + + /* This bit is for processing the possibilty of an install/upgrade + fixing the problem */ + SPtrArray List = Start.AllTargets(); + if ((DepState[Start->ID] & DepCVer) == DepCVer) + { + // Right, find the best version to install.. + Version **Cur = List; + PkgIterator P = Start.TargetPkg(); + PkgIterator InstPkg(*Cache,0); + + // See if there are direct matches (at the start of the list) + for (; *Cur != 0 && (*Cur)->ParentPkg == P.Index(); Cur++) + { + PkgIterator Pkg(*Cache,Cache->PkgP + (*Cur)->ParentPkg); + if (PkgState[Pkg->ID].CandidateVer != *Cur) + continue; + InstPkg = Pkg; + break; + } + + // Select the highest priority providing package + if (InstPkg.end() == true) + { + pkgPrioSortList(*Cache,Cur); + for (; *Cur != 0; Cur++) + { + PkgIterator Pkg(*Cache,Cache->PkgP + (*Cur)->ParentPkg); + if (PkgState[Pkg->ID].CandidateVer != *Cur) + continue; + InstPkg = Pkg; + break; + } + } + + if (InstPkg.end() == false) + { + if(_config->FindB("Debug::pkgDepCache::AutoInstall",false) == true) + std::clog << "Installing " << InstPkg.Name() + << " as dep of " << Pkg.Name() + << std::endl; + MarkInstall(InstPkg,true,Depth + 1); + + // Set the autoflag, after MarkInstall because MarkInstall unsets it + if (P->CurrentVer == 0) + PkgState[InstPkg->ID].Flags |= Flag::Auto; + } + + continue; + } + + /* For conflicts we just de-install the package and mark as auto, + Conflicts may not have or groups */ + if (Start->Type == Dep::Conflicts || Start->Type == Dep::Obsoletes) + { + for (Version **I = List; *I != 0; I++) + { + VerIterator Ver(*this,*I); + PkgIterator Pkg = Ver.ParentPkg(); + + MarkDelete(Pkg); + PkgState[Pkg->ID].Flags |= Flag::Auto; + } + continue; + } + } +} + /*}}}*/ +// DepCache::SetReInstall - Set the reinstallation flag /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgDepCache::SetReInstall(PkgIterator const &Pkg,bool To) +{ + RemoveSizes(Pkg); + RemoveStates(Pkg); + + StateCache &P = PkgState[Pkg->ID]; + if (To == true) + P.iFlags |= ReInstall; + else + P.iFlags &= ~ReInstall; + + AddStates(Pkg); + AddSizes(Pkg); +} + /*}}}*/ +// DepCache::SetCandidateVersion - Change the candidate version /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgDepCache::SetCandidateVersion(VerIterator TargetVer) +{ + pkgCache::PkgIterator Pkg = TargetVer.ParentPkg(); + StateCache &P = PkgState[Pkg->ID]; + + RemoveSizes(Pkg); + RemoveStates(Pkg); + + if (P.CandidateVer == P.InstallVer) + P.InstallVer = (Version *)TargetVer; + P.CandidateVer = (Version *)TargetVer; + P.Update(Pkg,*this); + + AddStates(Pkg); + Update(Pkg); + AddSizes(Pkg); +} + /*}}}*/ +// StateCache::Update - Compute the various static display things /*{{{*/ +// --------------------------------------------------------------------- +/* This is called whenever the Candidate version changes. */ +void pkgDepCache::StateCache::Update(PkgIterator Pkg,pkgCache &Cache) +{ + // Some info + VerIterator Ver = CandidateVerIter(Cache); + + // Use a null string or the version string + if (Ver.end() == true) + CandVersion = ""; + else + CandVersion = Ver.VerStr(); + + // Find the current version + CurVersion = ""; + if (Pkg->CurrentVer != 0) + CurVersion = Pkg.CurrentVer().VerStr(); + + // Strip off the epochs for display + CurVersion = StripEpoch(CurVersion); + CandVersion = StripEpoch(CandVersion); + + // Figure out if its up or down or equal + Status = Ver.CompareVer(Pkg.CurrentVer()); + if (Pkg->CurrentVer == 0 || Pkg->VersionList == 0 || CandidateVer == 0) + Status = 2; +} + /*}}}*/ +// StateCache::StripEpoch - Remove the epoch specifier from the version /*{{{*/ +// --------------------------------------------------------------------- +/* */ +const char *pkgDepCache::StateCache::StripEpoch(const char *Ver) +{ + if (Ver == 0) + return 0; + + // Strip any epoch + for (const char *I = Ver; *I != 0; I++) + if (*I == ':') + return I + 1; + return Ver; +} + /*}}}*/ + +// Policy::GetCandidateVer - Returns the Candidate install version /*{{{*/ +// --------------------------------------------------------------------- +/* The default just returns the highest available version that is not + a source and automatic. */ +pkgCache::VerIterator pkgDepCache::Policy::GetCandidateVer(PkgIterator Pkg) +{ + /* Not source/not automatic versions cannot be a candidate version + unless they are already installed */ + VerIterator Last(*(pkgCache *)this,0); + + for (VerIterator I = Pkg.VersionList(); I.end() == false; I++) + { + if (Pkg.CurrentVer() == I) + return I; + + for (VerFileIterator J = I.FileList(); J.end() == false; J++) + { + if ((J.File()->Flags & Flag::NotSource) != 0) + continue; + + /* Stash the highest version of a not-automatic source, we use it + if there is nothing better */ + if ((J.File()->Flags & Flag::NotAutomatic) != 0) + { + if (Last.end() == true) + Last = I; + continue; + } + + return I; + } + } + + return Last; +} + /*}}}*/ +// Policy::IsImportantDep - True if the dependency is important /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgDepCache::Policy::IsImportantDep(DepIterator Dep) +{ + return Dep.IsCritical(); +} + /*}}}*/ diff --git a/apt-pkg/depcache.h b/apt-pkg/depcache.h new file mode 100644 index 0000000..6d51920 --- /dev/null +++ b/apt-pkg/depcache.h @@ -0,0 +1,211 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: depcache.h,v 1.14 2001/02/20 07:03:17 jgg Exp $ +/* ###################################################################### + + DepCache - Dependency Extension data for the cache + + This class stores the cache data and a set of extension structures for + monitoring the current state of all the packages. It also generates and + caches the 'install' state of many things. This refers to the state of the + package after an install has been run. + + The StateCache::State field can be -1,0,1,2 which is <,=,>,no current. + StateCache::Mode is which of the 3 fields is active. + + This structure is important to support the readonly status of the cache + file. When the data is saved the cache will be refereshed from our + internal rep and written to disk. Then the actual persistant data + files will be put on the disk. + + Each dependency is compared against 3 target versions to produce to + 3 dependency results. + Now - Compared using the Currently install version + Install - Compared using the install version (final state) + CVer - (Candidate Verion) Compared using the Candidate Version + The candidate and now results are used to decide wheather a package + should be automatically installed or if it should be left alone. + + Remember, the Candidate Version is selected based on the distribution + settings for the Package. The Install Version is selected based on the + state (Delete, Keep, Install) field and can be either the Current Version + or the Candidate version. + + The Candidate version is what is shown the 'Install Version' field. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_DEPCACHE_H +#define PKGLIB_DEPCACHE_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/depcache.h" +#endif + +#include +#include + +class pkgDepCache : protected pkgCache::Namespace +{ + public: + + // These flags are used in DepState + enum DepFlags {DepNow = (1 << 0),DepInstall = (1 << 1),DepCVer = (1 << 2), + DepGNow = (1 << 3),DepGInstall = (1 << 4),DepGCVer = (1 << 5)}; + + // These flags are used in StateCache::DepState + enum DepStateFlags {DepNowPolicy = (1 << 0), DepNowMin = (1 << 1), + DepInstPolicy = (1 << 2), DepInstMin = (1 << 3), + DepCandPolicy = (1 << 4), DepCandMin = (1 << 5)}; + + // These flags are used in StateCache::iFlags + enum InternalFlags {AutoKept = (1 << 0), Purge = (1 << 1), ReInstall = (1 << 2)}; + + enum VersionTypes {NowVersion, InstallVersion, CandidateVersion}; + enum ModeList {ModeDelete = 0, ModeKeep = 1, ModeInstall = 2}; + struct StateCache + { + // Epoch stripped text versions of the two version fields + const char *CandVersion; + const char *CurVersion; + + // Pointer to the candidate install version. + Version *CandidateVer; + + // Pointer to the install version. + Version *InstallVer; + + // Copy of Package::Flags + unsigned short Flags; + unsigned short iFlags; // Internal flags + + // Various tree indicators + signed char Status; // -1,0,1,2 + unsigned char Mode; // ModeList + unsigned char DepState; // DepState Flags + + // Update of candidate version + const char *StripEpoch(const char *Ver); + void Update(PkgIterator Pkg,pkgCache &Cache); + + // Various test members for the current status of the package + inline bool NewInstall() const {return Status == 2 && Mode == ModeInstall;}; + inline bool Delete() const {return Mode == ModeDelete;}; + inline bool Keep() const {return Mode == ModeKeep;}; + inline bool Upgrade() const {return Status > 0 && Mode == ModeInstall;}; + inline bool Upgradable() const {return Status >= 1;}; + inline bool Downgrade() const {return Status < 0 && Mode == ModeInstall;}; + inline bool Held() const {return Status != 0 && Keep();}; + inline bool NowBroken() const {return (DepState & DepNowMin) != DepNowMin;}; + inline bool InstBroken() const {return (DepState & DepInstMin) != DepInstMin;}; + inline bool Install() const {return Mode == ModeInstall;}; + inline VerIterator InstVerIter(pkgCache &Cache) + {return VerIterator(Cache,InstallVer);}; + inline VerIterator CandidateVerIter(pkgCache &Cache) + {return VerIterator(Cache,CandidateVer);}; + }; + + // Helper functions + void BuildGroupOrs(VerIterator const &V); + void UpdateVerState(PkgIterator Pkg); + + // User Policy control + class Policy + { + public: + + virtual VerIterator GetCandidateVer(PkgIterator Pkg); + virtual bool IsImportantDep(DepIterator Dep); + + virtual ~Policy() {}; + }; + + protected: + + // State information + pkgCache *Cache; + StateCache *PkgState; + unsigned char *DepState; + + double iUsrSize; + double iDownloadSize; + unsigned long iInstCount; + unsigned long iDelCount; + unsigned long iKeepCount; + unsigned long iBrokenCount; + unsigned long iBadCount; + + Policy *delLocalPolicy; // For memory clean up.. + Policy *LocalPolicy; + + // Check for a matching provides + bool CheckDep(DepIterator Dep,int Type,PkgIterator &Res); + inline bool CheckDep(DepIterator Dep,int Type) + { + PkgIterator Res(*this,0); + return CheckDep(Dep,Type,Res); + } + + // Computes state information for deps and versions (w/o storing) + unsigned char DependencyState(DepIterator &D); + unsigned char VersionState(DepIterator D,unsigned char Check, + unsigned char SetMin, + unsigned char SetPolicy); + + // Recalculates various portions of the cache, call after changing something + void Update(DepIterator Dep); // Mostly internal + void Update(PkgIterator const &P); + + // Count manipulators + void AddSizes(const PkgIterator &Pkg,signed long Mult = 1); + inline void RemoveSizes(const PkgIterator &Pkg) {AddSizes(Pkg,-1);}; + void AddStates(const PkgIterator &Pkg,int Add = 1); + inline void RemoveStates(const PkgIterator &Pkg) {AddStates(Pkg,-1);}; + + public: + + // Legacy.. We look like a pkgCache + inline operator pkgCache &() {return *Cache;}; + inline Header &Head() {return *Cache->HeaderP;}; + inline PkgIterator PkgBegin() {return Cache->PkgBegin();}; + inline PkgIterator FindPkg(string const &Name) {return Cache->FindPkg(Name);}; + + inline pkgCache &GetCache() {return *Cache;}; + inline pkgVersioningSystem &VS() {return *Cache->VS;}; + + // Policy implementation + inline VerIterator GetCandidateVer(PkgIterator Pkg) {return LocalPolicy->GetCandidateVer(Pkg);}; + inline bool IsImportantDep(DepIterator Dep) {return LocalPolicy->IsImportantDep(Dep);}; + inline Policy &GetPolicy() {return *LocalPolicy;}; + + // Accessors + inline StateCache &operator [](PkgIterator const &I) {return PkgState[I->ID];}; + inline unsigned char &operator [](DepIterator const &I) {return DepState[I->ID];}; + + // Manipulators + void MarkKeep(PkgIterator const &Pkg,bool Soft = false); + void MarkDelete(PkgIterator const &Pkg,bool Purge = false); + void MarkInstall(PkgIterator const &Pkg,bool AutoInst = true, + unsigned long Depth = 0); + void SetReInstall(PkgIterator const &Pkg,bool To); + void SetCandidateVersion(VerIterator TargetVer); + + // This is for debuging + void Update(OpProgress *Prog = 0); + + // Size queries + inline double UsrSize() {return iUsrSize;}; + inline double DebSize() {return iDownloadSize;}; + inline unsigned long DelCount() {return iDelCount;}; + inline unsigned long KeepCount() {return iKeepCount;}; + inline unsigned long InstCount() {return iInstCount;}; + inline unsigned long BrokenCount() {return iBrokenCount;}; + inline unsigned long BadCount() {return iBadCount;}; + + bool Init(OpProgress *Prog); + + pkgDepCache(pkgCache *Cache,Policy *Plcy = 0); + virtual ~pkgDepCache(); +}; + +#endif diff --git a/apt-pkg/indexcopy.cc b/apt-pkg/indexcopy.cc new file mode 100644 index 0000000..1f65062 --- /dev/null +++ b/apt-pkg/indexcopy.cc @@ -0,0 +1,672 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: indexcopy.cc,v 1.10 2002/03/26 07:38:58 jgg Exp $ +/* ###################################################################### + + Index Copying - Aid for copying and verifying the index files + + This class helps apt-cache reconstruct a damaged index files. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#include "indexcopy.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + /*}}}*/ + +using namespace std; + +// IndexCopy::CopyPackages - Copy the package files from the CD /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool IndexCopy::CopyPackages(string CDROM,string Name,vector &List, + pkgCdromStatus *log) +{ + OpProgress *Progress = NULL; + if (List.size() == 0) + return true; + + if(log) + Progress = log->GetOpProgress(); + + bool NoStat = _config->FindB("APT::CDROM::Fast",false); + bool Debug = _config->FindB("Debug::aptcdrom",false); + + // Prepare the progress indicator + unsigned long TotalSize = 0; + for (vector::iterator I = List.begin(); I != List.end(); I++) + { + struct stat Buf; + if (stat(string(*I + GetFileName()).c_str(),&Buf) != 0 && + stat(string(*I + GetFileName() + ".gz").c_str(),&Buf) != 0) + return _error->Errno("stat","Stat failed for %s", + string(*I + GetFileName()).c_str()); + TotalSize += Buf.st_size; + } + + unsigned long CurrentSize = 0; + unsigned int NotFound = 0; + unsigned int WrongSize = 0; + unsigned int Packages = 0; + for (vector::iterator I = List.begin(); I != List.end(); I++) + { + string OrigPath = string(*I,CDROM.length()); + unsigned long FileSize = 0; + + // Open the package file + FileFd Pkg; + if (FileExists(*I + GetFileName()) == true) + { + Pkg.Open(*I + GetFileName(),FileFd::ReadOnly); + FileSize = Pkg.Size(); + } + else + { + FileFd From(*I + GetFileName() + ".gz",FileFd::ReadOnly); + if (_error->PendingError() == true) + return false; + FileSize = From.Size(); + + // Get a temp file + FILE *tmp = tmpfile(); + if (tmp == 0) + return _error->Errno("tmpfile","Unable to create a tmp file"); + Pkg.Fd(dup(fileno(tmp))); + fclose(tmp); + + // Fork gzip + pid_t Process = fork(); + if (Process < 0) + return _error->Errno("fork","Couldn't fork gzip"); + + // The child + if (Process == 0) + { + dup2(From.Fd(),STDIN_FILENO); + dup2(Pkg.Fd(),STDOUT_FILENO); + SetCloseExec(STDIN_FILENO,false); + SetCloseExec(STDOUT_FILENO,false); + + const char *Args[3]; + string Tmp = _config->Find("Dir::bin::gzip","gzip"); + Args[0] = Tmp.c_str(); + Args[1] = "-d"; + Args[2] = 0; + execvp(Args[0],(char **)Args); + exit(100); + } + + // Wait for gzip to finish + if (ExecWait(Process,_config->Find("Dir::bin::gzip","gzip").c_str(),false) == false) + return _error->Error("gzip failed, perhaps the disk is full."); + + Pkg.Seek(0); + } + pkgTagFile Parser(&Pkg); + if (_error->PendingError() == true) + return false; + + // Open the output file + char S[400]; + snprintf(S,sizeof(S),"cdrom:[%s]/%s%s",Name.c_str(), + (*I).c_str() + CDROM.length(),GetFileName()); + string TargetF = _config->FindDir("Dir::State::lists") + "partial/"; + TargetF += URItoFileName(S); + if (_config->FindB("APT::CDROM::NoAct",false) == true) + TargetF = "/dev/null"; + FileFd Target(TargetF,FileFd::WriteEmpty); + FILE *TargetFl = fdopen(dup(Target.Fd()),"w"); + if (_error->PendingError() == true) + return false; + if (TargetFl == 0) + return _error->Errno("fdopen","Failed to reopen fd"); + + // Setup the progress meter + if(Progress) + Progress->OverallProgress(CurrentSize,TotalSize,FileSize, + string("Reading ") + Type() + " Indexes"); + + // Parse + if(Progress) + Progress->SubProgress(Pkg.Size()); + pkgTagSection Section; + this->Section = &Section; + string Prefix; + unsigned long Hits = 0; + unsigned long Chop = 0; + while (Parser.Step(Section) == true) + { + if(Progress) + Progress->Progress(Parser.Offset()); + string File; + unsigned long Size; + if (GetFile(File,Size) == false) + { + fclose(TargetFl); + return false; + } + + if (Chop != 0) + File = OrigPath + ChopDirs(File,Chop); + + // See if the file exists + bool Mangled = false; + if (NoStat == false || Hits < 10) + { + // Attempt to fix broken structure + if (Hits == 0) + { + if (ReconstructPrefix(Prefix,OrigPath,CDROM,File) == false && + ReconstructChop(Chop,*I,File) == false) + { + if (Debug == true) + clog << "Missed: " << File << endl; + NotFound++; + continue; + } + if (Chop != 0) + File = OrigPath + ChopDirs(File,Chop); + } + + // Get the size + struct stat Buf; + if (stat(string(CDROM + Prefix + File).c_str(),&Buf) != 0 || + Buf.st_size == 0) + { + // Attempt to fix busted symlink support for one instance + string OrigFile = File; + string::size_type Start = File.find("binary-"); + string::size_type End = File.find("/",Start+3); + if (Start != string::npos && End != string::npos) + { + File.replace(Start,End-Start,"binary-all"); + Mangled = true; + } + + if (Mangled == false || + stat(string(CDROM + Prefix + File).c_str(),&Buf) != 0) + { + if (Debug == true) + clog << "Missed(2): " << OrigFile << endl; + NotFound++; + continue; + } + } + + // Size match + if ((unsigned)Buf.st_size != Size) + { + if (Debug == true) + clog << "Wrong Size: " << File << endl; + WrongSize++; + continue; + } + } + + Packages++; + Hits++; + + if (RewriteEntry(TargetFl,File) == false) + { + fclose(TargetFl); + return false; + } + } + fclose(TargetFl); + + if (Debug == true) + cout << " Processed by using Prefix '" << Prefix << "' and chop " << Chop << endl; + + if (_config->FindB("APT::CDROM::NoAct",false) == false) + { + // Move out of the partial directory + Target.Close(); + string FinalF = _config->FindDir("Dir::State::lists"); + FinalF += URItoFileName(S); + if (rename(TargetF.c_str(),FinalF.c_str()) != 0) + return _error->Errno("rename","Failed to rename"); + } + + /* Mangle the source to be in the proper notation with + prefix dist [component] */ + *I = string(*I,Prefix.length()); + ConvertToSourceList(CDROM,*I); + *I = Prefix + ' ' + *I; + + CurrentSize += FileSize; + } + if(Progress) + Progress->Done(); + + // Some stats + if(log) { + stringstream msg; + if(NotFound == 0 && WrongSize == 0) + ioprintf(msg, _("Wrote %i records.\n"), Packages); + else if (NotFound != 0 && WrongSize == 0) + ioprintf(msg, _("Wrote %i records with %i missing files.\n"), + Packages, NotFound); + else if (NotFound == 0 && WrongSize != 0) + ioprintf(msg, _("Wrote %i records with %i mismatched files\n"), + Packages, WrongSize); + if (NotFound != 0 && WrongSize != 0) + ioprintf(msg, _("Wrote %i records with %i missing files and %i mismatched files\n"), Packages, NotFound, WrongSize); + } + + if (Packages == 0) + _error->Warning("No valid records were found."); + + if (NotFound + WrongSize > 10) + _error->Warning("Alot of entries were discarded, something may be wrong.\n"); + + + return true; +} + /*}}}*/ +// IndexCopy::ChopDirs - Chop off the leading directory components /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string IndexCopy::ChopDirs(string Path,unsigned int Depth) +{ + string::size_type I = 0; + do + { + I = Path.find('/',I+1); + Depth--; + } + while (I != string::npos && Depth != 0); + + if (I == string::npos) + return string(); + + return string(Path,I+1); +} + /*}}}*/ +// IndexCopy::ReconstructPrefix - Fix strange prefixing /*{{{*/ +// --------------------------------------------------------------------- +/* This prepends dir components from the path to the package files to + the path to the deb until it is found */ +bool IndexCopy::ReconstructPrefix(string &Prefix,string OrigPath,string CD, + string File) +{ + bool Debug = _config->FindB("Debug::aptcdrom",false); + unsigned int Depth = 1; + string MyPrefix = Prefix; + while (1) + { + struct stat Buf; + if (stat(string(CD + MyPrefix + File).c_str(),&Buf) != 0) + { + if (Debug == true) + cout << "Failed, " << CD + MyPrefix + File << endl; + if (GrabFirst(OrigPath,MyPrefix,Depth++) == true) + continue; + + return false; + } + else + { + Prefix = MyPrefix; + return true; + } + } + return false; +} + /*}}}*/ +// IndexCopy::ReconstructChop - Fixes bad source paths /*{{{*/ +// --------------------------------------------------------------------- +/* This removes path components from the filename and prepends the location + of the package files until a file is found */ +bool IndexCopy::ReconstructChop(unsigned long &Chop,string Dir,string File) +{ + // Attempt to reconstruct the filename + unsigned long Depth = 0; + while (1) + { + struct stat Buf; + if (stat(string(Dir + File).c_str(),&Buf) != 0) + { + File = ChopDirs(File,1); + Depth++; + if (File.empty() == false) + continue; + return false; + } + else + { + Chop = Depth; + return true; + } + } + return false; +} + /*}}}*/ +// IndexCopy::ConvertToSourceList - Convert a Path to a sourcelist /*{{{*/ +// --------------------------------------------------------------------- +/* We look for things in dists/ notation and convert them to + form otherwise it is left alone. This also strips + the CD path. + + This implements a regex sort of like: + (.*)/dists/([^/]*)/(.*)/binary-* + ^ ^ ^- Component + | |-------- Distribution + |------------------- Path + + It was deciced to use only a single word for dist (rather than say + unstable/non-us) to increase the chance that each CD gets a single + line in sources.list. + */ +void IndexCopy::ConvertToSourceList(string CD,string &Path) +{ + char S[300]; + snprintf(S,sizeof(S),"binary-%s",_config->Find("Apt::Architecture").c_str()); + + // Strip the cdrom base path + Path = string(Path,CD.length()); + if (Path.empty() == true) + Path = "/"; + + // Too short to be a dists/ type + if (Path.length() < strlen("dists/")) + return; + + // Not a dists type. + if (stringcmp(Path.c_str(),Path.c_str()+strlen("dists/"),"dists/") != 0) + return; + + // Isolate the dist + string::size_type Slash = strlen("dists/"); + string::size_type Slash2 = Path.find('/',Slash + 1); + if (Slash2 == string::npos || Slash2 + 2 >= Path.length()) + return; + string Dist = string(Path,Slash,Slash2 - Slash); + + // Isolate the component + Slash = Slash2; + for (unsigned I = 0; I != 10; I++) + { + Slash = Path.find('/',Slash+1); + if (Slash == string::npos || Slash + 2 >= Path.length()) + return; + string Comp = string(Path,Slash2+1,Slash - Slash2-1); + + // Verify the trailing binary- bit + string::size_type BinSlash = Path.find('/',Slash + 1); + if (Slash == string::npos) + return; + string Binary = string(Path,Slash+1,BinSlash - Slash-1); + + if (Binary != S && Binary != "source") + continue; + + Path = Dist + ' ' + Comp; + return; + } +} + /*}}}*/ +// IndexCopy::GrabFirst - Return the first Depth path components /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool IndexCopy::GrabFirst(string Path,string &To,unsigned int Depth) +{ + string::size_type I = 0; + do + { + I = Path.find('/',I+1); + Depth--; + } + while (I != string::npos && Depth != 0); + + if (I == string::npos) + return false; + + To = string(Path,0,I+1); + return true; +} + /*}}}*/ +// PackageCopy::GetFile - Get the file information from the section /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool PackageCopy::GetFile(string &File,unsigned long &Size) +{ + File = Section->FindS("Filename"); + Size = Section->FindI("Size"); + if (File.empty() || Size == 0) + return _error->Error("Cannot find filename or size tag"); + return true; +} + /*}}}*/ +// PackageCopy::RewriteEntry - Rewrite the entry with a new filename /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool PackageCopy::RewriteEntry(FILE *Target,string File) +{ + TFRewriteData Changes[] = {{"Filename",File.c_str()}, + {}}; + + if (TFRewrite(Target,*Section,TFRewritePackageOrder,Changes) == false) + return false; + fputc('\n',Target); + return true; +} + /*}}}*/ +// SourceCopy::GetFile - Get the file information from the section /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool SourceCopy::GetFile(string &File,unsigned long &Size) +{ + string Files = Section->FindS("Files"); + if (Files.empty() == true) + return false; + + // Stash the / terminated directory prefix + string Base = Section->FindS("Directory"); + if (Base.empty() == false && Base[Base.length()-1] != '/') + Base += '/'; + + // Read the first file triplet + const char *C = Files.c_str(); + string sSize; + string MD5Hash; + + // Parse each of the elements + if (ParseQuoteWord(C,MD5Hash) == false || + ParseQuoteWord(C,sSize) == false || + ParseQuoteWord(C,File) == false) + return _error->Error("Error parsing file record"); + + // Parse the size and append the directory + Size = atoi(sSize.c_str()); + File = Base + File; + return true; +} + /*}}}*/ +// SourceCopy::RewriteEntry - Rewrite the entry with a new filename /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool SourceCopy::RewriteEntry(FILE *Target,string File) +{ + string Dir(File,0,File.rfind('/')); + TFRewriteData Changes[] = {{"Directory",Dir.c_str()}, + {}}; + + if (TFRewrite(Target,*Section,TFRewriteSourceOrder,Changes) == false) + return false; + fputc('\n',Target); + return true; +} + + + /*}}}*/ + +bool SigVerify::Verify(string prefix, string file, indexRecords *MetaIndex) +{ + const indexRecords::checkSum *Record = MetaIndex->Lookup(file); + + if (!Record) + { + _error->Warning("Can't find authentication record for: %s",file.c_str()); + return false; + } + + MD5Summation sum; + FileFd Fd(prefix+file, FileFd::ReadOnly); + sum.AddFD(Fd.Fd(), Fd.Size()); + Fd.Close(); + string MD5 = (string)sum.Result(); + + if (Record->MD5Hash != MD5) + { + _error->Warning("MD5 mismatch for: %s",file.c_str()); + return false; + } + + if(_config->FindB("Debug::aptcdrom",false)) + { + cout << "File: " << prefix+file << endl; + cout << "Expected MD5sum: " << Record->MD5Hash << endl; + cout << "got: " << MD5 << endl << endl; + } + + return true; +} + +bool SigVerify::CopyMetaIndex(string CDROM, string CDName, + string prefix, string file) +{ + char S[400]; + snprintf(S,sizeof(S),"cdrom:[%s]/%s%s",CDName.c_str(), + (prefix).c_str() + CDROM.length(),file.c_str()); + string TargetF = _config->FindDir("Dir::State::lists"); + TargetF += URItoFileName(S); + + FileFd Target; + FileFd Rel; + Target.Open(TargetF,FileFd::WriteEmpty); + Rel.Open(prefix + file,FileFd::ReadOnly); + if (_error->PendingError() == true) + return false; + if (CopyFile(Rel,Target) == false) + return false; + + return true; +} + +bool SigVerify::CopyAndVerify(string CDROM,string Name,vector &SigList, + vector PkgList,vector SrcList) +{ + if (SigList.size() == 0) + return true; + + bool Debug = _config->FindB("Debug::aptcdrom",false); + + // Read all Release files + for (vector::iterator I = SigList.begin(); I != SigList.end(); I++) + { + if(Debug) + cout << "Signature verify for: " << *I << endl; + + indexRecords *MetaIndex = new indexRecords; + string prefix = *I; + + // a Release.gpg without a Release should never happen + if(!FileExists(*I+"Release")) + continue; + + + // verify the gpg signature of "Release" + // gpg --verify "*I+Release.gpg", "*I+Release" + const char *Args[400]; + unsigned int i = 0; + + string gpgvpath = _config->Find("Dir::Bin::gpg", "/usr/bin/gpgv"); + string pubringpath = _config->Find("Apt::GPGV::TrustedKeyring", "/etc/apt/trusted.gpg"); + string releasegpg = *I+"Release.gpg"; + string release = *I+"Release"; + + Args[i++] = gpgvpath.c_str(); + Args[i++] = "--keyring"; + Args[i++] = pubringpath.c_str(); + Configuration::Item const *Opts; + Opts = _config->Tree("Acquire::gpgv::Options"); + if (Opts != 0) + { + Opts = Opts->Child; + for (; Opts != 0; Opts = Opts->Next) + { + if (Opts->Value.empty() == true) + continue; + Args[i++] = Opts->Value.c_str(); + if(i >= 390) { + _error->Error("Argument list from Acquire::gpgv::Options too long. Exiting."); + return false; + } + } + } + + Args[i++] = releasegpg.c_str(); + Args[i++] = release.c_str(); + Args[i++] = NULL; + + pid_t pid = ExecFork(); + if(pid < 0) { + _error->Error("Fork failed"); + return false; + } + if(pid == 0) { + execvp(gpgvpath.c_str(), (char**)Args); + } + if(!ExecWait(pid, "gpgv")) { + _error->Warning("Signature verification failed for: %s", + string(*I+"Release.gpg").c_str()); + // something went wrong, don't copy the Release.gpg + // FIXME: delete any existing gpg file? + continue; + } + + // Open the Release file and add it to the MetaIndex + if(!MetaIndex->Load(*I+"Release")) + { + _error->Error(MetaIndex->ErrorText.c_str()); + return false; + } + + // go over the Indexfiles and see if they verify + // if so, remove them from our copy of the lists + vector keys = MetaIndex->MetaKeys(); + for (vector::iterator I = keys.begin(); I != keys.end(); I++) + { + if(!Verify(prefix,*I, MetaIndex)) { + // something went wrong, don't copy the Release.gpg + // FIXME: delete any existing gpg file? + continue; + } + } + + // we need a fresh one for the Release.gpg + delete MetaIndex; + + // everything was fine, copy the Release and Release.gpg file + CopyMetaIndex(CDROM, Name, prefix, "Release"); + CopyMetaIndex(CDROM, Name, prefix, "Release.gpg"); + } + + return true; +} diff --git a/apt-pkg/indexcopy.h b/apt-pkg/indexcopy.h new file mode 100644 index 0000000..4dcb2b4 --- /dev/null +++ b/apt-pkg/indexcopy.h @@ -0,0 +1,84 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: indexcopy.h,v 1.3 2001/05/27 04:46:54 jgg Exp $ +/* ###################################################################### + + Index Copying - Aid for copying and verifying the index files + + ##################################################################### */ + /*}}}*/ +#ifndef INDEXCOPY_H +#define INDEXCOPY_H + +#include +#include +#include + +using std::string; +using std::vector; + +class pkgTagSection; +class FileFd; +class indexRecords; +class pkgCdromStatus; + +class IndexCopy +{ + protected: + + pkgTagSection *Section; + + string ChopDirs(string Path,unsigned int Depth); + bool ReconstructPrefix(string &Prefix,string OrigPath,string CD, + string File); + bool ReconstructChop(unsigned long &Chop,string Dir,string File); + void ConvertToSourceList(string CD,string &Path); + bool GrabFirst(string Path,string &To,unsigned int Depth); + virtual bool GetFile(string &Filename,unsigned long &Size) = 0; + virtual bool RewriteEntry(FILE *Target,string File) = 0; + virtual const char *GetFileName() = 0; + virtual const char *Type() = 0; + + public: + + bool CopyPackages(string CDROM,string Name,vector &List, + pkgCdromStatus *log); + virtual ~IndexCopy() {}; +}; + +class PackageCopy : public IndexCopy +{ + protected: + + virtual bool GetFile(string &Filename,unsigned long &Size); + virtual bool RewriteEntry(FILE *Target,string File); + virtual const char *GetFileName() {return "Packages";}; + virtual const char *Type() {return "Package";}; + + public: +}; + +class SourceCopy : public IndexCopy +{ + protected: + + virtual bool GetFile(string &Filename,unsigned long &Size); + virtual bool RewriteEntry(FILE *Target,string File); + virtual const char *GetFileName() {return "Sources";}; + virtual const char *Type() {return "Source";}; + + public: +}; + +class SigVerify +{ + bool Verify(string prefix,string file, indexRecords *records); + bool CopyMetaIndex(string CDROM, string CDName, + string prefix, string file); + + public: + bool CopyAndVerify(string CDROM,string Name,vector &SigList, + vector PkgList,vector SrcList); +}; + +#endif diff --git a/apt-pkg/indexfile.cc b/apt-pkg/indexfile.cc new file mode 100644 index 0000000..4966516 --- /dev/null +++ b/apt-pkg/indexfile.cc @@ -0,0 +1,69 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: indexfile.cc,v 1.2.2.1 2003/12/24 23:09:17 mdz Exp $ +/* ###################################################################### + + Index File - Abstraction for an index of archive/souce file. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/indexfile.h" +#endif + +#include +#include + /*}}}*/ + +// Global list of Item supported +static pkgIndexFile::Type *ItmList[10]; +pkgIndexFile::Type **pkgIndexFile::Type::GlobalList = ItmList; +unsigned long pkgIndexFile::Type::GlobalListLen = 0; + +// Type::Type - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgIndexFile::Type::Type() +{ + ItmList[GlobalListLen] = this; + GlobalListLen++; +} + /*}}}*/ +// Type::GetType - Locate the type by name /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgIndexFile::Type *pkgIndexFile::Type::GetType(const char *Type) +{ + for (unsigned I = 0; I != GlobalListLen; I++) + if (strcmp(GlobalList[I]->Label,Type) == 0) + return GlobalList[I]; + return 0; +} + /*}}}*/ + +// IndexFile::ArchiveInfo - Stub /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string pkgIndexFile::ArchiveInfo(pkgCache::VerIterator Ver) const +{ + return string(); +} + /*}}}*/ +// IndexFile::FindInCache - Stub /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgCache::PkgFileIterator pkgIndexFile::FindInCache(pkgCache &Cache) const +{ + return pkgCache::PkgFileIterator(Cache); +} + /*}}}*/ +// IndexFile::SourceIndex - Stub /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string pkgIndexFile::SourceInfo(pkgSrcRecords::Parser const &Record, + pkgSrcRecords::File const &File) const +{ + return string(); +} + /*}}}*/ diff --git a/apt-pkg/indexfile.h b/apt-pkg/indexfile.h new file mode 100644 index 0000000..61049f4 --- /dev/null +++ b/apt-pkg/indexfile.h @@ -0,0 +1,89 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: indexfile.h,v 1.6.2.1 2003/12/24 23:09:17 mdz Exp $ +/* ###################################################################### + + Index File - Abstraction for an index of archive/source file. + + There are 3 primary sorts of index files, all represented by this + class: + + Binary index files + Bianry index files decribing the local system + Source index files + + They are all bundled together here, and the interfaces for + sources.list, acquire, cache gen and record parsing all use this class + to acess the underlying representation. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_INDEXFILE_H +#define PKGLIB_INDEXFILE_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/indexfile.h" +#endif + +#include +#include +#include +#include + +using std::string; + +class pkgAcquire; +class pkgCacheGenerator; +class OpProgress; +class pkgIndexFile +{ + protected: + bool Trusted; + + public: + + class Type + { + public: + + // Global list of Items supported + static Type **GlobalList; + static unsigned long GlobalListLen; + static Type *GetType(const char *Type); + + const char *Label; + + virtual pkgRecords::Parser *CreatePkgParser(pkgCache::PkgFileIterator /*File*/) const {return 0;}; + Type(); + virtual ~Type() {}; + }; + + virtual const Type *GetType() const = 0; + + // Return descriptive strings of various sorts + virtual string ArchiveInfo(pkgCache::VerIterator Ver) const; + virtual string SourceInfo(pkgSrcRecords::Parser const &Record, + pkgSrcRecords::File const &File) const; + virtual string Describe(bool Short = false) const = 0; + + // Interface for acquire + virtual string ArchiveURI(string /*File*/) const {return string();}; + + // Interface for the record parsers + virtual pkgSrcRecords::Parser *CreateSrcParser() const {return 0;}; + + // Interface for the Cache Generator + virtual bool Exists() const = 0; + virtual bool HasPackages() const = 0; + virtual unsigned long Size() const = 0; + virtual bool Merge(pkgCacheGenerator &/*Gen*/,OpProgress &/*Prog*/) const {return false;}; + virtual bool MergeFileProvides(pkgCacheGenerator &/*Gen*/,OpProgress &/*Prog*/) const {return true;}; + virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const; + + bool IsTrusted() const { return Trusted; }; + + pkgIndexFile(bool Trusted): Trusted(Trusted) {}; + virtual ~pkgIndexFile() {}; +}; + +#endif diff --git a/apt-pkg/indexrecords.cc b/apt-pkg/indexrecords.cc new file mode 100644 index 0000000..06ed792 --- /dev/null +++ b/apt-pkg/indexrecords.cc @@ -0,0 +1,162 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: indexrecords.cc,v 1.1.2.4 2003/12/30 02:11:43 mdz Exp $ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/indexrecords.h" +#endif +#include +#include +#include +#include +#include +#include + +string indexRecords::GetDist() const +{ + return this->Dist; +} + +bool indexRecords::CheckDist(const string MaybeDist) const +{ + return (this->Dist == MaybeDist + || this->Suite == MaybeDist); +} + +string indexRecords::GetExpectedDist() const +{ + return this->ExpectedDist; +} + +const indexRecords::checkSum *indexRecords::Lookup(const string MetaKey) +{ + return Entries[MetaKey]; +} + +bool indexRecords::Load(const string Filename) +{ + FileFd Fd(Filename, FileFd::ReadOnly); + pkgTagFile TagFile(&Fd, Fd.Size() + 256); // XXX + if (_error->PendingError() == true) + { + ErrorText = _(("Unable to parse Release file " + Filename).c_str()); + return false; + } + + pkgTagSection Section; + if (TagFile.Step(Section) == false) + { + ErrorText = _(("No sections in Release file " + Filename).c_str()); + return false; + } + + const char *Start, *End; + Section.Get (Start, End, 0); + Suite = Section.FindS("Suite"); + Dist = Section.FindS("Codename"); +// if (Dist.empty()) +// { +// ErrorText = _(("No Codename entry in Release file " + Filename).c_str()); +// return false; +// } + if (!Section.Find("MD5Sum", Start, End)) + { + ErrorText = _(("No MD5Sum entry in Release file " + Filename).c_str()); + return false; + } + string Name; + string MD5Hash; + size_t Size; + while (Start < End) + { + if (!parseSumData(Start, End, Name, MD5Hash, Size)) + return false; + indexRecords::checkSum *Sum = new indexRecords::checkSum; + Sum->MetaKeyFilename = Name; + Sum->MD5Hash = MD5Hash; + Sum->Size = Size; + Entries[Name] = Sum; + } + + string Strdate = Section.FindS("Date"); // FIXME: verify this somehow? + return true; +} + +vector indexRecords::MetaKeys() +{ + std::vector keys; + std::map::iterator I = Entries.begin(); + while(I != Entries.end()) { + keys.push_back((*I).first); + ++I; + } + return keys; +} + +bool indexRecords::parseSumData(const char *&Start, const char *End, + string &Name, string &Hash, size_t &Size) +{ + Name = ""; + Hash = ""; + Size = 0; + /* Skip over the first blank */ + while ((*Start == '\t' || *Start == ' ' || *Start == '\n') + && Start < End) + Start++; + if (Start >= End) + return false; + + /* Move EntryEnd to the end of the first entry (the hash) */ + const char *EntryEnd = Start; + while ((*EntryEnd != '\t' && *EntryEnd != ' ') + && EntryEnd < End) + EntryEnd++; + if (EntryEnd == End) + return false; + + Hash.append(Start, EntryEnd-Start); + + /* Skip over intermediate blanks */ + Start = EntryEnd; + while (*Start == '\t' || *Start == ' ') + Start++; + if (Start >= End) + return false; + + EntryEnd = Start; + /* Find the end of the second entry (the size) */ + while ((*EntryEnd != '\t' && *EntryEnd != ' ' ) + && EntryEnd < End) + EntryEnd++; + if (EntryEnd == End) + return false; + + Size = strtol (Start, NULL, 10); + + /* Skip over intermediate blanks */ + Start = EntryEnd; + while (*Start == '\t' || *Start == ' ') + Start++; + if (Start >= End) + return false; + + EntryEnd = Start; + /* Find the end of the third entry (the filename) */ + while ((*EntryEnd != '\t' && *EntryEnd != ' ' && *EntryEnd != '\n') + && EntryEnd < End) + EntryEnd++; + + Name.append(Start, EntryEnd-Start); + Start = EntryEnd; //prepare for the next round + return true; +} + +indexRecords::indexRecords() +{ +} + +indexRecords::indexRecords(const string ExpectedDist) : + ExpectedDist(ExpectedDist) +{ +} diff --git a/apt-pkg/indexrecords.h b/apt-pkg/indexrecords.h new file mode 100644 index 0000000..414face --- /dev/null +++ b/apt-pkg/indexrecords.h @@ -0,0 +1,54 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: indexrecords.h,v 1.1.2.1 2003/12/24 23:09:17 mdz Exp $ + /*}}}*/ +#ifndef PKGLIB_INDEXRECORDS_H +#define PKGLIB_INDEXRECORDS_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/indexrecords.h" +#endif +#include +#include + +#include +#include + +class indexRecords +{ + bool parseSumData(const char *&Start, const char *End, string &Name, + string &Hash, size_t &Size); + public: + struct checkSum; + string ErrorText; + + protected: + string Dist; + string Suite; + string ExpectedDist; + std::map Entries; + + public: + + indexRecords(); + indexRecords(const string ExpectedDist); + + // Lookup function + virtual const checkSum *Lookup(const string MetaKey); + std::vector MetaKeys(); + + virtual bool Load(string Filename); + string GetDist() const; + virtual bool CheckDist(const string MaybeDist) const; + string GetExpectedDist() const; + virtual ~indexRecords(){}; +}; + +struct indexRecords::checkSum +{ + string MetaKeyFilename; + string MD5Hash; + size_t Size; +}; + +#endif diff --git a/apt-pkg/init.cc b/apt-pkg/init.cc new file mode 100644 index 0000000..dc7b9b6 --- /dev/null +++ b/apt-pkg/init.cc @@ -0,0 +1,133 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: init.cc,v 1.20 2003/02/09 20:31:05 doogie Exp $ +/* ###################################################################### + + Init - Initialize the package library + + ##################################################################### */ + /*}}}*/ +// Include files /*{{{*/ +#include +#include +#include + +#include +#include +#include + /*}}}*/ + +#define Stringfy_(x) # x +#define Stringfy(x) Stringfy_(x) +const char *pkgVersion = VERSION; +const char *pkgLibVersion = Stringfy(APT_PKG_MAJOR) "." + Stringfy(APT_PKG_MINOR) "." + Stringfy(APT_PKG_RELEASE); +const char *pkgCPU = COMMON_CPU; +const char *pkgOS = COMMON_OS; + +// pkgInitConfig - Initialize the configuration class /*{{{*/ +// --------------------------------------------------------------------- +/* Directories are specified in such a way that the FindDir function will + understand them. That is, if they don't start with a / then their parent + is prepended, this allows a fair degree of flexability. */ +bool pkgInitConfig(Configuration &Cnf) +{ + // General APT things + if (strcmp(COMMON_OS,"linux") == 0 || + strcmp(COMMON_OS,"unknown") == 0) + Cnf.Set("APT::Architecture",COMMON_CPU); + else + Cnf.Set("APT::Architecture",COMMON_OS "-" COMMON_CPU); + Cnf.Set("APT::Build-Essential::", "build-essential"); + Cnf.Set("Dir","/"); + + // State + Cnf.Set("Dir::State","var/lib/apt/"); + + /* Just in case something goes horribly wrong, we can fall back to the + old /var/state paths.. */ + struct stat St; + if (stat("/var/lib/apt/.",&St) != 0 && + stat("/var/state/apt/.",&St) == 0) + Cnf.Set("Dir::State","var/state/apt/"); + + Cnf.Set("Dir::State::lists","lists/"); + Cnf.Set("Dir::State::cdroms","cdroms.list"); + + // Cache + Cnf.Set("Dir::Cache","var/cache/apt/"); + Cnf.Set("Dir::Cache::archives","archives/"); + Cnf.Set("Dir::Cache::srcpkgcache","srcpkgcache.bin"); + Cnf.Set("Dir::Cache::pkgcache","pkgcache.bin"); + + // Configuration + Cnf.Set("Dir::Etc","etc/apt/"); + Cnf.Set("Dir::Etc::sourcelist","sources.list"); + Cnf.Set("Dir::Etc::sourceparts","sources.list.d"); + Cnf.Set("Dir::Etc::vendorlist","vendors.list"); + Cnf.Set("Dir::Etc::vendorparts","vendors.list.d"); + Cnf.Set("Dir::Etc::main","apt.conf"); + Cnf.Set("Dir::Etc::parts","apt.conf.d"); + Cnf.Set("Dir::Etc::preferences","preferences"); + Cnf.Set("Dir::Bin::methods","/usr/lib/apt/methods"); + + bool Res = true; + + // Read an alternate config file + const char *Cfg = getenv("APT_CONFIG"); + if (Cfg != 0 && FileExists(Cfg) == true) + Res &= ReadConfigFile(Cnf,Cfg); + + // Read the configuration parts dir + string Parts = Cnf.FindDir("Dir::Etc::parts"); + if (FileExists(Parts) == true) + Res &= ReadConfigDir(Cnf,Parts); + + // Read the main config file + string FName = Cnf.FindFile("Dir::Etc::main"); + if (FileExists(FName) == true) + Res &= ReadConfigFile(Cnf,FName); + + if (Res == false) + return false; + + if (Cnf.FindB("Debug::pkgInitConfig",false) == true) + Cnf.Dump(); + + return true; +} + /*}}}*/ +// pkgInitSystem - Initialize the _system calss /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgInitSystem(Configuration &Cnf,pkgSystem *&Sys) +{ + Sys = 0; + string Label = Cnf.Find("Apt::System",""); + if (Label.empty() == false) + { + Sys = pkgSystem::GetSystem(Label.c_str()); + if (Sys == 0) + return _error->Error(_("Packaging system '%s' is not supported"),Label.c_str()); + } + else + { + signed MaxScore = 0; + for (unsigned I = 0; I != pkgSystem::GlobalListLen; I++) + { + signed Score = pkgSystem::GlobalList[I]->Score(Cnf); + if (Score > MaxScore) + { + MaxScore = Score; + Sys = pkgSystem::GlobalList[I]; + } + } + + if (Sys == 0) + return _error->Error(_("Unable to determine a suitable packaging system type")); + } + + return Sys->Initialize(Cnf); +} + /*}}}*/ diff --git a/apt-pkg/init.h b/apt-pkg/init.h new file mode 100644 index 0000000..8255b40 --- /dev/null +++ b/apt-pkg/init.h @@ -0,0 +1,43 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: init.h,v 1.9.2.2 2004/01/02 18:51:00 mdz Exp $ +/* ###################################################################### + + Init - Initialize the package library + + This function must be called to configure the config class before + calling many APT library functions. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_INIT_H +#define PKGLIB_INIT_H + +#include +#include + +// See the makefile +#define APT_PKG_MAJOR 3 +#define APT_PKG_MINOR 11 +#define APT_PKG_RELEASE 0 + +extern const char *pkgVersion; +extern const char *pkgLibVersion; +extern const char *pkgOS; +extern const char *pkgCPU; + +bool pkgInitConfig(Configuration &Cnf); +bool pkgInitSystem(Configuration &Cnf,pkgSystem *&Sys); + +#ifdef APT_COMPATIBILITY +#if APT_COMPATIBILITY != 986 +#warning "Using APT_COMPATIBILITY" +#endif + +inline bool pkgInitialize(Configuration &Cnf) +{ + return pkgInitConfig(Cnf) && pkgInitSystem(Cnf,_system); +}; +#endif + +#endif diff --git a/apt-pkg/makefile b/apt-pkg/makefile new file mode 100644 index 0000000..1ad7244 --- /dev/null +++ b/apt-pkg/makefile @@ -0,0 +1,60 @@ +# -*- make -*- +BASE=.. +SUBDIR=apt-pkg + +# Header location +SUBDIRS = deb contrib +HEADER_TARGETDIRS = apt-pkg + +# Bring in the default rules +include ../buildlib/defaults.mak + +# The library name, don't forget to update init.h and the copy in +# methods/makefile - FIXME +LIBRARY=apt-pkg +LIBEXT= +#$(GLIBC_VER)$(LIBSTDCPP_VER) +MAJOR=3.11 +MINOR=0 +SLIBS=$(PTHREADLIB) $(INTLLIBS) +APT_DOMAIN:=libapt-pkg$(MAJOR) + +# Source code for the contributed non-core things +SOURCE = contrib/mmap.cc contrib/error.cc contrib/strutl.cc \ + contrib/configuration.cc contrib/progress.cc contrib/cmndline.cc \ + contrib/md5.cc contrib/sha1.cc contrib/sha256.cc contrib/hashes.cc \ + contrib/cdromutl.cc contrib/crc-16.cc \ + contrib/fileutl.cc +HEADERS = mmap.h error.h configuration.h fileutl.h cmndline.h \ + md5.h crc-16.h cdromutl.h strutl.h sptr.h sha1.h sha256.h hashes.h + +# Source code for the core main library +SOURCE+= pkgcache.cc version.cc depcache.cc \ + orderlist.cc tagfile.cc sourcelist.cc packagemanager.cc \ + pkgrecords.cc algorithms.cc acquire.cc\ + acquire-worker.cc acquire-method.cc init.cc clean.cc \ + srcrecords.cc cachefile.cc versionmatch.cc policy.cc \ + pkgsystem.cc indexfile.cc pkgcachegen.cc acquire-item.cc \ + indexrecords.cc vendor.cc vendorlist.cc cdrom.cc indexcopy.cc +HEADERS+= algorithms.h depcache.h pkgcachegen.h cacheiterators.h \ + orderlist.h sourcelist.h packagemanager.h tagfile.h \ + init.h pkgcache.h version.h progress.h pkgrecords.h \ + acquire.h acquire-worker.h acquire-item.h acquire-method.h \ + clean.h srcrecords.h cachefile.h versionmatch.h policy.h \ + pkgsystem.h indexfile.h metaindex.h indexrecords.h vendor.h \ + vendorlist.h cdrom.h indexcopy.h + +# Source code for the debian specific components +# In theory the deb headers do not need to be exported.. +SOURCE+= deb/deblistparser.cc deb/debrecords.cc deb/dpkgpm.cc \ + deb/debsrcrecords.cc deb/debversion.cc deb/debsystem.cc \ + deb/debindexfile.cc deb/debindexfile.cc deb/debmetaindex.cc +HEADERS+= debversion.h debsrcrecords.h dpkgpm.h debrecords.h \ + deblistparser.h debsystem.h debindexfile.h debmetaindex.h + +HEADERS := $(addprefix apt-pkg/,$(HEADERS)) + +# Private header files +HEADERS+= system.h + +include $(LIBRARY_H) diff --git a/apt-pkg/metaindex.h b/apt-pkg/metaindex.h new file mode 100644 index 0000000..8ebf235 --- /dev/null +++ b/apt-pkg/metaindex.h @@ -0,0 +1,48 @@ +#ifndef PKGLIB_METAINDEX_H +#define PKGLIB_METAINDEX_H + +/* #ifdef __GNUG__ */ +/* #pragma interface "apt-pkg/metaindex.h" */ +/* #endif */ + +#include +#include +#include +#include +#include +#include + +using std::string; + +class pkgAcquire; +class pkgCacheGenerator; +class OpProgress; + +class metaIndex +{ + protected: + vector *Indexes; + const char *Type; + string URI; + string Dist; + bool Trusted; + + public: + + + // Various accessors + virtual string GetURI() const {return URI;} + virtual string GetDist() const {return Dist;} + virtual const char* GetType() const {return Type;} + + // Interface for acquire + virtual string ArchiveURI(string /*File*/) const = 0; + virtual bool GetIndexes(pkgAcquire *Owner, bool GetAll=false) const = 0; + + virtual vector *GetIndexFiles() = 0; + virtual bool IsTrusted() const = 0; + + virtual ~metaIndex() {}; +}; + +#endif diff --git a/apt-pkg/orderlist.cc b/apt-pkg/orderlist.cc new file mode 100644 index 0000000..8d3a979 --- /dev/null +++ b/apt-pkg/orderlist.cc @@ -0,0 +1,991 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: orderlist.cc,v 1.14 2001/05/07 05:49:43 jgg Exp $ +/* ###################################################################### + + Order List - Represents and Manipulates an ordered list of packages. + + A list of packages can be ordered by a number of conflicting criteria + each given a specific priority. Each package also has a set of flags + indicating some useful things about it that are derived in the + course of sorting. The pkgPackageManager class uses this class for + all of it's installation ordering needs. + + This is a modified version of Manoj's Routine B. It consists of four + independent ordering algorithms that can be applied at for different + points in the ordering. By appling progressivly fewer ordering + operations it is possible to give each consideration it's own + priority and create an order that satisfies the lowest applicable + consideration. + + The rules for unpacking ordering are: + 1) Unpacking ignores Depends: on all packages + 2) Unpacking requires Conflicts: on -ALL- packages to be satisfied + 3) Unpacking requires PreDepends: on this package only to be satisfied + 4) Removing requires that no packages depend on the package to be + removed. + + And the rule for configuration ordering is: + 1) Configuring requires that the Depends: of the package be satisfied + Conflicts+PreDepends are ignored because unpacking says they are + already correct [exageration, it does check but we need not be + concerned] + + And some features that are valuable for unpacking ordering. + f1) Unpacking a new package should advoid breaking dependencies of + configured packages + f2) Removal should not require a force, corrolory of f1 + f3) Unpacking should order by depends rather than fall back to random + ordering. + + Each of the features can be enabled in the sorting routine at an + arbitary priority to give quite abit of control over the final unpacking + order. + + The rules listed above may never be violated and are called Critical. + When a critical rule is violated then a loop condition is recorded + and will have to be delt with in the caller. + + The ordering keeps two lists, the main list and the 'After List'. The + purpose of the after list is to allow packages to be delayed. This is done + by setting the after flag on the package. Any package which requires this + package to be ordered before will inherit the after flag and so on. This + is used for CD swap ordering where all packages on a second CD have the + after flag set. This forces them and all their dependents to be ordered + toward the end. + + There are complications in this algorithm when presented with cycles. + For all known practical cases it works, all cases where it doesn't work + is fixable by tweaking the package descriptions. However, it should be + possible to impove this further to make some better choices when + presented with cycles. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/orderlist.h" +#endif +#include +#include +#include +#include +#include +#include + +#include + /*}}}*/ + +using namespace std; + +pkgOrderList *pkgOrderList::Me = 0; + +// OrderList::pkgOrderList - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgOrderList::pkgOrderList(pkgDepCache *pCache) : Cache(*pCache) +{ + FileList = 0; + Primary = 0; + Secondary = 0; + RevDepends = 0; + Remove = 0; + LoopCount = -1; + Debug = _config->FindB("Debug::pkgOrderList",false); + + /* Construct the arrays, egcs 1.0.1 bug requires the package count + hack */ + unsigned long Size = Cache.Head().PackageCount; + Flags = new unsigned short[Size]; + End = List = new Package *[Size]; + memset(Flags,0,sizeof(*Flags)*Size); +} + /*}}}*/ +// OrderList::~pkgOrderList - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgOrderList::~pkgOrderList() +{ + delete [] List; + delete [] Flags; +} + /*}}}*/ +// OrderList::IsMissing - Check if a file is missing /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgOrderList::IsMissing(PkgIterator Pkg) +{ + // Skip packages to erase + if (Cache[Pkg].Delete() == true) + return false; + + // Skip Packages that need configure only. + if (Pkg.State() == pkgCache::PkgIterator::NeedsConfigure && + Cache[Pkg].Keep() == true) + return false; + + if (FileList == 0) + return false; + + if (FileList[Pkg->ID].empty() == false) + return false; + return true; +} + /*}}}*/ + +// OrderList::DoRun - Does an order run /*{{{*/ +// --------------------------------------------------------------------- +/* The caller is expeted to have setup the desired probe state */ +bool pkgOrderList::DoRun() +{ + // Temp list + unsigned long Size = Cache.Head().PackageCount; + SPtrArray NList = new Package *[Size]; + SPtrArray AfterList = new Package *[Size]; + AfterEnd = AfterList; + + Depth = 0; + WipeFlags(Added | AddPending | Loop | InList); + + for (iterator I = List; I != End; I++) + Flag(*I,InList); + + // Rebuild the main list into the temp list. + iterator OldEnd = End; + End = NList; + for (iterator I = List; I != OldEnd; I++) + if (VisitNode(PkgIterator(Cache,*I)) == false) + { + End = OldEnd; + return false; + } + + // Copy the after list to the end of the main list + for (Package **I = AfterList; I != AfterEnd; I++) + *End++ = *I; + + // Swap the main list to the new list + delete [] List; + List = NList.UnGuard(); + return true; +} + /*}}}*/ +// OrderList::OrderCritical - Perform critical unpacking ordering /*{{{*/ +// --------------------------------------------------------------------- +/* This performs predepends and immediate configuration ordering only. + This is termed critical unpacking ordering. Any loops that form are + fatal and indicate that the packages cannot be installed. */ +bool pkgOrderList::OrderCritical() +{ + FileList = 0; + + Primary = &pkgOrderList::DepUnPackPre; + Secondary = 0; + RevDepends = 0; + Remove = 0; + LoopCount = 0; + + // Sort + Me = this; + qsort(List,End - List,sizeof(*List),&OrderCompareB); + + if (DoRun() == false) + return false; + + if (LoopCount != 0) + return _error->Error("Fatal, predepends looping detected"); + return true; +} + /*}}}*/ +// OrderList::OrderUnpack - Perform complete unpacking ordering /*{{{*/ +// --------------------------------------------------------------------- +/* This performs complete unpacking ordering and creates an order that is + suitable for unpacking */ +bool pkgOrderList::OrderUnpack(string *FileList) +{ + this->FileList = FileList; + + // Setup the after flags + if (FileList != 0) + { + WipeFlags(After); + + // Set the inlist flag + for (iterator I = List; I != End; I++) + { + PkgIterator P(Cache,*I); + if (IsMissing(P) == true && IsNow(P) == true) + Flag(*I,After); + } + } + + Primary = &pkgOrderList::DepUnPackCrit; + Secondary = &pkgOrderList::DepConfigure; + RevDepends = &pkgOrderList::DepUnPackDep; + Remove = &pkgOrderList::DepRemove; + LoopCount = -1; + + // Sort + Me = this; + qsort(List,End - List,sizeof(*List),&OrderCompareA); + + if (Debug == true) + clog << "** Pass A" << endl; + if (DoRun() == false) + return false; + + if (Debug == true) + clog << "** Pass B" << endl; + Secondary = 0; + if (DoRun() == false) + return false; + + if (Debug == true) + clog << "** Pass C" << endl; + LoopCount = 0; + RevDepends = 0; + Remove = 0; // Otherwise the libreadline remove problem occures + if (DoRun() == false) + return false; + + if (Debug == true) + clog << "** Pass D" << endl; + LoopCount = 0; + Primary = &pkgOrderList::DepUnPackPre; + if (DoRun() == false) + return false; + + if (Debug == true) + { + clog << "** Unpack ordering done" << endl; + + for (iterator I = List; I != End; I++) + { + PkgIterator P(Cache,*I); + if (IsNow(P) == true) + clog << P.Name() << ' ' << IsMissing(P) << ',' << IsFlag(P,After) << endl; + } + } + + return true; +} + /*}}}*/ +// OrderList::OrderConfigure - Perform configuration ordering /*{{{*/ +// --------------------------------------------------------------------- +/* This orders by depends only and produces an order which is suitable + for configuration */ +bool pkgOrderList::OrderConfigure() +{ + FileList = 0; + Primary = &pkgOrderList::DepConfigure; + Secondary = 0; + RevDepends = 0; + Remove = 0; + LoopCount = -1; + return DoRun(); +} + /*}}}*/ + +// OrderList::Score - Score the package for sorting /*{{{*/ +// --------------------------------------------------------------------- +/* Higher scores order earlier */ +int pkgOrderList::Score(PkgIterator Pkg) +{ + // Removal is always done first + if (Cache[Pkg].Delete() == true) + return 200; + + // This should never happen.. + if (Cache[Pkg].InstVerIter(Cache).end() == true) + return -1; + + int Score = 0; + if ((Pkg->Flags & pkgCache::Flag::Essential) == pkgCache::Flag::Essential) + Score += 100; + + if (IsFlag(Pkg,Immediate) == true) + Score += 10; + + for (DepIterator D = Cache[Pkg].InstVerIter(Cache).DependsList(); + D.end() == false; D++) + if (D->Type == pkgCache::Dep::PreDepends) + { + Score += 50; + break; + } + + // Important Required Standard Optional Extra + signed short PrioMap[] = {0,5,4,3,1,0}; + if (Cache[Pkg].InstVerIter(Cache)->Priority <= 5) + Score += PrioMap[Cache[Pkg].InstVerIter(Cache)->Priority]; + return Score; +} + /*}}}*/ +// OrderList::FileCmp - Compare by package file /*{{{*/ +// --------------------------------------------------------------------- +/* This compares by the package file that the install version is in. */ +int pkgOrderList::FileCmp(PkgIterator A,PkgIterator B) +{ + if (Cache[A].Delete() == true && Cache[B].Delete() == true) + return 0; + if (Cache[A].Delete() == true) + return -1; + if (Cache[B].Delete() == true) + return 1; + + if (Cache[A].InstVerIter(Cache).FileList().end() == true) + return -1; + if (Cache[B].InstVerIter(Cache).FileList().end() == true) + return 1; + + pkgCache::PackageFile *FA = Cache[A].InstVerIter(Cache).FileList().File(); + pkgCache::PackageFile *FB = Cache[B].InstVerIter(Cache).FileList().File(); + if (FA < FB) + return -1; + if (FA > FB) + return 1; + return 0; +} + /*}}}*/ +// BoolCompare - Comparison function for two booleans /*{{{*/ +// --------------------------------------------------------------------- +/* */ +static int BoolCompare(bool A,bool B) +{ + if (A == B) + return 0; + if (A == false) + return -1; + return 1; +} + /*}}}*/ +// OrderList::OrderCompareA - Order the installation by op /*{{{*/ +// --------------------------------------------------------------------- +/* This provides a first-pass sort of the list and gives a decent starting + point for further complete ordering. It is used by OrderUnpack only */ +int pkgOrderList::OrderCompareA(const void *a, const void *b) +{ + PkgIterator A(Me->Cache,*(Package **)a); + PkgIterator B(Me->Cache,*(Package **)b); + + // We order packages with a set state toward the front + int Res; + if ((Res = BoolCompare(Me->IsNow(A),Me->IsNow(B))) != 0) + return -1*Res; + + // We order missing files to toward the end +/* if (Me->FileList != 0) + { + if ((Res = BoolCompare(Me->IsMissing(A), + Me->IsMissing(B))) != 0) + return Res; + }*/ + + if (A.State() != pkgCache::PkgIterator::NeedsNothing && + B.State() == pkgCache::PkgIterator::NeedsNothing) + return -1; + + if (A.State() == pkgCache::PkgIterator::NeedsNothing && + B.State() != pkgCache::PkgIterator::NeedsNothing) + return 1; + + int ScoreA = Me->Score(A); + int ScoreB = Me->Score(B); + if (ScoreA > ScoreB) + return -1; + + if (ScoreA < ScoreB) + return 1; + + return strcmp(A.Name(),B.Name()); +} + /*}}}*/ +// OrderList::OrderCompareB - Order the installation by source /*{{{*/ +// --------------------------------------------------------------------- +/* This orders by installation source. This is useful to handle + inter-source breaks */ +int pkgOrderList::OrderCompareB(const void *a, const void *b) +{ + PkgIterator A(Me->Cache,*(Package **)a); + PkgIterator B(Me->Cache,*(Package **)b); + + if (A.State() != pkgCache::PkgIterator::NeedsNothing && + B.State() == pkgCache::PkgIterator::NeedsNothing) + return -1; + + if (A.State() == pkgCache::PkgIterator::NeedsNothing && + B.State() != pkgCache::PkgIterator::NeedsNothing) + return 1; + + int F = Me->FileCmp(A,B); + if (F != 0) + { + if (F > 0) + return -1; + return 1; + } + + int ScoreA = Me->Score(A); + int ScoreB = Me->Score(B); + if (ScoreA > ScoreB) + return -1; + + if (ScoreA < ScoreB) + return 1; + + return strcmp(A.Name(),B.Name()); +} + /*}}}*/ + +// OrderList::VisitDeps - Visit forward install dependencies /*{{{*/ +// --------------------------------------------------------------------- +/* This calls the dependency function for the normal forwards dependencies + of the package */ +bool pkgOrderList::VisitDeps(DepFunc F,PkgIterator Pkg) +{ + if (F == 0 || Pkg.end() == true || Cache[Pkg].InstallVer == 0) + return true; + + return (this->*F)(Cache[Pkg].InstVerIter(Cache).DependsList()); +} + /*}}}*/ +// OrderList::VisitRDeps - Visit reverse dependencies /*{{{*/ +// --------------------------------------------------------------------- +/* This calls the dependency function for all of the normal reverse depends + of the package */ +bool pkgOrderList::VisitRDeps(DepFunc F,PkgIterator Pkg) +{ + if (F == 0 || Pkg.end() == true) + return true; + + return (this->*F)(Pkg.RevDependsList()); +} + /*}}}*/ +// OrderList::VisitRProvides - Visit provides reverse dependencies /*{{{*/ +// --------------------------------------------------------------------- +/* This calls the dependency function for all reverse dependencies + generated by the provides line on the package. */ +bool pkgOrderList::VisitRProvides(DepFunc F,VerIterator Ver) +{ + if (F == 0 || Ver.end() == true) + return true; + + bool Res = true; + for (PrvIterator P = Ver.ProvidesList(); P.end() == false; P++) + Res &= (this->*F)(P.ParentPkg().RevDependsList()); + return true; +} + /*}}}*/ +// OrderList::VisitProvides - Visit all of the providing packages /*{{{*/ +// --------------------------------------------------------------------- +/* This routine calls visit on all providing packages. */ +bool pkgOrderList::VisitProvides(DepIterator D,bool Critical) +{ + SPtrArray List = D.AllTargets(); + for (Version **I = List; *I != 0; I++) + { + VerIterator Ver(Cache,*I); + PkgIterator Pkg = Ver.ParentPkg(); + + if (Cache[Pkg].Keep() == true && Pkg.State() == PkgIterator::NeedsNothing) + continue; + + if (D->Type != pkgCache::Dep::Conflicts && + D->Type != pkgCache::Dep::Obsoletes && + Cache[Pkg].InstallVer != *I) + continue; + + if ((D->Type == pkgCache::Dep::Conflicts || + D->Type == pkgCache::Dep::Obsoletes) && + (Version *)Pkg.CurrentVer() != *I) + continue; + + // Skip over missing files + if (Critical == false && IsMissing(D.ParentPkg()) == true) + continue; + + if (VisitNode(Pkg) == false) + return false; + } + return true; +} + /*}}}*/ +// OrderList::VisitNode - Recursive ordering director /*{{{*/ +// --------------------------------------------------------------------- +/* This is the core ordering routine. It calls the set dependency + consideration functions which then potentialy call this again. Finite + depth is achived through the colouring mechinism. */ +bool pkgOrderList::VisitNode(PkgIterator Pkg) +{ + // Looping or irrelevent. + // This should probably trancend not installed packages + if (Pkg.end() == true || IsFlag(Pkg,Added) == true || + IsFlag(Pkg,AddPending) == true || IsFlag(Pkg,InList) == false) + return true; + + if (Debug == true) + { + for (int j = 0; j != Depth; j++) clog << ' '; + clog << "Visit " << Pkg.Name() << endl; + } + + Depth++; + + // Color grey + Flag(Pkg,AddPending); + + DepFunc Old = Primary; + + // Perform immedate configuration of the package if so flagged. + if (IsFlag(Pkg,Immediate) == true && Primary != &pkgOrderList::DepUnPackPre) + Primary = &pkgOrderList::DepUnPackPreD; + + if (IsNow(Pkg) == true) + { + bool Res = true; + if (Cache[Pkg].Delete() == false) + { + // Primary + Res &= Res && VisitDeps(Primary,Pkg); + Res &= Res && VisitRDeps(Primary,Pkg); + Res &= Res && VisitRProvides(Primary,Pkg.CurrentVer()); + Res &= Res && VisitRProvides(Primary,Cache[Pkg].InstVerIter(Cache)); + + // RevDep + Res &= Res && VisitRDeps(RevDepends,Pkg); + Res &= Res && VisitRProvides(RevDepends,Pkg.CurrentVer()); + Res &= Res && VisitRProvides(RevDepends,Cache[Pkg].InstVerIter(Cache)); + + // Secondary + Res &= Res && VisitDeps(Secondary,Pkg); + Res &= Res && VisitRDeps(Secondary,Pkg); + Res &= Res && VisitRProvides(Secondary,Pkg.CurrentVer()); + Res &= Res && VisitRProvides(Secondary,Cache[Pkg].InstVerIter(Cache)); + } + else + { + // RevDep + Res &= Res && VisitRDeps(Remove,Pkg); + Res &= Res && VisitRProvides(Remove,Pkg.CurrentVer()); + } + } + + if (IsFlag(Pkg,Added) == false) + { + Flag(Pkg,Added,Added | AddPending); + if (IsFlag(Pkg,After) == true) + *AfterEnd++ = Pkg; + else + *End++ = Pkg; + } + + Primary = Old; + Depth--; + + if (Debug == true) + { + for (int j = 0; j != Depth; j++) clog << ' '; + clog << "Leave " << Pkg.Name() << ' ' << IsFlag(Pkg,Added) << ',' << IsFlag(Pkg,AddPending) << endl; + } + + return true; +} + /*}}}*/ + +// OrderList::DepUnPackCrit - Critical UnPacking ordering /*{{{*/ +// --------------------------------------------------------------------- +/* Critical unpacking ordering strives to satisfy Conflicts: and + PreDepends: only. When a prdepends is encountered the Primary + DepFunc is changed to be DepUnPackPreD. + + Loops are preprocessed and logged. */ +bool pkgOrderList::DepUnPackCrit(DepIterator D) +{ + for (; D.end() == false; D++) + { + if (D.Reverse() == true) + { + /* Reverse depenanices are only interested in conflicts, + predepend breakage is ignored here */ + if (D->Type != pkgCache::Dep::Conflicts && + D->Type != pkgCache::Dep::Obsoletes) + continue; + + // Duplication elimination, consider only the current version + if (D.ParentPkg().CurrentVer() != D.ParentVer()) + continue; + + /* For reverse dependencies we wish to check if the + dependency is satisifed in the install state. The + target package (caller) is going to be in the installed + state. */ + if (CheckDep(D) == true) + continue; + + if (VisitNode(D.ParentPkg()) == false) + return false; + } + else + { + /* Forward critical dependencies MUST be correct before the + package can be unpacked. */ + if (D->Type != pkgCache::Dep::Conflicts && + D->Type != pkgCache::Dep::Obsoletes && + D->Type != pkgCache::Dep::PreDepends) + continue; + + /* We wish to check if the dep is okay in the now state of the + target package against the install state of this package. */ + if (CheckDep(D) == true) + { + /* We want to catch predepends loops with the code below. + Conflicts loops that are Dep OK are ignored */ + if (IsFlag(D.TargetPkg(),AddPending) == false || + D->Type != pkgCache::Dep::PreDepends) + continue; + } + + // This is the loop detection + if (IsFlag(D.TargetPkg(),Added) == true || + IsFlag(D.TargetPkg(),AddPending) == true) + { + if (IsFlag(D.TargetPkg(),AddPending) == true) + AddLoop(D); + continue; + } + + /* Predepends require a special ordering stage, they must have + all dependents installed as well */ + DepFunc Old = Primary; + bool Res = false; + if (D->Type == pkgCache::Dep::PreDepends) + Primary = &pkgOrderList::DepUnPackPreD; + Res = VisitProvides(D,true); + Primary = Old; + if (Res == false) + return false; + } + } + return true; +} + /*}}}*/ +// OrderList::DepUnPackPreD - Critical UnPacking ordering with depends /*{{{*/ +// --------------------------------------------------------------------- +/* Critical PreDepends (also configure immediate and essential) strives to + ensure not only that all conflicts+predepends are met but that this + package will be immediately configurable when it is unpacked. + + Loops are preprocessed and logged. */ +bool pkgOrderList::DepUnPackPreD(DepIterator D) +{ + if (D.Reverse() == true) + return DepUnPackCrit(D); + + for (; D.end() == false; D++) + { + if (D.IsCritical() == false) + continue; + + /* We wish to check if the dep is okay in the now state of the + target package against the install state of this package. */ + if (CheckDep(D) == true) + { + /* We want to catch predepends loops with the code below. + Conflicts loops that are Dep OK are ignored */ + if (IsFlag(D.TargetPkg(),AddPending) == false || + D->Type != pkgCache::Dep::PreDepends) + continue; + } + + // This is the loop detection + if (IsFlag(D.TargetPkg(),Added) == true || + IsFlag(D.TargetPkg(),AddPending) == true) + { + if (IsFlag(D.TargetPkg(),AddPending) == true) + AddLoop(D); + continue; + } + + if (VisitProvides(D,true) == false) + return false; + } + return true; +} + /*}}}*/ +// OrderList::DepUnPackPre - Critical Predepends ordering /*{{{*/ +// --------------------------------------------------------------------- +/* Critical PreDepends (also configure immediate and essential) strives to + ensure not only that all conflicts+predepends are met but that this + package will be immediately configurable when it is unpacked. + + Loops are preprocessed and logged. All loops will be fatal. */ +bool pkgOrderList::DepUnPackPre(DepIterator D) +{ + if (D.Reverse() == true) + return true; + + for (; D.end() == false; D++) + { + /* Only consider the PreDepends or Depends. Depends are only + considered at the lowest depth or in the case of immediate + configure */ + if (D->Type != pkgCache::Dep::PreDepends) + { + if (D->Type == pkgCache::Dep::Depends) + { + if (Depth == 1 && IsFlag(D.ParentPkg(),Immediate) == false) + continue; + } + else + continue; + } + + /* We wish to check if the dep is okay in the now state of the + target package against the install state of this package. */ + if (CheckDep(D) == true) + { + /* We want to catch predepends loops with the code below. + Conflicts loops that are Dep OK are ignored */ + if (IsFlag(D.TargetPkg(),AddPending) == false) + continue; + } + + // This is the loop detection + if (IsFlag(D.TargetPkg(),Added) == true || + IsFlag(D.TargetPkg(),AddPending) == true) + { + if (IsFlag(D.TargetPkg(),AddPending) == true) + AddLoop(D); + continue; + } + + if (VisitProvides(D,true) == false) + return false; + } + return true; +} + /*}}}*/ +// OrderList::DepUnPackDep - Reverse dependency considerations /*{{{*/ +// --------------------------------------------------------------------- +/* Reverse dependencies are considered to determine if unpacking this + package will break any existing dependencies. If so then those + packages are ordered before this one so that they are in the + UnPacked state. + + The forwards depends loop is designed to bring the packages dependents + close to the package. This helps reduce deconfigure time. + + Loops are irrelevent to this. */ +bool pkgOrderList::DepUnPackDep(DepIterator D) +{ + + for (; D.end() == false; D++) + if (D.IsCritical() == true) + { + if (D.Reverse() == true) + { + /* Duplication prevention. We consider rev deps only on + the current version, a not installed package + cannot break */ + if (D.ParentPkg()->CurrentVer == 0 || + D.ParentPkg().CurrentVer() != D.ParentVer()) + continue; + + // The dep will not break so it is irrelevent. + if (CheckDep(D) == true) + continue; + + // Skip over missing files + if (IsMissing(D.ParentPkg()) == true) + continue; + + if (VisitNode(D.ParentPkg()) == false) + return false; + } + else + if (D->Type == pkgCache::Dep::Depends) + if (VisitProvides(D,false) == false) + return false; + } + return true; +} + /*}}}*/ +// OrderList::DepConfigure - Configuration ordering /*{{{*/ +// --------------------------------------------------------------------- +/* Configuration only ordering orders by the Depends: line only. It + orders configuration so that when a package comes to be configured it's + dependents are configured. + + Loops are ingored. Depends loop entry points are chaotic. */ +bool pkgOrderList::DepConfigure(DepIterator D) +{ + // Never consider reverse configuration dependencies. + if (D.Reverse() == true) + return true; + + for (; D.end() == false; D++) + if (D->Type == pkgCache::Dep::Depends) + if (VisitProvides(D,false) == false) + return false; + return true; +} + /*}}}*/ +// OrderList::DepRemove - Removal ordering /*{{{*/ +// --------------------------------------------------------------------- +/* Removal visits all reverse depends. It considers if the dependency + of the Now state version to see if it is okay with removing this + package. This check should always fail, but is provided for symetery + with the other critical handlers. + + Loops are preprocessed and logged. Removal loops can also be + detected in the critical handler. They are characterized by an + old version of A depending on B but the new version of A conflicting + with B, thus either A or B must break to install. */ +bool pkgOrderList::DepRemove(DepIterator D) +{ + if (D.Reverse() == false) + return true; + for (; D.end() == false; D++) + if (D->Type == pkgCache::Dep::Depends || D->Type == pkgCache::Dep::PreDepends) + { + // Duplication elimination, consider the current version only + if (D.ParentPkg().CurrentVer() != D.ParentVer()) + continue; + + /* We wish to see if the dep on the parent package is okay + in the removed (install) state of the target pkg. */ + if (CheckDep(D) == true) + { + // We want to catch loops with the code below. + if (IsFlag(D.ParentPkg(),AddPending) == false) + continue; + } + + // This is the loop detection + if (IsFlag(D.ParentPkg(),Added) == true || + IsFlag(D.ParentPkg(),AddPending) == true) + { + if (IsFlag(D.ParentPkg(),AddPending) == true) + AddLoop(D); + continue; + } + + // Skip over missing files + if (IsMissing(D.ParentPkg()) == true) + continue; + + if (VisitNode(D.ParentPkg()) == false) + return false; + } + + return true; +} + /*}}}*/ + +// OrderList::AddLoop - Add a loop to the loop list /*{{{*/ +// --------------------------------------------------------------------- +/* We record the loops. This is a relic since loop breaking is done + genericaly as part of the safety routines. */ +bool pkgOrderList::AddLoop(DepIterator D) +{ + if (LoopCount < 0 || LoopCount >= 20) + return false; + + // Skip dups + if (LoopCount != 0) + { + if (Loops[LoopCount - 1].ParentPkg() == D.ParentPkg() || + Loops[LoopCount - 1].TargetPkg() == D.ParentPkg()) + return true; + } + + Loops[LoopCount++] = D; + + // Mark the packages as being part of a loop. + Flag(D.TargetPkg(),Loop); + Flag(D.ParentPkg(),Loop); + return true; +} + /*}}}*/ +// OrderList::WipeFlags - Unset the given flags from all packages /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgOrderList::WipeFlags(unsigned long F) +{ + unsigned long Size = Cache.Head().PackageCount; + for (unsigned long I = 0; I != Size; I++) + Flags[I] &= ~F; +} + /*}}}*/ +// OrderList::CheckDep - Check a dependency for truth /*{{{*/ +// --------------------------------------------------------------------- +/* This performs a complete analysis of the dependency wrt to the + current add list. It returns true if after all events are + performed it is still true. This sort of routine can be approximated + by examining the DepCache, however in convoluted cases of provides + this fails to produce a suitable result. */ +bool pkgOrderList::CheckDep(DepIterator D) +{ + SPtrArray List = D.AllTargets(); + bool Hit = false; + for (Version **I = List; *I != 0; I++) + { + VerIterator Ver(Cache,*I); + PkgIterator Pkg = Ver.ParentPkg(); + + /* The meaning of Added and AddPending is subtle. AddPending is + an indication that the package is looping. Because of the + way ordering works Added means the package will be unpacked + before this one and AddPending means after. It is therefore + correct to ignore AddPending in all cases, but that exposes + reverse-ordering loops which should be ignored. */ + if (IsFlag(Pkg,Added) == true || + (IsFlag(Pkg,AddPending) == true && D.Reverse() == true)) + { + if (Cache[Pkg].InstallVer != *I) + continue; + } + else + if ((Version *)Pkg.CurrentVer() != *I || + Pkg.State() != PkgIterator::NeedsNothing) + continue; + + /* Conflicts requires that all versions are not present, depends + just needs one */ + if (D->Type != pkgCache::Dep::Conflicts && + D->Type != pkgCache::Dep::Obsoletes) + { + /* Try to find something that does not have the after flag set + if at all possible */ + if (IsFlag(Pkg,After) == true) + { + Hit = true; + continue; + } + + return true; + } + else + { + if (IsFlag(Pkg,After) == true) + Flag(D.ParentPkg(),After); + + return false; + } + } + + // We found a hit, but it had the after flag set + if (Hit == true && D->Type == pkgCache::Dep::PreDepends) + { + Flag(D.ParentPkg(),After); + return true; + } + + /* Conflicts requires that all versions are not present, depends + just needs one */ + if (D->Type == pkgCache::Dep::Conflicts || + D->Type == pkgCache::Dep::Obsoletes) + return true; + return false; +} + /*}}}*/ diff --git a/apt-pkg/orderlist.h b/apt-pkg/orderlist.h new file mode 100644 index 0000000..d13301b --- /dev/null +++ b/apt-pkg/orderlist.h @@ -0,0 +1,120 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: orderlist.h,v 1.9 2001/02/20 07:03:17 jgg Exp $ +/* ###################################################################### + + Order List - Represents and Manipulates an ordered list of packages. + + A list of packages can be ordered by a number of conflicting criteria + each given a specific priority. Each package also has a set of flags + indicating some useful things about it that are derived in the + course of sorting. The pkgPackageManager class uses this class for + all of it's installation ordering needs. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_ORDERLIST_H +#define PKGLIB_ORDERLIST_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/orderlist.h" +#endif + +#include + +class pkgDepCache; +class pkgOrderList : protected pkgCache::Namespace +{ + protected: + + pkgDepCache &Cache; + typedef bool (pkgOrderList::*DepFunc)(DepIterator D); + + // These are the currently selected ordering functions + DepFunc Primary; + DepFunc Secondary; + DepFunc RevDepends; + DepFunc Remove; + + // State + Package **End; + Package **List; + Package **AfterEnd; + string *FileList; + DepIterator Loops[20]; + int LoopCount; + int Depth; + unsigned short *Flags; + bool Debug; + + // Main visit function + bool VisitNode(PkgIterator Pkg); + bool VisitDeps(DepFunc F,PkgIterator Pkg); + bool VisitRDeps(DepFunc F,PkgIterator Pkg); + bool VisitRProvides(DepFunc F,VerIterator Ver); + bool VisitProvides(DepIterator Pkg,bool Critical); + + // Dependency checking functions. + bool DepUnPackCrit(DepIterator D); + bool DepUnPackPreD(DepIterator D); + bool DepUnPackPre(DepIterator D); + bool DepUnPackDep(DepIterator D); + bool DepConfigure(DepIterator D); + bool DepRemove(DepIterator D); + + // Analysis helpers + bool AddLoop(DepIterator D); + bool CheckDep(DepIterator D); + bool DoRun(); + + // For pre sorting + static pkgOrderList *Me; + static int OrderCompareA(const void *a, const void *b); + static int OrderCompareB(const void *a, const void *b); + int FileCmp(PkgIterator A,PkgIterator B); + + public: + + typedef Package **iterator; + + // State flags + enum Flags {Added = (1 << 0), AddPending = (1 << 1), + Immediate = (1 << 2), Loop = (1 << 3), + UnPacked = (1 << 4), Configured = (1 << 5), + Removed = (1 << 6), // Early Remove + InList = (1 << 7), + After = (1 << 8), + States = (UnPacked | Configured | Removed)}; + + // Flag manipulators + inline bool IsFlag(PkgIterator Pkg,unsigned long F) {return (Flags[Pkg->ID] & F) == F;}; + inline bool IsFlag(Package *Pkg,unsigned long F) {return (Flags[Pkg->ID] & F) == F;}; + void Flag(PkgIterator Pkg,unsigned long State, unsigned long F) {Flags[Pkg->ID] = (Flags[Pkg->ID] & (~F)) | State;}; + inline void Flag(PkgIterator Pkg,unsigned long F) {Flags[Pkg->ID] |= F;}; + inline void Flag(Package *Pkg,unsigned long F) {Flags[Pkg->ID] |= F;}; + inline bool IsNow(PkgIterator Pkg) {return (Flags[Pkg->ID] & (States & (~Removed))) == 0;}; + bool IsMissing(PkgIterator Pkg); + void WipeFlags(unsigned long F); + void SetFileList(string *FileList) {this->FileList = FileList;}; + + // Accessors + inline iterator begin() {return List;}; + inline iterator end() {return End;}; + inline void push_back(Package *Pkg) {*(End++) = Pkg;}; + inline void push_back(PkgIterator Pkg) {*(End++) = Pkg;}; + inline void pop_back() {End--;}; + inline bool empty() {return End == List;}; + inline unsigned int size() {return End - List;}; + + // Ordering modes + bool OrderCritical(); + bool OrderUnpack(string *FileList = 0); + bool OrderConfigure(); + + int Score(PkgIterator Pkg); + + pkgOrderList(pkgDepCache *Cache); + ~pkgOrderList(); +}; + +#endif diff --git a/apt-pkg/packagemanager.cc b/apt-pkg/packagemanager.cc new file mode 100644 index 0000000..4b3dd8b --- /dev/null +++ b/apt-pkg/packagemanager.cc @@ -0,0 +1,644 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: packagemanager.cc,v 1.30 2003/04/27 03:04:15 doogie Exp $ +/* ###################################################################### + + Package Manager - Abstacts the package manager + + More work is needed in the area of transitioning provides, ie exim + replacing smail. This can cause interesing side effects. + + Other cases involving conflicts+replaces should be tested. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/packagemanager.h" +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + /*}}}*/ + +using namespace std; + +// PM::PackageManager - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgPackageManager::pkgPackageManager(pkgDepCache *pCache) : Cache(*pCache) +{ + FileNames = new string[Cache.Head().PackageCount]; + List = 0; + Debug = _config->FindB("Debug::pkgPackageManager",false); +} + /*}}}*/ +// PM::PackageManager - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgPackageManager::~pkgPackageManager() +{ + delete List; + delete [] FileNames; +} + /*}}}*/ +// PM::GetArchives - Queue the archives for download /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgPackageManager::GetArchives(pkgAcquire *Owner,pkgSourceList *Sources, + pkgRecords *Recs) +{ + if (CreateOrderList() == false) + return false; + + if (List->OrderUnpack() == false) + return _error->Error("Internal ordering error"); + + for (pkgOrderList::iterator I = List->begin(); I != List->end(); I++) + { + PkgIterator Pkg(Cache,*I); + FileNames[Pkg->ID] = string(); + + // Skip packages to erase + if (Cache[Pkg].Delete() == true) + continue; + + // Skip Packages that need configure only. + if (Pkg.State() == pkgCache::PkgIterator::NeedsConfigure && + Cache[Pkg].Keep() == true) + continue; + + // Skip already processed packages + if (List->IsNow(Pkg) == false) + continue; + + new pkgAcqArchive(Owner,Sources,Recs,Cache[Pkg].InstVerIter(Cache), + FileNames[Pkg->ID]); + } + + return true; +} + /*}}}*/ +// PM::FixMissing - Keep all missing packages /*{{{*/ +// --------------------------------------------------------------------- +/* This is called to correct the installation when packages could not + be downloaded. */ +bool pkgPackageManager::FixMissing() +{ + pkgProblemResolver Resolve(&Cache); + List->SetFileList(FileNames); + + bool Bad = false; + for (PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + { + if (List->IsMissing(I) == false) + continue; + + // Okay, this file is missing and we need it. Mark it for keep + Bad = true; + Cache.MarkKeep(I); + } + + // We have to empty the list otherwise it will not have the new changes + delete List; + List = 0; + + if (Bad == false) + return true; + + // Now downgrade everything that is broken + return Resolve.ResolveByKeep() == true && Cache.BrokenCount() == 0; +} + /*}}}*/ + +// PM::CreateOrderList - Create the ordering class /*{{{*/ +// --------------------------------------------------------------------- +/* This populates the ordering list with all the packages that are + going to change. */ +bool pkgPackageManager::CreateOrderList() +{ + if (List != 0) + return true; + + delete List; + List = new pkgOrderList(&Cache); + + bool NoImmConfigure = !_config->FindB("APT::Immediate-Configure",true); + + // Generate the list of affected packages and sort it + for (PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + { + // Ignore no-version packages + if (I->VersionList == 0) + continue; + + // Mark the package and its dependends for immediate configuration + if (((I->Flags & pkgCache::Flag::Essential) == pkgCache::Flag::Essential || + (I->Flags & pkgCache::Flag::Important) == pkgCache::Flag::Important) && + NoImmConfigure == false) + { + List->Flag(I,pkgOrderList::Immediate); + + // Look for other packages to make immediate configurea + if (Cache[I].InstallVer != 0) + for (DepIterator D = Cache[I].InstVerIter(Cache).DependsList(); + D.end() == false; D++) + if (D->Type == pkgCache::Dep::Depends || D->Type == pkgCache::Dep::PreDepends) + List->Flag(D.TargetPkg(),pkgOrderList::Immediate); + + // And again with the current version. + if (I->CurrentVer != 0) + for (DepIterator D = I.CurrentVer().DependsList(); + D.end() == false; D++) + if (D->Type == pkgCache::Dep::Depends || D->Type == pkgCache::Dep::PreDepends) + List->Flag(D.TargetPkg(),pkgOrderList::Immediate); + } + + // Not interesting + if ((Cache[I].Keep() == true || + Cache[I].InstVerIter(Cache) == I.CurrentVer()) && + I.State() == pkgCache::PkgIterator::NeedsNothing && + (Cache[I].iFlags & pkgDepCache::ReInstall) != pkgDepCache::ReInstall && + (I.Purge() != false || Cache[I].Mode != pkgDepCache::ModeDelete || + (Cache[I].iFlags & pkgDepCache::Purge) != pkgDepCache::Purge)) + continue; + + // Append it to the list + List->push_back(I); + } + + return true; +} + /*}}}*/ +// PM::DepAlwaysTrue - Returns true if this dep is irrelevent /*{{{*/ +// --------------------------------------------------------------------- +/* The restriction on provides is to eliminate the case when provides + are transitioning between valid states [ie exim to smail] */ +bool pkgPackageManager::DepAlwaysTrue(DepIterator D) +{ + if (D.TargetPkg()->ProvidesList != 0) + return false; + + if ((Cache[D] & pkgDepCache::DepInstall) != 0 && + (Cache[D] & pkgDepCache::DepNow) != 0) + return true; + return false; +} + /*}}}*/ +// PM::CheckRConflicts - Look for reverse conflicts /*{{{*/ +// --------------------------------------------------------------------- +/* This looks over the reverses for a conflicts line that needs early + removal. */ +bool pkgPackageManager::CheckRConflicts(PkgIterator Pkg,DepIterator D, + const char *Ver) +{ + for (;D.end() == false; D++) + { + if (D->Type != pkgCache::Dep::Conflicts && + D->Type != pkgCache::Dep::Obsoletes) + continue; + + // The package hasnt been changed + if (List->IsNow(Pkg) == false) + continue; + + // Ignore self conflicts, ignore conflicts from irrelevent versions + if (D.ParentPkg() == Pkg || D.ParentVer() != D.ParentPkg().CurrentVer()) + continue; + + if (Cache.VS().CheckDep(Ver,D->CompareOp,D.TargetVer()) == false) + continue; + + if (EarlyRemove(D.ParentPkg()) == false) + return _error->Error("Reverse conflicts early remove for package '%s' failed", + Pkg.Name()); + } + return true; +} + /*}}}*/ +// PM::ConfigureAll - Run the all out configuration /*{{{*/ +// --------------------------------------------------------------------- +/* This configures every package. It is assumed they are all unpacked and + that the final configuration is valid. */ +bool pkgPackageManager::ConfigureAll() +{ + pkgOrderList OList(&Cache); + + // Populate the order list + for (pkgOrderList::iterator I = List->begin(); I != List->end(); I++) + if (List->IsFlag(pkgCache::PkgIterator(Cache,*I), + pkgOrderList::UnPacked) == true) + OList.push_back(*I); + + if (OList.OrderConfigure() == false) + return false; + + // Perform the configuring + for (pkgOrderList::iterator I = OList.begin(); I != OList.end(); I++) + { + PkgIterator Pkg(Cache,*I); + + if (Configure(Pkg) == false) + return false; + + List->Flag(Pkg,pkgOrderList::Configured,pkgOrderList::States); + } + + return true; +} + /*}}}*/ +// PM::SmartConfigure - Perform immediate configuration of the pkg /*{{{*/ +// --------------------------------------------------------------------- +/* This routine scheduals the configuration of the given package and all + of it's dependents. */ +bool pkgPackageManager::SmartConfigure(PkgIterator Pkg) +{ + pkgOrderList OList(&Cache); + + if (DepAdd(OList,Pkg) == false) + return false; + + if (OList.OrderConfigure() == false) + return false; + + // Perform the configuring + for (pkgOrderList::iterator I = OList.begin(); I != OList.end(); I++) + { + PkgIterator Pkg(Cache,*I); + + if (Configure(Pkg) == false) + return false; + + List->Flag(Pkg,pkgOrderList::Configured,pkgOrderList::States); + } + + // Sanity Check + if (List->IsFlag(Pkg,pkgOrderList::Configured) == false) + return _error->Error("Internal error, could not immediate configure %s",Pkg.Name()); + + return true; +} + /*}}}*/ +// PM::DepAdd - Add all dependents to the oder list /*{{{*/ +// --------------------------------------------------------------------- +/* This recursively adds all dependents to the order list */ +bool pkgPackageManager::DepAdd(pkgOrderList &OList,PkgIterator Pkg,int Depth) +{ + if (OList.IsFlag(Pkg,pkgOrderList::Added) == true) + return true; + if (List->IsFlag(Pkg,pkgOrderList::Configured) == true) + return true; + if (List->IsFlag(Pkg,pkgOrderList::UnPacked) == false) + return false; + + // Put the package on the list + OList.push_back(Pkg); + OList.Flag(Pkg,pkgOrderList::Added); + Depth++; + + // Check the dependencies to see if they are all satisfied. + bool Bad = false; + for (DepIterator D = Cache[Pkg].InstVerIter(Cache).DependsList(); D.end() == false;) + { + if (D->Type != pkgCache::Dep::Depends && D->Type != pkgCache::Dep::PreDepends) + { + D++; + continue; + } + + // Grok or groups + Bad = true; + for (bool LastOR = true; D.end() == false && LastOR == true; D++) + { + LastOR = (D->CompareOp & pkgCache::Dep::Or) == pkgCache::Dep::Or; + + if (Bad == false) + continue; + + SPtrArray VList = D.AllTargets(); + for (Version **I = VList; *I != 0 && Bad == true; I++) + { + VerIterator Ver(Cache,*I); + PkgIterator Pkg = Ver.ParentPkg(); + + // See if the current version is ok + if (Pkg.CurrentVer() == Ver && List->IsNow(Pkg) == true && + Pkg.State() == PkgIterator::NeedsNothing) + { + Bad = false; + continue; + } + + // Not the install version + if (Cache[Pkg].InstallVer != *I || + (Cache[Pkg].Keep() == true && Pkg.State() == PkgIterator::NeedsNothing)) + continue; + + if (List->IsFlag(Pkg,pkgOrderList::UnPacked) == true) + Bad = !DepAdd(OList,Pkg,Depth); + if (List->IsFlag(Pkg,pkgOrderList::Configured) == true) + Bad = false; + } + } + + if (Bad == true) + { + OList.Flag(Pkg,0,pkgOrderList::Added); + OList.pop_back(); + Depth--; + return false; + } + } + + Depth--; + return true; +} + /*}}}*/ +// PM::EarlyRemove - Perform removal of packages before their time /*{{{*/ +// --------------------------------------------------------------------- +/* This is called to deal with conflicts arising from unpacking */ +bool pkgPackageManager::EarlyRemove(PkgIterator Pkg) +{ + if (List->IsNow(Pkg) == false) + return true; + + // Already removed it + if (List->IsFlag(Pkg,pkgOrderList::Removed) == true) + return true; + + // Woops, it will not be re-installed! + if (List->IsFlag(Pkg,pkgOrderList::InList) == false) + return false; + + // Essential packages get special treatment + bool IsEssential = false; + if ((Pkg->Flags & pkgCache::Flag::Essential) != 0) + IsEssential = true; + + /* Check for packages that are the dependents of essential packages and + promote them too */ + if (Pkg->CurrentVer != 0) + { + for (DepIterator D = Pkg.RevDependsList(); D.end() == false && + IsEssential == false; D++) + if (D->Type == pkgCache::Dep::Depends || D->Type == pkgCache::Dep::PreDepends) + if ((D.ParentPkg()->Flags & pkgCache::Flag::Essential) != 0) + IsEssential = true; + } + + if (IsEssential == true) + { + if (_config->FindB("APT::Force-LoopBreak",false) == false) + return _error->Error(_("This installation run will require temporarily " + "removing the essential package %s due to a " + "Conflicts/Pre-Depends loop. This is often bad, " + "but if you really want to do it, activate the " + "APT::Force-LoopBreak option."),Pkg.Name()); + } + + bool Res = SmartRemove(Pkg); + if (Cache[Pkg].Delete() == false) + List->Flag(Pkg,pkgOrderList::Removed,pkgOrderList::States); + + return Res; +} + /*}}}*/ +// PM::SmartRemove - Removal Helper /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgPackageManager::SmartRemove(PkgIterator Pkg) +{ + if (List->IsNow(Pkg) == false) + return true; + + List->Flag(Pkg,pkgOrderList::Configured,pkgOrderList::States); + return Remove(Pkg,(Cache[Pkg].iFlags & pkgDepCache::Purge) == pkgDepCache::Purge); +} + /*}}}*/ +// PM::SmartUnPack - Install helper /*{{{*/ +// --------------------------------------------------------------------- +/* This performs the task of handling pre-depends. */ +bool pkgPackageManager::SmartUnPack(PkgIterator Pkg) +{ + // Check if it is already unpacked + if (Pkg.State() == pkgCache::PkgIterator::NeedsConfigure && + Cache[Pkg].Keep() == true) + { + List->Flag(Pkg,pkgOrderList::UnPacked,pkgOrderList::States); + if (List->IsFlag(Pkg,pkgOrderList::Immediate) == true) + if (SmartConfigure(Pkg) == false) + return _error->Error("Internal Error, Could not perform immediate configuration (1) on %s",Pkg.Name()); + return true; + } + + /* See if this packages install version has any predependencies + that are not met by 'now' packages. */ + for (DepIterator D = Cache[Pkg].InstVerIter(Cache).DependsList(); + D.end() == false; ) + { + // Compute a single dependency element (glob or) + pkgCache::DepIterator Start; + pkgCache::DepIterator End; + D.GlobOr(Start,End); + + while (End->Type == pkgCache::Dep::PreDepends) + { + // Look for possible ok targets. + SPtrArray VList = Start.AllTargets(); + bool Bad = true; + for (Version **I = VList; *I != 0 && Bad == true; I++) + { + VerIterator Ver(Cache,*I); + PkgIterator Pkg = Ver.ParentPkg(); + + // See if the current version is ok + if (Pkg.CurrentVer() == Ver && List->IsNow(Pkg) == true && + Pkg.State() == PkgIterator::NeedsNothing) + { + Bad = false; + continue; + } + } + + // Look for something that could be configured. + for (Version **I = VList; *I != 0 && Bad == true; I++) + { + VerIterator Ver(Cache,*I); + PkgIterator Pkg = Ver.ParentPkg(); + + // Not the install version + if (Cache[Pkg].InstallVer != *I || + (Cache[Pkg].Keep() == true && Pkg.State() == PkgIterator::NeedsNothing)) + continue; + + Bad = !SmartConfigure(Pkg); + } + + /* If this or element did not match then continue on to the + next or element until a matching element is found */ + if (Bad == true) + { + // This triggers if someone make a pre-depends/depend loop. + if (Start == End) + return _error->Error("Couldn't configure pre-depend %s for %s, " + "probably a dependency cycle.", + End.TargetPkg().Name(),Pkg.Name()); + Start++; + } + else + break; + } + + if (End->Type == pkgCache::Dep::Conflicts || + End->Type == pkgCache::Dep::Obsoletes) + { + /* Look for conflicts. Two packages that are both in the install + state cannot conflict so we don't check.. */ + SPtrArray VList = End.AllTargets(); + for (Version **I = VList; *I != 0; I++) + { + VerIterator Ver(Cache,*I); + PkgIterator Pkg = Ver.ParentPkg(); + + // See if the current version is conflicting + if (Pkg.CurrentVer() == Ver && List->IsNow(Pkg) == true) + { + if (EarlyRemove(Pkg) == false) + return _error->Error("Internal Error, Could not early remove %s",Pkg.Name()); + } + } + } + } + + // Check for reverse conflicts. + if (CheckRConflicts(Pkg,Pkg.RevDependsList(), + Cache[Pkg].InstVerIter(Cache).VerStr()) == false) + return false; + + for (PrvIterator P = Cache[Pkg].InstVerIter(Cache).ProvidesList(); + P.end() == false; P++) + CheckRConflicts(Pkg,P.ParentPkg().RevDependsList(),P.ProvideVersion()); + + if (Install(Pkg,FileNames[Pkg->ID]) == false) + return false; + + List->Flag(Pkg,pkgOrderList::UnPacked,pkgOrderList::States); + + // Perform immedate configuration of the package. + if (List->IsFlag(Pkg,pkgOrderList::Immediate) == true) + if (SmartConfigure(Pkg) == false) + return _error->Error("Internal Error, Could not perform immediate configuration (2) on %s",Pkg.Name()); + + return true; +} + /*}}}*/ +// PM::OrderInstall - Installation ordering routine /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgPackageManager::OrderResult pkgPackageManager::OrderInstall() +{ + if (CreateOrderList() == false) + return Failed; + + Reset(); + + if (Debug == true) + clog << "Begining to order" << endl; + + if (List->OrderUnpack(FileNames) == false) + { + _error->Error("Internal ordering error"); + return Failed; + } + + if (Debug == true) + clog << "Done ordering" << endl; + + bool DoneSomething = false; + for (pkgOrderList::iterator I = List->begin(); I != List->end(); I++) + { + PkgIterator Pkg(Cache,*I); + + if (List->IsNow(Pkg) == false) + { + if (Debug == true) + clog << "Skipping already done " << Pkg.Name() << endl; + continue; + } + + if (List->IsMissing(Pkg) == true) + { + if (Debug == true) + clog << "Sequence completed at " << Pkg.Name() << endl; + if (DoneSomething == false) + { + _error->Error("Internal Error, ordering was unable to handle the media swap"); + return Failed; + } + return Incomplete; + } + + // Sanity check + if (Cache[Pkg].Keep() == true && + Pkg.State() == pkgCache::PkgIterator::NeedsNothing && + (Cache[Pkg].iFlags & pkgDepCache::ReInstall) != pkgDepCache::ReInstall) + { + _error->Error("Internal Error, trying to manipulate a kept package (%s)",Pkg.Name()); + return Failed; + } + + // Perform a delete or an install + if (Cache[Pkg].Delete() == true) + { + if (SmartRemove(Pkg) == false) + return Failed; + } + else + if (SmartUnPack(Pkg) == false) + return Failed; + DoneSomething = true; + } + + // Final run through the configure phase + if (ConfigureAll() == false) + return Failed; + + // Sanity check + for (pkgOrderList::iterator I = List->begin(); I != List->end(); I++) + { + if (List->IsFlag(*I,pkgOrderList::Configured) == false) + { + _error->Error("Internal error, packages left unconfigured. %s", + PkgIterator(Cache,*I).Name()); + return Failed; + } + } + + return Completed; +} + /*}}}*/ +// PM::DoInstall - Does the installation /*{{{*/ +// --------------------------------------------------------------------- +/* This uses the filenames in FileNames and the information in the + DepCache to perform the installation of packages.*/ +pkgPackageManager::OrderResult pkgPackageManager::DoInstall(int status_fd) +{ + OrderResult Res = OrderInstall(); + if(Debug) + std::clog << "OrderInstall() returned: " << Res << std::endl; + if (Res != Failed) + if (Go(status_fd) == false) + return Failed; + return Res; +} + /*}}}*/ diff --git a/apt-pkg/packagemanager.h b/apt-pkg/packagemanager.h new file mode 100644 index 0000000..f64637d --- /dev/null +++ b/apt-pkg/packagemanager.h @@ -0,0 +1,86 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: packagemanager.h,v 1.14 2001/05/07 04:24:08 jgg Exp $ +/* ###################################################################### + + Package Manager - Abstacts the package manager + + Three steps are + - Aquiration of archives (stores the list of final file names) + - Sorting of operations + - Invokation of package manager + + This is the final stage when the package cache entities get converted + into file names and the state stored in a DepCache is transformed + into a series of operations. + + In the final scheme of things this may serve as a director class to + access the actual install methods based on the file type being + installed. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_PACKAGEMANAGER_H +#define PKGLIB_PACKAGEMANAGER_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/packagemanager.h" +#endif + +#include +#include + +using std::string; + +class pkgAcquire; +class pkgDepCache; +class pkgSourceList; +class pkgOrderList; +class pkgRecords; +class pkgPackageManager : protected pkgCache::Namespace +{ + public: + + enum OrderResult {Completed,Failed,Incomplete}; + + protected: + string *FileNames; + pkgDepCache &Cache; + pkgOrderList *List; + bool Debug; + + bool DepAdd(pkgOrderList &Order,PkgIterator P,int Depth = 0); + virtual OrderResult OrderInstall(); + bool CheckRConflicts(PkgIterator Pkg,DepIterator Dep,const char *Ver); + bool CreateOrderList(); + + // Analysis helpers + bool DepAlwaysTrue(DepIterator D); + + // Install helpers + bool ConfigureAll(); + bool SmartConfigure(PkgIterator Pkg); + bool SmartUnPack(PkgIterator Pkg); + bool SmartRemove(PkgIterator Pkg); + bool EarlyRemove(PkgIterator Pkg); + + // The Actual installation implementation + virtual bool Install(PkgIterator /*Pkg*/,string /*File*/) {return false;}; + virtual bool Configure(PkgIterator /*Pkg*/) {return false;}; + virtual bool Remove(PkgIterator /*Pkg*/,bool /*Purge*/=false) {return false;}; + virtual bool Go(int statusFd=-1) {return true;}; + virtual void Reset() {}; + + public: + + // Main action members + bool GetArchives(pkgAcquire *Owner,pkgSourceList *Sources, + pkgRecords *Recs); + OrderResult DoInstall(int statusFd=-1); + bool FixMissing(); + + pkgPackageManager(pkgDepCache *Cache); + virtual ~pkgPackageManager(); +}; + +#endif diff --git a/apt-pkg/pkgcache.cc b/apt-pkg/pkgcache.cc new file mode 100644 index 0000000..9926bef --- /dev/null +++ b/apt-pkg/pkgcache.cc @@ -0,0 +1,601 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: pkgcache.cc,v 1.37 2003/02/10 01:40:58 doogie Exp $ +/* ###################################################################### + + Package Cache - Accessor code for the cache + + Please see doc/apt-pkg/cache.sgml for a more detailed description of + this format. Also be sure to keep that file up-to-date!! + + This is the general utility functions for cache managment. They provide + a complete set of accessor functions for the cache. The cacheiterators + header contains the STL-like iterators that can be used to easially + navigate the cache as well as seemlessly dereference the mmap'd + indexes. Use these always. + + The main class provides for ways to get package indexes and some + general lookup functions to start the iterators. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/pkgcache.h" +#pragma implementation "apt-pkg/cacheiterators.h" +#endif + +#include +#include +#include +#include +#include + +#include + +#include +#include +#include + +#include +#include + /*}}}*/ + +using std::string; + +// Cache::Header::Header - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* Simply initialize the header */ +pkgCache::Header::Header() +{ + Signature = 0x98FE76DC; + + /* Whenever the structures change the major version should be bumped, + whenever the generator changes the minor version should be bumped. */ + MajorVersion = 4; + MinorVersion = 0; + Dirty = false; + + HeaderSz = sizeof(pkgCache::Header); + PackageSz = sizeof(pkgCache::Package); + PackageFileSz = sizeof(pkgCache::PackageFile); + VersionSz = sizeof(pkgCache::Version); + DependencySz = sizeof(pkgCache::Dependency); + ProvidesSz = sizeof(pkgCache::Provides); + VerFileSz = sizeof(pkgCache::VerFile); + + PackageCount = 0; + VersionCount = 0; + DependsCount = 0; + PackageFileCount = 0; + VerFileCount = 0; + ProvidesCount = 0; + MaxVerFileSize = 0; + + FileList = 0; + StringList = 0; + VerSysName = 0; + Architecture = 0; + memset(HashTable,0,sizeof(HashTable)); + memset(Pools,0,sizeof(Pools)); +} + /*}}}*/ +// Cache::Header::CheckSizes - Check if the two headers have same *sz /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgCache::Header::CheckSizes(Header &Against) const +{ + if (HeaderSz == Against.HeaderSz && + PackageSz == Against.PackageSz && + PackageFileSz == Against.PackageFileSz && + VersionSz == Against.VersionSz && + DependencySz == Against.DependencySz && + VerFileSz == Against.VerFileSz && + ProvidesSz == Against.ProvidesSz) + return true; + return false; +} + /*}}}*/ + +// Cache::pkgCache - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgCache::pkgCache(MMap *Map, bool DoMap) : Map(*Map) +{ + if (DoMap == true) + ReMap(); +} + /*}}}*/ +// Cache::ReMap - Reopen the cache file /*{{{*/ +// --------------------------------------------------------------------- +/* If the file is already closed then this will open it open it. */ +bool pkgCache::ReMap() +{ + // Apply the typecasts. + HeaderP = (Header *)Map.Data(); + PkgP = (Package *)Map.Data(); + VerFileP = (VerFile *)Map.Data(); + PkgFileP = (PackageFile *)Map.Data(); + VerP = (Version *)Map.Data(); + ProvideP = (Provides *)Map.Data(); + DepP = (Dependency *)Map.Data(); + StringItemP = (StringItem *)Map.Data(); + StrP = (char *)Map.Data(); + + if (Map.Size() == 0 || HeaderP == 0) + return _error->Error(_("Empty package cache")); + + // Check the header + Header DefHeader; + if (HeaderP->Signature != DefHeader.Signature || + HeaderP->Dirty == true) + return _error->Error(_("The package cache file is corrupted")); + + if (HeaderP->MajorVersion != DefHeader.MajorVersion || + HeaderP->MinorVersion != DefHeader.MinorVersion || + HeaderP->CheckSizes(DefHeader) == false) + return _error->Error(_("The package cache file is an incompatible version")); + + // Locate our VS.. + if (HeaderP->VerSysName == 0 || + (VS = pkgVersioningSystem::GetVS(StrP + HeaderP->VerSysName)) == 0) + return _error->Error(_("This APT does not support the versioning system '%s'"),StrP + HeaderP->VerSysName); + + // Chcek the arhcitecture + if (HeaderP->Architecture == 0 || + _config->Find("APT::Architecture") != StrP + HeaderP->Architecture) + return _error->Error(_("The package cache was built for a different architecture")); + return true; +} + /*}}}*/ +// Cache::Hash - Hash a string /*{{{*/ +// --------------------------------------------------------------------- +/* This is used to generate the hash entries for the HashTable. With my + package list from bo this function gets 94% table usage on a 512 item + table (480 used items) */ +unsigned long pkgCache::sHash(const string &Str) const +{ + unsigned long Hash = 0; + for (string::const_iterator I = Str.begin(); I != Str.end(); I++) + Hash = 5*Hash + tolower(*I); + return Hash % _count(HeaderP->HashTable); +} + +unsigned long pkgCache::sHash(const char *Str) const +{ + unsigned long Hash = 0; + for (const char *I = Str; *I != 0; I++) + Hash = 5*Hash + tolower(*I); + return Hash % _count(HeaderP->HashTable); +} + + /*}}}*/ +// Cache::FindPkg - Locate a package by name /*{{{*/ +// --------------------------------------------------------------------- +/* Returns 0 on error, pointer to the package otherwise */ +pkgCache::PkgIterator pkgCache::FindPkg(const string &Name) +{ + // Look at the hash bucket + Package *Pkg = PkgP + HeaderP->HashTable[Hash(Name)]; + for (; Pkg != PkgP; Pkg = PkgP + Pkg->NextPackage) + { + if (Pkg->Name != 0 && StrP[Pkg->Name] == Name[0] && + stringcasecmp(Name,StrP + Pkg->Name) == 0) + return PkgIterator(*this,Pkg); + } + return PkgIterator(*this,0); +} + /*}}}*/ +// Cache::CompTypeDeb - Return a string describing the compare type /*{{{*/ +// --------------------------------------------------------------------- +/* This returns a string representation of the dependency compare + type in the weird debian style.. */ +const char *pkgCache::CompTypeDeb(unsigned char Comp) +{ + const char *Ops[] = {"","<=",">=","<<",">>","=","!="}; + if ((unsigned)(Comp & 0xF) < 7) + return Ops[Comp & 0xF]; + return ""; +} + /*}}}*/ +// Cache::CompType - Return a string describing the compare type /*{{{*/ +// --------------------------------------------------------------------- +/* This returns a string representation of the dependency compare + type */ +const char *pkgCache::CompType(unsigned char Comp) +{ + const char *Ops[] = {"","<=",">=","<",">","=","!="}; + if ((unsigned)(Comp & 0xF) < 7) + return Ops[Comp & 0xF]; + return ""; +} + /*}}}*/ +// Cache::DepType - Return a string describing the dep type /*{{{*/ +// --------------------------------------------------------------------- +/* */ +const char *pkgCache::DepType(unsigned char Type) +{ + const char *Types[] = {"",_("Depends"),_("PreDepends"),_("Suggests"), + _("Recommends"),_("Conflicts"),_("Replaces"), + _("Obsoletes")}; + if (Type < 8) + return Types[Type]; + return ""; +} + /*}}}*/ +// Cache::Priority - Convert a priority value to a string /*{{{*/ +// --------------------------------------------------------------------- +/* */ +const char *pkgCache::Priority(unsigned char Prio) +{ + const char *Mapping[] = {0,_("important"),_("required"),_("standard"), + _("optional"),_("extra")}; + if (Prio < _count(Mapping)) + return Mapping[Prio]; + return 0; +} + /*}}}*/ + +// Bases for iterator classes /*{{{*/ +void pkgCache::VerIterator::_dummy() {} +void pkgCache::DepIterator::_dummy() {} +void pkgCache::PrvIterator::_dummy() {} + /*}}}*/ +// PkgIterator::operator ++ - Postfix incr /*{{{*/ +// --------------------------------------------------------------------- +/* This will advance to the next logical package in the hash table. */ +void pkgCache::PkgIterator::operator ++(int) +{ + // Follow the current links + if (Pkg != Owner->PkgP) + Pkg = Owner->PkgP + Pkg->NextPackage; + + // Follow the hash table + while (Pkg == Owner->PkgP && (HashIndex+1) < (signed)_count(Owner->HeaderP->HashTable)) + { + HashIndex++; + Pkg = Owner->PkgP + Owner->HeaderP->HashTable[HashIndex]; + } +}; + /*}}}*/ +// PkgIterator::State - Check the State of the package /*{{{*/ +// --------------------------------------------------------------------- +/* By this we mean if it is either cleanly installed or cleanly removed. */ +pkgCache::PkgIterator::OkState pkgCache::PkgIterator::State() const +{ + if (Pkg->InstState == pkgCache::State::ReInstReq || + Pkg->InstState == pkgCache::State::HoldReInstReq) + return NeedsUnpack; + + if (Pkg->CurrentState == pkgCache::State::UnPacked || + Pkg->CurrentState == pkgCache::State::HalfConfigured) + return NeedsConfigure; + + if (Pkg->CurrentState == pkgCache::State::HalfInstalled || + Pkg->InstState != pkgCache::State::Ok) + return NeedsUnpack; + + return NeedsNothing; +} + /*}}}*/ +// DepIterator::IsCritical - Returns true if the dep is important /*{{{*/ +// --------------------------------------------------------------------- +/* Currently critical deps are defined as depends, predepends and + conflicts. */ +bool pkgCache::DepIterator::IsCritical() +{ + if (Dep->Type == pkgCache::Dep::Conflicts || + Dep->Type == pkgCache::Dep::Obsoletes || + Dep->Type == pkgCache::Dep::Depends || + Dep->Type == pkgCache::Dep::PreDepends) + return true; + return false; +} + /*}}}*/ +// DepIterator::SmartTargetPkg - Resolve dep target pointers w/provides /*{{{*/ +// --------------------------------------------------------------------- +/* This intellegently looks at dep target packages and tries to figure + out which package should be used. This is needed to nicely handle + provide mapping. If the target package has no other providing packages + then it returned. Otherwise the providing list is looked at to + see if there is one one unique providing package if so it is returned. + Otherwise true is returned and the target package is set. The return + result indicates whether the node should be expandable + + In Conjunction with the DepCache the value of Result may not be + super-good since the policy may have made it uninstallable. Using + AllTargets is better in this case. */ +bool pkgCache::DepIterator::SmartTargetPkg(PkgIterator &Result) +{ + Result = TargetPkg(); + + // No provides at all + if (Result->ProvidesList == 0) + return false; + + // There is the Base package and the providing ones which is at least 2 + if (Result->VersionList != 0) + return true; + + /* We have to skip over indirect provisions of the package that + owns the dependency. For instance, if libc5-dev depends on the + virtual package libc-dev which is provided by libc5-dev and libc6-dev + we must ignore libc5-dev when considering the provides list. */ + PrvIterator PStart = Result.ProvidesList(); + for (; PStart.end() != true && PStart.OwnerPkg() == ParentPkg(); PStart++); + + // Nothing but indirect self provides + if (PStart.end() == true) + return false; + + // Check for single packages in the provides list + PrvIterator P = PStart; + for (; P.end() != true; P++) + { + // Skip over self provides + if (P.OwnerPkg() == ParentPkg()) + continue; + if (PStart.OwnerPkg() != P.OwnerPkg()) + break; + } + + Result = PStart.OwnerPkg(); + + // Check for non dups + if (P.end() != true) + return true; + + return false; +} + /*}}}*/ +// DepIterator::AllTargets - Returns the set of all possible targets /*{{{*/ +// --------------------------------------------------------------------- +/* This is a more useful version of TargetPkg() that follows versioned + provides. It includes every possible package-version that could satisfy + the dependency. The last item in the list has a 0. The resulting pointer + must be delete [] 'd */ +pkgCache::Version **pkgCache::DepIterator::AllTargets() +{ + Version **Res = 0; + unsigned long Size =0; + while (1) + { + Version **End = Res; + PkgIterator DPkg = TargetPkg(); + + // Walk along the actual package providing versions + for (VerIterator I = DPkg.VersionList(); I.end() == false; I++) + { + if (Owner->VS->CheckDep(I.VerStr(),Dep->CompareOp,TargetVer()) == false) + continue; + + if ((Dep->Type == pkgCache::Dep::Conflicts || + Dep->Type == pkgCache::Dep::Obsoletes) && + ParentPkg() == I.ParentPkg()) + continue; + + Size++; + if (Res != 0) + *End++ = I; + } + + // Follow all provides + for (PrvIterator I = DPkg.ProvidesList(); I.end() == false; I++) + { + if (Owner->VS->CheckDep(I.ProvideVersion(),Dep->CompareOp,TargetVer()) == false) + continue; + + if ((Dep->Type == pkgCache::Dep::Conflicts || + Dep->Type == pkgCache::Dep::Obsoletes) && + ParentPkg() == I.OwnerPkg()) + continue; + + Size++; + if (Res != 0) + *End++ = I.OwnerVer(); + } + + // Do it again and write it into the array + if (Res == 0) + { + Res = new Version *[Size+1]; + Size = 0; + } + else + { + *End = 0; + break; + } + } + + return Res; +} + /*}}}*/ +// DepIterator::GlobOr - Compute an OR group /*{{{*/ +// --------------------------------------------------------------------- +/* This Takes an iterator, iterates past the current dependency grouping + and returns Start and End so that so End is the final element + in the group, if End == Start then D is End++ and End is the + dependency D was pointing to. Use in loops to iterate sensibly. */ +void pkgCache::DepIterator::GlobOr(DepIterator &Start,DepIterator &End) +{ + // Compute a single dependency element (glob or) + Start = *this; + End = *this; + for (bool LastOR = true; end() == false && LastOR == true;) + { + LastOR = (Dep->CompareOp & pkgCache::Dep::Or) == pkgCache::Dep::Or; + (*this)++; + if (LastOR == true) + End = (*this); + } +} + /*}}}*/ +// VerIterator::CompareVer - Fast version compare for same pkgs /*{{{*/ +// --------------------------------------------------------------------- +/* This just looks over the version list to see if B is listed before A. In + most cases this will return in under 4 checks, ver lists are short. */ +int pkgCache::VerIterator::CompareVer(const VerIterator &B) const +{ + // Check if they are equal + if (*this == B) + return 0; + if (end() == true) + return -1; + if (B.end() == true) + return 1; + + /* Start at A and look for B. If B is found then A > B otherwise + B was before A so A < B */ + VerIterator I = *this; + for (;I.end() == false; I++) + if (I == B) + return 1; + return -1; +} + /*}}}*/ +// VerIterator::Downloadable - Checks if the version is downloadable /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgCache::VerIterator::Downloadable() const +{ + VerFileIterator Files = FileList(); + for (; Files.end() == false; Files++) + if ((Files.File()->Flags & pkgCache::Flag::NotSource) != pkgCache::Flag::NotSource) + return true; + return false; +} + /*}}}*/ +// VerIterator::Automatic - Check if this version is 'automatic' /*{{{*/ +// --------------------------------------------------------------------- +/* This checks to see if any of the versions files are not NotAutomatic. + True if this version is selectable for automatic installation. */ +bool pkgCache::VerIterator::Automatic() const +{ + VerFileIterator Files = FileList(); + for (; Files.end() == false; Files++) + if ((Files.File()->Flags & pkgCache::Flag::NotAutomatic) != pkgCache::Flag::NotAutomatic) + return true; + return false; +} + /*}}}*/ +// VerIterator::NewestFile - Return the newest file version relation /*{{{*/ +// --------------------------------------------------------------------- +/* This looks at the version numbers associated with all of the sources + this version is in and returns the highest.*/ +pkgCache::VerFileIterator pkgCache::VerIterator::NewestFile() const +{ + VerFileIterator Files = FileList(); + VerFileIterator Highest = Files; + for (; Files.end() == false; Files++) + { + if (Owner->VS->CmpReleaseVer(Files.File().Version(),Highest.File().Version()) > 0) + Highest = Files; + } + + return Highest; +} + /*}}}*/ +// VerIterator::RelStr - Release description string /*{{{*/ +// --------------------------------------------------------------------- +/* This describes the version from a release-centric manner. The output is a + list of Label:Version/Archive */ +string pkgCache::VerIterator::RelStr() +{ + bool First = true; + string Res; + for (pkgCache::VerFileIterator I = this->FileList(); I.end() == false; I++) + { + // Do not print 'not source' entries' + pkgCache::PkgFileIterator File = I.File(); + if ((File->Flags & pkgCache::Flag::NotSource) == pkgCache::Flag::NotSource) + continue; + + // See if we have already printed this out.. + bool Seen = false; + for (pkgCache::VerFileIterator J = this->FileList(); I != J; J++) + { + pkgCache::PkgFileIterator File2 = J.File(); + if (File2->Label == 0 || File->Label == 0) + continue; + + if (strcmp(File.Label(),File2.Label()) != 0) + continue; + + if (File2->Version == File->Version) + { + Seen = true; + break; + } + if (File2->Version == 0 || File->Version == 0) + break; + if (strcmp(File.Version(),File2.Version()) == 0) + Seen = true; + } + + if (Seen == true) + continue; + + if (First == false) + Res += ", "; + else + First = false; + + if (File->Label != 0) + Res = Res + File.Label() + ':'; + + if (File->Archive != 0) + { + if (File->Version == 0) + Res += File.Archive(); + else + Res = Res + File.Version() + '/' + File.Archive(); + } + else + { + // No release file, print the host name that this came from + if (File->Site == 0 || File.Site()[0] == 0) + Res += "localhost"; + else + Res += File.Site(); + } + } + return Res; +} + /*}}}*/ +// PkgFileIterator::IsOk - Checks if the cache is in sync with the file /*{{{*/ +// --------------------------------------------------------------------- +/* This stats the file and compares its stats with the ones that were + stored during generation. Date checks should probably also be + included here. */ +bool pkgCache::PkgFileIterator::IsOk() +{ + struct stat Buf; + if (stat(FileName(),&Buf) != 0) + return false; + + if (Buf.st_size != (signed)File->Size || Buf.st_mtime != File->mtime) + return false; + + return true; +} + /*}}}*/ +// PkgFileIterator::RelStr - Return the release string /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string pkgCache::PkgFileIterator::RelStr() +{ + string Res; + if (Version() != 0) + Res = Res + (Res.empty() == true?"v=":",v=") + Version(); + if (Origin() != 0) + Res = Res + (Res.empty() == true?"o=":",o=") + Origin(); + if (Archive() != 0) + Res = Res + (Res.empty() == true?"a=":",a=") + Archive(); + if (Label() != 0) + Res = Res + (Res.empty() == true?"l=":",l=") + Label(); + if (Component() != 0) + Res = Res + (Res.empty() == true?"c=":",c=") + Component(); + return Res; +} + /*}}}*/ diff --git a/apt-pkg/pkgcache.h b/apt-pkg/pkgcache.h new file mode 100644 index 0000000..587d975 --- /dev/null +++ b/apt-pkg/pkgcache.h @@ -0,0 +1,313 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: pkgcache.h,v 1.25 2001/07/01 22:28:24 jgg Exp $ +/* ###################################################################### + + Cache - Structure definitions for the cache file + + Please see doc/apt-pkg/cache.sgml for a more detailed description of + this format. Also be sure to keep that file up-to-date!! + + Clients should always use the CacheIterators classes for access to the + cache. They provide a simple STL-like method for traversing the links + of the datastructure. + + See pkgcachegen.h for information about generating cache structures. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_PKGCACHE_H +#define PKGLIB_PKGCACHE_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/pkgcache.h" +#endif + +#include +#include +#include + +using std::string; + +class pkgVersioningSystem; +class pkgCache +{ + public: + // Cache element predeclarations + struct Header; + struct Package; + struct PackageFile; + struct Version; + struct Provides; + struct Dependency; + struct StringItem; + struct VerFile; + + // Iterators + class PkgIterator; + class VerIterator; + class DepIterator; + class PrvIterator; + class PkgFileIterator; + class VerFileIterator; + friend class PkgIterator; + friend class VerIterator; + friend class DepIterator; + friend class PrvIterator; + friend class PkgFileIterator; + friend class VerFileIterator; + + class Namespace; + + // These are all the constants used in the cache structures + struct Dep + { + enum DepType {Depends=1,PreDepends=2,Suggests=3,Recommends=4, + Conflicts=5,Replaces=6,Obsoletes=7}; + enum DepCompareOp {Or=0x10,NoOp=0,LessEq=0x1,GreaterEq=0x2,Less=0x3, + Greater=0x4,Equals=0x5,NotEquals=0x6}; + }; + + struct State + { + enum VerPriority {Important=1,Required=2,Standard=3,Optional=4,Extra=5}; + enum PkgSelectedState {Unknown=0,Install=1,Hold=2,DeInstall=3,Purge=4}; + enum PkgInstState {Ok=0,ReInstReq=1,HoldInst=2,HoldReInstReq=3}; + enum PkgCurrentState {NotInstalled=0,UnPacked=1,HalfConfigured=2, + HalfInstalled=4,ConfigFiles=5,Installed=6}; + }; + + struct Flag + { + enum PkgFlags {Auto=(1<<0),Essential=(1<<3),Important=(1<<4)}; + enum PkgFFlags {NotSource=(1<<0),NotAutomatic=(1<<1)}; + }; + + protected: + + // Memory mapped cache file + string CacheFile; + MMap ⤅ + + unsigned long sHash(const string &S) const; + unsigned long sHash(const char *S) const; + + public: + + // Pointers to the arrays of items + Header *HeaderP; + Package *PkgP; + VerFile *VerFileP; + PackageFile *PkgFileP; + Version *VerP; + Provides *ProvideP; + Dependency *DepP; + StringItem *StringItemP; + char *StrP; + + virtual bool ReMap(); + inline bool Sync() {return Map.Sync();}; + inline MMap &GetMap() {return Map;}; + inline void *DataEnd() {return ((unsigned char *)Map.Data()) + Map.Size();}; + + // String hashing function (512 range) + inline unsigned long Hash(const string &S) const {return sHash(S);}; + inline unsigned long Hash(const char *S) const {return sHash(S);}; + + // Usefull transformation things + const char *Priority(unsigned char Priority); + + // Accessors + PkgIterator FindPkg(const string &Name); + Header &Head() {return *HeaderP;}; + inline PkgIterator PkgBegin(); + inline PkgIterator PkgEnd(); + inline PkgFileIterator FileBegin(); + inline PkgFileIterator FileEnd(); + + // Make me a function + pkgVersioningSystem *VS; + + // Converters + static const char *CompTypeDeb(unsigned char Comp); + static const char *CompType(unsigned char Comp); + static const char *DepType(unsigned char Dep); + + pkgCache(MMap *Map,bool DoMap = true); + virtual ~pkgCache() {}; +}; + +// Header structure +struct pkgCache::Header +{ + // Signature information + unsigned long Signature; + short MajorVersion; + short MinorVersion; + bool Dirty; + + // Size of structure values + unsigned short HeaderSz; + unsigned short PackageSz; + unsigned short PackageFileSz; + unsigned short VersionSz; + unsigned short DependencySz; + unsigned short ProvidesSz; + unsigned short VerFileSz; + + // Structure counts + unsigned long PackageCount; + unsigned long VersionCount; + unsigned long DependsCount; + unsigned long PackageFileCount; + unsigned long VerFileCount; + unsigned long ProvidesCount; + + // Offsets + map_ptrloc FileList; // struct PackageFile + map_ptrloc StringList; // struct StringItem + map_ptrloc VerSysName; // StringTable + map_ptrloc Architecture; // StringTable + unsigned long MaxVerFileSize; + + /* Allocation pools, there should be one of these for each structure + excluding the header */ + DynamicMMap::Pool Pools[7]; + + // Rapid package name lookup + map_ptrloc HashTable[2*1048]; + + bool CheckSizes(Header &Against) const; + Header(); +}; + +struct pkgCache::Package +{ + // Pointers + map_ptrloc Name; // Stringtable + map_ptrloc VersionList; // Version + map_ptrloc CurrentVer; // Version + map_ptrloc Section; // StringTable (StringItem) + + // Linked list + map_ptrloc NextPackage; // Package + map_ptrloc RevDepends; // Dependency + map_ptrloc ProvidesList; // Provides + + // Install/Remove/Purge etc + unsigned char SelectedState; // What + unsigned char InstState; // Flags + unsigned char CurrentState; // State + + unsigned short ID; + unsigned long Flags; +}; + +struct pkgCache::PackageFile +{ + // Names + map_ptrloc FileName; // Stringtable + map_ptrloc Archive; // Stringtable + map_ptrloc Component; // Stringtable + map_ptrloc Version; // Stringtable + map_ptrloc Origin; // Stringtable + map_ptrloc Label; // Stringtable + map_ptrloc Architecture; // Stringtable + map_ptrloc Site; // Stringtable + map_ptrloc IndexType; // Stringtable + unsigned long Size; + unsigned long Flags; + + // Linked list + map_ptrloc NextFile; // PackageFile + unsigned short ID; + time_t mtime; // Modification time for the file +}; + +struct pkgCache::VerFile +{ + map_ptrloc File; // PackageFile + map_ptrloc NextFile; // PkgVerFile + map_ptrloc Offset; // File offset + unsigned short Size; +}; + +struct pkgCache::Version +{ + map_ptrloc VerStr; // Stringtable + map_ptrloc Section; // StringTable (StringItem) + map_ptrloc Arch; // StringTable + + // Lists + map_ptrloc FileList; // VerFile + map_ptrloc NextVer; // Version + map_ptrloc DependsList; // Dependency + map_ptrloc ParentPkg; // Package + map_ptrloc ProvidesList; // Provides + + map_ptrloc Size; // These are the .deb size + map_ptrloc InstalledSize; + unsigned short Hash; + unsigned short ID; + unsigned char Priority; +}; + +struct pkgCache::Dependency +{ + map_ptrloc Version; // Stringtable + map_ptrloc Package; // Package + map_ptrloc NextDepends; // Dependency + map_ptrloc NextRevDepends; // Dependency + map_ptrloc ParentVer; // Version + + // Specific types of depends + map_ptrloc ID; + unsigned char Type; + unsigned char CompareOp; +}; + +struct pkgCache::Provides +{ + map_ptrloc ParentPkg; // Pacakge + map_ptrloc Version; // Version + map_ptrloc ProvideVersion; // Stringtable + map_ptrloc NextProvides; // Provides + map_ptrloc NextPkgProv; // Provides +}; + +struct pkgCache::StringItem +{ + map_ptrloc String; // Stringtable + map_ptrloc NextItem; // StringItem +}; + +#include + +inline pkgCache::PkgIterator pkgCache::PkgBegin() + {return PkgIterator(*this);}; +inline pkgCache::PkgIterator pkgCache::PkgEnd() + {return PkgIterator(*this,PkgP);}; +inline pkgCache::PkgFileIterator pkgCache::FileBegin() + {return PkgFileIterator(*this,PkgFileP + HeaderP->FileList);}; +inline pkgCache::PkgFileIterator pkgCache::FileEnd() + {return PkgFileIterator(*this,PkgFileP);}; + +// Oh I wish for Real Name Space Support +class pkgCache::Namespace +{ + public: + + typedef pkgCache::PkgIterator PkgIterator; + typedef pkgCache::VerIterator VerIterator; + typedef pkgCache::DepIterator DepIterator; + typedef pkgCache::PrvIterator PrvIterator; + typedef pkgCache::PkgFileIterator PkgFileIterator; + typedef pkgCache::VerFileIterator VerFileIterator; + typedef pkgCache::Version Version; + typedef pkgCache::Package Package; + typedef pkgCache::Header Header; + typedef pkgCache::Dep Dep; + typedef pkgCache::Flag Flag; +}; + +#endif diff --git a/apt-pkg/pkgcachegen.cc b/apt-pkg/pkgcachegen.cc new file mode 100644 index 0000000..de854be --- /dev/null +++ b/apt-pkg/pkgcachegen.cc @@ -0,0 +1,854 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: pkgcachegen.cc,v 1.53.2.1 2003/12/24 23:09:17 mdz Exp $ +/* ###################################################################### + + Package Cache Generator - Generator for the cache structure. + + This builds the cache structure from the abstract package list parser. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/pkgcachegen.h" +#endif + +#define APT_COMPATIBILITY 986 + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +#include +#include +#include +#include +#include + /*}}}*/ +typedef vector::iterator FileIterator; + +// CacheGenerator::pkgCacheGenerator - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* We set the diry flag and make sure that is written to the disk */ +pkgCacheGenerator::pkgCacheGenerator(DynamicMMap *pMap,OpProgress *Prog) : + Map(*pMap), Cache(pMap,false), Progress(Prog), + FoundFileDeps(0) +{ + CurrentFile = 0; + memset(UniqHash,0,sizeof(UniqHash)); + + if (_error->PendingError() == true) + return; + + if (Map.Size() == 0) + { + // Setup the map interface.. + Cache.HeaderP = (pkgCache::Header *)Map.Data(); + Map.RawAllocate(sizeof(pkgCache::Header)); + Map.UsePools(*Cache.HeaderP->Pools,sizeof(Cache.HeaderP->Pools)/sizeof(Cache.HeaderP->Pools[0])); + + // Starting header + *Cache.HeaderP = pkgCache::Header(); + Cache.HeaderP->VerSysName = Map.WriteString(_system->VS->Label); + Cache.HeaderP->Architecture = Map.WriteString(_config->Find("APT::Architecture")); + Cache.ReMap(); + } + else + { + // Map directly from the existing file + Cache.ReMap(); + Map.UsePools(*Cache.HeaderP->Pools,sizeof(Cache.HeaderP->Pools)/sizeof(Cache.HeaderP->Pools[0])); + if (Cache.VS != _system->VS) + { + _error->Error(_("Cache has an incompatible versioning system")); + return; + } + } + + Cache.HeaderP->Dirty = true; + Map.Sync(0,sizeof(pkgCache::Header)); +} + /*}}}*/ +// CacheGenerator::~pkgCacheGenerator - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* We sync the data then unset the dirty flag in two steps so as to + advoid a problem during a crash */ +pkgCacheGenerator::~pkgCacheGenerator() +{ + if (_error->PendingError() == true) + return; + if (Map.Sync() == false) + return; + + Cache.HeaderP->Dirty = false; + Map.Sync(0,sizeof(pkgCache::Header)); +} + /*}}}*/ +// CacheGenerator::MergeList - Merge the package list /*{{{*/ +// --------------------------------------------------------------------- +/* This provides the generation of the entries in the cache. Each loop + goes through a single package record from the underlying parse engine. */ +bool pkgCacheGenerator::MergeList(ListParser &List, + pkgCache::VerIterator *OutVer) +{ + List.Owner = this; + + unsigned int Counter = 0; + while (List.Step() == true) + { + // Get a pointer to the package structure + string PackageName = List.Package(); + if (PackageName.empty() == true) + return false; + + pkgCache::PkgIterator Pkg; + if (NewPackage(Pkg,PackageName) == false) + return _error->Error(_("Error occurred while processing %s (NewPackage)"),PackageName.c_str()); + Counter++; + if (Counter % 100 == 0 && Progress != 0) + Progress->Progress(List.Offset()); + + /* Get a pointer to the version structure. We know the list is sorted + so we use that fact in the search. Insertion of new versions is + done with correct sorting */ + string Version = List.Version(); + if (Version.empty() == true) + { + if (List.UsePackage(Pkg,pkgCache::VerIterator(Cache)) == false) + return _error->Error(_("Error occurred while processing %s (UsePackage1)"), + PackageName.c_str()); + continue; + } + + pkgCache::VerIterator Ver = Pkg.VersionList(); + map_ptrloc *Last = &Pkg->VersionList; + int Res = 1; + for (; Ver.end() == false; Last = &Ver->NextVer, Ver++) + { + Res = Cache.VS->CmpVersion(Version,Ver.VerStr()); + if (Res >= 0) + break; + } + + /* We already have a version for this item, record that we + saw it */ + unsigned long Hash = List.VersionHash(); + if (Res == 0 && Ver->Hash == Hash) + { + if (List.UsePackage(Pkg,Ver) == false) + return _error->Error(_("Error occurred while processing %s (UsePackage2)"), + PackageName.c_str()); + + if (NewFileVer(Ver,List) == false) + return _error->Error(_("Error occurred while processing %s (NewFileVer1)"), + PackageName.c_str()); + + // Read only a single record and return + if (OutVer != 0) + { + *OutVer = Ver; + FoundFileDeps |= List.HasFileDeps(); + return true; + } + + continue; + } + + // Skip to the end of the same version set. + if (Res == 0) + { + for (; Ver.end() == false; Last = &Ver->NextVer, Ver++) + { + Res = Cache.VS->CmpVersion(Version,Ver.VerStr()); + if (Res != 0) + break; + } + } + + // Add a new version + *Last = NewVersion(Ver,Version,*Last); + Ver->ParentPkg = Pkg.Index(); + Ver->Hash = Hash; + if (List.NewVersion(Ver) == false) + return _error->Error(_("Error occurred while processing %s (NewVersion1)"), + PackageName.c_str()); + + if (List.UsePackage(Pkg,Ver) == false) + return _error->Error(_("Error occurred while processing %s (UsePackage3)"), + PackageName.c_str()); + + if (NewFileVer(Ver,List) == false) + return _error->Error(_("Error occurred while processing %s (NewVersion2)"), + PackageName.c_str()); + + // Read only a single record and return + if (OutVer != 0) + { + *OutVer = Ver; + FoundFileDeps |= List.HasFileDeps(); + return true; + } + } + + FoundFileDeps |= List.HasFileDeps(); + + if (Cache.HeaderP->PackageCount >= (1ULL<ID)*8)-1) + return _error->Error(_("Wow, you exceeded the number of package " + "names this APT is capable of.")); + if (Cache.HeaderP->VersionCount >= (1ULL<<(sizeof(Cache.VerP->ID)*8))-1) + return _error->Error(_("Wow, you exceeded the number of versions " + "this APT is capable of.")); + if (Cache.HeaderP->DependsCount >= (1ULL<<(sizeof(Cache.DepP->ID)*8))-1ULL) + return _error->Error(_("Wow, you exceeded the number of dependencies " + "this APT is capable of.")); + return true; +} + /*}}}*/ +// CacheGenerator::MergeFileProvides - Merge file provides /*{{{*/ +// --------------------------------------------------------------------- +/* If we found any file depends while parsing the main list we need to + resolve them. Since it is undesired to load the entire list of files + into the cache as virtual packages we do a two stage effort. MergeList + identifies the file depends and this creates Provdies for them by + re-parsing all the indexs. */ +bool pkgCacheGenerator::MergeFileProvides(ListParser &List) +{ + List.Owner = this; + + unsigned int Counter = 0; + while (List.Step() == true) + { + string PackageName = List.Package(); + if (PackageName.empty() == true) + return false; + string Version = List.Version(); + if (Version.empty() == true) + continue; + + pkgCache::PkgIterator Pkg = Cache.FindPkg(PackageName); + if (Pkg.end() == true) + return _error->Error(_("Error occurred while processing %s (FindPkg)"), + PackageName.c_str()); + Counter++; + if (Counter % 100 == 0 && Progress != 0) + Progress->Progress(List.Offset()); + + unsigned long Hash = List.VersionHash(); + pkgCache::VerIterator Ver = Pkg.VersionList(); + for (; Ver.end() == false; Ver++) + { + if (Ver->Hash == Hash && Version.c_str() == Ver.VerStr()) + { + if (List.CollectFileProvides(Cache,Ver) == false) + return _error->Error(_("Error occurred while processing %s (CollectFileProvides)"),PackageName.c_str()); + break; + } + } + + if (Ver.end() == true) + _error->Warning(_("Package %s %s was not found while processing file dependencies"),PackageName.c_str(),Version.c_str()); + } + + return true; +} + /*}}}*/ +// CacheGenerator::NewPackage - Add a new package /*{{{*/ +// --------------------------------------------------------------------- +/* This creates a new package structure and adds it to the hash table */ +bool pkgCacheGenerator::NewPackage(pkgCache::PkgIterator &Pkg,const string &Name) +{ + Pkg = Cache.FindPkg(Name); + if (Pkg.end() == false) + return true; + + // Get a structure + unsigned long Package = Map.Allocate(sizeof(pkgCache::Package)); + if (Package == 0) + return false; + + Pkg = pkgCache::PkgIterator(Cache,Cache.PkgP + Package); + + // Insert it into the hash table + unsigned long Hash = Cache.Hash(Name); + Pkg->NextPackage = Cache.HeaderP->HashTable[Hash]; + Cache.HeaderP->HashTable[Hash] = Package; + + // Set the name and the ID + Pkg->Name = Map.WriteString(Name); + if (Pkg->Name == 0) + return false; + Pkg->ID = Cache.HeaderP->PackageCount++; + + return true; +} + /*}}}*/ +// CacheGenerator::NewFileVer - Create a new File<->Version association /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgCacheGenerator::NewFileVer(pkgCache::VerIterator &Ver, + ListParser &List) +{ + if (CurrentFile == 0) + return true; + + // Get a structure + unsigned long VerFile = Map.Allocate(sizeof(pkgCache::VerFile)); + if (VerFile == 0) + return 0; + + pkgCache::VerFileIterator VF(Cache,Cache.VerFileP + VerFile); + VF->File = CurrentFile - Cache.PkgFileP; + + // Link it to the end of the list + map_ptrloc *Last = &Ver->FileList; + for (pkgCache::VerFileIterator V = Ver.FileList(); V.end() == false; V++) + Last = &V->NextFile; + VF->NextFile = *Last; + *Last = VF.Index(); + + VF->Offset = List.Offset(); + VF->Size = List.Size(); + if (Cache.HeaderP->MaxVerFileSize < VF->Size) + Cache.HeaderP->MaxVerFileSize = VF->Size; + Cache.HeaderP->VerFileCount++; + + return true; +} + /*}}}*/ +// CacheGenerator::NewVersion - Create a new Version /*{{{*/ +// --------------------------------------------------------------------- +/* This puts a version structure in the linked list */ +unsigned long pkgCacheGenerator::NewVersion(pkgCache::VerIterator &Ver, + const string &VerStr, + unsigned long Next) +{ + // Get a structure + unsigned long Version = Map.Allocate(sizeof(pkgCache::Version)); + if (Version == 0) + return 0; + + // Fill it in + Ver = pkgCache::VerIterator(Cache,Cache.VerP + Version); + Ver->NextVer = Next; + Ver->ID = Cache.HeaderP->VersionCount++; + Ver->VerStr = Map.WriteString(VerStr); + if (Ver->VerStr == 0) + return 0; + + return Version; +} + /*}}}*/ +// ListParser::NewDepends - Create a dependency element /*{{{*/ +// --------------------------------------------------------------------- +/* This creates a dependency element in the tree. It is linked to the + version and to the package that it is pointing to. */ +bool pkgCacheGenerator::ListParser::NewDepends(pkgCache::VerIterator Ver, + const string &PackageName, + const string &Version, + unsigned int Op, + unsigned int Type) +{ + pkgCache &Cache = Owner->Cache; + + // Get a structure + unsigned long Dependency = Owner->Map.Allocate(sizeof(pkgCache::Dependency)); + if (Dependency == 0) + return false; + + // Fill it in + pkgCache::DepIterator Dep(Cache,Cache.DepP + Dependency); + Dep->ParentVer = Ver.Index(); + Dep->Type = Type; + Dep->CompareOp = Op; + Dep->ID = Cache.HeaderP->DependsCount++; + + // Locate the target package + pkgCache::PkgIterator Pkg; + if (Owner->NewPackage(Pkg,PackageName) == false) + return false; + + // Probe the reverse dependency list for a version string that matches + if (Version.empty() == false) + { +/* for (pkgCache::DepIterator I = Pkg.RevDependsList(); I.end() == false; I++) + if (I->Version != 0 && I.TargetVer() == Version) + Dep->Version = I->Version;*/ + if (Dep->Version == 0) + if ((Dep->Version = WriteString(Version)) == 0) + return false; + } + + // Link it to the package + Dep->Package = Pkg.Index(); + Dep->NextRevDepends = Pkg->RevDepends; + Pkg->RevDepends = Dep.Index(); + + /* Link it to the version (at the end of the list) + Caching the old end point speeds up generation substantially */ + if (OldDepVer != Ver) + { + OldDepLast = &Ver->DependsList; + for (pkgCache::DepIterator D = Ver.DependsList(); D.end() == false; D++) + OldDepLast = &D->NextDepends; + OldDepVer = Ver; + } + + // Is it a file dependency? + if (PackageName[0] == '/') + FoundFileDeps = true; + + Dep->NextDepends = *OldDepLast; + *OldDepLast = Dep.Index(); + OldDepLast = &Dep->NextDepends; + + return true; +} + /*}}}*/ +// ListParser::NewProvides - Create a Provides element /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgCacheGenerator::ListParser::NewProvides(pkgCache::VerIterator Ver, + const string &PackageName, + const string &Version) +{ + pkgCache &Cache = Owner->Cache; + + // We do not add self referencing provides + if (Ver.ParentPkg().Name() == PackageName) + return true; + + // Get a structure + unsigned long Provides = Owner->Map.Allocate(sizeof(pkgCache::Provides)); + if (Provides == 0) + return false; + Cache.HeaderP->ProvidesCount++; + + // Fill it in + pkgCache::PrvIterator Prv(Cache,Cache.ProvideP + Provides,Cache.PkgP); + Prv->Version = Ver.Index(); + Prv->NextPkgProv = Ver->ProvidesList; + Ver->ProvidesList = Prv.Index(); + if (Version.empty() == false && (Prv->ProvideVersion = WriteString(Version)) == 0) + return false; + + // Locate the target package + pkgCache::PkgIterator Pkg; + if (Owner->NewPackage(Pkg,PackageName) == false) + return false; + + // Link it to the package + Prv->ParentPkg = Pkg.Index(); + Prv->NextProvides = Pkg->ProvidesList; + Pkg->ProvidesList = Prv.Index(); + + return true; +} + /*}}}*/ +// CacheGenerator::SelectFile - Select the current file being parsed /*{{{*/ +// --------------------------------------------------------------------- +/* This is used to select which file is to be associated with all newly + added versions. The caller is responsible for setting the IMS fields. */ +bool pkgCacheGenerator::SelectFile(const string &File,const string &Site, + const pkgIndexFile &Index, + unsigned long Flags) +{ + // Get some space for the structure + CurrentFile = Cache.PkgFileP + Map.Allocate(sizeof(*CurrentFile)); + if (CurrentFile == Cache.PkgFileP) + return false; + + // Fill it in + CurrentFile->FileName = Map.WriteString(File); + CurrentFile->Site = WriteUniqString(Site); + CurrentFile->NextFile = Cache.HeaderP->FileList; + CurrentFile->Flags = Flags; + CurrentFile->ID = Cache.HeaderP->PackageFileCount; + CurrentFile->IndexType = WriteUniqString(Index.GetType()->Label); + PkgFileName = File; + Cache.HeaderP->FileList = CurrentFile - Cache.PkgFileP; + Cache.HeaderP->PackageFileCount++; + + if (CurrentFile->FileName == 0) + return false; + + if (Progress != 0) + Progress->SubProgress(Index.Size()); + return true; +} + /*}}}*/ +// CacheGenerator::WriteUniqueString - Insert a unique string /*{{{*/ +// --------------------------------------------------------------------- +/* This is used to create handles to strings. Given the same text it + always returns the same number */ +unsigned long pkgCacheGenerator::WriteUniqString(const char *S, + unsigned int Size) +{ + /* We use a very small transient hash table here, this speeds up generation + by a fair amount on slower machines */ + pkgCache::StringItem *&Bucket = UniqHash[(S[0]*5 + S[1]) % _count(UniqHash)]; + if (Bucket != 0 && + stringcmp(S,S+Size,Cache.StrP + Bucket->String) == 0) + return Bucket->String; + + // Search for an insertion point + pkgCache::StringItem *I = Cache.StringItemP + Cache.HeaderP->StringList; + int Res = 1; + map_ptrloc *Last = &Cache.HeaderP->StringList; + for (; I != Cache.StringItemP; Last = &I->NextItem, + I = Cache.StringItemP + I->NextItem) + { + Res = stringcmp(S,S+Size,Cache.StrP + I->String); + if (Res >= 0) + break; + } + + // Match + if (Res == 0) + { + Bucket = I; + return I->String; + } + + // Get a structure + unsigned long Item = Map.Allocate(sizeof(pkgCache::StringItem)); + if (Item == 0) + return 0; + + // Fill in the structure + pkgCache::StringItem *ItemP = Cache.StringItemP + Item; + ItemP->NextItem = I - Cache.StringItemP; + *Last = Item; + ItemP->String = Map.WriteString(S,Size); + if (ItemP->String == 0) + return 0; + + Bucket = ItemP; + return ItemP->String; +} + /*}}}*/ + +// CheckValidity - Check that a cache is up-to-date /*{{{*/ +// --------------------------------------------------------------------- +/* This just verifies that each file in the list of index files exists, + has matching attributes with the cache and the cache does not have + any extra files. */ +static bool CheckValidity(const string &CacheFile, FileIterator Start, + FileIterator End,MMap **OutMap = 0) +{ + // No file, certainly invalid + if (CacheFile.empty() == true || FileExists(CacheFile) == false) + return false; + + // Map it + FileFd CacheF(CacheFile,FileFd::ReadOnly); + SPtr Map = new MMap(CacheF,MMap::Public | MMap::ReadOnly); + pkgCache Cache(Map); + if (_error->PendingError() == true || Map->Size() == 0) + { + _error->Discard(); + return false; + } + + /* Now we check every index file, see if it is in the cache, + verify the IMS data and check that it is on the disk too.. */ + SPtrArray Visited = new bool[Cache.HeaderP->PackageFileCount]; + memset(Visited,0,sizeof(*Visited)*Cache.HeaderP->PackageFileCount); + for (; Start != End; Start++) + { + if ((*Start)->HasPackages() == false) + continue; + + if ((*Start)->Exists() == false) + { + _error->WarningE("stat",_("Couldn't stat source package list %s"), + (*Start)->Describe().c_str()); + continue; + } + + // FindInCache is also expected to do an IMS check. + pkgCache::PkgFileIterator File = (*Start)->FindInCache(Cache); + if (File.end() == true) + return false; + + Visited[File->ID] = true; + } + + for (unsigned I = 0; I != Cache.HeaderP->PackageFileCount; I++) + if (Visited[I] == false) + return false; + + if (_error->PendingError() == true) + { + _error->Discard(); + return false; + } + + if (OutMap != 0) + *OutMap = Map.UnGuard(); + return true; +} + /*}}}*/ +// ComputeSize - Compute the total size of a bunch of files /*{{{*/ +// --------------------------------------------------------------------- +/* Size is kind of an abstract notion that is only used for the progress + meter */ +static unsigned long ComputeSize(FileIterator Start,FileIterator End) +{ + unsigned long TotalSize = 0; + for (; Start != End; Start++) + { + if ((*Start)->HasPackages() == false) + continue; + TotalSize += (*Start)->Size(); + } + return TotalSize; +} + /*}}}*/ +// BuildCache - Merge the list of index files into the cache /*{{{*/ +// --------------------------------------------------------------------- +/* */ +static bool BuildCache(pkgCacheGenerator &Gen, + OpProgress &Progress, + unsigned long &CurrentSize,unsigned long TotalSize, + FileIterator Start, FileIterator End) +{ + FileIterator I; + for (I = Start; I != End; I++) + { + if ((*I)->HasPackages() == false) + continue; + + if ((*I)->Exists() == false) + continue; + + if ((*I)->FindInCache(Gen.GetCache()).end() == false) + { + _error->Warning("Duplicate sources.list entry %s", + (*I)->Describe().c_str()); + continue; + } + + unsigned long Size = (*I)->Size(); + Progress.OverallProgress(CurrentSize,TotalSize,Size,_("Reading package lists")); + CurrentSize += Size; + + if ((*I)->Merge(Gen,Progress) == false) + return false; + } + + if (Gen.HasFileDeps() == true) + { + Progress.Done(); + TotalSize = ComputeSize(Start, End); + CurrentSize = 0; + for (I = Start; I != End; I++) + { + unsigned long Size = (*I)->Size(); + Progress.OverallProgress(CurrentSize,TotalSize,Size,_("Collecting File Provides")); + CurrentSize += Size; + if ((*I)->MergeFileProvides(Gen,Progress) == false) + return false; + } + } + + return true; +} + /*}}}*/ +// MakeStatusCache - Construct the status cache /*{{{*/ +// --------------------------------------------------------------------- +/* This makes sure that the status cache (the cache that has all + index files from the sources list and all local ones) is ready + to be mmaped. If OutMap is not zero then a MMap object representing + the cache will be stored there. This is pretty much mandetory if you + are using AllowMem. AllowMem lets the function be run as non-root + where it builds the cache 'fast' into a memory buffer. */ +bool pkgMakeStatusCache(pkgSourceList &List,OpProgress &Progress, + MMap **OutMap,bool AllowMem) +{ + unsigned long MapSize = _config->FindI("APT::Cache-Limit",12*1024*1024); + + vector Files; + for (vector::const_iterator i = List.begin(); + i != List.end(); + i++) + { + vector *Indexes = (*i)->GetIndexFiles(); + for (vector::const_iterator j = Indexes->begin(); + j != Indexes->end(); + j++) + Files.push_back (*j); + } + + unsigned long EndOfSource = Files.size(); + if (_system->AddStatusFiles(Files) == false) + return false; + + // Decide if we can write to the files.. + string CacheFile = _config->FindFile("Dir::Cache::pkgcache"); + string SrcCacheFile = _config->FindFile("Dir::Cache::srcpkgcache"); + + // Decide if we can write to the cache + bool Writeable = false; + if (CacheFile.empty() == false) + Writeable = access(flNotFile(CacheFile).c_str(),W_OK) == 0; + else + if (SrcCacheFile.empty() == false) + Writeable = access(flNotFile(SrcCacheFile).c_str(),W_OK) == 0; + + if (Writeable == false && AllowMem == false && CacheFile.empty() == false) + return _error->Error(_("Unable to write to %s"),flNotFile(CacheFile).c_str()); + + Progress.OverallProgress(0,1,1,_("Reading package lists")); + + // Cache is OK, Fin. + if (CheckValidity(CacheFile,Files.begin(),Files.end(),OutMap) == true) + { + Progress.OverallProgress(1,1,1,_("Reading package lists")); + return true; + } + + /* At this point we know we need to reconstruct the package cache, + begin. */ + SPtr CacheF; + SPtr Map; + if (Writeable == true && CacheFile.empty() == false) + { + unlink(CacheFile.c_str()); + CacheF = new FileFd(CacheFile,FileFd::WriteEmpty); + fchmod(CacheF->Fd(),0644); + Map = new DynamicMMap(*CacheF,MMap::Public,MapSize); + if (_error->PendingError() == true) + return false; + } + else + { + // Just build it in memory.. + Map = new DynamicMMap(MMap::Public,MapSize); + } + + // Lets try the source cache. + unsigned long CurrentSize = 0; + unsigned long TotalSize = 0; + if (CheckValidity(SrcCacheFile,Files.begin(), + Files.begin()+EndOfSource) == true) + { + // Preload the map with the source cache + FileFd SCacheF(SrcCacheFile,FileFd::ReadOnly); + if (SCacheF.Read((unsigned char *)Map->Data() + Map->RawAllocate(SCacheF.Size()), + SCacheF.Size()) == false) + return false; + + TotalSize = ComputeSize(Files.begin()+EndOfSource,Files.end()); + + // Build the status cache + pkgCacheGenerator Gen(Map.Get(),&Progress); + if (_error->PendingError() == true) + return false; + if (BuildCache(Gen,Progress,CurrentSize,TotalSize, + Files.begin()+EndOfSource,Files.end()) == false) + return false; + } + else + { + TotalSize = ComputeSize(Files.begin(),Files.end()); + + // Build the source cache + pkgCacheGenerator Gen(Map.Get(),&Progress); + if (_error->PendingError() == true) + return false; + if (BuildCache(Gen,Progress,CurrentSize,TotalSize, + Files.begin(),Files.begin()+EndOfSource) == false) + return false; + + // Write it back + if (Writeable == true && SrcCacheFile.empty() == false) + { + FileFd SCacheF(SrcCacheFile,FileFd::WriteEmpty); + if (_error->PendingError() == true) + return false; + + fchmod(SCacheF.Fd(),0644); + + // Write out the main data + if (SCacheF.Write(Map->Data(),Map->Size()) == false) + return _error->Error(_("IO Error saving source cache")); + SCacheF.Sync(); + + // Write out the proper header + Gen.GetCache().HeaderP->Dirty = false; + if (SCacheF.Seek(0) == false || + SCacheF.Write(Map->Data(),sizeof(*Gen.GetCache().HeaderP)) == false) + return _error->Error(_("IO Error saving source cache")); + Gen.GetCache().HeaderP->Dirty = true; + SCacheF.Sync(); + } + + // Build the status cache + if (BuildCache(Gen,Progress,CurrentSize,TotalSize, + Files.begin()+EndOfSource,Files.end()) == false) + return false; + } + + if (_error->PendingError() == true) + return false; + if (OutMap != 0) + { + if (CacheF != 0) + { + delete Map.UnGuard(); + *OutMap = new MMap(*CacheF,MMap::Public | MMap::ReadOnly); + } + else + { + *OutMap = Map.UnGuard(); + } + } + + return true; +} + /*}}}*/ +// MakeOnlyStatusCache - Build a cache with just the status files /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgMakeOnlyStatusCache(OpProgress &Progress,DynamicMMap **OutMap) +{ + unsigned long MapSize = _config->FindI("APT::Cache-Limit",8*1024*1024); + vector Files; + unsigned long EndOfSource = Files.size(); + if (_system->AddStatusFiles(Files) == false) + return false; + + SPtr Map; + Map = new DynamicMMap(MMap::Public,MapSize); + unsigned long CurrentSize = 0; + unsigned long TotalSize = 0; + + TotalSize = ComputeSize(Files.begin()+EndOfSource,Files.end()); + + // Build the status cache + Progress.OverallProgress(0,1,1,_("Reading package lists")); + pkgCacheGenerator Gen(Map.Get(),&Progress); + if (_error->PendingError() == true) + return false; + if (BuildCache(Gen,Progress,CurrentSize,TotalSize, + Files.begin()+EndOfSource,Files.end()) == false) + return false; + + if (_error->PendingError() == true) + return false; + *OutMap = Map.UnGuard(); + + return true; +} + /*}}}*/ diff --git a/apt-pkg/pkgcachegen.h b/apt-pkg/pkgcachegen.h new file mode 100644 index 0000000..9a729ee --- /dev/null +++ b/apt-pkg/pkgcachegen.h @@ -0,0 +1,144 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: pkgcachegen.h,v 1.19 2002/07/08 03:13:30 jgg Exp $ +/* ###################################################################### + + Package Cache Generator - Generator for the cache structure. + + This builds the cache structure from the abstract package list parser. + Each archive source has it's own list parser that is instantiated by + the caller to provide data for the generator. + + Parts of the cache are created by this generator class while other + parts are created by the list parser. The list parser is responsible + for creating version, depends and provides structures, and some of + their contents + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_PKGCACHEGEN_H +#define PKGLIB_PKGCACHEGEN_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/pkgcachegen.h" +#endif + +#include + +class pkgSourceList; +class OpProgress; +class MMap; +class pkgIndexFile; + +class pkgCacheGenerator +{ + private: + + pkgCache::StringItem *UniqHash[26]; + + public: + + class ListParser; + friend class ListParser; + + protected: + + DynamicMMap ⤅ + pkgCache Cache; + OpProgress *Progress; + + string PkgFileName; + pkgCache::PackageFile *CurrentFile; + + // Flag file dependencies + bool FoundFileDeps; + + bool NewPackage(pkgCache::PkgIterator &Pkg,const string &Pkg); + bool NewFileVer(pkgCache::VerIterator &Ver,ListParser &List); + unsigned long NewVersion(pkgCache::VerIterator &Ver,const string &VerStr,unsigned long Next); + + public: + + unsigned long WriteUniqString(const char *S,unsigned int Size); + inline unsigned long WriteUniqString(const string &S) {return WriteUniqString(S.c_str(),S.length());}; + + void DropProgress() {Progress = 0;}; + bool SelectFile(const string &File,const string &Site,pkgIndexFile const &Index, + unsigned long Flags = 0); + bool MergeList(ListParser &List,pkgCache::VerIterator *Ver = 0); + inline pkgCache &GetCache() {return Cache;}; + inline pkgCache::PkgFileIterator GetCurFile() + {return pkgCache::PkgFileIterator(Cache,CurrentFile);}; + + bool HasFileDeps() {return FoundFileDeps;}; + bool MergeFileProvides(ListParser &List); + + pkgCacheGenerator(DynamicMMap *Map,OpProgress *Progress); + ~pkgCacheGenerator(); +}; + +// This is the abstract package list parser class. +class pkgCacheGenerator::ListParser +{ + pkgCacheGenerator *Owner; + friend class pkgCacheGenerator; + + // Some cache items + pkgCache::VerIterator OldDepVer; + map_ptrloc *OldDepLast; + + // Flag file dependencies + bool FoundFileDeps; + + protected: + + inline unsigned long WriteUniqString(string S) {return Owner->WriteUniqString(S);}; + inline unsigned long WriteUniqString(const char *S,unsigned int Size) {return Owner->WriteUniqString(S,Size);}; + inline unsigned long WriteString(const string &S) {return Owner->Map.WriteString(S);}; + inline unsigned long WriteString(const char *S,unsigned int Size) {return Owner->Map.WriteString(S,Size);}; + bool NewDepends(pkgCache::VerIterator Ver,const string &Package, + const string &Version,unsigned int Op, + unsigned int Type); + bool NewProvides(pkgCache::VerIterator Ver,const string &Package, + const string &Version); + + public: + + // These all operate against the current section + virtual string Package() = 0; + virtual string Version() = 0; + virtual bool NewVersion(pkgCache::VerIterator Ver) = 0; + virtual unsigned short VersionHash() = 0; + virtual bool UsePackage(pkgCache::PkgIterator Pkg, + pkgCache::VerIterator Ver) = 0; + virtual unsigned long Offset() = 0; + virtual unsigned long Size() = 0; + + virtual bool Step() = 0; + + inline bool HasFileDeps() {return FoundFileDeps;}; + virtual bool CollectFileProvides(pkgCache &Cache, + pkgCache::VerIterator Ver) {return true;}; + + ListParser() : FoundFileDeps(false) {}; + virtual ~ListParser() {}; +}; + +bool pkgMakeStatusCache(pkgSourceList &List,OpProgress &Progress, + MMap **OutMap = 0,bool AllowMem = false); +bool pkgMakeOnlyStatusCache(OpProgress &Progress,DynamicMMap **OutMap); + +#ifdef APT_COMPATIBILITY +#if APT_COMPATIBILITY != 986 +#warning "Using APT_COMPATIBILITY" +#endif +MMap *pkgMakeStatusCacheMem(pkgSourceList &List,OpProgress &Progress) +{ + MMap *Map = 0; + if (pkgMakeStatusCache(List,Progress,&Map,true) == false) + return 0; + return Map; +} +#endif + +#endif diff --git a/apt-pkg/pkgrecords.cc b/apt-pkg/pkgrecords.cc new file mode 100644 index 0000000..9c2655d --- /dev/null +++ b/apt-pkg/pkgrecords.cc @@ -0,0 +1,65 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: pkgrecords.cc,v 1.8 2003/09/02 04:52:16 mdz Exp $ +/* ###################################################################### + + Package Records - Allows access to complete package description records + directly from the file. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/pkgrecords.h" +#endif +#include +#include +#include +#include + +#include + /*}}}*/ + +// Records::pkgRecords - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* This will create the necessary structures to access the status files */ +pkgRecords::pkgRecords(pkgCache &Cache) : Cache(Cache), Files(0) +{ + Files = new Parser *[Cache.HeaderP->PackageFileCount]; + memset(Files,0,sizeof(*Files)*Cache.HeaderP->PackageFileCount); + + for (pkgCache::PkgFileIterator I = Cache.FileBegin(); + I.end() == false; I++) + { + const pkgIndexFile::Type *Type = pkgIndexFile::Type::GetType(I.IndexType()); + if (Type == 0) + { + _error->Error(_("Index file type '%s' is not supported"),I.IndexType()); + return; + } + + Files[I->ID] = Type->CreatePkgParser(I); + if (Files[I->ID] == 0) + return; + } +} + /*}}}*/ +// Records::~pkgRecords - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgRecords::~pkgRecords() +{ + for (unsigned I = 0; I != Cache.HeaderP->PackageFileCount; I++) + delete Files[I]; + delete [] Files; +} + /*}}}*/ +// Records::Lookup - Get a parser for the package version file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgRecords::Parser &pkgRecords::Lookup(pkgCache::VerFileIterator const &Ver) +{ + Files[Ver.File()->ID]->Jump(Ver); + return *Files[Ver.File()->ID]; +} + /*}}}*/ diff --git a/apt-pkg/pkgrecords.h b/apt-pkg/pkgrecords.h new file mode 100644 index 0000000..08f0044 --- /dev/null +++ b/apt-pkg/pkgrecords.h @@ -0,0 +1,74 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: pkgrecords.h,v 1.6 2001/03/13 06:51:46 jgg Exp $ +/* ###################################################################### + + Package Records - Allows access to complete package description records + directly from the file. + + The package record system abstracts the actual parsing of the + package files. This is different than the generators parser in that + it is used to access information not generate information. No + information touched by the generator should be parable from here as + it can always be retreived directly from the cache. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_PKGRECORDS_H +#define PKGLIB_PKGRECORDS_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/pkgrecords.h" +#endif + +#include +#include + +class pkgRecords +{ + public: + class Parser; + + private: + + pkgCache &Cache; + Parser **Files; + + public: + + // Lookup function + Parser &Lookup(pkgCache::VerFileIterator const &Ver); + + // Construct destruct + pkgRecords(pkgCache &Cache); + ~pkgRecords(); +}; + +class pkgRecords::Parser +{ + protected: + + virtual bool Jump(pkgCache::VerFileIterator const &Ver) = 0; + + public: + friend class pkgRecords; + + // These refer to the archive file for the Version + virtual string FileName() {return string();}; + virtual string MD5Hash() {return string();}; + virtual string SHA1Hash() {return string();}; + virtual string SourcePkg() {return string();}; + + // These are some general stats about the package + virtual string Maintainer() {return string();}; + virtual string ShortDesc() {return string();}; + virtual string LongDesc() {return string();}; + virtual string Name() {return string();}; + + // The record in binary form + virtual void GetRec(const char *&Start,const char *&Stop) {Start = Stop = 0;}; + + virtual ~Parser() {}; +}; + +#endif diff --git a/apt-pkg/pkgsystem.cc b/apt-pkg/pkgsystem.cc new file mode 100644 index 0000000..86174a4 --- /dev/null +++ b/apt-pkg/pkgsystem.cc @@ -0,0 +1,47 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: pkgsystem.cc,v 1.3 2004/02/27 00:43:16 mdz Exp $ +/* ###################################################################### + + System - Abstraction for running on different systems. + + Basic general structure.. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/pkgsystem.h" +#endif + +#include +#include +#include + /*}}}*/ + +pkgSystem *_system = 0; +static pkgSystem *SysList[10]; +pkgSystem **pkgSystem::GlobalList = SysList; +unsigned long pkgSystem::GlobalListLen = 0; + +// System::pkgSystem - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* Add it to the global list.. */ +pkgSystem::pkgSystem() +{ + assert(GlobalListLen < sizeof(SysList)/sizeof(*SysList)); + SysList[GlobalListLen] = this; + GlobalListLen++; +} + /*}}}*/ +// System::GetSystem - Get the named system /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgSystem *pkgSystem::GetSystem(const char *Label) +{ + for (unsigned I = 0; I != GlobalListLen; I++) + if (strcmp(SysList[I]->Label,Label) == 0) + return SysList[I]; + return 0; +} + /*}}}*/ diff --git a/apt-pkg/pkgsystem.h b/apt-pkg/pkgsystem.h new file mode 100644 index 0000000..a7d5551 --- /dev/null +++ b/apt-pkg/pkgsystem.h @@ -0,0 +1,97 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: pkgsystem.h,v 1.6 2002/11/11 06:55:50 doogie Exp $ +/* ###################################################################### + + System - Abstraction for running on different systems. + + Instances of this class can be thought of as factories or meta-classes + for a variety of more specialized classes. Together this class and + it's speciallized offspring completely define the environment and how + to access resources for a specific system. There are several sub + areas that are all orthogonal - each system has a unique combination of + these sub areas: + - Versioning. Different systems have different ideas on versions. + Within a system all sub classes must follow the same versioning + rules. + - Local tool locking to prevent multiple tools from accessing the + same database. + - Candidate Version selection policy - this is probably almost always + managed using a standard APT class + - Actual Package installation + * Indication of what kind of binary formats are supported + - Selection of local 'status' indexes that make up the pkgCache. + + It is important to note that the handling of index files is not a + function of the system. Index files are handled through a seperate + abstraction - the only requirement is that the index files have the + same idea of versioning as the target system. + + Upon startup each supported system instantiates an instance of the + pkgSystem class (using a global constructor) which will make itself + available to the main APT init routine. That routine will select the + proper system and make it the global default. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_PKGSYSTEM_H +#define PKGLIB_PKGSYSTEM_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/pkgsystem.h" +#endif + +#include +#include + +class pkgPackageManager; +class pkgVersioningSystem; +class Configuration; +class pkgIndexFile; + +class pkgSystem +{ + public: + + // Global list of supported systems + static pkgSystem **GlobalList; + static unsigned long GlobalListLen; + static pkgSystem *GetSystem(const char *Label); + + const char *Label; + pkgVersioningSystem *VS; + + /* Prevent other programs from touching shared data not covered by + other locks (cache or state locks) */ + virtual bool Lock() = 0; + virtual bool UnLock(bool NoErrors = false) = 0; + + /* Various helper classes to interface with specific bits of this + environment */ + virtual pkgPackageManager *CreatePM(pkgDepCache *Cache) const = 0; + + /* Load environment specific configuration and perform any other setup + necessary */ + virtual bool Initialize(Configuration &/*Cnf*/) {return true;}; + + /* Type is some kind of Globally Unique way of differentiating + archive file types.. */ + virtual bool ArchiveSupported(const char *Type) = 0; + + // Return a list of system index files.. + virtual bool AddStatusFiles(std::vector &List) = 0; + virtual bool FindIndex(pkgCache::PkgFileIterator File, + pkgIndexFile *&Found) const = 0; + + /* Evauluate how 'right' we are for this system based on the filesystem + etc.. */ + virtual signed Score(Configuration const &/*Cnf*/) {return 0;}; + + pkgSystem(); + virtual ~pkgSystem() {}; +}; + +// The environment we are operating in. +extern pkgSystem *_system; + +#endif diff --git a/apt-pkg/policy.cc b/apt-pkg/policy.cc new file mode 100644 index 0000000..d8b8825 --- /dev/null +++ b/apt-pkg/policy.cc @@ -0,0 +1,309 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: policy.cc,v 1.10 2003/08/12 00:17:37 mdz Exp $ +/* ###################################################################### + + Package Version Policy implementation + + This is just a really simple wrapper around pkgVersionMatch with + some added goodies to manage the list of things.. + + Priority Table: + + 1000 -> inf = Downgradeable priorities + 1000 = The 'no downgrade' pseduo-status file + 100 -> 1000 = Standard priorities + 990 = Config file override package files + 989 = Start for preference auto-priorities + 500 = Default package files + 100 = The status file + 0 -> 100 = NotAutomatic sources like experimental + -inf -> 0 = Never selected + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/policy.h" +#endif +#include +#include +#include +#include +#include +#include + +#include + +#include + /*}}}*/ + +using namespace std; + +// Policy::Init - Startup and bind to a cache /*{{{*/ +// --------------------------------------------------------------------- +/* Set the defaults for operation. The default mode with no loaded policy + file matches the V0 policy engine. */ +pkgPolicy::pkgPolicy(pkgCache *Owner) : Pins(0), PFPriority(0), Cache(Owner) +{ + PFPriority = new signed short[Owner->Head().PackageFileCount]; + Pins = new Pin[Owner->Head().PackageCount]; + + for (unsigned long I = 0; I != Owner->Head().PackageCount; I++) + Pins[I].Type = pkgVersionMatch::None; + + // The config file has a master override. + string DefRel = _config->Find("APT::Default-Release"); + if (DefRel.empty() == false) + CreatePin(pkgVersionMatch::Release,"",DefRel,990); + + InitDefaults(); +} + /*}}}*/ +// Policy::InitDefaults - Compute the default selections /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgPolicy::InitDefaults() +{ + // Initialize the priorities based on the status of the package file + for (pkgCache::PkgFileIterator I = Cache->FileBegin(); I != Cache->FileEnd(); I++) + { + PFPriority[I->ID] = 500; + if ((I->Flags & pkgCache::Flag::NotSource) == pkgCache::Flag::NotSource) + PFPriority[I->ID] = 100; + else + if ((I->Flags & pkgCache::Flag::NotAutomatic) == pkgCache::Flag::NotAutomatic) + PFPriority[I->ID] = 1; + } + + // Apply the defaults.. + SPtrArray Fixed = new bool[Cache->HeaderP->PackageFileCount]; + memset(Fixed,0,sizeof(*Fixed)*Cache->HeaderP->PackageFileCount); + signed Cur = 989; + StatusOverride = false; + for (vector::const_iterator I = Defaults.begin(); I != Defaults.end(); + I++, Cur--) + { + pkgVersionMatch Match(I->Data,I->Type); + for (pkgCache::PkgFileIterator F = Cache->FileBegin(); F != Cache->FileEnd(); F++) + { + if (Match.FileMatch(F) == true && Fixed[F->ID] == false) + { + if (I->Priority != 0 && I->Priority > 0) + Cur = I->Priority; + + if (I->Priority < 0) + PFPriority[F->ID] = I->Priority; + else + PFPriority[F->ID] = Cur; + + if (PFPriority[F->ID] > 1000) + StatusOverride = true; + + Fixed[F->ID] = true; + } + } + } + + if (_config->FindB("Debug::pkgPolicy",false) == true) + for (pkgCache::PkgFileIterator F = Cache->FileBegin(); F != Cache->FileEnd(); F++) + cout << "Prio of " << F.FileName() << ' ' << PFPriority[F->ID] << endl; + + return true; +} + /*}}}*/ +// Policy::GetCandidateVer - Get the candidate install version /*{{{*/ +// --------------------------------------------------------------------- +/* Evaluate the package pins and the default list to deteremine what the + best package is. */ +pkgCache::VerIterator pkgPolicy::GetCandidateVer(pkgCache::PkgIterator Pkg) +{ + // Look for a package pin and evaluate it. + signed Max = GetPriority(Pkg); + pkgCache::VerIterator Pref = GetMatch(Pkg); + + /* Falling through to the default version.. Setting Max to zero + effectively excludes everything <= 0 which are the non-automatic + priorities.. The status file is given a prio of 100 which will exclude + not-automatic sources, except in a single shot not-installed mode. + The second pseduo-status file is at prio 1000, above which will permit + the user to force-downgrade things. + + The user pin is subject to the same priority rules as default + selections. Thus there are two ways to create a pin - a pin that + tracks the default when the default is taken away, and a permanent + pin that stays at that setting. + */ + for (pkgCache::VerIterator Ver = Pkg.VersionList(); Ver.end() == false; Ver++) + { + for (pkgCache::VerFileIterator VF = Ver.FileList(); VF.end() == false; VF++) + { + /* If this is the status file, and the current version is not the + version in the status file (ie it is not installed, or somesuch) + then it is not a candidate for installation, ever. This weeds + out bogus entries that may be due to config-file states, or + other. */ + if ((VF.File()->Flags & pkgCache::Flag::NotSource) == pkgCache::Flag::NotSource && + Pkg.CurrentVer() != Ver) + continue; + + signed Prio = PFPriority[VF.File()->ID]; + if (Prio > Max) + { + Pref = Ver; + Max = Prio; + } + } + + if (Pkg.CurrentVer() == Ver && Max < 1000) + { + /* Elevate our current selection (or the status file itself) + to the Pseudo-status priority. */ + if (Pref.end() == true) + Pref = Ver; + Max = 1000; + + // Fast path optimize. + if (StatusOverride == false) + break; + } + } + return Pref; +} + /*}}}*/ +// Policy::CreatePin - Create an entry in the pin table.. /*{{{*/ +// --------------------------------------------------------------------- +/* For performance we have 3 tables, the default table, the main cache + table (hashed to the cache). A blank package name indicates the pin + belongs to the default table. Order of insertion matters here, the + earlier defaults override later ones. */ +void pkgPolicy::CreatePin(pkgVersionMatch::MatchType Type,string Name, + string Data,signed short Priority) +{ + Pin *P = 0; + + if (Name.empty() == true) + P = &*Defaults.insert(Defaults.end(),PkgPin()); + else + { + // Get a spot to put the pin + pkgCache::PkgIterator Pkg = Cache->FindPkg(Name); + if (Pkg.end() == true) + { + // Check the unmatched table + for (vector::iterator I = Unmatched.begin(); + I != Unmatched.end() && P == 0; I++) + if (I->Pkg == Name) + P = &*I; + + if (P == 0) + P = &*Unmatched.insert(Unmatched.end(),PkgPin()); + } + else + { + P = Pins + Pkg->ID; + } + } + + // Set.. + P->Type = Type; + P->Priority = Priority; + P->Data = Data; +} + /*}}}*/ +// Policy::GetMatch - Get the matching version for a package pin /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgCache::VerIterator pkgPolicy::GetMatch(pkgCache::PkgIterator Pkg) +{ + const Pin &PPkg = Pins[Pkg->ID]; + if (PPkg.Type != pkgVersionMatch::None) + { + pkgVersionMatch Match(PPkg.Data,PPkg.Type); + return Match.Find(Pkg); + } + return pkgCache::VerIterator(*Pkg.Cache()); +} + /*}}}*/ +// Policy::GetPriority - Get the priority of the package pin /*{{{*/ +// --------------------------------------------------------------------- +/* */ +signed short pkgPolicy::GetPriority(pkgCache::PkgIterator const &Pkg) +{ + if (Pins[Pkg->ID].Type != pkgVersionMatch::None) + { + // In this case 0 means default priority + if (Pins[Pkg->ID].Priority == 0) + return 989; + return Pins[Pkg->ID].Priority; + } + + return 0; +} + /*}}}*/ + +// ReadPinFile - Load the pin file into a Policy /*{{{*/ +// --------------------------------------------------------------------- +/* I'd like to see the preferences file store more than just pin information + but right now that is the only stuff I have to store. Later there will + have to be some kind of combined super parser to get the data into all + the right classes.. */ +bool ReadPinFile(pkgPolicy &Plcy,string File) +{ + if (File.empty() == true) + File = _config->FindFile("Dir::Etc::Preferences"); + + if (FileExists(File) == false) + return true; + + FileFd Fd(File,FileFd::ReadOnly); + pkgTagFile TF(&Fd); + if (_error->PendingError() == true) + return false; + + pkgTagSection Tags; + while (TF.Step(Tags) == true) + { + string Name = Tags.FindS("Package"); + if (Name.empty() == true) + return _error->Error(_("Invalid record in the preferences file, no Package header")); + if (Name == "*") + Name = string(); + + const char *Start; + const char *End; + if (Tags.Find("Pin",Start,End) == false) + continue; + + const char *Word = Start; + for (; Word != End && isspace(*Word) == 0; Word++); + + // Parse the type.. + pkgVersionMatch::MatchType Type; + if (stringcasecmp(Start,Word,"version") == 0 && Name.empty() == false) + Type = pkgVersionMatch::Version; + else if (stringcasecmp(Start,Word,"release") == 0) + Type = pkgVersionMatch::Release; + else if (stringcasecmp(Start,Word,"origin") == 0) + Type = pkgVersionMatch::Origin; + else + { + _error->Warning(_("Did not understand pin type %s"),string(Start,Word).c_str()); + continue; + } + for (; Word != End && isspace(*Word) != 0; Word++); + + short int priority = Tags.FindI("Pin-Priority", 0); + if (priority == 0) + { + _error->Warning(_("No priority (or zero) specified for pin")); + continue; + } + + Plcy.CreatePin(Type,Name,string(Word,End),priority); + } + + Plcy.InitDefaults(); + return true; +} + /*}}}*/ diff --git a/apt-pkg/policy.h b/apt-pkg/policy.h new file mode 100644 index 0000000..40ebd3f --- /dev/null +++ b/apt-pkg/policy.h @@ -0,0 +1,91 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: policy.h,v 1.4 2001/05/07 04:24:08 jgg Exp $ +/* ###################################################################### + + Package Version Policy implementation + + This implements the more advanced 'Version 4' APT policy engine. The + standard 'Version 0' engine is included inside the DepCache which is + it's historical location. + + The V4 engine allows the user to completly control all aspects of + version selection. There are three primary means to choose a version + * Selection by version match + * Selection by Release file match + * Selection by origin server + + Each package may be 'pinned' with a single criteria, which will ultimately + result in the selection of a single version, or no version, for each + package. + + Furthermore, the default selection can be influenced by specifying + the ordering of package files. The order is derived by reading the + package file preferences and assigning a priority to each package + file. + + A special flag may be set to indicate if no version should be returned + if no matching versions are found, otherwise the default matching + rules are used to locate a hit. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_POLICY_H +#define PKGLIB_POLICY_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/policy.h" +#endif + +#include +#include +#include + +using std::vector; + +class pkgPolicy : public pkgDepCache::Policy +{ + protected: + + struct Pin + { + pkgVersionMatch::MatchType Type; + string Data; + signed short Priority; + Pin() : Type(pkgVersionMatch::None), Priority(0) {}; + }; + + struct PkgPin : Pin + { + string Pkg; + }; + + Pin *Pins; + signed short *PFPriority; + vector Defaults; + vector Unmatched; + pkgCache *Cache; + bool StatusOverride; + + public: + + // Things for manipulating pins + void CreatePin(pkgVersionMatch::MatchType Type,string Pkg, + string Data,signed short Priority); + inline signed short GetPriority(pkgCache::PkgFileIterator const &File) + {return PFPriority[File->ID];}; + signed short GetPriority(pkgCache::PkgIterator const &Pkg); + pkgCache::VerIterator GetMatch(pkgCache::PkgIterator Pkg); + + // Things for the cache interface. + virtual pkgCache::VerIterator GetCandidateVer(pkgCache::PkgIterator Pkg); + virtual bool IsImportantDep(pkgCache::DepIterator Dep) {return pkgDepCache::Policy::IsImportantDep(Dep);}; + bool InitDefaults(); + + pkgPolicy(pkgCache *Owner); + virtual ~pkgPolicy() {delete [] PFPriority; delete [] Pins;}; +}; + +bool ReadPinFile(pkgPolicy &Plcy,string File = ""); + +#endif diff --git a/apt-pkg/sourcelist.cc b/apt-pkg/sourcelist.cc new file mode 100644 index 0000000..e3b4d94 --- /dev/null +++ b/apt-pkg/sourcelist.cc @@ -0,0 +1,366 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: sourcelist.cc,v 1.3 2002/08/15 20:51:37 niemeyer Exp $ +/* ###################################################################### + + List of Sources + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/sourcelist.h" +#endif + +#include +#include +#include +#include +#include + +#include + +#include + +// CNC:2003-03-03 - This is needed for ReadDir stuff. +#include +#include +#include +#include +#include + /*}}}*/ + +using namespace std; + +// Global list of Items supported +static pkgSourceList::Type *ItmList[10]; +pkgSourceList::Type **pkgSourceList::Type::GlobalList = ItmList; +unsigned long pkgSourceList::Type::GlobalListLen = 0; + +// Type::Type - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* Link this to the global list of items*/ +pkgSourceList::Type::Type() +{ + ItmList[GlobalListLen] = this; + GlobalListLen++; +} + /*}}}*/ +// Type::GetType - Get a specific meta for a given type /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgSourceList::Type *pkgSourceList::Type::GetType(const char *Type) +{ + for (unsigned I = 0; I != GlobalListLen; I++) + if (strcmp(GlobalList[I]->Name,Type) == 0) + return GlobalList[I]; + return 0; +} + /*}}}*/ +// Type::FixupURI - Normalize the URI and check it.. /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgSourceList::Type::FixupURI(string &URI) const +{ + if (URI.empty() == true) + return false; + + if (URI.find(':') == string::npos) + return false; + + URI = SubstVar(URI,"$(ARCH)",_config->Find("APT::Architecture")); + + // Make sure that the URI is / postfixed + if (URI[URI.size() - 1] != '/') + URI += '/'; + + return true; +} + /*}}}*/ +// Type::ParseLine - Parse a single line /*{{{*/ +// --------------------------------------------------------------------- +/* This is a generic one that is the 'usual' format for sources.list + Weird types may override this. */ +bool pkgSourceList::Type::ParseLine(vector &List, + const char *Buffer, + unsigned long CurLine, + string File) const +{ + string URI; + string Dist; + string Section; + + if (ParseQuoteWord(Buffer,URI) == false) + return _error->Error(_("Malformed line %lu in source list %s (URI)"),CurLine,File.c_str()); + if (ParseQuoteWord(Buffer,Dist) == false) + return _error->Error(_("Malformed line %lu in source list %s (dist)"),CurLine,File.c_str()); + + if (FixupURI(URI) == false) + return _error->Error(_("Malformed line %lu in source list %s (URI parse)"),CurLine,File.c_str()); + + // Check for an absolute dists specification. + if (Dist.empty() == false && Dist[Dist.size() - 1] == '/') + { + if (ParseQuoteWord(Buffer,Section) == true) + return _error->Error(_("Malformed line %lu in source list %s (absolute dist)"),CurLine,File.c_str()); + Dist = SubstVar(Dist,"$(ARCH)",_config->Find("APT::Architecture")); + return CreateItem(List,URI,Dist,Section); + } + + // Grab the rest of the dists + if (ParseQuoteWord(Buffer,Section) == false) + return _error->Error(_("Malformed line %lu in source list %s (dist parse)"),CurLine,File.c_str()); + + do + { + if (CreateItem(List,URI,Dist,Section) == false) + return false; + } + while (ParseQuoteWord(Buffer,Section) == true); + + return true; +} + /*}}}*/ + +// SourceList::pkgSourceList - Constructors /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgSourceList::pkgSourceList() +{ +} + +pkgSourceList::pkgSourceList(string File) +{ + Read(File); +} + /*}}}*/ +// SourceList::~pkgSourceList - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgSourceList::~pkgSourceList() +{ + for (const_iterator I = SrcList.begin(); I != SrcList.end(); I++) + delete *I; +} + /*}}}*/ + /*}}}*/ +// SourceList::ReadMainList - Read the main source list from etc /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgSourceList::ReadMainList() +{ + // CNC:2003-03-03 - Multiple sources list support. + bool Res = true; +#if 0 + Res = ReadVendors(); + if (Res == false) + return false; +#endif + + Reset(); + // CNC:2003-11-28 - Entries in sources.list have priority over + // entries in sources.list.d. + string Main = _config->FindFile("Dir::Etc::sourcelist"); + if (FileExists(Main) == true) + Res &= ReadAppend(Main); + + string Parts = _config->FindDir("Dir::Etc::sourceparts"); + if (FileExists(Parts) == true) + Res &= ReadSourceDir(Parts); + + return Res; +} + /*}}}*/ +// CNC:2003-03-03 - Needed to preserve backwards compatibility. +// SourceList::Reset - Clear the sourcelist contents /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgSourceList::Reset() +{ + for (const_iterator I = SrcList.begin(); I != SrcList.end(); I++) + delete *I; + SrcList.erase(SrcList.begin(),SrcList.end()); +} + /*}}}*/ +// CNC:2003-03-03 - Function moved to ReadAppend() and Reset(). +// SourceList::Read - Parse the sourcelist file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgSourceList::Read(string File) +{ + Reset(); + return ReadAppend(File); +} + /*}}}*/ +// SourceList::ReadAppend - Parse a sourcelist file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgSourceList::ReadAppend(string File) +{ + // Open the stream for reading + ifstream F(File.c_str(),ios::in /*| ios::nocreate*/); + if (!F != 0) + return _error->Errno("ifstream::ifstream",_("Opening %s"),File.c_str()); + +#if 0 // Now Reset() does this. + for (const_iterator I = SrcList.begin(); I != SrcList.end(); I++) + delete *I; + SrcList.erase(SrcList.begin(),SrcList.end()); +#endif + // CNC:2003-12-10 - 300 is too short. + char Buffer[1024]; + + int CurLine = 0; + while (F.eof() == false) + { + F.getline(Buffer,sizeof(Buffer)); + CurLine++; + _strtabexpand(Buffer,sizeof(Buffer)); + if (F.fail() && !F.eof()) + return _error->Error(_("Line %u too long in source list %s."), + CurLine,File.c_str()); + + + char *I; + // CNC:2003-02-20 - Do not break if '#' is inside []. + for (I = Buffer; *I != 0 && *I != '#'; I++) + if (*I == '[') + for (I++; *I != 0 && *I != ']'; I++); + *I = 0; + + const char *C = _strstrip(Buffer); + + // Comment or blank + if (C[0] == '#' || C[0] == 0) + continue; + + // Grok it + string LineType; + if (ParseQuoteWord(C,LineType) == false) + return _error->Error(_("Malformed line %u in source list %s (type)"),CurLine,File.c_str()); + + Type *Parse = Type::GetType(LineType.c_str()); + if (Parse == 0) + return _error->Error(_("Type '%s' is not known on line %u in source list %s"),LineType.c_str(),CurLine,File.c_str()); + + // Vendor name specified + if (C[0] == '[') + { + string VendorID; + + if (ParseQuoteWord(C,VendorID) == false) + return _error->Error(_("Malformed line %u in source list %s (vendor id)"),CurLine,File.c_str()); + + if (VendorID.length() < 2 || VendorID.end()[-1] != ']') + return _error->Error(_("Malformed line %u in source list %s (vendor id)"),CurLine,File.c_str()); + VendorID = string(VendorID,1,VendorID.size()-2); + +// for (vector::const_iterator iter = VendorList.begin(); +// iter != VendorList.end(); iter++) +// { +// if ((*iter)->GetVendorID() == VendorID) +// { +// if (_config->FindB("Debug::sourceList", false)) +// std::cerr << "Comparing VendorID \"" << VendorID << "\" with \"" << (*iter)->GetVendorID() << '"' << std::endl; +// Verifier = *iter; +// break; +// } +// } + +// if (Verifier == 0) +// return _error->Error(_("Unknown vendor ID '%s' in line %u of source list %s"), +// VendorID.c_str(),CurLine,File.c_str()); + } + + if (Parse->ParseLine(SrcList,C,CurLine,File) == false) + return false; + } + return true; +} + /*}}}*/ +// SourceList::FindIndex - Get the index associated with a file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgSourceList::FindIndex(pkgCache::PkgFileIterator File, + pkgIndexFile *&Found) const +{ + for (const_iterator I = SrcList.begin(); I != SrcList.end(); I++) + { + vector *Indexes = (*I)->GetIndexFiles(); + for (vector::const_iterator J = Indexes->begin(); + J != Indexes->end(); J++) + { + if ((*J)->FindInCache(*File.Cache()) == File) + { + Found = (*J); + return true; + } + } + } + + return false; +} + /*}}}*/ +// SourceList::GetIndexes - Load the index files into the downloader /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgSourceList::GetIndexes(pkgAcquire *Owner, bool GetAll) const +{ + for (const_iterator I = SrcList.begin(); I != SrcList.end(); I++) + if ((*I)->GetIndexes(Owner,GetAll) == false) + return false; + return true; +} + /*}}}*/ +// CNC:2003-03-03 - By Anton V. Denisov . +// SourceList::ReadSourceDir - Read a directory with sources files +// Based on ReadConfigDir() /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgSourceList::ReadSourceDir(string Dir) +{ + DIR *D = opendir(Dir.c_str()); + if (D == 0) + return _error->Errno("opendir",_("Unable to read %s"),Dir.c_str()); + + vector List; + + for (struct dirent *Ent = readdir(D); Ent != 0; Ent = readdir(D)) + { + if (Ent->d_name[0] == '.') + continue; + + // CNC:2003-12-02 Only accept .list files as valid sourceparts + if (flExtension(Ent->d_name) != "list") + continue; + + // Skip bad file names ala run-parts + const char *C = Ent->d_name; + for (; *C != 0; C++) + if (isalpha(*C) == 0 && isdigit(*C) == 0 + && *C != '_' && *C != '-' && *C != '.') + break; + if (*C != 0) + continue; + + // Make sure it is a file and not something else + string File = flCombine(Dir,Ent->d_name); + struct stat St; + if (stat(File.c_str(),&St) != 0 || S_ISREG(St.st_mode) == 0) + continue; + + List.push_back(File); + } + closedir(D); + + sort(List.begin(),List.end()); + + // Read the files + for (vector::const_iterator I = List.begin(); I != List.end(); I++) + if (ReadAppend(*I) == false) + return false; + return true; + +} + /*}}}*/ + diff --git a/apt-pkg/sourcelist.h b/apt-pkg/sourcelist.h new file mode 100644 index 0000000..123ae69 --- /dev/null +++ b/apt-pkg/sourcelist.h @@ -0,0 +1,101 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: sourcelist.h,v 1.12.2.1 2003/12/24 23:09:17 mdz Exp $ +/* ###################################################################### + + SourceList - Manage a list of sources + + The Source List class provides access to a list of sources. It + can read them from a file and generate a list of all the distinct + sources. + + All sources have a type associated with them that defines the layout + of the archive. The exact format of the file is documented in + files.sgml. + + The types are mapped through a list of type definitions which handle + the actual construction of the back end type. After loading a source + list all you have is a list of package index files that have the ability + to be Acquired. + + The vendor machanism is similar, except the vendor types are hard + wired. Before loading the source list the vendor list is loaded. + This doesn't load key data, just the checks to perform. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_SOURCELIST_H +#define PKGLIB_SOURCELIST_H + +#include +#include +#include +#include + +using std::string; +using std::vector; + +#ifdef __GNUG__ +#pragma interface "apt-pkg/sourcelist.h" +#endif + +class pkgAquire; +class pkgSourceList +{ + public: + + // List of supported source list types + class Type + { + public: + + // Global list of Items supported + static Type **GlobalList; + static unsigned long GlobalListLen; + static Type *GetType(const char *Type); + + const char *Name; + const char *Label; + + bool FixupURI(string &URI) const; + virtual bool ParseLine(vector &List, + const char *Buffer, + unsigned long CurLine,string File) const; + virtual bool CreateItem(vector &List,string URI, + string Dist,string Section) const = 0; + Type(); + virtual ~Type() {}; + }; + + typedef vector::const_iterator const_iterator; + + protected: + + vector SrcList; + + public: + + bool ReadMainList(); + bool Read(string File); + + // CNC:2003-03-03 + void Reset(); + bool ReadAppend(string File); + bool ReadSourceDir(string Dir); + + // List accessors + inline const_iterator begin() const {return SrcList.begin();}; + inline const_iterator end() const {return SrcList.end();}; + inline unsigned int size() const {return SrcList.size();}; + inline bool empty() const {return SrcList.empty();}; + + bool FindIndex(pkgCache::PkgFileIterator File, + pkgIndexFile *&Found) const; + bool GetIndexes(pkgAcquire *Owner, bool GetAll=false) const; + + pkgSourceList(); + pkgSourceList(string File); + ~pkgSourceList(); +}; + +#endif diff --git a/apt-pkg/srcrecords.cc b/apt-pkg/srcrecords.cc new file mode 100644 index 0000000..6cac477 --- /dev/null +++ b/apt-pkg/srcrecords.cc @@ -0,0 +1,136 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: srcrecords.cc,v 1.7.2.2 2003/12/26 16:27:34 mdz Exp $ +/* ###################################################################### + + Source Package Records - Allows access to source package records + + Parses and allows access to the list of source records and searching by + source name on that list. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/srcrecords.h" +#endif + +#include +#include +#include +#include + +#include + /*}}}*/ + +// SrcRecords::pkgSrcRecords - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* Open all the source index files */ +pkgSrcRecords::pkgSrcRecords(pkgSourceList &List) : Files(0), Current(0) +{ + for (pkgSourceList::const_iterator I = List.begin(); I != List.end(); I++) + { + vector *Indexes = (*I)->GetIndexFiles(); + for (vector::const_iterator J = Indexes->begin(); + J != Indexes->end(); J++) + { + Parser* P = (*J)->CreateSrcParser(); + if (_error->PendingError() == true) + return; + if (P != 0) + Files.push_back(P); + } + } + + // Doesn't work without any source index files + if (Files.size() == 0) + { + _error->Error(_("You must put some 'source' URIs" + " in your sources.list")); + return; + } + + Restart(); +} + /*}}}*/ +// SrcRecords::~pkgSrcRecords - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgSrcRecords::~pkgSrcRecords() +{ + // Blow away all the parser objects + for(vector::iterator I = Files.begin(); I != Files.end(); ++I) + delete *I; +} + /*}}}*/ +// SrcRecords::Restart - Restart the search /*{{{*/ +// --------------------------------------------------------------------- +/* Return all of the parsers to their starting position */ +bool pkgSrcRecords::Restart() +{ + Current = Files.begin(); + for (vector::iterator I = Files.begin(); + I != Files.end(); I++) + (*I)->Restart(); + + return true; +} + /*}}}*/ +// SrcRecords::Find - Find the first source package with the given name /*{{{*/ +// --------------------------------------------------------------------- +/* This searches on both source package names and output binary names and + returns the first found. A 'cursor' like system is used to allow this + function to be called multiple times to get successive entries */ +pkgSrcRecords::Parser *pkgSrcRecords::Find(const char *Package,bool SrcOnly) +{ + if (Current == Files.end()) + return 0; + + while (true) + { + // Step to the next record, possibly switching files + while ((*Current)->Step() == false) + { + if (_error->PendingError() == true) + return 0; + Current++; + if (Current == Files.end()) + return 0; + } + + // IO error somehow + if (_error->PendingError() == true) + return 0; + + // Source name hit + if ((*Current)->Package() == Package) + return *Current; + + if (SrcOnly == true) + continue; + + // Check for a binary hit + const char **I = (*Current)->Binaries(); + for (; I != 0 && *I != 0; I++) + if (strcmp(Package,*I) == 0) + return *Current; + } +} + /*}}}*/ +// Parser::BuildDepType - Convert a build dep to a string /*{{{*/ +// --------------------------------------------------------------------- +/* */ +const char *pkgSrcRecords::Parser::BuildDepType(unsigned char Type) +{ + const char *fields[] = {"Build-Depends", + "Build-Depends-Indep", + "Build-Conflicts", + "Build-Conflicts-Indep"}; + if (Type < 4) + return fields[Type]; + else + return ""; +} + /*}}}*/ + + diff --git a/apt-pkg/srcrecords.h b/apt-pkg/srcrecords.h new file mode 100644 index 0000000..3e21125 --- /dev/null +++ b/apt-pkg/srcrecords.h @@ -0,0 +1,102 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: srcrecords.h,v 1.8.2.1 2003/12/26 16:27:34 mdz Exp $ +/* ###################################################################### + + Source Package Records - Allows access to source package records + + Parses and allows access to the list of source records and searching by + source name on that list. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_SRCRECORDS_H +#define PKGLIB_SRCRECORDS_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/srcrecords.h" +#endif + +#include +#include + +using std::string; +using std::vector; + +class pkgSourceList; +class pkgIndexFile; +class pkgSrcRecords +{ + public: + + // Describes a single file + struct File + { + string MD5Hash; + unsigned long Size; + string Path; + string Type; + }; + + // Abstract parser for each source record + class Parser + { + protected: + + const pkgIndexFile *iIndex; + + public: + + enum BuildDep {BuildDepend=0x0,BuildDependIndep=0x1, + BuildConflict=0x2,BuildConflictIndep=0x3}; + + struct BuildDepRec + { + string Package; + string Version; + unsigned int Op; + unsigned char Type; + }; + + inline const pkgIndexFile &Index() const {return *iIndex;}; + + virtual bool Restart() = 0; + virtual bool Step() = 0; + virtual bool Jump(unsigned long Off) = 0; + virtual unsigned long Offset() = 0; + virtual string AsStr() = 0; + + virtual string Package() const = 0; + virtual string Version() const = 0; + virtual string Maintainer() const = 0; + virtual string Section() const = 0; + virtual const char **Binaries() = 0; // Ownership does not transfer + + virtual bool BuildDepends(vector &BuildDeps, bool ArchOnly) = 0; + static const char *BuildDepType(unsigned char Type); + + virtual bool Files(vector &F) = 0; + + Parser(const pkgIndexFile *Index) : iIndex(Index) {}; + virtual ~Parser() {}; + }; + + private: + + // The list of files and the current parser pointer + vector Files; + vector::iterator Current; + + public: + + // Reset the search + bool Restart(); + + // Locate a package by name + Parser *Find(const char *Package,bool SrcOnly = false); + + pkgSrcRecords(pkgSourceList &List); + ~pkgSrcRecords(); +}; + +#endif diff --git a/apt-pkg/tagfile.cc b/apt-pkg/tagfile.cc new file mode 100644 index 0000000..223618c --- /dev/null +++ b/apt-pkg/tagfile.cc @@ -0,0 +1,580 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: tagfile.cc,v 1.37.2.2 2003/12/31 16:02:30 mdz Exp $ +/* ###################################################################### + + Fast scanner for RFC-822 type header information + + This uses a rotating buffer to load the package information into. + The scanner runs over it and isolates and indexes a single section. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/tagfile.h" +#endif + +#include +#include +#include + +#include + +#include +#include +#include + /*}}}*/ + +using std::string; + +// TagFile::pkgTagFile - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgTagFile::pkgTagFile(FileFd *pFd,unsigned long Size) : + Fd(*pFd), + Size(Size) +{ + if (Fd.IsOpen() == false) + { + Buffer = 0; + Start = End = Buffer = 0; + Done = true; + iOffset = 0; + return; + } + + Buffer = new char[Size]; + Start = End = Buffer; + Done = false; + iOffset = 0; + Fill(); +} + /*}}}*/ +// TagFile::~pkgTagFile - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgTagFile::~pkgTagFile() +{ + delete [] Buffer; +} + /*}}}*/ +// TagFile::Resize - Resize the internal buffer /*{{{*/ +// --------------------------------------------------------------------- +/* Resize the internal buffer (double it in size). Fail if a maximum size + * size is reached. + */ +bool pkgTagFile::Resize() +{ + char *tmp; + unsigned long EndSize = End - Start; + + // fail is the buffer grows too big + if(Size > 1024*1024+1) + return false; + + // get new buffer and use it + tmp = new char[2*Size]; + memcpy(tmp, Buffer, Size); + Size = Size*2; + delete [] Buffer; + Buffer = tmp; + + // update the start/end pointers to the new buffer + Start = Buffer; + End = Start + EndSize; + return true; +} + +// TagFile::Step - Advance to the next section /*{{{*/ +// --------------------------------------------------------------------- +/* If the Section Scanner fails we refill the buffer and try again. + * If that fails too, double the buffer size and try again until a + * maximum buffer is reached. + */ +bool pkgTagFile::Step(pkgTagSection &Tag) +{ + while (Tag.Scan(Start,End - Start) == false) + { + if (Fill() == false) + return false; + + if(Tag.Scan(Start,End - Start)) + break; + + if (Resize() == false) + return _error->Error(_("Unable to parse package file %s (1)"), + Fd.Name().c_str()); + } + Start += Tag.size(); + iOffset += Tag.size(); + + Tag.Trim(); + return true; +} + /*}}}*/ +// TagFile::Fill - Top up the buffer /*{{{*/ +// --------------------------------------------------------------------- +/* This takes the bit at the end of the buffer and puts it at the start + then fills the rest from the file */ +bool pkgTagFile::Fill() +{ + unsigned long EndSize = End - Start; + unsigned long Actual = 0; + + memmove(Buffer,Start,EndSize); + Start = Buffer; + End = Buffer + EndSize; + + if (Done == false) + { + // See if only a bit of the file is left + if (Fd.Read(End,Size - (End - Buffer),&Actual) == false) + return false; + if (Actual != Size - (End - Buffer)) + Done = true; + End += Actual; + } + + if (Done == true) + { + if (EndSize <= 3 && Actual == 0) + return false; + if (Size - (End - Buffer) < 4) + return true; + + // Append a double new line if one does not exist + unsigned int LineCount = 0; + for (const char *E = End - 1; E - End < 6 && (*E == '\n' || *E == '\r'); E--) + if (*E == '\n') + LineCount++; + for (; LineCount < 2; LineCount++) + *End++ = '\n'; + + return true; + } + + return true; +} + /*}}}*/ +// TagFile::Jump - Jump to a pre-recorded location in the file /*{{{*/ +// --------------------------------------------------------------------- +/* This jumps to a pre-recorded file location and reads the record + that is there */ +bool pkgTagFile::Jump(pkgTagSection &Tag,unsigned long Offset) +{ + // We are within a buffer space of the next hit.. + if (Offset >= iOffset && iOffset + (End - Start) > Offset) + { + unsigned long Dist = Offset - iOffset; + Start += Dist; + iOffset += Dist; + return Step(Tag); + } + + // Reposition and reload.. + iOffset = Offset; + Done = false; + if (Fd.Seek(Offset) == false) + return false; + End = Start = Buffer; + + if (Fill() == false) + return false; + + if (Tag.Scan(Start,End - Start) == true) + return true; + + // This appends a double new line (for the real eof handling) + if (Fill() == false) + return false; + + if (Tag.Scan(Start,End - Start) == false) + return _error->Error(_("Unable to parse package file %s (2)"),Fd.Name().c_str()); + + return true; +} + /*}}}*/ +// TagSection::Scan - Scan for the end of the header information /*{{{*/ +// --------------------------------------------------------------------- +/* This looks for the first double new line in the data stream. It also + indexes the tags in the section. This very simple hash function for the + last 8 letters gives very good performance on the debian package files */ +inline static unsigned long AlphaHash(const char *Text, const char *End = 0) +{ + unsigned long Res = 0; + for (; Text != End && *Text != ':' && *Text != 0; Text++) + Res = ((unsigned long)(*Text) & 0xDF) ^ (Res << 1); + return Res & 0xFF; +} + +bool pkgTagSection::Scan(const char *Start,unsigned long MaxLength) +{ + const char *End = Start + MaxLength; + Stop = Section = Start; + memset(AlphaIndexes,0,sizeof(AlphaIndexes)); + + if (Stop == 0) + return false; + + TagCount = 0; + while (TagCount+1 < sizeof(Indexes)/sizeof(Indexes[0]) && Stop < End) + { + // Start a new index and add it to the hash + if (isspace(Stop[0]) == 0) + { + Indexes[TagCount++] = Stop - Section; + AlphaIndexes[AlphaHash(Stop,End)] = TagCount; + } + + Stop = (const char *)memchr(Stop,'\n',End - Stop); + + if (Stop == 0) + return false; + + for (; Stop+1 < End && Stop[1] == '\r'; Stop++); + + // Double newline marks the end of the record + if (Stop+1 < End && Stop[1] == '\n') + { + Indexes[TagCount] = Stop - Section; + for (; Stop < End && (Stop[0] == '\n' || Stop[0] == '\r'); Stop++); + return true; + } + + Stop++; + } + + return false; +} + /*}}}*/ +// TagSection::Trim - Trim off any trailing garbage /*{{{*/ +// --------------------------------------------------------------------- +/* There should be exactly 1 newline at the end of the buffer, no more. */ +void pkgTagSection::Trim() +{ + for (; Stop > Section + 2 && (Stop[-2] == '\n' || Stop[-2] == '\r'); Stop--); +} + /*}}}*/ +// TagSection::Find - Locate a tag /*{{{*/ +// --------------------------------------------------------------------- +/* This searches the section for a tag that matches the given string. */ +bool pkgTagSection::Find(const char *Tag,unsigned &Pos) const +{ + unsigned int Length = strlen(Tag); + unsigned int I = AlphaIndexes[AlphaHash(Tag)]; + if (I == 0) + return false; + I--; + + for (unsigned int Counter = 0; Counter != TagCount; Counter++, + I = (I+1)%TagCount) + { + const char *St; + St = Section + Indexes[I]; + if (strncasecmp(Tag,St,Length) != 0) + continue; + + // Make sure the colon is in the right place + const char *C = St + Length; + for (; isspace(*C) != 0; C++); + if (*C != ':') + continue; + Pos = I; + return true; + } + + Pos = 0; + return false; +} + /*}}}*/ +// TagSection::Find - Locate a tag /*{{{*/ +// --------------------------------------------------------------------- +/* This searches the section for a tag that matches the given string. */ +bool pkgTagSection::Find(const char *Tag,const char *&Start, + const char *&End) const +{ + unsigned int Length = strlen(Tag); + unsigned int I = AlphaIndexes[AlphaHash(Tag)]; + if (I == 0) + return false; + I--; + + for (unsigned int Counter = 0; Counter != TagCount; Counter++, + I = (I+1)%TagCount) + { + const char *St; + St = Section + Indexes[I]; + if (strncasecmp(Tag,St,Length) != 0) + continue; + + // Make sure the colon is in the right place + const char *C = St + Length; + for (; isspace(*C) != 0; C++); + if (*C != ':') + continue; + + // Strip off the gunk from the start end + Start = C; + End = Section + Indexes[I+1]; + if (Start >= End) + return _error->Error("Internal parsing error"); + + for (; (isspace(*Start) != 0 || *Start == ':') && Start < End; Start++); + for (; isspace(End[-1]) != 0 && End > Start; End--); + + return true; + } + + Start = End = 0; + return false; +} + /*}}}*/ +// TagSection::FindS - Find a string /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string pkgTagSection::FindS(const char *Tag) const +{ + const char *Start; + const char *End; + if (Find(Tag,Start,End) == false) + return string(); + return string(Start,End); +} + /*}}}*/ +// TagSection::FindI - Find an integer /*{{{*/ +// --------------------------------------------------------------------- +/* */ +signed int pkgTagSection::FindI(const char *Tag,signed long Default) const +{ + const char *Start; + const char *Stop; + if (Find(Tag,Start,Stop) == false) + return Default; + + // Copy it into a temp buffer so we can use strtol + char S[300]; + if ((unsigned)(Stop - Start) >= sizeof(S)) + return Default; + strncpy(S,Start,Stop-Start); + S[Stop - Start] = 0; + + char *End; + signed long Result = strtol(S,&End,10); + if (S == End) + return Default; + return Result; +} + /*}}}*/ +// TagSection::FindFlag - Locate a yes/no type flag /*{{{*/ +// --------------------------------------------------------------------- +/* The bits marked in Flag are masked on/off in Flags */ +bool pkgTagSection::FindFlag(const char *Tag,unsigned long &Flags, + unsigned long Flag) const +{ + const char *Start; + const char *Stop; + if (Find(Tag,Start,Stop) == false) + return true; + + switch (StringToBool(string(Start,Stop))) + { + case 0: + Flags &= ~Flag; + return true; + + case 1: + Flags |= Flag; + return true; + + default: + _error->Warning("Unknown flag value: %s",string(Start,Stop).c_str()); + return true; + } + return true; +} + /*}}}*/ + +// TFRewrite - Rewrite a control record /*{{{*/ +// --------------------------------------------------------------------- +/* This writes the control record to stdout rewriting it as necessary. The + override map item specificies the rewriting rules to follow. This also + takes the time to sort the feild list. */ + +/* The order of this list is taken from dpkg source lib/parse.c the fieldinfos + array. */ +static const char *iTFRewritePackageOrder[] = { + "Package", + "Essential", + "Status", + "Priority", + "Section", + "Installed-Size", + "Maintainer", + "Architecture", + "Source", + "Version", + "Revision", // Obsolete + "Config-Version", // Obsolete + "Replaces", + "Provides", + "Depends", + "Pre-Depends", + "Recommends", + "Suggests", + "Conflicts", + "Conffiles", + "Filename", + "Size", + "MD5Sum", + "SHA1", + "SHA256", + "MSDOS-Filename", // Obsolete + "Description", + 0}; +static const char *iTFRewriteSourceOrder[] = {"Package", + "Source", + "Binary", + "Version", + "Priority", + "Section", + "Maintainer", + "Build-Depends", + "Build-Depends-Indep", + "Build-Conflicts", + "Build-Conflicts-Indep", + "Architecture", + "Standards-Version", + "Format", + "Directory", + "Files", + 0}; + +/* Two levels of initialization are used because gcc will set the symbol + size of an array to the length of the array, causing dynamic relinking + errors. Doing this makes the symbol size constant */ +const char **TFRewritePackageOrder = iTFRewritePackageOrder; +const char **TFRewriteSourceOrder = iTFRewriteSourceOrder; + +bool TFRewrite(FILE *Output,pkgTagSection const &Tags,const char *Order[], + TFRewriteData *Rewrite) +{ + unsigned char Visited[256]; // Bit 1 is Order, Bit 2 is Rewrite + for (unsigned I = 0; I != 256; I++) + Visited[I] = 0; + + // Set new tag up as necessary. + for (unsigned int J = 0; Rewrite != 0 && Rewrite[J].Tag != 0; J++) + { + if (Rewrite[J].NewTag == 0) + Rewrite[J].NewTag = Rewrite[J].Tag; + } + + // Write all all of the tags, in order. + for (unsigned int I = 0; Order[I] != 0; I++) + { + bool Rewritten = false; + + // See if this is a field that needs to be rewritten + for (unsigned int J = 0; Rewrite != 0 && Rewrite[J].Tag != 0; J++) + { + if (strcasecmp(Rewrite[J].Tag,Order[I]) == 0) + { + Visited[J] |= 2; + if (Rewrite[J].Rewrite != 0 && Rewrite[J].Rewrite[0] != 0) + { + if (isspace(Rewrite[J].Rewrite[0])) + fprintf(Output,"%s:%s\n",Rewrite[J].NewTag,Rewrite[J].Rewrite); + else + fprintf(Output,"%s: %s\n",Rewrite[J].NewTag,Rewrite[J].Rewrite); + } + + Rewritten = true; + break; + } + } + + // See if it is in the fragment + unsigned Pos; + if (Tags.Find(Order[I],Pos) == false) + continue; + Visited[Pos] |= 1; + + if (Rewritten == true) + continue; + + /* Write out this element, taking a moment to rewrite the tag + in case of changes of case. */ + const char *Start; + const char *Stop; + Tags.Get(Start,Stop,Pos); + + if (fputs(Order[I],Output) < 0) + return _error->Errno("fputs","IO Error to output"); + Start += strlen(Order[I]); + if (fwrite(Start,Stop - Start,1,Output) != 1) + return _error->Errno("fwrite","IO Error to output"); + if (Stop[-1] != '\n') + fprintf(Output,"\n"); + } + + // Now write all the old tags that were missed. + for (unsigned int I = 0; I != Tags.Count(); I++) + { + if ((Visited[I] & 1) == 1) + continue; + + const char *Start; + const char *Stop; + Tags.Get(Start,Stop,I); + const char *End = Start; + for (; End < Stop && *End != ':'; End++); + + // See if this is a field that needs to be rewritten + bool Rewritten = false; + for (unsigned int J = 0; Rewrite != 0 && Rewrite[J].Tag != 0; J++) + { + if (stringcasecmp(Start,End,Rewrite[J].Tag) == 0) + { + Visited[J] |= 2; + if (Rewrite[J].Rewrite != 0 && Rewrite[J].Rewrite[0] != 0) + { + if (isspace(Rewrite[J].Rewrite[0])) + fprintf(Output,"%s:%s\n",Rewrite[J].NewTag,Rewrite[J].Rewrite); + else + fprintf(Output,"%s: %s\n",Rewrite[J].NewTag,Rewrite[J].Rewrite); + } + + Rewritten = true; + break; + } + } + + if (Rewritten == true) + continue; + + // Write out this element + if (fwrite(Start,Stop - Start,1,Output) != 1) + return _error->Errno("fwrite","IO Error to output"); + if (Stop[-1] != '\n') + fprintf(Output,"\n"); + } + + // Now write all the rewrites that were missed + for (unsigned int J = 0; Rewrite != 0 && Rewrite[J].Tag != 0; J++) + { + if ((Visited[J] & 2) == 2) + continue; + + if (Rewrite[J].Rewrite != 0 && Rewrite[J].Rewrite[0] != 0) + { + if (isspace(Rewrite[J].Rewrite[0])) + fprintf(Output,"%s:%s\n",Rewrite[J].NewTag,Rewrite[J].Rewrite); + else + fprintf(Output,"%s: %s\n",Rewrite[J].NewTag,Rewrite[J].Rewrite); + } + } + + return true; +} + /*}}}*/ diff --git a/apt-pkg/tagfile.h b/apt-pkg/tagfile.h new file mode 100644 index 0000000..70381ad --- /dev/null +++ b/apt-pkg/tagfile.h @@ -0,0 +1,108 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: tagfile.h,v 1.20 2003/05/19 17:13:57 doogie Exp $ +/* ###################################################################### + + Fast scanner for RFC-822 type header information + + This parser handles Debian package files (and others). Their form is + RFC-822 type header fields in groups separated by a blank line. + + The parser reads the file and provides methods to step linearly + over it or to jump to a pre-recorded start point and read that record. + + A second class is used to perform pre-parsing of the record. It works + by indexing the start of each header field and providing lookup + functions for header fields. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_TAGFILE_H +#define PKGLIB_TAGFILE_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/tagfile.h" +#endif + +#include +#include + +class pkgTagSection +{ + const char *Section; + const char *Stop; + + // We have a limit of 256 tags per section. + unsigned short Indexes[256]; + unsigned short AlphaIndexes[0x100]; + + unsigned int TagCount; + + public: + + inline bool operator ==(const pkgTagSection &rhs) {return Section == rhs.Section;}; + inline bool operator !=(const pkgTagSection &rhs) {return Section != rhs.Section;}; + + bool Find(const char *Tag,const char *&Start, const char *&End) const; + bool Find(const char *Tag,unsigned &Pos) const; + string FindS(const char *Tag) const; + signed int FindI(const char *Tag,signed long Default = 0) const ; + bool FindFlag(const char *Tag,unsigned long &Flags, + unsigned long Flag) const; + bool Scan(const char *Start,unsigned long MaxLength); + inline unsigned long size() const {return Stop - Section;}; + void Trim(); + + inline unsigned int Count() const {return TagCount;}; + inline void Get(const char *&Start,const char *&Stop,unsigned int I) const + {Start = Section + Indexes[I]; Stop = Section + Indexes[I+1];} + + inline void GetSection(const char *&Start,const char *&Stop) const + { + Start = Section; + Stop = this->Stop; + }; + + pkgTagSection() : Section(0), Stop(0) {}; +}; + +class pkgTagFile +{ + FileFd &Fd; + char *Buffer; + char *Start; + char *End; + bool Done; + unsigned long iOffset; + unsigned long Size; + + bool Fill(); + bool Resize(); + + public: + + bool Step(pkgTagSection &Section); + inline unsigned long Offset() {return iOffset;}; + bool Jump(pkgTagSection &Tag,unsigned long Offset); + + pkgTagFile(FileFd *F,unsigned long Size = 32*1024); + ~pkgTagFile(); +}; + +/* This is the list of things to rewrite. The rewriter + goes through and changes or adds each of these headers + to suit. A zero forces the header to be erased, an empty string + causes the old value to be used. (rewrite rule ignored) */ +struct TFRewriteData +{ + const char *Tag; + const char *Rewrite; + const char *NewTag; +}; +extern const char **TFRewritePackageOrder; +extern const char **TFRewriteSourceOrder; + +bool TFRewrite(FILE *Output,pkgTagSection const &Tags,const char *Order[], + TFRewriteData *Rewrite); + +#endif diff --git a/apt-pkg/vendor.cc b/apt-pkg/vendor.cc new file mode 100644 index 0000000..d0392eb --- /dev/null +++ b/apt-pkg/vendor.cc @@ -0,0 +1,39 @@ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/vendor.h" +#endif + +#include +#include +#include +#include + +Vendor::Vendor(std::string VendorID, + std::string Origin, + std::vector *FingerprintList) +{ + this->VendorID = VendorID; + this->Origin = Origin; + for (std::vector::iterator I = FingerprintList->begin(); + I != FingerprintList->end(); I++) + { + if (_config->FindB("Debug::Vendor", false)) + std::cerr << "Vendor \"" << VendorID << "\": Mapping \"" + << (*I)->Print << "\" to \"" << (*I)->Description << '"' << std::endl; + Fingerprints[(*I)->Print] = (*I)->Description; + } + delete FingerprintList; +} + +const string Vendor::LookupFingerprint(string Print) const +{ + std::map::const_iterator Elt = Fingerprints.find(Print); + if (Elt == Fingerprints.end()) + return ""; + else + return (*Elt).second; +} + +bool Vendor::CheckDist(string Dist) +{ + return true; +} diff --git a/apt-pkg/vendor.h b/apt-pkg/vendor.h new file mode 100644 index 0000000..033bb96 --- /dev/null +++ b/apt-pkg/vendor.h @@ -0,0 +1,37 @@ +#ifndef PKGLIB_VENDOR_H +#define PKGLIB_VENDOR_H +#include +#include +#include + +#ifdef __GNUG__ +#pragma interface "apt-pkg/vendor.h" +#endif + +using std::string; + +// A class representing a particular software provider. +class Vendor +{ + public: + struct Fingerprint + { + string Print; + string Description; + }; + + protected: + string VendorID; + string Origin; + std::map Fingerprints; + + public: + Vendor(string VendorID, string Origin, + std::vector *FingerprintList); + virtual const string& GetVendorID() const { return VendorID; }; + virtual const string LookupFingerprint(string Print) const; + virtual bool CheckDist(string Dist); + virtual ~Vendor(){}; +}; + +#endif diff --git a/apt-pkg/vendorlist.cc b/apt-pkg/vendorlist.cc new file mode 100644 index 0000000..8e5d09e --- /dev/null +++ b/apt-pkg/vendorlist.cc @@ -0,0 +1,144 @@ +#include +#include +#include +#include + +pkgVendorList::~pkgVendorList() +{ + for (vector::const_iterator I = VendorList.begin(); + I != VendorList.end(); I++) + delete *I; +} + +// pkgVendorList::ReadMainList - Read list of known package vendors /*{{{*/ +// --------------------------------------------------------------------- +/* This also scans a directory of vendor files similar to apt.conf.d + which can contain the usual suspects of distribution provided data. + The APT config mechanism allows the user to override these in their + configuration file. */ +bool pkgVendorList::ReadMainList() +{ + Configuration Cnf; + + string CnfFile = _config->FindDir("Dir::Etc::vendorparts"); + if (FileExists(CnfFile) == true) + if (ReadConfigDir(Cnf,CnfFile,true) == false) + return false; + CnfFile = _config->FindFile("Dir::Etc::vendorlist"); + if (FileExists(CnfFile) == true) + if (ReadConfigFile(Cnf,CnfFile,true) == false) + return false; + + return CreateList(Cnf); +} + +bool pkgVendorList::Read(string File) +{ + Configuration Cnf; + if (ReadConfigFile(Cnf,File,true) == false) + return false; + + return CreateList(Cnf); +} + +bool pkgVendorList::CreateList(Configuration& Cnf) +{ + for (vector::const_iterator I = VendorList.begin(); + I != VendorList.end(); I++) + delete *I; + VendorList.erase(VendorList.begin(),VendorList.end()); + + const Configuration::Item *Top = Cnf.Tree("Vendor"); + for (Top = (Top == 0?0:Top->Child); Top != 0; Top = Top->Next) + { + Configuration Block(Top); + string VendorID = Top->Tag; + vector *Fingerprints = new vector; + struct Vendor::Fingerprint *Fingerprint = new struct Vendor::Fingerprint; + string Origin = Block.Find("Origin"); + + Fingerprint->Print = Block.Find("Fingerprint"); + Fingerprint->Description = Block.Find("Name"); + Fingerprints->push_back(Fingerprint); + + if (Fingerprint->Print.empty() || Fingerprint->Description.empty()) + { + _error->Error(_("Vendor block %s contains no fingerprint"), VendorID.c_str()); + delete Fingerprints; + continue; + } + if (_config->FindB("Debug::sourceList", false)) + std::cerr << "Adding vendor with ID: " << VendorID + << " Fingerprint: " << Fingerprint->Print << std::endl; + + VendorList.push_back(new Vendor(VendorID, Origin, Fingerprints)); + } + + /* Process 'group-key' type sections */ + Top = Cnf.Tree("group-key"); + for (Top = (Top == 0?0:Top->Child); Top != 0; Top = Top->Next) + { +// Configuration Block(Top); +// vector Fingerprints; +// string VendorID = Top->Tag; + +// while (Block->Next) +// { +// struct Vendor::Fingerprint Fingerprint = new struct Vendor::Fingerprint; +// Fingerprint->Print = Block.Find("Fingerprint"); +// Fingerprint->Description = Block.Find("Name"); +// if (Fingerprint->print.empty() || Fingerprint->Description.empty()) +// { +// _error->Error(_("Vendor block %s is invalid"), +// Vendor->VendorID.c_str()); +// delete Fingerprint; +// break; +// } +// Block = Block->Next->Next; +// } +// if (_error->PendingError()) +// { +// for (vector ::iterator I = Fingerprints.begin(); +// I != Fingerprints.end(); I++) +// delete *I; +// delete Fingerprints; +// continue; +// } + +// VendorList.push_back(new Vendor(VendorID, Fingerprints)); + } + + return !_error->PendingError(); +} + +const Vendor* pkgVendorList::LookupFingerprint(string Fingerprint) +{ + for (const_iterator I = VendorList.begin(); I != VendorList.end(); ++I) + { + if ((*I)->LookupFingerprint(Fingerprint) != "") + return *I; + } + + return NULL; +} + +const Vendor* pkgVendorList::FindVendor(const std::vector GPGVOutput) +{ + for (std::vector::const_iterator I = GPGVOutput.begin(); I != GPGVOutput.end(); I++) + { + string::size_type pos = (*I).find("VALIDSIG "); + if (_config->FindB("Debug::Vendor", false)) + std::cerr << "Looking for VALIDSIG in \"" << (*I) << "\": pos " << pos << std::endl; + if (pos != std::string::npos) + { + string Fingerprint = (*I).substr(pos+sizeof("VALIDSIG")); + if (_config->FindB("Debug::Vendor", false)) + std::cerr << "Looking for \"" << Fingerprint << "\" in vendor..." << std::endl; + const Vendor* vendor = this->LookupFingerprint(Fingerprint); + if (vendor != NULL) + return vendor; + } + } + + return NULL; +} diff --git a/apt-pkg/vendorlist.h b/apt-pkg/vendorlist.h new file mode 100644 index 0000000..7f96fc7 --- /dev/null +++ b/apt-pkg/vendorlist.h @@ -0,0 +1,52 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: vendorlist.h,v 1.1.2.1 2003/12/24 23:09:17 mdz Exp $ +/* ###################################################################### + + VendorList - Manage a list of vendors + + The Vendor List class provides access to a list of vendors and + attributes associated with them, read from a configuration file. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_VENDORLIST_H +#define PKGLIB_VENDORLIST_H + +#include +#include +#include +#include + +using std::string; +using std::vector; + +#ifdef __GNUG__ +#pragma interface "apt-pkg/vendorlist.h" +#endif + +class pkgVendorList +{ + protected: + vector VendorList; + + bool CreateList(Configuration& Cnf); + const Vendor* LookupFingerprint(string Fingerprint); + + public: + typedef vector::const_iterator const_iterator; + bool ReadMainList(); + bool Read(string File); + + // List accessors + inline const_iterator begin() const {return VendorList.begin();}; + inline const_iterator end() const {return VendorList.end();}; + inline unsigned int size() const {return VendorList.size();}; + inline bool empty() const {return VendorList.empty();}; + + const Vendor* FindVendor(const vector GPGVOutput); + + ~pkgVendorList(); +}; + +#endif diff --git a/apt-pkg/version.cc b/apt-pkg/version.cc new file mode 100644 index 0000000..db340c1 --- /dev/null +++ b/apt-pkg/version.cc @@ -0,0 +1,44 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: version.cc,v 1.10 2001/02/20 07:03:17 jgg Exp $ +/* ###################################################################### + + Version - Versioning system.. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/version.h" +#endif + +#include +#include + +#include + /*}}}*/ + +static pkgVersioningSystem *VSList[10]; +pkgVersioningSystem **pkgVersioningSystem::GlobalList = VSList; +unsigned long pkgVersioningSystem::GlobalListLen = 0; + +// pkgVS::pkgVersioningSystem - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* Link to the global list of versioning systems supported */ +pkgVersioningSystem::pkgVersioningSystem() +{ + VSList[GlobalListLen] = this; + GlobalListLen++; +} + /*}}}*/ +// pkgVS::GetVS - Find a VS by name /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgVersioningSystem *pkgVersioningSystem::GetVS(const char *Label) +{ + for (unsigned I = 0; I != GlobalListLen; I++) + if (strcmp(VSList[I]->Label,Label) == 0) + return VSList[I]; + return 0; +} + /*}}}*/ diff --git a/apt-pkg/version.h b/apt-pkg/version.h new file mode 100644 index 0000000..071dba3 --- /dev/null +++ b/apt-pkg/version.h @@ -0,0 +1,67 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: version.h,v 1.8 2001/05/27 05:55:27 jgg Exp $ +/* ###################################################################### + + Version - Versioning system.. + + The versioning system represents how versions are compared, represented + and how dependencies are evaluated. As a general rule versioning + systems are not compatible unless specifically allowed by the + TestCompatibility query. + + The versions are stored in a global list of versions, but that is just + so that they can be queried when someone does 'apt-get -v'. + pkgSystem provides the proper means to access the VS for the active + system. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_VERSION_H +#define PKGLIB_VERSION_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/version.h" +#endif + +#include +#include + +using std::string; + +class pkgVersioningSystem +{ + public: + // Global list of VS's + static pkgVersioningSystem **GlobalList; + static unsigned long GlobalListLen; + static pkgVersioningSystem *GetVS(const char *Label); + + const char *Label; + + // Compare versions.. + virtual int DoCmpVersion(const char *A,const char *Aend, + const char *B,const char *Bend) = 0; + + virtual bool CheckDep(const char *PkgVer,int Op,const char *DepVer) = 0; + virtual int DoCmpReleaseVer(const char *A,const char *Aend, + const char *B,const char *Bend) = 0; + virtual string UpstreamVersion(const char *A) = 0; + + // See if the given VS is compatible with this one.. + virtual bool TestCompatibility(pkgVersioningSystem const &Against) + {return this == &Against;}; + + // Shortcuts + APT_MKSTRCMP(CmpVersion,DoCmpVersion); + APT_MKSTRCMP(CmpReleaseVer,DoCmpReleaseVer); + + pkgVersioningSystem(); + virtual ~pkgVersioningSystem() {}; +}; + +#ifdef APT_COMPATIBILITY +#include +#endif + +#endif diff --git a/apt-pkg/versionmatch.cc b/apt-pkg/versionmatch.cc new file mode 100644 index 0000000..9e34185 --- /dev/null +++ b/apt-pkg/versionmatch.cc @@ -0,0 +1,222 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: versionmatch.cc,v 1.9 2003/05/19 17:58:26 doogie Exp $ +/* ###################################################################### + + Version Matching + + This module takes a matching string and a type and locates the version + record that satisfies the constraint described by the matching string. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-pkg/versionmatch.h" +#endif +#include + +#include +#include + +#include +#include + /*}}}*/ + +// VersionMatch::pkgVersionMatch - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* Break up the data string according to the selected type */ +pkgVersionMatch::pkgVersionMatch(string Data,MatchType Type) : Type(Type) +{ + MatchAll = false; + VerPrefixMatch = false; + RelVerPrefixMatch = false; + + if (Type == None || Data.length() < 1) + return; + + // Cut up the version representation + if (Type == Version) + { + if (Data.end()[-1] == '*') + { + VerPrefixMatch = true; + VerStr = string(Data,0,Data.length()-1); + } + else + VerStr = Data; + return; + } + + if (Type == Release) + { + // All empty = match all + if (Data == "*") + { + MatchAll = true; + return; + } + + // Are we a simple specification? + string::const_iterator I = Data.begin(); + for (; I != Data.end() && *I != '='; I++); + if (I == Data.end()) + { + // Temporary + if (isdigit(Data[0])) + RelVerStr = Data; + else + RelArchive = Data; + + if (RelVerStr.length() > 0 && RelVerStr.end()[-1] == '*') + { + RelVerPrefixMatch = true; + RelVerStr = string(RelVerStr.begin(),RelVerStr.end()-1); + } + return; + } + + char Spec[300]; + char *Fragments[20]; + snprintf(Spec,sizeof(Spec),"%s",Data.c_str()); + if (TokSplitString(',',Spec,Fragments, + sizeof(Fragments)/sizeof(Fragments[0])) == false) + { + Type = None; + return; + } + + for (unsigned J = 0; Fragments[J] != 0; J++) + { + if (strlen(Fragments[J]) < 3) + continue; + + if (stringcasecmp(Fragments[J],Fragments[J]+2,"v=") == 0) + RelVerStr = Fragments[J]+2; + else if (stringcasecmp(Fragments[J],Fragments[J]+2,"o=") == 0) + RelOrigin = Fragments[J]+2; + else if (stringcasecmp(Fragments[J],Fragments[J]+2,"a=") == 0) + RelArchive = Fragments[J]+2; + else if (stringcasecmp(Fragments[J],Fragments[J]+2,"l=") == 0) + RelLabel = Fragments[J]+2; + else if (stringcasecmp(Fragments[J],Fragments[J]+2,"c=") == 0) + RelComponent = Fragments[J]+2; + } + + if (RelVerStr.end()[-1] == '*') + { + RelVerPrefixMatch = true; + RelVerStr = string(RelVerStr.begin(),RelVerStr.end()-1); + } + return; + } + + if (Type == Origin) + { + OrSite = Data; + return; + } +} + /*}}}*/ +// VersionMatch::MatchVer - Match a version string with prefixing /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgVersionMatch::MatchVer(const char *A,string B,bool Prefix) +{ + const char *Ab = A; + const char *Ae = Ab + strlen(A); + + // Strings are not a compatible size. + if ((unsigned)(Ae - Ab) != B.length() && Prefix == false || + (unsigned)(Ae - Ab) < B.length()) + return false; + + // Match (leading?) + if (stringcasecmp(B,Ab,Ab + B.length()) == 0) + return true; + + return false; +} + /*}}}*/ +// VersionMatch::Find - Locate the best match for the select type /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgCache::VerIterator pkgVersionMatch::Find(pkgCache::PkgIterator Pkg) +{ + pkgCache::VerIterator Ver = Pkg.VersionList(); + for (; Ver.end() == false; Ver++) + { + if (Type == Version) + { + if (MatchVer(Ver.VerStr(),VerStr,VerPrefixMatch) == true) + return Ver; + continue; + } + + for (pkgCache::VerFileIterator VF = Ver.FileList(); VF.end() == false; VF++) + if (FileMatch(VF.File()) == true) + return Ver; + } + + // This will be Ended by now. + return Ver; +} + /*}}}*/ +// VersionMatch::FileMatch - Match against an index file /*{{{*/ +// --------------------------------------------------------------------- +/* This matcher checks against the release file and the origin location + to see if the constraints are met. */ +bool pkgVersionMatch::FileMatch(pkgCache::PkgFileIterator File) +{ + if (Type == Release) + { + if (MatchAll == true) + return true; + +/* cout << RelVerStr << ',' << RelOrigin << ',' << RelArchive << ',' << RelLabel << endl; + cout << File.Version() << ',' << File.Origin() << ',' << File.Archive() << ',' << File.Label() << endl;*/ + + if (RelVerStr.empty() == true && RelOrigin.empty() == true && + RelArchive.empty() == true && RelLabel.empty() == true && + RelComponent.empty() == true) + return false; + + if (RelVerStr.empty() == false) + if (File->Version == 0 || + MatchVer(File.Version(),RelVerStr,RelVerPrefixMatch) == false) + return false; + if (RelOrigin.empty() == false) + if (File->Origin == 0 || + stringcasecmp(RelOrigin,File.Origin()) != 0) + return false; + if (RelArchive.empty() == false) + { + if (File->Archive == 0 || + stringcasecmp(RelArchive,File.Archive()) != 0) + return false; + } + if (RelLabel.empty() == false) + if (File->Label == 0 || + stringcasecmp(RelLabel,File.Label()) != 0) + return false; + if (RelComponent.empty() == false) + if (File->Component == 0 || + stringcasecmp(RelComponent,File.Component()) != 0) + return false; + return true; + } + + if (Type == Origin) + { + if (OrSite.empty() == false) { + if (File->Site == 0 || OrSite != File.Site()) + return false; + } else // so we are talking about file:// or status file + if (strcmp(File.Site(),"") == 0 && File->Archive != 0) // skip the status file + return false; + return (OrSite == File.Site()); /* both strings match */ + } + + return false; +} + /*}}}*/ diff --git a/apt-pkg/versionmatch.h b/apt-pkg/versionmatch.h new file mode 100644 index 0000000..7ca39cb --- /dev/null +++ b/apt-pkg/versionmatch.h @@ -0,0 +1,72 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: versionmatch.h,v 1.4 2001/05/29 03:07:12 jgg Exp $ +/* ###################################################################### + + Version Matching + + This module takes a matching string and a type and locates the version + record that satisfies the constraint described by the matching string. + + Version: 1.2* + Release: o=Debian,v=2.1*,c=main + Release: v=2.1* + Release: * + Origin: ftp.debian.org + + Release may be a complex type that can specify matches for any of: + Version (v= with prefix) + Origin (o=) + Archive (a=) + Label (l=) + Component (c=) + If there are no equals signs in the string then it is scanned in short + form - if it starts with a number it is Version otherwise it is an + Archive. + + Release may be a '*' to match all releases. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_VERSIONMATCH_H +#define PKGLIB_VERSIONMATCH_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/versionmatch.h" +#endif + +#include +#include + +using std::string; + +class pkgVersionMatch +{ + // Version Matching + string VerStr; + bool VerPrefixMatch; + + // Release Matching + string RelVerStr; + bool RelVerPrefixMatch; + string RelOrigin; + string RelArchive; + string RelLabel; + string RelComponent; + bool MatchAll; + + // Origin Matching + string OrSite; + + public: + + enum MatchType {None = 0,Version,Release,Origin} Type; + + bool MatchVer(const char *A,string B,bool Prefix); + bool FileMatch(pkgCache::PkgFileIterator File); + pkgCache::VerIterator Find(pkgCache::PkgIterator Pkg); + + pkgVersionMatch(string Data,MatchType Type); +}; + +#endif diff --git a/buildlib/apti18n.h.in b/buildlib/apti18n.h.in new file mode 100644 index 0000000..a5b91b1 --- /dev/null +++ b/buildlib/apti18n.h.in @@ -0,0 +1,23 @@ +// -*- mode: cpp; mode: fold -*- +// $Id: apti18n.h.in,v 1.6 2003/01/11 07:18:18 jgg Exp $ +/* Internationalization macros for apt. This header should be included last + in each C file. */ + +// Set by autoconf +#undef USE_NLS + +#ifdef USE_NLS +// apt will use the gettext implementation of the C library +# include +# ifdef APT_DOMAIN +# define _(x) dgettext(APT_DOMAIN,x) +# else +# define _(x) gettext(x) +# endif +# define N_(x) x +#else +// apt will not use any gettext +# define setlocale(a, b) +# define _(x) x +# define N_(x) x +#endif diff --git a/buildlib/archtable b/buildlib/archtable new file mode 100644 index 0000000..1975292 --- /dev/null +++ b/buildlib/archtable @@ -0,0 +1,29 @@ +# This file contains a table of known architecture strings, with +# things to map them to. `configure' will take the output of the +# autoconf cannon macros and look in here. This only deals with architecture +# (CPU) names. + +# The left side is a regex for awk + +i.86 i386 +pentium i386 +sparc sparc +sparc64 sparc +alpha.* alpha +m68k m68k +arm.*b armeb +arm.* arm +powerpc powerpc +ppc powerpc +powerpc64 ppc64 +mipsel mipsel +mipseb mips +mips mips +sheb sheb +shel sh +sh sh +hppa.* hppa +ia64 ia64 +s390 s390 +s390x s390x +x86_64 amd64 diff --git a/buildlib/config.guess b/buildlib/config.guess new file mode 100755 index 0000000..1127162 --- /dev/null +++ b/buildlib/config.guess @@ -0,0 +1,1415 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + +timestamp='2003-10-07' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Per Bothner . +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep __ELF__ >/dev/null + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit 0 ;; + amiga:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + arc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + hp300:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + macppc:OpenBSD:*:*) + echo powerpc-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme88k:OpenBSD:*:*) + echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvmeppc:OpenBSD:*:*) + echo powerpc-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + pmax:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sgi:OpenBSD:*:*) + echo mipseb-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sun3:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + wgrisc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + *:OpenBSD:*:*) + echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + alpha:OSF1:*:*) + if test $UNAME_RELEASE = "V4.0"; then + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + fi + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit 0 ;; + Alpha*:OpenVMS:*:*) + echo alpha-hp-vms + exit 0 ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit 0 ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit 0 ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit 0;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit 0 ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit 0 ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit 0 ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit 0;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit 0;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit 0 ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit 0 ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit 0 ;; + DRS?6000:UNIX_SV:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7 && exit 0 ;; + esac ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + i86pc:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit 0 ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit 0 ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit 0 ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit 0 ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit 0 ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit 0 ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit 0 ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit 0 ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit 0 ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit 0 ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c \ + && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ + && exit 0 + echo mips-mips-riscos${UNAME_RELEASE} + exit 0 ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit 0 ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit 0 ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit 0 ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit 0 ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit 0 ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit 0 ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit 0 ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit 0 ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit 0 ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit 0 ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit 0 ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit 0 ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit 0 ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit 0 ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 + echo rs6000-ibm-aix3.2.5 + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit 0 ;; + *:AIX:*:[45]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit 0 ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit 0 ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit 0 ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit 0 ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit 0 ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit 0 ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit 0 ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + # avoid double evaluation of $set_cc_for_build + test -n "$CC_FOR_BUILD" || eval $set_cc_for_build + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit 0 ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit 0 ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 + echo unknown-hitachi-hiuxwe2 + exit 0 ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit 0 ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit 0 ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit 0 ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit 0 ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit 0 ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit 0 ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit 0 ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit 0 ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit 0 ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit 0 ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit 0 ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + *:UNICOS/mp:*:*) + echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit 0 ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit 0 ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:FreeBSD:*:*) + # Determine whether the default compiler uses glibc. + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + #if __GLIBC__ >= 2 + LIBC=gnu + #else + LIBC= + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` + # GNU/KFreeBSD systems have a "k" prefix to indicate we are using + # FreeBSD's kernel, but not the complete OS. + case ${LIBC} in gnu) kernel_only='k' ;; esac + echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} + exit 0 ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit 0 ;; + i*:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit 0 ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit 0 ;; + x86:Interix*:[34]*) + echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' + exit 0 ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit 0 ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit 0 ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit 0 ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit 0 ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit 0 ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit 0 ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit 0 ;; + arm*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit 0 ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + mips:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips + #undef mipsel + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mipsel + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` + test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + ;; + mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips64 + #undef mips64el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mips64el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips64 + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` + test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit 0 ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit 0 ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit 0 ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit 0 ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit 0 ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit 0 ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit 0 ;; + i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. + # Set LC_ALL=C to ensure ld outputs messages in English. + ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ + | sed -ne '/supported targets:/!d + s/[ ][ ]*/ /g + s/.*supported targets: *// + s/ .*// + p'` + case "$ld_supported_targets" in + elf32-i386) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + a.out-i386-linux) + echo "${UNAME_MACHINE}-pc-linux-gnuaout" + exit 0 ;; + coff-i386) + echo "${UNAME_MACHINE}-pc-linux-gnucoff" + exit 0 ;; + "") + # Either a pre-BFD a.out linker (linux-gnuoldld) or + # one that does not give us useful --help. + echo "${UNAME_MACHINE}-pc-linux-gnuoldld" + exit 0 ;; + esac + # Determine whether the default compiler is a.out or elf + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + #ifdef __ELF__ + # ifdef __GLIBC__ + # if __GLIBC__ >= 2 + LIBC=gnu + # else + LIBC=gnulibc1 + # endif + # else + LIBC=gnulibc1 + # endif + #else + #ifdef __INTEL_COMPILER + LIBC=gnu + #else + LIBC=gnuaout + #endif + #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` + test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 + test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit 0 ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit 0 ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit 0 ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit 0 ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit 0 ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit 0 ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit 0 ;; + i*86:*:5:[78]*) + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit 0 ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit 0 ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i386. + echo i386-pc-msdosdjgpp + exit 0 ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit 0 ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit 0 ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit 0 ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit 0 ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit 0 ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit 0 ;; + M68*:*:R3V[567]*:*) + test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4.3${OS_REL} && exit 0 + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4 && exit 0 ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit 0 ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit 0 ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit 0 ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit 0 ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit 0 ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit 0 ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit 0 ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit 0 ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit 0 ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit 0 ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit 0 ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit 0 ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit 0 ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit 0 ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit 0 ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit 0 ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Darwin:*:*) + case `uname -p` in + *86) UNAME_PROCESSOR=i686 ;; + powerpc) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit 0 ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit 0 ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit 0 ;; + NSR-[DGKLNPTVWY]:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit 0 ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit 0 ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit 0 ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit 0 ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit 0 ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit 0 ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit 0 ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit 0 ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit 0 ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit 0 ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit 0 ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit 0 ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit 0 ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + c34*) + echo c34-convex-bsd + exit 0 ;; + c38*) + echo c38-convex-bsd + exit 0 ;; + c4*) + echo c4-convex-bsd + exit 0 ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/buildlib/config.h.in b/buildlib/config.h.in new file mode 100644 index 0000000..8a65a22 --- /dev/null +++ b/buildlib/config.h.in @@ -0,0 +1,45 @@ +/* Define if your processor stores words with the most significant + byte first (like Motorola and SPARC, unlike Intel and VAX). */ +#undef WORDS_BIGENDIAN + +/* The following 4 are only used by inttypes.h shim if the system lacks + inttypes.h */ +/* The number of bytes in a usigned char. */ +#undef SIZEOF_CHAR + +/* The number of bytes in a unsigned int. */ +#undef SIZEOF_INT + +/* The number of bytes in a unsigned long. */ +#undef SIZEOF_LONG + +/* The number of bytes in a unsigned short. */ +#undef SIZEOF_SHORT + +/* Define if we have the timegm() function */ +#undef HAVE_TIMEGM + +/* These two are used by the statvfs shim for glibc2.0 and bsd */ +/* Define if we have sys/vfs.h */ +#undef HAVE_VFS_H + +/* Define if we have sys/mount.h */ +#undef HAVE_MOUNT_H + +/* Define if we have enabled pthread support */ +#undef HAVE_PTHREAD + +/* If there is no socklen_t, define this for the netdb shim */ +#undef NEED_SOCKLEN_T_DEFINE + +/* Define the cpu name string */ +#undef COMMON_CPU + +/* Define the on name string */ +#undef COMMON_OS + +/* The version number string */ +#undef VERSION + +/* The package name string */ +#undef PACKAGE diff --git a/buildlib/config.sub b/buildlib/config.sub new file mode 100755 index 0000000..79657cd --- /dev/null +++ b/buildlib/config.sub @@ -0,0 +1,1510 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + +timestamp='2003-10-07' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit 0;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-dietlibc | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis) + os= + basic_machine=$1 + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | m32r | m68000 | m68k | m88k | mcore \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64vr | mips64vrel \ + | mips64orion | mips64orionel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | msp430 \ + | ns16k | ns32k \ + | openrisc | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ + | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ + | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ + | we32k \ + | x86 | xscale | xstormy16 | xtensa \ + | z8k) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* \ + | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | m32r-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | mcore-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | msp430-* \ + | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* \ + | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ + | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tron-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ + | xtensa-* \ + | ymp-* \ + | z8k-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + crds | unos) + basic_machine=m68k-crds + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + mmix*) + basic_machine=mmix-knuth + os=-mmixware + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + nv1) + basic_machine=nv1-cray + os=-unicosmp + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + or32 | or32-*) + basic_machine=or32-unknown + os=-coff + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparc | sparcv9 | sparcv9b) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \ + | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-ibm) + os=-aix + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/buildlib/configure.mak b/buildlib/configure.mak new file mode 100644 index 0000000..9575687 --- /dev/null +++ b/buildlib/configure.mak @@ -0,0 +1,29 @@ +# -*- make -*- + +# This make fragment is included by the toplevel make to handle configure +# and setup. It defines a target called startup that when run will init +# the build directory, generate configure from configure.in, create aclocal +# and has rules to run config.status should one of the .in files change. + +# Input +# BUILDDIR - The build directory +# CONVERTED - List of files output by configure $(BUILD) is prepended +# The caller must provide depends for these files +# It would be a fairly good idea to run this after a cvs checkout. +BUILDDIR=build + +.PHONY: startup +startup: configure $(BUILDDIR)/config.status $(addprefix $(BUILDDIR)/,$(CONVERTED)) + +configure: aclocal.m4 configure.in + autoconf + +aclocal.m4: $(wildcard buildlib/*.m4) + aclocal -I buildlib + +$(BUILDDIR)/config.status: configure + /usr/bin/test -e $(BUILDDIR) || mkdir $(BUILDDIR) + (HERE=`pwd`; cd $(BUILDDIR) && $$HERE/configure) + +$(addprefix $(BUILDDIR)/,$(CONVERTED)): + (cd $(BUILDDIR) && ./config.status) diff --git a/buildlib/copy.mak b/buildlib/copy.mak new file mode 100644 index 0000000..15f4488 --- /dev/null +++ b/buildlib/copy.mak @@ -0,0 +1,31 @@ +# -*- make -*- + +# This installs arbitary files into a directory + +# Input +# $(SOURCE) - The documents to use +# $(TO) - The directory to put them in +# $(TARGET) - The global target to add the local target as a dependency +# to. +# All output is writtin to files in the build/$(TO) directory + +# See defaults.mak for information about LOCAL + +# Some local definitions +LOCAL := copy-$(firstword $(SOURCE)) +$(LOCAL)-LIST := $(addprefix $(TO)/,$(SOURCE)) + +# Install generation hooks +$(TARGET): $($(LOCAL)-LIST) +veryclean: veryclean/$(LOCAL) + +MKDIRS += $(dir $($(LOCAL)-LIST)) + +$($(LOCAL)-LIST) : $(TO)/% : % + echo Installing $< to $(@D) + cp $< $(@D) + +# Clean rule +.PHONY: veryclean/$(LOCAL) +veryclean/$(LOCAL): + -rm -rf $($(@F)-LIST) diff --git a/buildlib/debiandoc.mak b/buildlib/debiandoc.mak new file mode 100644 index 0000000..0c20dc9 --- /dev/null +++ b/buildlib/debiandoc.mak @@ -0,0 +1,58 @@ +# -*- make -*- + +# This processes debian-doc sgml to produce html and plain text output + +# Input +# $(SOURCE) - The documents to use + +# All output is writtin to files in the build doc directory + +# See defaults.mak for information about LOCAL + +# Some local definitions +LOCAL := debiandoc-$(firstword $(SOURCE)) +$(LOCAL)-HTML := $(addsuffix .html,$(addprefix $(DOC)/,$(basename $(SOURCE)))) +$(LOCAL)-TEXT := $(addsuffix .text,$(addprefix $(DOC)/,$(basename $(SOURCE)))) + +#--------- + +# Rules to build HTML documentations +ifdef DEBIANDOC_HTML + +# Install generation hooks +doc: $($(LOCAL)-HTML) +veryclean: veryclean/html/$(LOCAL) + +vpath %.sgml $(SUBDIRS) +$(DOC)/%.html: %.sgml + echo Creating html for $< to $@ + -rm -rf $@ + (HERE=`pwd`; cd $(@D) && $(DEBIANDOC_HTML) $$HERE/$<) + +# Clean rule +.PHONY: veryclean/html/$(LOCAL) +veryclean/html/$(LOCAL): + -rm -rf $($(@F)-HTML) + +endif + +#--------- + +# Rules to build Text documentations +ifdef DEBIANDOC_TEXT + +# Install generation hooks +doc: $($(LOCAL)-TEXT) +veryclean: veryclean/text/$(LOCAL) + +vpath %.sgml $(SUBDIRS) +$(DOC)/%.text: %.sgml + echo Creating text for $< to $@ + $(DEBIANDOC_TEXT) -O $< > $@ + +# Clean rule +.PHONY: veryclean/text/$(LOCAL) +veryclean/text/$(LOCAL): + -rm -rf $($(@F)-TEXT) + +endif diff --git a/buildlib/defaults.mak b/buildlib/defaults.mak new file mode 100644 index 0000000..a171522 --- /dev/null +++ b/buildlib/defaults.mak @@ -0,0 +1,185 @@ +# -*- make -*- + +# This file configures the default environment for the make system +# The way it works is fairly simple, each module is defined in it's +# own *.mak file. It expects a set of variables to be set to values +# for it to operate as expected. When included the module generates +# the requested rules based on the contents of its control variables. + +# This works out very well and allows a good degree of flexability. +# To accomidate some of the features we introduce the concept of +# local variables. To do this we use the 'Computed Names' feature of +# gmake. Each module declares a LOCAL scope and access it with, +# $($(LOCAL)-VAR) +# This works very well but it is important to rembember that within +# a rule the LOCAL var is unavailble, it will have to be constructed +# from the information in the rule invokation. For stock rules like +# clean this is simple, we use a local clean rule called clean/$(LOCAL) +# and then within the rule $(@F) gets back $(LOCAL)! Other rules will +# have to use some other mechanism (filter perhaps?) The reason such +# lengths are used is so that each directory can contain several 'instances' +# of any given module. I notice that the very latest gmake has the concept +# of local variables for rules. It is possible this feature in conjunction +# with the generated names will provide a very powerfull solution indeed! + +# A build directory is used by default, all generated items get put into +# there. However unlike automake this is not done with a VPATH build +# (vpath builds break the distinction between #include "" and #include <>) +# but by explicly setting the BUILD variable. Make is invoked from +# within the source itself which is much more compatible with compilation +# environments. +ifndef NOISY +.SILENT: +endif + +# Search for the build directory +ifdef BUILD +BUILD_POSSIBLE := $(BUILD) $(BASE)/$(BUILD) +else +BUILD_POSSIBLE := $(BASE) $(BASE)/build-$(shell uname -m) $(BASE)/build +endif + +BUILDX:= $(foreach i,$(BUILD_POSSIBLE),$(wildcard $(i)/environment.mak*)) + +ifeq ($(words $(BUILDX)),0) + +# Check for a busted wildcard function. We use this function in several +# places, it must work. +ifeq ($(words $(wildcard *)),0) +error-all/environment.mak: + echo You have a broken version of GNU Make - upgrade. + error-out-and-die +else +error-all/environment.mak: + echo Can not find the build directory in $(BUILD_POSSIBLE) -- use BUILD= + error-out-and-die +endif + +# Force include below to come to the error target +BUILDX := error-all +else +BUILDX:= $(patsubst %/,%,$(firstword $(dir $(BUILDX)))) +endif + +override BUILD := $(BUILDX) + +# Base definitions +INCLUDE := $(BUILD)/include +BIN := $(BUILD)/bin +LIB := $(BIN) +OBJ := $(BUILD)/obj/$(SUBDIR) +DEP := $(OBJ) +DOC := $(BUILD)/docs +PO := $(BUILD)/po +LOCALE := $(BUILD)/locale +PO_DOMAINS := $(BUILD)/po/domains + +# Module types +LIBRARY_H = $(BASE)/buildlib/library.mak +DEBIANDOC_H = $(BASE)/buildlib/debiandoc.mak +MANPAGE_H = $(BASE)/buildlib/manpage.mak +PROGRAM_H = $(BASE)/buildlib/program.mak +PYTHON_H = $(BASE)/buildlib/python.mak +COPY_H = $(BASE)/buildlib/copy.mak +YODL_MANPAGE_H = $(BASE)/buildlib/yodl_manpage.mak +SGML_MANPAGE_H = $(BASE)/buildlib/sgml_manpage.mak +XML_MANPAGE_H = $(BASE)/buildlib/xml_manpage.mak +FAIL_H = $(BASE)/buildlib/fail.mak +PODOMAIN_H = $(BASE)/buildlib/podomain.mak + +include $(BUILD)/environment.mak + +ifdef STATICLIBS +LIBRARY_H += $(BASE)/buildlib/staticlibrary.mak +endif + +ifdef ONLYSTATICLIBS +LIBRARY_H = $(BASE)/buildlib/staticlibrary.mak +endif + +# Source location control +# SUBDIRS specifies sub components of the module that +# may be located in subdrictories of the source dir. +# This should be declared before including this file +SUBDIRS+= + +# Header file control. +# TARGETDIRS indicitates all of the locations that public headers +# will be published to. +# This should be declared before including this file +HEADER_TARGETDIRS+= + +# Options +CPPFLAGS+= -I$(INCLUDE) +LDFLAGS+= -L$(LIB) + +# Directors to create +MKDIRS := $(BIN) + +# Phony rules. Other things hook these by appending to the dependency +# list +.PHONY: headers library clean veryclean all binary program doc dirs +.PHONY: maintainer-clean dist-clean distclean pristine sanity +all: binary doc +binary: library program +maintainer-clean dist-clean distclean pristine sanity: veryclean +headers library clean veryclean program: + +veryclean: + echo Very Clean done for $(SUBDIR) +clean: + echo Clean done for $(SUBDIR) +dirs: + mkdir -p $(patsubst %/,%,$(sort $(MKDIRS))) + +# Header file control. We want all published interface headers to go +# into the build directory from thier source dirs. We setup some +# search paths here +vpath %.h $(SUBDIRS) +$(INCLUDE)/%.h $(addprefix $(INCLUDE)/,$(addsuffix /%.h,$(HEADER_TARGETDIRS))) : %.h + cp $< $@ + +# Dependency generation. We want to generate a .d file using gnu cpp. +# For GNU systems the compiler can spit out a .d file while it is compiling, +# this is specified with the INLINEDEPFLAG. Other systems might have a +# makedep program that can be called after compiling, that's illistrated +# by the DEPFLAG case. +# Compile rules are expected to call this macro after calling the compiler +ifdef GCC3DEP +DFILE = $(DEP)/$(basename $(@F)).d +else +DFILE = $(basename $(@F)).d +endif +ifdef INLINEDEPFLAG + define DoDep + sed -e "1s/.*:/$(subst /,\\/,$@):/" $(DFILE) > $(DEP)/$(@F).d + #sed -e "1s/.*:/$(subst /,\\/,$@):/" $(DEP)/$(basename $(@F)).d > $(DEP)/$(@F).d + -rm -f $(basename $(@F)).d + endef +else + ifdef DEPFLAG + define DoDep + $(CXX) $(DEPFLAG) $(CPPFLAGS) -o $@ $< + sed -e "1s/.*:/$(subst /,\\/,$@):/" $(basename $(@F)).d > $(DEP)/$(@F).d + -rm -f $(basename $(@F)).d + endef + else + define DoDep + endef + endif +endif + +# Automatic -j support +ifeq ($(NUM_PROCS),1) + PARALLEL_RUN=no +endif + +# mvo: commented out, lead to build failures in the arch-build target +#ifndef PARALLEL_RUN +# PARALLEL_RUN=yes +# .EXPORT: PARALLEL_RUN +# # handle recursion +# ifneq ($(NUM_PROCS),) +# MAKEFLAGS += -j $(NUM_PROCS) +# endif +#endif diff --git a/buildlib/environment.mak.in b/buildlib/environment.mak.in new file mode 100644 index 0000000..193631a --- /dev/null +++ b/buildlib/environment.mak.in @@ -0,0 +1,72 @@ +# This file contains everything that autoconf guessed for your system. +# if you want you can edit it, just don't re-run configure. + +PACKAGE = @PACKAGE@ + +# C++ compiler options +CC = @CC@ +CPPFLAGS+= @CPPFLAGS@ @DEFS@ -D_REENTRANT -Wall +CXX = @CXX@ +CXXFLAGS+= @CXXFLAGS@ +NUM_PROCS = @NUM_PROCS@ +GLIBC_VER = @GLIBC_VER@ +LIBSTDCPP_VER = @LIBSTDCPP_VER@ + +# Linker stuff +PICFLAGS+= -fPIC -DPIC +LFLAGS+= @LDFLAGS@ +LEFLAGS+= +SOCKETLIBS:= @SOCKETLIBS@ +AR:=@AR@ +RANLIB:=@RANLIB@ + +# Dep generation - this only works for gnu stuff +GCC3DEP = @GCC3DEP@ +INLINEDEPFLAG = -MD + +# Debian doc stuff +DEBIANDOC_HTML = @DEBIANDOC_HTML@ +DEBIANDOC_TEXT = @DEBIANDOC_TEXT@ + +# SGML for the man pages +DOCBOOK2MAN := @DOCBOOK2MAN@ + +# XML for the man pages +XMLTO := @XMLTO@ + +# XML for the man pages +XMLTO := @XMLTO@ + +# Gettext settings +GMSGFMT = @GMSGFMT@ +XGETTEXT = @XGETTEXT@ +MSGCOMM:=$(dir $(XGETTEXT))/msgcomm +MSGMERGE:=$(dir $(XGETTEXT))/msgmerge +BASH = @BASH@ + +# Various library checks +PTHREADLIB = @PTHREADLIB@ +PYTHONLIB = @PYTHONLIB@ +PYTHONVER = @PYTHONVER@ +PYTHONPREFIX = @PYTHONPREFIX@ +PYTHONEXECPREFIX = @PYTHONEXECPREFIX@ +PYTHONINCLUDE = @PYTHONINCLUDE@ +BDBLIB = @BDBLIB@ +INTLLIBS = @INTLLIBS@ + +# Shim Headerfile control +HAVE_C9X = @HAVE_C9X@ +HAVE_STATVFS = @HAVE_STATVFS@ +HAVE_TIMEGM = @HAVE_TIMEGM@ +NEED_SOCKLEN_T_DEFINE = @NEED_SOCKLEN_T_DEFINE@ + +# Shared library things +HOST_OS = @host_os@ +#ifneq ($(words $(filter linux-gnu gnu% %gnu,$(HOST_OS))),0) + SONAME_MAGIC= + LFLAGS_SO= +#else + # Do not know how to create shared libraries here. +# ONLYSTATICLIBS = yes +#endif + diff --git a/buildlib/fail.mak b/buildlib/fail.mak new file mode 100644 index 0000000..dfc194e --- /dev/null +++ b/buildlib/fail.mak @@ -0,0 +1,20 @@ +# -*- make -*- + +# This prints a failure message but does not abort the make + +# Input +# $(MESSAGE) - The message to show +# $(PROGRAM) - The program/libary/whatever. + +# See defaults.mak for information about LOCAL + +LOCAL := $(PROGRAM) +$(LOCAL)-MSG := $(MESSAGE) + +# Install hooks +program: $(PROGRAM) + +.PHONY: $(PROGRAM) +$(PROGRAM) : + echo $($@-MSG) + diff --git a/buildlib/install-sh b/buildlib/install-sh new file mode 100644 index 0000000..ebc6691 --- /dev/null +++ b/buildlib/install-sh @@ -0,0 +1,250 @@ +#! /bin/sh +# +# install - install a program, script, or datafile +# This comes from X11R5 (mit/util/scripts/install.sh). +# +# Copyright 1991 by the Massachusetts Institute of Technology +# +# Permission to use, copy, modify, distribute, and sell this software and its +# documentation for any purpose is hereby granted without fee, provided that +# the above copyright notice appear in all copies and that both that +# copyright notice and this permission notice appear in supporting +# documentation, and that the name of M.I.T. not be used in advertising or +# publicity pertaining to distribution of the software without specific, +# written prior permission. M.I.T. makes no representations about the +# suitability of this software for any purpose. It is provided "as is" +# without express or implied warranty. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. It can only install one file at a time, a restriction +# shared with many OS's install programs. + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +transformbasename="" +transform_arg="" +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" +dir_arg="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd="$cpprog" + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd="$stripprog" + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "install: no input file specified" + exit 1 +else + true +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d $dst ]; then + instcmd=: + else + instcmd=mkdir + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f $src -o -d $src ] + then + true + else + echo "install: $src does not exist" + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "install: no destination specified" + exit 1 + else + true + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d $dst ] + then + dst="$dst"/`basename $src` + else + true + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS=' +' +IFS="${IFS-${defaultIFS}}" + +oIFS="${IFS}" +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS="${oIFS}" + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp="${pathcomp}${1}" + shift + + if [ ! -d "${pathcomp}" ] ; + then + $mkdirprog "${pathcomp}" + else + true + fi + + pathcomp="${pathcomp}/" +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd $dst && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename $dst` + else + dstfile=`basename $dst $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename $dst` + else + true + fi + +# Make a temp file name in the proper directory. + + dsttmp=$dstdir/#inst.$$# + +# Move or copy the file name to the temp name + + $doit $instcmd $src $dsttmp && + + trap "rm -f ${dsttmp}" 0 && + +# and set any options; do chmod last to preserve setuid bits + +# If any of these fail, we abort the whole thing. If we want to +# ignore errors from any of these, just make sure not to ignore +# errors from the above "$doit $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && + +# Now rename the file to the real destination. + + $doit $rmcmd -f $dstdir/$dstfile && + $doit $mvcmd $dsttmp $dstdir/$dstfile + +fi && + + +exit 0 diff --git a/buildlib/inttypes.h.in b/buildlib/inttypes.h.in new file mode 100644 index 0000000..3be7207 --- /dev/null +++ b/buildlib/inttypes.h.in @@ -0,0 +1,43 @@ +/* This is an ISO C 9X header file. We omit this copy to the include + directory if the local platform does not have inttypes.h, it contains + [u]int[8,16,32]_t fixed width types */ + +#include + +/* Generate the fixed bit size types */ +#if SIZEOF_INT == 4 + typedef int int32_t; + typedef unsigned int uint32_t; +#else +# if SIZEOF_LONG == 4 + typedef long int32_t; + typedef unsigned long uint32_t; +# else +# if SIZEOF_SHORT == 4 + typedef short int32_t; + typedef unsigned short uint32_t; +# else +# error Must have a form of 32-bit integer +# endif +# endif +#endif + +#if SIZEOF_INT == 2 + typedef int int16_t; + typedef unsigned int uint16_t; +#else +# if SIZEOF_LONG == 2 + typedef long int16_t; + typedef unsigned long uint16_t; +# else +# if SIZEOF_SHORT == 2 + typedef short int16_t; + typedef unsigned short uint16_t; +# else +# error Must have a form of 16-bit integer +# endif +# endif +#endif + +typedef signed char int8_t; +typedef unsigned char uint8_t; diff --git a/buildlib/library.mak b/buildlib/library.mak new file mode 100644 index 0000000..610a208 --- /dev/null +++ b/buildlib/library.mak @@ -0,0 +1,73 @@ +# -*- make -*- + +# This creates a shared library. + +# Input +# $(SOURCE) - The source code to use +# $(HEADERS) - Exported header files and private header files +# $(LIBRARY) - The name of the library without lib or .so +# $(MAJOR) - The major version number of this library +# $(MINOR) - The minor version number of this library +# $(APT_DOMAIN) - The text domain for this library + +# All output is writtin to .opic files in the build directory to +# signify the PIC output. + +# See defaults.mak for information about LOCAL + +# Some local definitions +LOCAL := lib$(LIBRARY)$(LIBEXT).dylib.$(MAJOR).$(MINOR) +$(LOCAL)-OBJS := $(addprefix $(OBJ)/,$(addsuffix .opic,$(notdir $(basename $(SOURCE))))) +$(LOCAL)-DEP := $(addprefix $(DEP)/,$(addsuffix .opic.d,$(notdir $(basename $(SOURCE))))) +$(LOCAL)-HEADERS := $(addprefix $(INCLUDE)/,$(HEADERS)) +$(LOCAL)-SONAME := lib$(LIBRARY)$(LIBEXT).dylib.$(MAJOR) +$(LOCAL)-SLIBS := $(SLIBS) +$(LOCAL)-LIBRARY := $(LIBRARY) + +TYPE = src +include $(PODOMAIN_H) + +# Install the command hooks +headers: $($(LOCAL)-HEADERS) +library: $(LIB)/lib$(LIBRARY).dylib $(LIB)/lib$(LIBRARY)$(LIBEXT).dylib.$(MAJOR) +clean: clean/$(LOCAL) +veryclean: veryclean/$(LOCAL) + +# Make Directories +MKDIRS += $(OBJ) $(DEP) $(LIB) $(dir $($(LOCAL)-HEADERS)) + +# The clean rules +.PHONY: clean/$(LOCAL) veryclean/$(LOCAL) +clean/$(LOCAL): + -rm -f $($(@F)-OBJS) $($(@F)-DEP) +veryclean/$(LOCAL): clean/$(LOCAL) + -rm -f $($(@F)-HEADERS) $(LIB)/lib$($(@F)-LIBRARY)*.dylib* + +# Build rules for the two symlinks +.PHONY: $(LIB)/lib$(LIBRARY)$(LIBEXT).dylib.$(MAJOR) $(LIB)/lib$(LIBRARY).dylib +$(LIB)/lib$(LIBRARY)$(LIBEXT).dylib.$(MAJOR): $(LIB)/lib$(LIBRARY)$(LIBEXT).dylib.$(MAJOR).$(MINOR) + ln -sf $( /dev/null + echo Building shared library $@ + $(CXX) $(CXXFLAGS) $(LDFLAGS) $(PICFLAGS) $(LFLAGS) $(LFLAGS_SO)\ + -o $@ -dynamiclib \ + $(filter %.opic,$^) \ + $($(@F)-SLIBS) + +# Compilation rules +vpath %.cc $(SUBDIRS) +$(OBJ)/%.opic: %.cc + echo Compiling $< to $@ + $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) $(PICFLAGS) -o $@ $< + $(DoDep) + +# Include the dependencies that are available +The_DFiles = $(wildcard $($(LOCAL)-DEP)) +ifneq ($(words $(The_DFiles)),0) +include $(The_DFiles) +endif diff --git a/buildlib/makefile.in b/buildlib/makefile.in new file mode 100644 index 0000000..756565f --- /dev/null +++ b/buildlib/makefile.in @@ -0,0 +1,51 @@ +# -*- make -*- + +# This is the build directory make file, it sets the build directory +# and runs the src makefile. +ifndef NOISY +.SILENT: +endif +include environment.mak + +SRCDIR=@top_srcdir@ +BUILD:=$(shell pwd) +export BUILD + +# Chain to the parent make to do the actual building +.PHONY: headers library clean veryclean all binary program doc \ + veryclean/local +all headers library clean veryclean binary program doc: + $(MAKE) -C $(SRCDIR) -f Makefile $@ + +# Purge everything. +.PHONY: maintainer-clean dist-clean pristine sanity distclean +maintainer-clean dist-clean pristine sanity distclean: + -rm -rf $(DIRS) + -rm -f config.cache config.log config.status environment.mak makefile + +# Create the required directories and build the shims +# The configure script fills in below, and then we do the right things.. +# This cannot go in the configure script since the directories have not yet +# been created.. In any event I like the idea that you can change environment.mak +# and run make dirs and have the shims updated. +.PHONY: dirs +dirs: + $(MAKE) -C $(SRCDIR) -f Makefile $@ +ifeq ($(HAVE_C9X),yes) + @rm -f include/inttypes.h > /dev/null 2>&1 +else + @cp -p $(SRCDIR)/buildlib/inttypes.h.in include/inttypes.h +endif +ifeq ($(HAVE_STATVFS),yes) + @rm -f include/statvfs.h > /dev/null 2>&1 +else + @cp -p $(SRCDIR)/buildlib/statvfs.h.in include/statvfs.h + ln -sf . include/sys +endif +ifeq ($(NEED_SOCKLEN_T_DEFINE),yes) + @cp -p $(SRCDIR)/buildlib/netdb.h.in include/netdb.h +else + @rm -f include/netdb.h > /dev/null 2>&1 +endif + rm -f include/python + ln -sf $(PYTHONINCLUDE) include/python diff --git a/buildlib/manpage.mak b/buildlib/manpage.mak new file mode 100644 index 0000000..1f2644c --- /dev/null +++ b/buildlib/manpage.mak @@ -0,0 +1,29 @@ +# -*- make -*- + +# This installs man pages into the doc directory + +# Input +# $(SOURCE) - The documents to use + +# All output is writtin to files in the build doc directory + +# See defaults.mak for information about LOCAL + +# Some local definitions +LOCAL := manpage-$(firstword $(SOURCE)) +$(LOCAL)-LIST := $(addprefix $(DOC)/,$(SOURCE)) + +# Install generation hooks +doc: $($(LOCAL)-LIST) +veryclean: veryclean/$(LOCAL) + +MKDIRS += $(DOC) + +$($(LOCAL)-LIST) : $(DOC)/% : % + echo Installing man page $< to $(@D) + cp $< $(@D) + +# Clean rule +.PHONY: veryclean/$(LOCAL) +veryclean/$(LOCAL): + -rm -rf $($(@F)-LIST) diff --git a/buildlib/mkChangeLog b/buildlib/mkChangeLog new file mode 100755 index 0000000..4164ec9 --- /dev/null +++ b/buildlib/mkChangeLog @@ -0,0 +1,14 @@ +#!/bin/sh + +NAMES="`sed -ne 's/'\''/'\''\\\\'\'''\''/g; + s/^.*CVS:\([^ ]\+\) \([^<]\+\) <\([^>]*\)>/\ + -u '\''\1:\2:\3'\''/gp' AUTHORS`" +OPTIONS="-l 78" + +# Generate the standard ChangeLog +echo CVSIGNORE=po rcs2log $OPTIONS $NAMES +eval CVSIGNORE=po rcs2log $OPTIONS $NAMES >> ChangeLog + +# Generate the po ChangeLog +#echo rcs2log $OPTIONS $NAMES po +#eval rcs2log $OPTIONS $NAMES po >> po/ChangeLog diff --git a/buildlib/netdb.h.in b/buildlib/netdb.h.in new file mode 100644 index 0000000..0fa60e1 --- /dev/null +++ b/buildlib/netdb.h.in @@ -0,0 +1,6 @@ +/* Fix broken unixen. */ +#include +#ifdef NEED_SOCKLEN_T_DEFINE + #define socklen_t size_t +#endif +#include_next diff --git a/buildlib/ostable b/buildlib/ostable new file mode 100644 index 0000000..ead7d77 --- /dev/null +++ b/buildlib/ostable @@ -0,0 +1,21 @@ +# This file contains a table of known vendor-os strings, with +# things to map them to. `configure' will take the output of the +# autoconf cannon macros and look in here. This only deals with +# OS names. The right should be a common name like the arch table +# generates +# The final bit to build the Debian Architecture is done in init.cc +# The left side is a regex for awk, and the first match is used. + +# These are used by Debian +[^-]*-linux-.* linux +[^-]*-kfreebsd.*-gnu kfreebsd +[^-]*-knetbsd.*-gnu knetbsd +[^-]*-gnu[^-]* hurd + +# These are samples. +hp-hpux[^-]* hp-ux +sun-solaris[^-]* solaris +[^-]*-openbsd[^-]* openbsd + +# Catch all +.* unknown diff --git a/buildlib/podomain.mak b/buildlib/podomain.mak new file mode 100644 index 0000000..2cc3d5a --- /dev/null +++ b/buildlib/podomain.mak @@ -0,0 +1,23 @@ +# -*- make -*- + +# This creates the file listing used by xgettext and friends based on the +# declared domain of the make file. It also arranges to set the DOMAIN +# CPPFLAG for the compilation. + +MY_DOMAIN := $(PACKAGE) +ifdef APT_DOMAIN +$($(LOCAL)-OBJS): CPPFLAGS := $(CPPFLAGS) -DAPT_DOMAIN='"$(APT_DOMAIN)"' +MY_DOMAIN := $(APT_DOMAIN) +endif + +MKDIRS += $(PO_DOMAINS)/$(MY_DOMAIN) +$(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list: SRC := $(addprefix $(SUBDIR)/,$(SOURCE)) +$(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list: makefile + (echo $(SRC) | xargs -n1 echo) > $@ +binary program clean: +#$(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list + +veryclean: veryclean/$(LOCAL) +veryclean/po/$(LOCAL): LIST := $(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list +veryclean/po/$(LOCAL): + rm -f $(LIST) diff --git a/buildlib/program.mak b/buildlib/program.mak new file mode 100644 index 0000000..c26009d --- /dev/null +++ b/buildlib/program.mak @@ -0,0 +1,61 @@ +# -*- make -*- + +# This creates a program + +# Input +# $(SOURCE) - The source code to use +# $(PROGRAM) - The name of the program +# $(SLIBS) - Shared libs to link against +# $(LIB_MAKES) - Shared libary make files to depend on - to ensure we get +# remade when the shared library version increases. + +# See defaults.mak for information about LOCAL + +# Some local definitions +LOCAL := $(PROGRAM) +$(LOCAL)-OBJS := $(addprefix $(OBJ)/,$(addsuffix .o,$(notdir $(basename $(SOURCE))))) +$(LOCAL)-DEP := $(addprefix $(DEP)/,$(addsuffix .o.d,$(notdir $(basename $(SOURCE))))) +$(LOCAL)-BIN := $(BIN)/$(PROGRAM) +$(LOCAL)-SLIBS := $(SLIBS) +$(LOCAL)-MKS := $(addprefix $(BASE)/,$(LIB_MAKES)) + +# Install the command hooks +program: $(BIN)/$(PROGRAM) +clean: clean/$(LOCAL) +veryclean: veryclean/$(LOCAL) + +TYPE = src +include $(PODOMAIN_H) + +# Make Directories +MKDIRS += $(OBJ) $(DEP) $(BIN) + +# The clean rules +.PHONY: clean/$(LOCAL) veryclean/$(LOCAL) +clean/$(LOCAL): + -rm -f $($(@F)-OBJS) $($(@F)-DEP) +veryclean/$(LOCAL): clean/$(LOCAL) + -rm -f $($(@F)-BIN) + +# The convience binary build rule +.PHONY: $(PROGRAM) +$(PROGRAM): $($(LOCAL)-BIN) + +# The binary build rule +$($(LOCAL)-BIN): $($(LOCAL)-OBJS) $($(LOCAL)-MKS) + echo Building program $@ + echo $(CXX) $(CXXFLAGS) $(LDFLAGS) $(LFLAGS) -o $@ $(filter %.o,$^) $($(@F)-SLIBS) $(LEFLAGS) + $(CXX) $(CXXFLAGS) $(LDFLAGS) $(LFLAGS) -o $@ $(filter %.o,$^) $($(@F)-SLIBS) $(LEFLAGS) + +# Compilation rules +vpath %.cc $(SUBDIRS) +$(OBJ)/%.o: %.cc + echo Compiling $< to $@ + $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) -o $@ $< + $(DoDep) + +# Include the dependencies that are available +The_DFiles = $(wildcard $($(LOCAL)-DEP)) +ifneq ($(words $(The_DFiles)),0) +include $(The_DFiles) +endif diff --git a/buildlib/python.mak b/buildlib/python.mak new file mode 100644 index 0000000..02345c2 --- /dev/null +++ b/buildlib/python.mak @@ -0,0 +1,68 @@ +# -*- make -*- + +# This creates a python shared module. + +# Input +# $(SOURCE) - The source code to use +# $(MODULE) - The name of the module without module or .so + +# All output is writtin to .opic files in the build directory to +# signify the PIC output. + +# See defaults.mak for information about LOCAL + +# Some local definitions +LOCAL := $(MODULE)module.so +$(LOCAL)-OBJS := $(addprefix $(OBJ)/,$(addsuffix .opic,$(notdir $(basename $(SOURCE))))) +$(LOCAL)-DEP := $(addprefix $(DEP)/,$(addsuffix .opic.d,$(notdir $(basename $(SOURCE))))) +$(LOCAL)-SLIBS := $(SLIBS) +$(LOCAL)-MODULE := $(MODULE) + +# Install the command hooks +library: $(LIB)/$(MODULE)module.so +clean: clean/$(LOCAL) +veryclean: veryclean/$(LOCAL) + +# Make Directories +MKDIRS += $(OBJ) $(DEP) $(LIB) + +# The clean rules +.PHONY: clean/$(LOCAL) veryclean/$(LOCAL) +clean/$(LOCAL): + -rm -f $($(@F)-OBJS) $($(@F)-DEP) +veryclean/$(LOCAL): clean/$(LOCAL) + -rm -f $($(@F)-HEADERS) $(LIB)/$($(@F)-MODULE)module.so* + +# The binary build rule. +ifdef PYTHONLIB +ifndef ONLYSTATICLIBS +$(LIB)/$(MODULE)module.so: $($(LOCAL)-OBJS) + -rm -f $(LIB)/$($(@F)-MODULE)module.so* 2> /dev/null + echo Building shared Python module $@ + $(CXX) $(CXXFLAGS) $(LDFLAGS) $(PICFLAGS) $(LFLAGS) $(LFLAGS_SO)\ + -o $@ -shared \ + $(filter %.opic,$^) \ + $($(@F)-SLIBS) $(PYTHONLIB) +else +.PHONY: $(LIB)/$(MODULE)module.so +$(LIB)/$(MODULE)module.so: + echo Don't know how to make a python module here, not building $@ +endif # ifndef ONLYSTATICLIBS +else +.PHONY: $(LIB)/$(MODULE)module.so +$(LIB)/$(MODULE)module.so: + echo No python support, not building $@ +endif # ifdef PYTHONLIB + +# Compilation rules +vpath %.cc $(SUBDIRS) +$(OBJ)/%.opic: %.cc + echo Compiling $< to $@ + $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) $(PICFLAGS) -o $@ $< + $(DoDep) + +# Include the dependencies that are available +The_DFiles = $(wildcard $($(LOCAL)-DEP)) +ifneq ($(words $(The_DFiles)),0) +include $(The_DFiles) +endif diff --git a/buildlib/sgml_manpage.mak b/buildlib/sgml_manpage.mak new file mode 100644 index 0000000..5fcb75c --- /dev/null +++ b/buildlib/sgml_manpage.mak @@ -0,0 +1,45 @@ +# -*- make -*- + +# This handles man pages in DocBook SGMLL format. We convert to the respective +# output in the source directory then copy over to the final dest. This +# means yodl is only needed if compiling from CVS + +# Input +# $(SOURCE) - The documents to use, in the form foo.sect, ie apt-cache.8 +# the sgml files are called apt-cache.8.sgml + +# See defaults.mak for information about LOCAL + +# Some local definitions +ifdef DOCBOOK2MAN + +LOCAL := sgml-manpage-$(firstword $(SOURCE)) +$(LOCAL)-LIST := $(SOURCE) + +# Install generation hooks +doc: $($(LOCAL)-LIST) +veryclean: veryclean/$(LOCAL) + +$($(LOCAL)-LIST) :: % : %.sgml $(INCLUDES) + echo Creating man page $@ + $(DOCBOOK2MAN) $< + +# Clean rule +.PHONY: veryclean/$(LOCAL) +veryclean/$(LOCAL): + -rm -rf $($(@F)-LIST) + +HAVE_SGML=yes +endif + +INCLUDES := + +ifndef HAVE_SGML +# Strip from the source list any man pages we dont have compiled already +SOURCE := $(wildcard $(SOURCE)) +endif + +# Chain to the manpage rule +ifneq ($(words $(SOURCE)),0) +include $(MANPAGE_H) +endif diff --git a/buildlib/sizetable b/buildlib/sizetable new file mode 100644 index 0000000..8b18528 --- /dev/null +++ b/buildlib/sizetable @@ -0,0 +1,23 @@ +# +# This file lists common architectures for cross-compilation (CPUs, not +# OSs), and the endian-ness and relative type sizes. It is not needed for +# native compilation. +# +# If you wish to cross-compile APT, and your architecture is not listed +# here, you should add it, and submit it by email to the APT team at +# . +# +# This is used primarily for the MD5 algorithm. +# The format is:- +# CPU endian sizeof: char, int, short, long +i386 little 1 4 2 4 +armeb big 1 4 2 4 +arm little 1 4 2 4 +alpha little 1 4 2 8 +mipsel little 1 4 2 4 +sparc big 1 4 2 4 +sparc64 big 1 4 2 8 +m68k big 1 4 2 4 +powerpc big 1 4 2 4 +mips big 1 4 2 4 +hppa big 1 4 2 4 diff --git a/buildlib/staticlibrary.mak b/buildlib/staticlibrary.mak new file mode 100644 index 0000000..ce9259d --- /dev/null +++ b/buildlib/staticlibrary.mak @@ -0,0 +1,60 @@ +# -*- make -*- + +# This creates a static library. + +# Input +# $(SOURCE) - The source code to use +# $(HEADERS) - Exported header files and private header files +# $(LIBRARY) - The name of the library without lib or .so + +# All output is writtin to .o files in the build directory + +# See defaults.mak for information about LOCAL + +# Some local definitions +LOCAL := lib$(LIBRARY).a +$(LOCAL)-OBJS := $(addprefix $(OBJ)/,$(addsuffix .o,$(notdir $(basename $(SOURCE))))) +$(LOCAL)-DEP := $(addprefix $(DEP)/,$(addsuffix .o.d,$(notdir $(basename $(SOURCE))))) +$(LOCAL)-HEADERS := $(addprefix $(INCLUDE)/,$(HEADERS)) +$(LOCAL)-LIB := $(LIB)/lib$(LIBRARY).a + +# Install the command hooks +headers: $($(LOCAL)-HEADERS) +library: $($(LOCAL)-LIB) +clean: clean/$(LOCAL) +veryclean: veryclean/$(LOCAL) + +# Make Directories +MKDIRS += $(OBJ) $(DEP) $(LIB) $(dir $($(LOCAL)-HEADERS)) + +# The clean rules +.PHONY: clean/$(LOCAL) veryclean/$(LOCAL) +clean/$(LOCAL): + -rm -f $($(@F)-OBJS) $($(@F)-DEP) +veryclean/$(LOCAL): clean/$(LOCAL) + -rm -f $($(@F)-HEADERS) $($(@F)-LIB) + +# Build rules for the two symlinks +.PHONY: $($(LOCAL)-LIB) + +# The binary build rule +$($(LOCAL)-LIB): $($(LOCAL)-HEADERS) $($(LOCAL)-OBJS) + echo Building library $@ + -rm $@ > /dev/null 2>&1 + $(AR) cq $@ $(filter %.o,$^) +ifneq ($(words $(RANLIB)),0) + $(RANLIB) $@ +endif + +# Compilation rules +vpath %.cc $(SUBDIRS) +$(OBJ)/%.o: %.cc + echo Compiling $< to $@ + $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) -o $@ $< + $(DoDep) + +# Include the dependencies that are available +The_DFiles = $(wildcard $($(LOCAL)-DEP)) +ifneq ($(words $(The_DFiles)),0) +include $(The_DFiles) +endif diff --git a/buildlib/statvfs.h.in b/buildlib/statvfs.h.in new file mode 100644 index 0000000..d0ec238 --- /dev/null +++ b/buildlib/statvfs.h.in @@ -0,0 +1,13 @@ +/* Compatibility for systems with out Single Unix Spec statvfs */ +#include + +#ifdef HAVE_VFS_H +#include +#endif + +#ifdef HAVE_MOUNT_H +#include +#include +#endif + +#define statvfs statfs diff --git a/buildlib/tools.m4 b/buildlib/tools.m4 new file mode 100644 index 0000000..9a8d744 --- /dev/null +++ b/buildlib/tools.m4 @@ -0,0 +1,160 @@ +AC_DEFUN(ah_HAVE_GETCONF, + [AC_ARG_WITH(getconf, + [ --with-getconf Enable automagical buildtime configuration], + [if test "$withval" = "yes"; then + AC_PATH_PROG(GETCONF, getconf) + elif test ! "$withval" = "no";then + AC_MSG_CHECKING([getconf]) + AC_MSG_RESULT([$withval]) + GETCONF=$withval + fi], + [AC_PATH_PROG(GETCONF, getconf)] + ) + AC_SUBST(GETCONF) +]) + +dnl ah_GET_CONF(variable, value ..., [default]) +AC_DEFUN(ah_GET_GETCONF, + [AC_REQUIRE([ah_HAVE_GETCONF]) + if test ! -z "$GETCONF";then + old_args="[$]@" + set -- $2 + while eval test -z \"\$$1\" -a ! -z \"[$]1\";do + eval $1=`$GETCONF "[$]1" 2>/dev/null` + shift + done + fi + if eval test -z \"\$$1\" -o \"\$$1\" = "-1";then + eval $1="$3" + fi +]) +AC_DEFUN(ah_NUM_CPUS, + [AC_MSG_CHECKING([number of cpus]) + AC_ARG_WITH(cpus, + [ --with-cpus The number of cpus to be used for building(see --with-procs, default 1)], + [ + if test "$withval" = "yes"; then + ah_GET_GETCONF(NUM_CPUS, SC_NPROCESSORS_ONLN _NPROCESSORS_ONLN, 1) + elif test ! "$withval" = "no";then + NUM_CPUS=$withval + elif test "$withval" = "no";then + NUM_CPUS=1 + fi], + [ah_GET_GETCONF(NUM_CPUS, SC_NPROCESSORS_ONLN _NPROCESSORS_ONLN, 1)] + ) + ah_NUM_CPUS_msg="$NUM_CPUS" + if test "$NUM_CPUS" = "0"; then + # broken getconf, time to bitch. + ah_NUM_CPUS_msg="found 0 cpus. Has someone done a lobotomy?" + NUM_CPUS=1 + fi + if test $NUM_CPUS = 1 ;then + default_PROC_MULTIPLY=1 + else + default_PROC_MULTIPLY=2 + fi + AC_MSG_RESULT([$ah_NUM_CPUS_msg]) + AC_SUBST(NUM_CPUS) +]) +AC_DEFUN(ah_PROC_MULTIPLY, + [AC_REQUIRE([ah_NUM_CPUS]) + AC_MSG_CHECKING([processor multiplier]) + AC_ARG_WITH(proc-multiply, + [ --with-proc-multiply Multiply this * number of cpus for parallel making(default 2).], + [if test "$withval" = "yes"; then + PROC_MULTIPLY=$default_PROC_MULTIPLY + elif test ! "$withval" = "no";then + PROC_MULTIPLY=$withval + fi], + [PROC_MULTIPLY=$default_PROC_MULTIPLY] + ) + AC_MSG_RESULT([$PROC_MULTIPLY]) + AC_SUBST(PROC_MULTIPLY) +]) + +AC_DEFUN(ah_NUM_PROCS, + [AC_REQUIRE([ah_PROC_MULTIPLY]) + AC_REQUIRE([ah_NUM_CPUS]) + AC_MSG_CHECKING([number of processes to run during make]) + AC_ARG_WITH(procs, + [ --with-procs The number of processes to run in parallel during make(num_cpus * multiplier).], + [if test "$withval" = "yes"; then + NUM_PROCS=`expr $NUM_CPUS \* $PROC_MULTIPLY` + elif test ! "$withval" = "no";then + NUM_PROCS=$withval + fi], + [NUM_PROCS=`expr $NUM_CPUS \* $PROC_MULTIPLY`] + ) + AC_MSG_RESULT([$NUM_PROCS]) + AC_SUBST(NUM_PROCS) +]) + +AC_DEFUN(rc_GLIBC_VER, + [AC_MSG_CHECKING([glibc version]) + AC_CACHE_VAL(ac_cv_glibc_ver, + dummy=if$$ + cat <<_GLIBC_>$dummy.c +#include +#include +#include +int main(int argc, char **argv) { printf("libc6.%d",__GLIBC_MINOR__); exit(0); } +_GLIBC_ + ${CC-cc} $dummy.c -o $dummy > /dev/null 2>&1 + if test "$?" = 0; then + GLIBC_VER=`./$dummy` + AC_MSG_RESULT([$GLIBC_VER]) + ac_cv_glibc_ver=$GLIBC_VER + else + AC_MSG_WARN([cannot determine GNU C library minor version number]) + fi + rm -f $dummy $dummy.c + ) + GLIBC_VER="-$ac_cv_glibc_ver" + AC_SUBST(GLIBC_VER) +]) + +AC_DEFUN(rc_LIBSTDCPP_VER, + [AC_MSG_CHECKING([libstdc++ version]) + dummy=if$$ + cat <<_LIBSTDCPP_>$dummy.cc +#include +#include +#include +int main(int argc, char **argv) { exit(0); } +_LIBSTDCPP_ + ${CXX-c++} $dummy.cc -o $dummy > /dev/null 2>&1 + + if test "$?" = 0; then + soname=`objdump -p ./$dummy |grep NEEDED|grep libstd` + LIBSTDCPP_VER=`echo $soname | sed -e 's/.*NEEDED.*libstdc++\(-libc.*\(-.*\)\)\?.so.\(.*\)/\3\2/'` + fi + rm -f $dummy $dummy.cc + + if test -z "$LIBSTDCPP_VER"; then + AC_MSG_WARN([cannot determine standard C++ library version number]) + else + AC_MSG_RESULT([$LIBSTDCPP_VER]) + LIBSTDCPP_VER="-$LIBSTDCPP_VER" + fi + AC_SUBST(LIBSTDCPP_VER) +]) + +AC_DEFUN(ah_GCC3DEP,[ + AC_MSG_CHECKING(if $CXX -MD works) + touch gcc3dep.cc + ${CXX-c++} -MD -o gcc3dep_test.o -c gcc3dep.cc + rm -f gcc3dep.cc gcc3dep_test.o + if test -e gcc3dep.d; then + rm -f gcc3dep.d + GCC_MD=input + GCC3DEP= + elif test -e gcc3dep_test.d; then + rm -f gcc3dep_test.d + GCC_MD=output + GCC3DEP=yes + else + AC_MSG_ERROR(no) + fi + AC_MSG_RESULT([yes, for $GCC_MD]) + AC_SUBST(GCC3DEP) +]) diff --git a/buildlib/xml_manpage.mak b/buildlib/xml_manpage.mak new file mode 100644 index 0000000..c8b155d --- /dev/null +++ b/buildlib/xml_manpage.mak @@ -0,0 +1,45 @@ +# -*- make -*- + +# This handles man pages in DocBook XML format. We convert to the respective +# output in the source directory then copy over to the final dest. This +# means xmlto is only needed if compiling from Arch + +# Input +# $(SOURCE) - The documents to use, in the form foo.sect, ie apt-cache.8 +# the XML files are called apt-cache.8.xml + +# See defaults.mak for information about LOCAL + +# Some local definitions +ifdef XMLTO + +LOCAL := xml-manpage-$(firstword $(SOURCE)) +$(LOCAL)-LIST := $(SOURCE) + +# Install generation hooks +doc: $($(LOCAL)-LIST) +veryclean: veryclean/$(LOCAL) + +$($(LOCAL)-LIST) :: % : %.xml $(INCLUDES) + echo Creating man page $@ + $(XMLTO) man $< + +# Clean rule +.PHONY: veryclean/$(LOCAL) +veryclean/$(LOCAL): + -rm -rf $($(@F)-LIST) + +HAVE_XMLTO=yes +endif + +INCLUDES := + +ifndef HAVE_XMLTO +# Strip from the source list any man pages we dont have compiled already +SOURCE := $(wildcard $(SOURCE)) +endif + +# Chain to the manpage rule +ifneq ($(words $(SOURCE)),0) +include $(MANPAGE_H) +endif diff --git a/buildlib/yodl_manpage.mak b/buildlib/yodl_manpage.mak new file mode 100644 index 0000000..a5f436f --- /dev/null +++ b/buildlib/yodl_manpage.mak @@ -0,0 +1,42 @@ +# -*- make -*- + +# This handles man pages in YODL format. We convert to the respective +# output in the source directory then copy over to the final dest. This +# means yodl is only needed if compiling from CVS + +# Input +# $(SOURCE) - The documents to use, in the form foo.sect, ie apt-cache.8 +# the yodl files are called apt-cache.8.yo + +# See defaults.mak for information about LOCAL + +# Some local definitions +ifdef YODL_MAN + +LOCAL := yodl-manpage-$(firstword $(SOURCE)) +$(LOCAL)-LIST := $(SOURCE) + +# Install generation hooks +doc: $($(LOCAL)-LIST) +veryclean: veryclean/$(LOCAL) + +$($(LOCAL)-LIST) :: % : %.yo + echo Creating man page $@ + yodl2man -o $@ $< + +# Clean rule +.PHONY: veryclean/$(LOCAL) +veryclean/$(LOCAL): + -rm -rf $($(@F)-LIST) + +else + +# Strip from the source list any man pages we dont have compiled already +SOURCE := $(wildcard $(SOURCE)) + +endif + +# Chain to the manpage rule +ifneq ($(words $(SOURCE)),0) +include $(MANPAGE_H) +endif diff --git a/cmdline/acqprogress.cc b/cmdline/acqprogress.cc new file mode 100644 index 0000000..a5fee1d --- /dev/null +++ b/cmdline/acqprogress.cc @@ -0,0 +1,289 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: acqprogress.cc,v 1.24 2003/04/27 01:56:48 doogie Exp $ +/* ###################################################################### + + Acquire Progress - Command line progress meter + + ##################################################################### */ + /*}}}*/ +// Include files /*{{{*/ +#include "acqprogress.h" +#include +#include +#include +#include + +#include + +#include +#include +#include + /*}}}*/ + +using namespace std; + +// AcqTextStatus::AcqTextStatus - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +AcqTextStatus::AcqTextStatus(unsigned int &ScreenWidth,unsigned int Quiet) : + ScreenWidth(ScreenWidth), Quiet(Quiet) +{ +} + /*}}}*/ +// AcqTextStatus::Start - Downloading has started /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void AcqTextStatus::Start() +{ + pkgAcquireStatus::Start(); + BlankLine[0] = 0; + ID = 1; +}; + /*}}}*/ +// AcqTextStatus::IMSHit - Called when an item got a HIT response /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void AcqTextStatus::IMSHit(pkgAcquire::ItemDesc &Itm) +{ + if (Quiet > 1) + return; + + if (Quiet <= 0) + cout << '\r' << BlankLine << '\r'; + + cout << _("Hit ") << Itm.Description; + if (Itm.Owner->FileSize != 0) + cout << " [" << SizeToStr(Itm.Owner->FileSize) << "B]"; + cout << endl; + Update = true; +}; + /*}}}*/ +// AcqTextStatus::Fetch - An item has started to download /*{{{*/ +// --------------------------------------------------------------------- +/* This prints out the short description and the expected size */ +void AcqTextStatus::Fetch(pkgAcquire::ItemDesc &Itm) +{ + Update = true; + if (Itm.Owner->Complete == true) + return; + + Itm.Owner->ID = ID++; + + if (Quiet > 1) + return; + + if (Quiet <= 0) + cout << '\r' << BlankLine << '\r'; + + cout << _("Get:") << Itm.Owner->ID << ' ' << Itm.Description; + if (Itm.Owner->FileSize != 0) + cout << " [" << SizeToStr(Itm.Owner->FileSize) << "B]"; + cout << endl; +}; + /*}}}*/ +// AcqTextStatus::Done - Completed a download /*{{{*/ +// --------------------------------------------------------------------- +/* We don't display anything... */ +void AcqTextStatus::Done(pkgAcquire::ItemDesc &Itm) +{ + Update = true; +}; + /*}}}*/ +// AcqTextStatus::Fail - Called when an item fails to download /*{{{*/ +// --------------------------------------------------------------------- +/* We print out the error text */ +void AcqTextStatus::Fail(pkgAcquire::ItemDesc &Itm) +{ + if (Quiet > 1) + return; + + // Ignore certain kinds of transient failures (bad code) + if (Itm.Owner->Status == pkgAcquire::Item::StatIdle) + return; + + if (Quiet <= 0) + cout << '\r' << BlankLine << '\r'; + + if (Itm.Owner->Status == pkgAcquire::Item::StatDone) + { + cout << _("Ign ") << Itm.Description << endl; + } + else + { + cout << _("Err ") << Itm.Description << endl; + cout << " " << Itm.Owner->ErrorText << endl; + } + + Update = true; +}; + /*}}}*/ +// AcqTextStatus::Stop - Finished downloading /*{{{*/ +// --------------------------------------------------------------------- +/* This prints out the bytes downloaded and the overall average line + speed */ +void AcqTextStatus::Stop() +{ + pkgAcquireStatus::Stop(); + if (Quiet > 1) + return; + + if (Quiet <= 0) + cout << '\r' << BlankLine << '\r' << flush; + + if (FetchedBytes != 0 && _error->PendingError() == false) + ioprintf(cout,_("Fetched %sB in %s (%sB/s)\n"), + SizeToStr(FetchedBytes).c_str(), + TimeToStr(ElapsedTime).c_str(), + SizeToStr(CurrentCPS).c_str()); +} + /*}}}*/ +// AcqTextStatus::Pulse - Regular event pulse /*{{{*/ +// --------------------------------------------------------------------- +/* This draws the current progress. Each line has an overall percent + meter and a per active item status meter along with an overall + bandwidth and ETA indicator. */ +bool AcqTextStatus::Pulse(pkgAcquire *Owner) +{ + if (Quiet > 0) + return true; + + pkgAcquireStatus::Pulse(Owner); + + enum {Long = 0,Medium,Short} Mode = Long; + + char Buffer[sizeof(BlankLine)]; + char *End = Buffer + sizeof(Buffer); + char *S = Buffer; + if (ScreenWidth >= sizeof(Buffer)) + ScreenWidth = sizeof(Buffer)-1; + + // Put in the percent done + sprintf(S,"%ld%%",long(double((CurrentBytes + CurrentItems)*100.0)/double(TotalBytes+TotalItems))); + + bool Shown = false; + for (pkgAcquire::Worker *I = Owner->WorkersBegin(); I != 0; + I = Owner->WorkerStep(I)) + { + S += strlen(S); + + // There is no item running + if (I->CurrentItem == 0) + { + if (I->Status.empty() == false) + { + snprintf(S,End-S," [%s]",I->Status.c_str()); + Shown = true; + } + + continue; + } + + Shown = true; + + // Add in the short description + if (I->CurrentItem->Owner->ID != 0) + snprintf(S,End-S," [%lu %s",I->CurrentItem->Owner->ID, + I->CurrentItem->ShortDesc.c_str()); + else + snprintf(S,End-S," [%s",I->CurrentItem->ShortDesc.c_str()); + S += strlen(S); + + // Show the short mode string + if (I->CurrentItem->Owner->Mode != 0) + { + snprintf(S,End-S," %s",I->CurrentItem->Owner->Mode); + S += strlen(S); + } + + // Add the current progress + if (Mode == Long) + snprintf(S,End-S," %lu",I->CurrentSize); + else + { + if (Mode == Medium || I->TotalSize == 0) + snprintf(S,End-S," %sB",SizeToStr(I->CurrentSize).c_str()); + } + S += strlen(S); + + // Add the total size and percent + if (I->TotalSize > 0 && I->CurrentItem->Owner->Complete == false) + { + if (Mode == Short) + snprintf(S,End-S," %lu%%", + long(double(I->CurrentSize*100.0)/double(I->TotalSize))); + else + snprintf(S,End-S,"/%sB %lu%%",SizeToStr(I->TotalSize).c_str(), + long(double(I->CurrentSize*100.0)/double(I->TotalSize))); + } + S += strlen(S); + snprintf(S,End-S,"]"); + } + + // Show something.. + if (Shown == false) + snprintf(S,End-S,_(" [Working]")); + + /* Put in the ETA and cps meter, block off signals to prevent strangeness + during resizing */ + sigset_t Sigs,OldSigs; + sigemptyset(&Sigs); + sigaddset(&Sigs,SIGWINCH); + sigprocmask(SIG_BLOCK,&Sigs,&OldSigs); + + if (CurrentCPS != 0) + { + char Tmp[300]; + unsigned long ETA = (unsigned long)((TotalBytes - CurrentBytes)/CurrentCPS); + sprintf(Tmp," %sB/s %s",SizeToStr(CurrentCPS).c_str(),TimeToStr(ETA).c_str()); + unsigned int Len = strlen(Buffer); + unsigned int LenT = strlen(Tmp); + if (Len + LenT < ScreenWidth) + { + memset(Buffer + Len,' ',ScreenWidth - Len); + strcpy(Buffer + ScreenWidth - LenT,Tmp); + } + } + Buffer[ScreenWidth] = 0; + BlankLine[ScreenWidth] = 0; + sigprocmask(SIG_SETMASK,&OldSigs,0); + + // Draw the current status + if (strlen(Buffer) == strlen(BlankLine)) + cout << '\r' << Buffer << flush; + else + cout << '\r' << BlankLine << '\r' << Buffer << flush; + memset(BlankLine,' ',strlen(Buffer)); + BlankLine[strlen(Buffer)] = 0; + + Update = false; + + return true; +} + /*}}}*/ +// AcqTextStatus::MediaChange - Media need to be swapped /*{{{*/ +// --------------------------------------------------------------------- +/* Prompt for a media swap */ +bool AcqTextStatus::MediaChange(string Media,string Drive) +{ + if (Quiet <= 0) + cout << '\r' << BlankLine << '\r'; + ioprintf(cout,_("Media change: please insert the disc labeled\n" + " '%s'\n" + "in the drive '%s' and press enter\n"), + Media.c_str(),Drive.c_str()); + + char C = 0; + bool bStatus = true; + while (C != '\n' && C != '\r') + { + int len = read(STDIN_FILENO,&C,1); + if(C == 'c' || len <= 0) + bStatus = false; + } + + if(bStatus) + Update = true; + return bStatus; +} + /*}}}*/ diff --git a/cmdline/acqprogress.h b/cmdline/acqprogress.h new file mode 100644 index 0000000..48f90ae --- /dev/null +++ b/cmdline/acqprogress.h @@ -0,0 +1,37 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: acqprogress.h,v 1.5 2003/02/02 22:24:11 jgg Exp $ +/* ###################################################################### + + Acquire Progress - Command line progress meter + + ##################################################################### */ + /*}}}*/ +#ifndef ACQPROGRESS_H +#define ACQPROGRESS_H + +#include + +class AcqTextStatus : public pkgAcquireStatus +{ + unsigned int &ScreenWidth; + char BlankLine[1024]; + unsigned long ID; + unsigned long Quiet; + + public: + + virtual bool MediaChange(string Media,string Drive); + virtual void IMSHit(pkgAcquire::ItemDesc &Itm); + virtual void Fetch(pkgAcquire::ItemDesc &Itm); + virtual void Done(pkgAcquire::ItemDesc &Itm); + virtual void Fail(pkgAcquire::ItemDesc &Itm); + virtual void Start(); + virtual void Stop(); + + bool Pulse(pkgAcquire *Owner); + + AcqTextStatus(unsigned int &ScreenWidth,unsigned int Quiet); +}; + +#endif diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc new file mode 100644 index 0000000..b2d210a --- /dev/null +++ b/cmdline/apt-cache.cc @@ -0,0 +1,1817 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: apt-cache.cc,v 1.72 2004/04/30 04:34:03 mdz Exp $ +/* ###################################################################### + + apt-cache - Manages the cache files + + apt-cache provides some functions fo manipulating the cache files. + It uses the command line interface common to all the APT tools. + + Returns 100 on failure, 0 on success. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include + +#include + /*}}}*/ + +using namespace std; + +pkgCache *GCache = 0; +pkgSourceList *SrcList = 0; + +// LocalitySort - Sort a version list by package file locality /*{{{*/ +// --------------------------------------------------------------------- +/* */ +int LocalityCompare(const void *a, const void *b) +{ + pkgCache::VerFile *A = *(pkgCache::VerFile **)a; + pkgCache::VerFile *B = *(pkgCache::VerFile **)b; + + if (A == 0 && B == 0) + return 0; + if (A == 0) + return 1; + if (B == 0) + return -1; + + if (A->File == B->File) + return A->Offset - B->Offset; + return A->File - B->File; +} + +void LocalitySort(pkgCache::VerFile **begin, + unsigned long Count,size_t Size) +{ + qsort(begin,Count,Size,LocalityCompare); +} + /*}}}*/ +// UnMet - Show unmet dependencies /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool UnMet(CommandLine &CmdL) +{ + pkgCache &Cache = *GCache; + bool Important = _config->FindB("APT::Cache::Important",false); + + for (pkgCache::PkgIterator P = Cache.PkgBegin(); P.end() == false; P++) + { + for (pkgCache::VerIterator V = P.VersionList(); V.end() == false; V++) + { + bool Header = false; + for (pkgCache::DepIterator D = V.DependsList(); D.end() == false;) + { + // Collect or groups + pkgCache::DepIterator Start; + pkgCache::DepIterator End; + D.GlobOr(Start,End); + + // Skip conflicts and replaces + if (End->Type != pkgCache::Dep::PreDepends && + End->Type != pkgCache::Dep::Depends && + End->Type != pkgCache::Dep::Suggests && + End->Type != pkgCache::Dep::Recommends) + continue; + + // Important deps only + if (Important == true) + if (End->Type != pkgCache::Dep::PreDepends && + End->Type != pkgCache::Dep::Depends) + continue; + + // Verify the or group + bool OK = false; + pkgCache::DepIterator RealStart = Start; + do + { + // See if this dep is Ok + pkgCache::Version **VList = Start.AllTargets(); + if (*VList != 0) + { + OK = true; + delete [] VList; + break; + } + delete [] VList; + + if (Start == End) + break; + Start++; + } + while (1); + + // The group is OK + if (OK == true) + continue; + + // Oops, it failed.. + if (Header == false) + ioprintf(cout,_("Package %s version %s has an unmet dep:\n"), + P.Name(),V.VerStr()); + Header = true; + + // Print out the dep type + cout << " " << End.DepType() << ": "; + + // Show the group + Start = RealStart; + do + { + cout << Start.TargetPkg().Name(); + if (Start.TargetVer() != 0) + cout << " (" << Start.CompType() << " " << Start.TargetVer() << + ")"; + if (Start == End) + break; + cout << " | "; + Start++; + } + while (1); + + cout << endl; + } + } + } + return true; +} + /*}}}*/ +// DumpPackage - Show a dump of a package record /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool DumpPackage(CommandLine &CmdL) +{ + pkgCache &Cache = *GCache; + for (const char **I = CmdL.FileList + 1; *I != 0; I++) + { + pkgCache::PkgIterator Pkg = Cache.FindPkg(*I); + if (Pkg.end() == true) + { + _error->Warning(_("Unable to locate package %s"),*I); + continue; + } + + cout << "Package: " << Pkg.Name() << endl; + cout << "Versions: " << endl; + for (pkgCache::VerIterator Cur = Pkg.VersionList(); Cur.end() != true; Cur++) + { + cout << Cur.VerStr(); + for (pkgCache::VerFileIterator Vf = Cur.FileList(); Vf.end() == false; Vf++) + cout << "(" << Vf.File().FileName() << ")"; + cout << endl; + } + + cout << endl; + + cout << "Reverse Depends: " << endl; + for (pkgCache::DepIterator D = Pkg.RevDependsList(); D.end() != true; D++) + { + cout << " " << D.ParentPkg().Name() << ',' << D.TargetPkg().Name(); + if (D->Version != 0) + cout << ' ' << DeNull(D.TargetVer()) << endl; + else + cout << endl; + } + + cout << "Dependencies: " << endl; + for (pkgCache::VerIterator Cur = Pkg.VersionList(); Cur.end() != true; Cur++) + { + cout << Cur.VerStr() << " - "; + for (pkgCache::DepIterator Dep = Cur.DependsList(); Dep.end() != true; Dep++) + cout << Dep.TargetPkg().Name() << " (" << (int)Dep->CompareOp << " " << DeNull(Dep.TargetVer()) << ") "; + cout << endl; + } + + cout << "Provides: " << endl; + for (pkgCache::VerIterator Cur = Pkg.VersionList(); Cur.end() != true; Cur++) + { + cout << Cur.VerStr() << " - "; + for (pkgCache::PrvIterator Prv = Cur.ProvidesList(); Prv.end() != true; Prv++) + cout << Prv.ParentPkg().Name() << " "; + cout << endl; + } + cout << "Reverse Provides: " << endl; + for (pkgCache::PrvIterator Prv = Pkg.ProvidesList(); Prv.end() != true; Prv++) + cout << Prv.OwnerPkg().Name() << " " << Prv.OwnerVer().VerStr() << endl; + } + + return true; +} + /*}}}*/ +// Stats - Dump some nice statistics /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool Stats(CommandLine &Cmd) +{ + pkgCache &Cache = *GCache; + cout << _("Total package names : ") << Cache.Head().PackageCount << " (" << + SizeToStr(Cache.Head().PackageCount*Cache.Head().PackageSz) << ')' << endl; + + int Normal = 0; + int Virtual = 0; + int NVirt = 0; + int DVirt = 0; + int Missing = 0; + pkgCache::PkgIterator I = Cache.PkgBegin(); + for (;I.end() != true; I++) + { + if (I->VersionList != 0 && I->ProvidesList == 0) + { + Normal++; + continue; + } + + if (I->VersionList != 0 && I->ProvidesList != 0) + { + NVirt++; + continue; + } + + if (I->VersionList == 0 && I->ProvidesList != 0) + { + // Only 1 provides + if (I.ProvidesList()->NextProvides == 0) + { + DVirt++; + } + else + Virtual++; + continue; + } + if (I->VersionList == 0 && I->ProvidesList == 0) + { + Missing++; + continue; + } + } + cout << _(" Normal packages: ") << Normal << endl; + cout << _(" Pure virtual packages: ") << Virtual << endl; + cout << _(" Single virtual packages: ") << DVirt << endl; + cout << _(" Mixed virtual packages: ") << NVirt << endl; + cout << _(" Missing: ") << Missing << endl; + + cout << _("Total distinct versions: ") << Cache.Head().VersionCount << " (" << + SizeToStr(Cache.Head().VersionCount*Cache.Head().VersionSz) << ')' << endl; + cout << _("Total dependencies: ") << Cache.Head().DependsCount << " (" << + SizeToStr(Cache.Head().DependsCount*Cache.Head().DependencySz) << ')' << endl; + + cout << _("Total ver/file relations: ") << Cache.Head().VerFileCount << " (" << + SizeToStr(Cache.Head().VerFileCount*Cache.Head().VerFileSz) << ')' << endl; + cout << _("Total Provides mappings: ") << Cache.Head().ProvidesCount << " (" << + SizeToStr(Cache.Head().ProvidesCount*Cache.Head().ProvidesSz) << ')' << endl; + + // String list stats + unsigned long Size = 0; + unsigned long Count = 0; + for (pkgCache::StringItem *I = Cache.StringItemP + Cache.Head().StringList; + I!= Cache.StringItemP; I = Cache.StringItemP + I->NextItem) + { + Count++; + Size += strlen(Cache.StrP + I->String) + 1; + } + cout << _("Total globbed strings: ") << Count << " (" << SizeToStr(Size) << ')' << endl; + + unsigned long DepVerSize = 0; + for (pkgCache::PkgIterator P = Cache.PkgBegin(); P.end() == false; P++) + { + for (pkgCache::VerIterator V = P.VersionList(); V.end() == false; V++) + { + for (pkgCache::DepIterator D = V.DependsList(); D.end() == false; D++) + { + if (D->Version != 0) + DepVerSize += strlen(D.TargetVer()) + 1; + } + } + } + cout << _("Total dependency version space: ") << SizeToStr(DepVerSize) << endl; + + unsigned long Slack = 0; + for (int I = 0; I != 7; I++) + Slack += Cache.Head().Pools[I].ItemSize*Cache.Head().Pools[I].Count; + cout << _("Total slack space: ") << SizeToStr(Slack) << endl; + + unsigned long Total = 0; + Total = Slack + Size + Cache.Head().DependsCount*Cache.Head().DependencySz + + Cache.Head().VersionCount*Cache.Head().VersionSz + + Cache.Head().PackageCount*Cache.Head().PackageSz + + Cache.Head().VerFileCount*Cache.Head().VerFileSz + + Cache.Head().ProvidesCount*Cache.Head().ProvidesSz; + cout << _("Total space accounted for: ") << SizeToStr(Total) << endl; + + return true; +} + /*}}}*/ +// Dump - show everything /*{{{*/ +// --------------------------------------------------------------------- +/* This is worthless except fer debugging things */ +bool Dump(CommandLine &Cmd) +{ + pkgCache &Cache = *GCache; + cout << "Using Versioning System: " << Cache.VS->Label << endl; + + for (pkgCache::PkgIterator P = Cache.PkgBegin(); P.end() == false; P++) + { + cout << "Package: " << P.Name() << endl; + for (pkgCache::VerIterator V = P.VersionList(); V.end() == false; V++) + { + cout << " Version: " << V.VerStr() << endl; + cout << " File: " << V.FileList().File().FileName() << endl; + for (pkgCache::DepIterator D = V.DependsList(); D.end() == false; D++) + cout << " Depends: " << D.TargetPkg().Name() << ' ' << + DeNull(D.TargetVer()) << endl; + } + } + + for (pkgCache::PkgFileIterator F = Cache.FileBegin(); F.end() == false; F++) + { + cout << "File: " << F.FileName() << endl; + cout << " Type: " << F.IndexType() << endl; + cout << " Size: " << F->Size << endl; + cout << " ID: " << F->ID << endl; + cout << " Flags: " << F->Flags << endl; + cout << " Time: " << TimeRFC1123(F->mtime) << endl; + cout << " Archive: " << DeNull(F.Archive()) << endl; + cout << " Component: " << DeNull(F.Component()) << endl; + cout << " Version: " << DeNull(F.Version()) << endl; + cout << " Origin: " << DeNull(F.Origin()) << endl; + cout << " Site: " << DeNull(F.Site()) << endl; + cout << " Label: " << DeNull(F.Label()) << endl; + cout << " Architecture: " << DeNull(F.Architecture()) << endl; + } + + return true; +} + /*}}}*/ +// DumpAvail - Print out the available list /*{{{*/ +// --------------------------------------------------------------------- +/* This is needed to make dpkg --merge happy.. I spent a bit of time to + make this run really fast, perhaps I went a little overboard.. */ +bool DumpAvail(CommandLine &Cmd) +{ + pkgCache &Cache = *GCache; + + pkgPolicy Plcy(&Cache); + if (ReadPinFile(Plcy) == false) + return false; + + unsigned long Count = Cache.HeaderP->PackageCount+1; + pkgCache::VerFile **VFList = new pkgCache::VerFile *[Count]; + memset(VFList,0,sizeof(*VFList)*Count); + + // Map versions that we want to write out onto the VerList array. + for (pkgCache::PkgIterator P = Cache.PkgBegin(); P.end() == false; P++) + { + if (P->VersionList == 0) + continue; + + /* Find the proper version to use. If the policy says there are no + possible selections we return the installed version, if available.. + This prevents dselect from making it obsolete. */ + pkgCache::VerIterator V = Plcy.GetCandidateVer(P); + if (V.end() == true) + { + if (P->CurrentVer == 0) + continue; + V = P.CurrentVer(); + } + + pkgCache::VerFileIterator VF = V.FileList(); + for (; VF.end() == false ; VF++) + if ((VF.File()->Flags & pkgCache::Flag::NotSource) == 0) + break; + + /* Okay, here we have a bit of a problem.. The policy has selected the + currently installed package - however it only exists in the + status file.. We need to write out something or dselect will mark + the package as obsolete! Thus we emit the status file entry, but + below we remove the status line to make it valid for the + available file. However! We only do this if their do exist *any* + non-source versions of the package - that way the dselect obsolete + handling works OK. */ + if (VF.end() == true) + { + for (pkgCache::VerIterator Cur = P.VersionList(); Cur.end() != true; Cur++) + { + for (VF = Cur.FileList(); VF.end() == false; VF++) + { + if ((VF.File()->Flags & pkgCache::Flag::NotSource) == 0) + { + VF = V.FileList(); + break; + } + } + + if (VF.end() == false) + break; + } + } + + VFList[P->ID] = VF; + } + + LocalitySort(VFList,Count,sizeof(*VFList)); + + // Iterate over all the package files and write them out. + char *Buffer = new char[Cache.HeaderP->MaxVerFileSize+10]; + for (pkgCache::VerFile **J = VFList; *J != 0;) + { + pkgCache::PkgFileIterator File(Cache,(*J)->File + Cache.PkgFileP); + if (File.IsOk() == false) + { + _error->Error(_("Package file %s is out of sync."),File.FileName()); + break; + } + + FileFd PkgF(File.FileName(),FileFd::ReadOnly); + if (_error->PendingError() == true) + break; + + /* Write all of the records from this package file, since we + already did locality sorting we can now just seek through the + file in read order. We apply 1 more optimization here, since often + there will be < 1 byte gaps between records (for the \n) we read that + into the next buffer and offset a bit.. */ + unsigned long Pos = 0; + for (; *J != 0; J++) + { + if ((*J)->File + Cache.PkgFileP != File) + break; + + const pkgCache::VerFile &VF = **J; + + // Read the record and then write it out again. + unsigned long Jitter = VF.Offset - Pos; + if (Jitter > 8) + { + if (PkgF.Seek(VF.Offset) == false) + break; + Jitter = 0; + } + + if (PkgF.Read(Buffer,VF.Size + Jitter) == false) + break; + Buffer[VF.Size + Jitter] = '\n'; + + // See above.. + if ((File->Flags & pkgCache::Flag::NotSource) == pkgCache::Flag::NotSource) + { + pkgTagSection Tags; + TFRewriteData RW[] = {{"Status",0},{"Config-Version",0},{}}; + const char *Zero = 0; + if (Tags.Scan(Buffer+Jitter,VF.Size+1) == false || + TFRewrite(stdout,Tags,&Zero,RW) == false) + { + _error->Error("Internal Error, Unable to parse a package record"); + break; + } + fputc('\n',stdout); + } + else + { + if (fwrite(Buffer+Jitter,VF.Size+1,1,stdout) != 1) + break; + } + + Pos = VF.Offset + VF.Size; + } + + fflush(stdout); + if (_error->PendingError() == true) + break; + } + + delete [] Buffer; + delete [] VFList; + return !_error->PendingError(); +} + /*}}}*/ +// Depends - Print out a dependency tree /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool Depends(CommandLine &CmdL) +{ + pkgCache &Cache = *GCache; + SPtrArray Colours = new unsigned[Cache.Head().PackageCount]; + memset(Colours,0,sizeof(*Colours)*Cache.Head().PackageCount); + + for (const char **I = CmdL.FileList + 1; *I != 0; I++) + { + pkgCache::PkgIterator Pkg = Cache.FindPkg(*I); + if (Pkg.end() == true) + { + _error->Warning(_("Unable to locate package %s"),*I); + continue; + } + Colours[Pkg->ID] = 1; + } + + bool Recurse = _config->FindB("APT::Cache::RecurseDepends",false); + bool Installed = _config->FindB("APT::Cache::Installed",false); + bool DidSomething; + do + { + DidSomething = false; + for (pkgCache::PkgIterator Pkg = Cache.PkgBegin(); Pkg.end() == false; Pkg++) + { + if (Colours[Pkg->ID] != 1) + continue; + Colours[Pkg->ID] = 2; + DidSomething = true; + + pkgCache::VerIterator Ver = Pkg.VersionList(); + if (Ver.end() == true) + { + cout << '<' << Pkg.Name() << '>' << endl; + continue; + } + + cout << Pkg.Name() << endl; + + for (pkgCache::DepIterator D = Ver.DependsList(); D.end() == false; D++) + { + + pkgCache::PkgIterator Trg = D.TargetPkg(); + + if((Installed && Trg->CurrentVer != 0) || !Installed) + { + + if ((D->CompareOp & pkgCache::Dep::Or) == pkgCache::Dep::Or) + cout << " |"; + else + cout << " "; + + // Show the package + if (Trg->VersionList == 0) + cout << D.DepType() << ": <" << Trg.Name() << ">" << endl; + else + cout << D.DepType() << ": " << Trg.Name() << endl; + + if (Recurse == true) + Colours[D.TargetPkg()->ID]++; + + } + + // Display all solutions + SPtrArray List = D.AllTargets(); + pkgPrioSortList(Cache,List); + for (pkgCache::Version **I = List; *I != 0; I++) + { + pkgCache::VerIterator V(Cache,*I); + if (V != Cache.VerP + V.ParentPkg()->VersionList || + V->ParentPkg == D->Package) + continue; + cout << " " << V.ParentPkg().Name() << endl; + + if (Recurse == true) + Colours[D.ParentPkg()->ID]++; + } + } + } + } + while (DidSomething == true); + + return true; +} + +// RDepends - Print out a reverse dependency tree - mbc /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool RDepends(CommandLine &CmdL) +{ + pkgCache &Cache = *GCache; + SPtrArray Colours = new unsigned[Cache.Head().PackageCount]; + memset(Colours,0,sizeof(*Colours)*Cache.Head().PackageCount); + + for (const char **I = CmdL.FileList + 1; *I != 0; I++) + { + pkgCache::PkgIterator Pkg = Cache.FindPkg(*I); + if (Pkg.end() == true) + { + _error->Warning(_("Unable to locate package %s"),*I); + continue; + } + Colours[Pkg->ID] = 1; + } + + bool Recurse = _config->FindB("APT::Cache::RecurseDepends",false); + bool Installed = _config->FindB("APT::Cache::Installed",false); + bool DidSomething; + do + { + DidSomething = false; + for (pkgCache::PkgIterator Pkg = Cache.PkgBegin(); Pkg.end() == false; Pkg++) + { + if (Colours[Pkg->ID] != 1) + continue; + Colours[Pkg->ID] = 2; + DidSomething = true; + + pkgCache::VerIterator Ver = Pkg.VersionList(); + if (Ver.end() == true) + { + cout << '<' << Pkg.Name() << '>' << endl; + continue; + } + + cout << Pkg.Name() << endl; + + cout << "Reverse Depends:" << endl; + for (pkgCache::DepIterator D = Pkg.RevDependsList(); D.end() == false; D++) + { + // Show the package + pkgCache::PkgIterator Trg = D.ParentPkg(); + + if((Installed && Trg->CurrentVer != 0) || !Installed) + { + + if ((D->CompareOp & pkgCache::Dep::Or) == pkgCache::Dep::Or) + cout << " |"; + else + cout << " "; + + if (Trg->VersionList == 0) + cout << D.DepType() << ": <" << Trg.Name() << ">" << endl; + else + cout << Trg.Name() << endl; + + if (Recurse == true) + Colours[D.ParentPkg()->ID]++; + + } + + // Display all solutions + SPtrArray List = D.AllTargets(); + pkgPrioSortList(Cache,List); + for (pkgCache::Version **I = List; *I != 0; I++) + { + pkgCache::VerIterator V(Cache,*I); + if (V != Cache.VerP + V.ParentPkg()->VersionList || + V->ParentPkg == D->Package) + continue; + cout << " " << V.ParentPkg().Name() << endl; + + if (Recurse == true) + Colours[D.ParentPkg()->ID]++; + } + } + } + } + while (DidSomething == true); + + return true; +} + + /*}}}*/ + + +// xvcg - Generate a graph for xvcg /*{{{*/ +// --------------------------------------------------------------------- +// Code contributed from Junichi Uekawa on 20 June 2002. + +bool XVcg(CommandLine &CmdL) +{ + pkgCache &Cache = *GCache; + bool GivenOnly = _config->FindB("APT::Cache::GivenOnly",false); + + /* Normal packages are boxes + Pure Provides are triangles + Mixed are diamonds + rhomb are missing packages*/ + const char *Shapes[] = {"ellipse","triangle","box","rhomb"}; + + /* Initialize the list of packages to show. + 1 = To Show + 2 = To Show no recurse + 3 = Emitted no recurse + 4 = Emitted + 0 = None */ + enum States {None=0, ToShow, ToShowNR, DoneNR, Done}; + enum TheFlags {ForceNR=(1<<0)}; + unsigned char *Show = new unsigned char[Cache.Head().PackageCount]; + unsigned char *Flags = new unsigned char[Cache.Head().PackageCount]; + unsigned char *ShapeMap = new unsigned char[Cache.Head().PackageCount]; + + // Show everything if no arguments given + if (CmdL.FileList[1] == 0) + for (unsigned long I = 0; I != Cache.Head().PackageCount; I++) + Show[I] = ToShow; + else + for (unsigned long I = 0; I != Cache.Head().PackageCount; I++) + Show[I] = None; + memset(Flags,0,sizeof(*Flags)*Cache.Head().PackageCount); + + // Map the shapes + for (pkgCache::PkgIterator Pkg = Cache.PkgBegin(); Pkg.end() == false; Pkg++) + { + if (Pkg->VersionList == 0) + { + // Missing + if (Pkg->ProvidesList == 0) + ShapeMap[Pkg->ID] = 0; + else + ShapeMap[Pkg->ID] = 1; + } + else + { + // Normal + if (Pkg->ProvidesList == 0) + ShapeMap[Pkg->ID] = 2; + else + ShapeMap[Pkg->ID] = 3; + } + } + + // Load the list of packages from the command line into the show list + for (const char **I = CmdL.FileList + 1; *I != 0; I++) + { + // Process per-package flags + string P = *I; + bool Force = false; + if (P.length() > 3) + { + if (P.end()[-1] == '^') + { + Force = true; + P.erase(P.end()-1); + } + + if (P.end()[-1] == ',') + P.erase(P.end()-1); + } + + // Locate the package + pkgCache::PkgIterator Pkg = Cache.FindPkg(P); + if (Pkg.end() == true) + { + _error->Warning(_("Unable to locate package %s"),*I); + continue; + } + Show[Pkg->ID] = ToShow; + + if (Force == true) + Flags[Pkg->ID] |= ForceNR; + } + + // Little header + cout << "graph: { title: \"packages\"" << endl << + "xmax: 700 ymax: 700 x: 30 y: 30" << endl << + "layout_downfactor: 8" << endl; + + bool Act = true; + while (Act == true) + { + Act = false; + for (pkgCache::PkgIterator Pkg = Cache.PkgBegin(); Pkg.end() == false; Pkg++) + { + // See we need to show this package + if (Show[Pkg->ID] == None || Show[Pkg->ID] >= DoneNR) + continue; + + //printf ("node: { title: \"%s\" label: \"%s\" }\n", Pkg.Name(), Pkg.Name()); + + // Colour as done + if (Show[Pkg->ID] == ToShowNR || (Flags[Pkg->ID] & ForceNR) == ForceNR) + { + // Pure Provides and missing packages have no deps! + if (ShapeMap[Pkg->ID] == 0 || ShapeMap[Pkg->ID] == 1) + Show[Pkg->ID] = Done; + else + Show[Pkg->ID] = DoneNR; + } + else + Show[Pkg->ID] = Done; + Act = true; + + // No deps to map out + if (Pkg->VersionList == 0 || Show[Pkg->ID] == DoneNR) + continue; + + pkgCache::VerIterator Ver = Pkg.VersionList(); + for (pkgCache::DepIterator D = Ver.DependsList(); D.end() == false; D++) + { + // See if anything can meet this dep + // Walk along the actual package providing versions + bool Hit = false; + pkgCache::PkgIterator DPkg = D.TargetPkg(); + for (pkgCache::VerIterator I = DPkg.VersionList(); + I.end() == false && Hit == false; I++) + { + if (Cache.VS->CheckDep(I.VerStr(),D->CompareOp,D.TargetVer()) == true) + Hit = true; + } + + // Follow all provides + for (pkgCache::PrvIterator I = DPkg.ProvidesList(); + I.end() == false && Hit == false; I++) + { + if (Cache.VS->CheckDep(I.ProvideVersion(),D->CompareOp,D.TargetVer()) == false) + Hit = true; + } + + + // Only graph critical deps + if (D.IsCritical() == true) + { + printf ("edge: { sourcename: \"%s\" targetname: \"%s\" class: 2 ",Pkg.Name(), D.TargetPkg().Name() ); + + // Colour the node for recursion + if (Show[D.TargetPkg()->ID] <= DoneNR) + { + /* If a conflicts does not meet anything in the database + then show the relation but do not recurse */ + if (Hit == false && + (D->Type == pkgCache::Dep::Conflicts || + D->Type == pkgCache::Dep::Obsoletes)) + { + if (Show[D.TargetPkg()->ID] == None && + Show[D.TargetPkg()->ID] != ToShow) + Show[D.TargetPkg()->ID] = ToShowNR; + } + else + { + if (GivenOnly == true && Show[D.TargetPkg()->ID] != ToShow) + Show[D.TargetPkg()->ID] = ToShowNR; + else + Show[D.TargetPkg()->ID] = ToShow; + } + } + + // Edge colour + switch(D->Type) + { + case pkgCache::Dep::Conflicts: + printf("label: \"conflicts\" color: lightgreen }\n"); + break; + case pkgCache::Dep::Obsoletes: + printf("label: \"obsoletes\" color: lightgreen }\n"); + break; + + case pkgCache::Dep::PreDepends: + printf("label: \"predepends\" color: blue }\n"); + break; + + default: + printf("}\n"); + break; + } + } + } + } + } + + /* Draw the box colours after the fact since we can not tell what colour + they should be until everything is finished drawing */ + for (pkgCache::PkgIterator Pkg = Cache.PkgBegin(); Pkg.end() == false; Pkg++) + { + if (Show[Pkg->ID] < DoneNR) + continue; + + if (Show[Pkg->ID] == DoneNR) + printf("node: { title: \"%s\" label: \"%s\" color: orange shape: %s }\n", Pkg.Name(), Pkg.Name(), + Shapes[ShapeMap[Pkg->ID]]); + else + printf("node: { title: \"%s\" label: \"%s\" shape: %s }\n", Pkg.Name(), Pkg.Name(), + Shapes[ShapeMap[Pkg->ID]]); + + } + + printf("}\n"); + return true; +} + /*}}}*/ + + +// Dotty - Generate a graph for Dotty /*{{{*/ +// --------------------------------------------------------------------- +/* Dotty is the graphvis program for generating graphs. It is a fairly + simple queuing algorithm that just writes dependencies and nodes. + http://www.research.att.com/sw/tools/graphviz/ */ +bool Dotty(CommandLine &CmdL) +{ + pkgCache &Cache = *GCache; + bool GivenOnly = _config->FindB("APT::Cache::GivenOnly",false); + + /* Normal packages are boxes + Pure Provides are triangles + Mixed are diamonds + Hexagons are missing packages*/ + const char *Shapes[] = {"hexagon","triangle","box","diamond"}; + + /* Initialize the list of packages to show. + 1 = To Show + 2 = To Show no recurse + 3 = Emitted no recurse + 4 = Emitted + 0 = None */ + enum States {None=0, ToShow, ToShowNR, DoneNR, Done}; + enum TheFlags {ForceNR=(1<<0)}; + unsigned char *Show = new unsigned char[Cache.Head().PackageCount]; + unsigned char *Flags = new unsigned char[Cache.Head().PackageCount]; + unsigned char *ShapeMap = new unsigned char[Cache.Head().PackageCount]; + + // Show everything if no arguments given + if (CmdL.FileList[1] == 0) + for (unsigned long I = 0; I != Cache.Head().PackageCount; I++) + Show[I] = ToShow; + else + for (unsigned long I = 0; I != Cache.Head().PackageCount; I++) + Show[I] = None; + memset(Flags,0,sizeof(*Flags)*Cache.Head().PackageCount); + + // Map the shapes + for (pkgCache::PkgIterator Pkg = Cache.PkgBegin(); Pkg.end() == false; Pkg++) + { + if (Pkg->VersionList == 0) + { + // Missing + if (Pkg->ProvidesList == 0) + ShapeMap[Pkg->ID] = 0; + else + ShapeMap[Pkg->ID] = 1; + } + else + { + // Normal + if (Pkg->ProvidesList == 0) + ShapeMap[Pkg->ID] = 2; + else + ShapeMap[Pkg->ID] = 3; + } + } + + // Load the list of packages from the command line into the show list + for (const char **I = CmdL.FileList + 1; *I != 0; I++) + { + // Process per-package flags + string P = *I; + bool Force = false; + if (P.length() > 3) + { + if (P.end()[-1] == '^') + { + Force = true; + P.erase(P.end()-1); + } + + if (P.end()[-1] == ',') + P.erase(P.end()-1); + } + + // Locate the package + pkgCache::PkgIterator Pkg = Cache.FindPkg(P); + if (Pkg.end() == true) + { + _error->Warning(_("Unable to locate package %s"),*I); + continue; + } + Show[Pkg->ID] = ToShow; + + if (Force == true) + Flags[Pkg->ID] |= ForceNR; + } + + // Little header + printf("digraph packages {\n"); + printf("concentrate=true;\n"); + printf("size=\"30,40\";\n"); + + bool Act = true; + while (Act == true) + { + Act = false; + for (pkgCache::PkgIterator Pkg = Cache.PkgBegin(); Pkg.end() == false; Pkg++) + { + // See we need to show this package + if (Show[Pkg->ID] == None || Show[Pkg->ID] >= DoneNR) + continue; + + // Colour as done + if (Show[Pkg->ID] == ToShowNR || (Flags[Pkg->ID] & ForceNR) == ForceNR) + { + // Pure Provides and missing packages have no deps! + if (ShapeMap[Pkg->ID] == 0 || ShapeMap[Pkg->ID] == 1) + Show[Pkg->ID] = Done; + else + Show[Pkg->ID] = DoneNR; + } + else + Show[Pkg->ID] = Done; + Act = true; + + // No deps to map out + if (Pkg->VersionList == 0 || Show[Pkg->ID] == DoneNR) + continue; + + pkgCache::VerIterator Ver = Pkg.VersionList(); + for (pkgCache::DepIterator D = Ver.DependsList(); D.end() == false; D++) + { + // See if anything can meet this dep + // Walk along the actual package providing versions + bool Hit = false; + pkgCache::PkgIterator DPkg = D.TargetPkg(); + for (pkgCache::VerIterator I = DPkg.VersionList(); + I.end() == false && Hit == false; I++) + { + if (Cache.VS->CheckDep(I.VerStr(),D->CompareOp,D.TargetVer()) == true) + Hit = true; + } + + // Follow all provides + for (pkgCache::PrvIterator I = DPkg.ProvidesList(); + I.end() == false && Hit == false; I++) + { + if (Cache.VS->CheckDep(I.ProvideVersion(),D->CompareOp,D.TargetVer()) == false) + Hit = true; + } + + // Only graph critical deps + if (D.IsCritical() == true) + { + printf("\"%s\" -> \"%s\"",Pkg.Name(),D.TargetPkg().Name()); + + // Colour the node for recursion + if (Show[D.TargetPkg()->ID] <= DoneNR) + { + /* If a conflicts does not meet anything in the database + then show the relation but do not recurse */ + if (Hit == false && + (D->Type == pkgCache::Dep::Conflicts || + D->Type == pkgCache::Dep::Obsoletes)) + { + if (Show[D.TargetPkg()->ID] == None && + Show[D.TargetPkg()->ID] != ToShow) + Show[D.TargetPkg()->ID] = ToShowNR; + } + else + { + if (GivenOnly == true && Show[D.TargetPkg()->ID] != ToShow) + Show[D.TargetPkg()->ID] = ToShowNR; + else + Show[D.TargetPkg()->ID] = ToShow; + } + } + + // Edge colour + switch(D->Type) + { + case pkgCache::Dep::Conflicts: + case pkgCache::Dep::Obsoletes: + printf("[color=springgreen];\n"); + break; + + case pkgCache::Dep::PreDepends: + printf("[color=blue];\n"); + break; + + default: + printf(";\n"); + break; + } + } + } + } + } + + /* Draw the box colours after the fact since we can not tell what colour + they should be until everything is finished drawing */ + for (pkgCache::PkgIterator Pkg = Cache.PkgBegin(); Pkg.end() == false; Pkg++) + { + if (Show[Pkg->ID] < DoneNR) + continue; + + // Orange box for early recursion stoppage + if (Show[Pkg->ID] == DoneNR) + printf("\"%s\" [color=orange,shape=%s];\n",Pkg.Name(), + Shapes[ShapeMap[Pkg->ID]]); + else + printf("\"%s\" [shape=%s];\n",Pkg.Name(), + Shapes[ShapeMap[Pkg->ID]]); + } + + printf("}\n"); + return true; +} + /*}}}*/ +// DoAdd - Perform an adding operation /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool DoAdd(CommandLine &CmdL) +{ + return _error->Error("Unimplemented"); +#if 0 + // Make sure there is at least one argument + if (CmdL.FileSize() <= 1) + return _error->Error("You must give at least one file name"); + + // Open the cache + FileFd CacheF(_config->FindFile("Dir::Cache::pkgcache"),FileFd::WriteAny); + if (_error->PendingError() == true) + return false; + + DynamicMMap Map(CacheF,MMap::Public); + if (_error->PendingError() == true) + return false; + + OpTextProgress Progress(*_config); + pkgCacheGenerator Gen(Map,Progress); + if (_error->PendingError() == true) + return false; + + unsigned long Length = CmdL.FileSize() - 1; + for (const char **I = CmdL.FileList + 1; *I != 0; I++) + { + Progress.OverallProgress(I - CmdL.FileList,Length,1,"Generating cache"); + Progress.SubProgress(Length); + + // Do the merge + FileFd TagF(*I,FileFd::ReadOnly); + debListParser Parser(TagF); + if (_error->PendingError() == true) + return _error->Error("Problem opening %s",*I); + + if (Gen.SelectFile(*I,"") == false) + return _error->Error("Problem with SelectFile"); + + if (Gen.MergeList(Parser) == false) + return _error->Error("Problem with MergeList"); + } + + Progress.Done(); + GCache = &Gen.GetCache(); + Stats(CmdL); + + return true; +#endif +} + /*}}}*/ +// DisplayRecord - Displays the complete record for the package /*{{{*/ +// --------------------------------------------------------------------- +/* This displays the package record from the proper package index file. + It is not used by DumpAvail for performance reasons. */ +bool DisplayRecord(pkgCache::VerIterator V) +{ + // Find an appropriate file + pkgCache::VerFileIterator Vf = V.FileList(); + for (; Vf.end() == false; Vf++) + if ((Vf.File()->Flags & pkgCache::Flag::NotSource) == 0) + break; + if (Vf.end() == true) + Vf = V.FileList(); + + // Check and load the package list file + pkgCache::PkgFileIterator I = Vf.File(); + if (I.IsOk() == false) + return _error->Error(_("Package file %s is out of sync."),I.FileName()); + + FileFd PkgF(I.FileName(),FileFd::ReadOnly); + if (_error->PendingError() == true) + return false; + + // Read the record and then write it out again. + unsigned char *Buffer = new unsigned char[GCache->HeaderP->MaxVerFileSize+1]; + Buffer[V.FileList()->Size] = '\n'; + if (PkgF.Seek(V.FileList()->Offset) == false || + PkgF.Read(Buffer,V.FileList()->Size) == false || + fwrite(Buffer,1,V.FileList()->Size+1,stdout) < (size_t)(V.FileList()->Size+1)) + { + delete [] Buffer; + return false; + } + + delete [] Buffer; + + return true; +} + /*}}}*/ +// Search - Perform a search /*{{{*/ +// --------------------------------------------------------------------- +/* This searches the package names and pacakge descriptions for a pattern */ +struct ExVerFile +{ + pkgCache::VerFile *Vf; + bool NameMatch; +}; + +bool Search(CommandLine &CmdL) +{ + pkgCache &Cache = *GCache; + bool ShowFull = _config->FindB("APT::Cache::ShowFull",false); + bool NamesOnly = _config->FindB("APT::Cache::NamesOnly",false); + unsigned NumPatterns = CmdL.FileSize() -1; + + pkgDepCache::Policy Plcy; + + // Make sure there is at least one argument + if (NumPatterns < 1) + return _error->Error(_("You must give exactly one pattern")); + + // Compile the regex pattern + regex_t *Patterns = new regex_t[NumPatterns]; + memset(Patterns,0,sizeof(*Patterns)*NumPatterns); + for (unsigned I = 0; I != NumPatterns; I++) + { + if (regcomp(&Patterns[I],CmdL.FileList[I+1],REG_EXTENDED | REG_ICASE | + REG_NOSUB) != 0) + { + for (; I != 0; I--) + regfree(&Patterns[I]); + return _error->Error("Regex compilation error"); + } + } + + // Create the text record parser + pkgRecords Recs(Cache); + if (_error->PendingError() == true) + { + for (unsigned I = 0; I != NumPatterns; I++) + regfree(&Patterns[I]); + return false; + } + + ExVerFile *VFList = new ExVerFile[Cache.HeaderP->PackageCount+1]; + memset(VFList,0,sizeof(*VFList)*Cache.HeaderP->PackageCount+1); + + // Map versions that we want to write out onto the VerList array. + for (pkgCache::PkgIterator P = Cache.PkgBegin(); P.end() == false; P++) + { + VFList[P->ID].NameMatch = NumPatterns != 0; + for (unsigned I = 0; I != NumPatterns; I++) + { + if (regexec(&Patterns[I],P.Name(),0,0,0) == 0) + VFList[P->ID].NameMatch &= true; + else + VFList[P->ID].NameMatch = false; + } + + // Doing names only, drop any that dont match.. + if (NamesOnly == true && VFList[P->ID].NameMatch == false) + continue; + + // Find the proper version to use. + pkgCache::VerIterator V = Plcy.GetCandidateVer(P); + if (V.end() == false) + VFList[P->ID].Vf = V.FileList(); + } + + // Include all the packages that provide matching names too + for (pkgCache::PkgIterator P = Cache.PkgBegin(); P.end() == false; P++) + { + if (VFList[P->ID].NameMatch == false) + continue; + + for (pkgCache::PrvIterator Prv = P.ProvidesList() ; Prv.end() == false; Prv++) + { + pkgCache::VerIterator V = Plcy.GetCandidateVer(Prv.OwnerPkg()); + if (V.end() == false) + { + VFList[Prv.OwnerPkg()->ID].Vf = V.FileList(); + VFList[Prv.OwnerPkg()->ID].NameMatch = true; + } + } + } + + LocalitySort(&VFList->Vf,Cache.HeaderP->PackageCount,sizeof(*VFList)); + + // Iterate over all the version records and check them + for (ExVerFile *J = VFList; J->Vf != 0; J++) + { + pkgRecords::Parser &P = Recs.Lookup(pkgCache::VerFileIterator(Cache,J->Vf)); + + bool Match = true; + if (J->NameMatch == false) + { + string LongDesc = P.LongDesc(); + Match = NumPatterns != 0; + for (unsigned I = 0; I != NumPatterns; I++) + { + if (regexec(&Patterns[I],LongDesc.c_str(),0,0,0) == 0) + Match &= true; + else + Match = false; + } + } + + if (Match == true) + { + if (ShowFull == true) + { + const char *Start; + const char *End; + P.GetRec(Start,End); + fwrite(Start,End-Start,1,stdout); + putc('\n',stdout); + } + else + printf("%s - %s\n",P.Name().c_str(),P.ShortDesc().c_str()); + } + } + + delete [] VFList; + for (unsigned I = 0; I != NumPatterns; I++) + regfree(&Patterns[I]); + if (ferror(stdout)) + return _error->Error("Write to stdout failed"); + return true; +} + /*}}}*/ +// ShowPackage - Dump the package record to the screen /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool ShowPackage(CommandLine &CmdL) +{ + pkgCache &Cache = *GCache; + pkgDepCache::Policy Plcy; + + unsigned found = 0; + + for (const char **I = CmdL.FileList + 1; *I != 0; I++) + { + pkgCache::PkgIterator Pkg = Cache.FindPkg(*I); + if (Pkg.end() == true) + { + _error->Warning(_("Unable to locate package %s"),*I); + continue; + } + + ++found; + + // Find the proper version to use. + if (_config->FindB("APT::Cache::AllVersions","true") == true) + { + pkgCache::VerIterator V; + for (V = Pkg.VersionList(); V.end() == false; V++) + { + if (DisplayRecord(V) == false) + return false; + } + } + else + { + pkgCache::VerIterator V = Plcy.GetCandidateVer(Pkg); + if (V.end() == true || V.FileList().end() == true) + continue; + if (DisplayRecord(V) == false) + return false; + } + } + + if (found > 0) + return true; + return _error->Error(_("No packages found")); +} + /*}}}*/ +// ShowPkgNames - Show package names /*{{{*/ +// --------------------------------------------------------------------- +/* This does a prefix match on the first argument */ +bool ShowPkgNames(CommandLine &CmdL) +{ + pkgCache &Cache = *GCache; + pkgCache::PkgIterator I = Cache.PkgBegin(); + bool All = _config->FindB("APT::Cache::AllNames","false"); + + if (CmdL.FileList[1] != 0) + { + for (;I.end() != true; I++) + { + if (All == false && I->VersionList == 0) + continue; + + if (strncmp(I.Name(),CmdL.FileList[1],strlen(CmdL.FileList[1])) == 0) + cout << I.Name() << endl; + } + + return true; + } + + // Show all pkgs + for (;I.end() != true; I++) + { + if (All == false && I->VersionList == 0) + continue; + cout << I.Name() << endl; + } + + return true; +} + /*}}}*/ +// ShowSrcPackage - Show source package records /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool ShowSrcPackage(CommandLine &CmdL) +{ + pkgSourceList List; + List.ReadMainList(); + + // Create the text record parsers + pkgSrcRecords SrcRecs(List); + if (_error->PendingError() == true) + return false; + + for (const char **I = CmdL.FileList + 1; *I != 0; I++) + { + SrcRecs.Restart(); + + pkgSrcRecords::Parser *Parse; + while ((Parse = SrcRecs.Find(*I,false)) != 0) + cout << Parse->AsStr() << endl;; + } + return true; +} + /*}}}*/ +// Policy - Show the results of the preferences file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool Policy(CommandLine &CmdL) +{ + if (SrcList == 0) + return _error->Error("Generate must be enabled for this function"); + + pkgCache &Cache = *GCache; + pkgPolicy Plcy(&Cache); + if (ReadPinFile(Plcy) == false) + return false; + + // Print out all of the package files + if (CmdL.FileList[1] == 0) + { + cout << _("Package files:") << endl; + for (pkgCache::PkgFileIterator F = Cache.FileBegin(); F.end() == false; F++) + { + // Locate the associated index files so we can derive a description + pkgIndexFile *Indx; + if (SrcList->FindIndex(F,Indx) == false && + _system->FindIndex(F,Indx) == false) + return _error->Error(_("Cache is out of sync, can't x-ref a package file")); + printf(_("%4i %s\n"), + Plcy.GetPriority(F),Indx->Describe(true).c_str()); + + // Print the reference information for the package + string Str = F.RelStr(); + if (Str.empty() == false) + printf(" release %s\n",F.RelStr().c_str()); + if (F.Site() != 0 && F.Site()[0] != 0) + printf(" origin %s\n",F.Site()); + } + + // Show any packages have explicit pins + cout << _("Pinned packages:") << endl; + pkgCache::PkgIterator I = Cache.PkgBegin(); + for (;I.end() != true; I++) + { + if (Plcy.GetPriority(I) == 0) + continue; + + // Print the package name and the version we are forcing to + cout << " " << I.Name() << " -> "; + + pkgCache::VerIterator V = Plcy.GetMatch(I); + if (V.end() == true) + cout << _("(not found)") << endl; + else + cout << V.VerStr() << endl; + } + + return true; + } + + // Print out detailed information for each package + for (const char **I = CmdL.FileList + 1; *I != 0; I++) + { + pkgCache::PkgIterator Pkg = Cache.FindPkg(*I); + if (Pkg.end() == true) + { + _error->Warning(_("Unable to locate package %s"),*I); + continue; + } + + cout << Pkg.Name() << ":" << endl; + + // Installed version + cout << _(" Installed: "); + if (Pkg->CurrentVer == 0) + cout << _("(none)") << endl; + else + cout << Pkg.CurrentVer().VerStr() << endl; + + // Candidate Version + cout << _(" Candidate: "); + pkgCache::VerIterator V = Plcy.GetCandidateVer(Pkg); + if (V.end() == true) + cout << _("(none)") << endl; + else + cout << V.VerStr() << endl; + + // Pinned version + if (Plcy.GetPriority(Pkg) != 0) + { + cout << _(" Package pin: "); + V = Plcy.GetMatch(Pkg); + if (V.end() == true) + cout << _("(not found)") << endl; + else + cout << V.VerStr() << endl; + } + + // Show the priority tables + cout << _(" Version table:") << endl; + for (V = Pkg.VersionList(); V.end() == false; V++) + { + if (Pkg.CurrentVer() == V) + cout << " *** " << V.VerStr(); + else + cout << " " << V.VerStr(); + cout << " " << Plcy.GetPriority(Pkg) << endl; + for (pkgCache::VerFileIterator VF = V.FileList(); VF.end() == false; VF++) + { + // Locate the associated index files so we can derive a description + pkgIndexFile *Indx; + if (SrcList->FindIndex(VF.File(),Indx) == false && + _system->FindIndex(VF.File(),Indx) == false) + return _error->Error(_("Cache is out of sync, can't x-ref a package file")); + printf(_(" %4i %s\n"),Plcy.GetPriority(VF.File()), + Indx->Describe(true).c_str()); + } + } + } + + return true; +} + /*}}}*/ +// Madison - Look a bit like katie's madison /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool Madison(CommandLine &CmdL) +{ + if (SrcList == 0) + return _error->Error("Generate must be enabled for this function"); + + SrcList->ReadMainList(); + + pkgCache &Cache = *GCache; + + // Create the src text record parsers and ignore errors about missing + // deb-src lines that are generated from pkgSrcRecords::pkgSrcRecords + pkgSrcRecords SrcRecs(*SrcList); + if (_error->PendingError() == true) + _error->Discard(); + + for (const char **I = CmdL.FileList + 1; *I != 0; I++) + { + pkgCache::PkgIterator Pkg = Cache.FindPkg(*I); + + if (Pkg.end() == false) + { + for (pkgCache::VerIterator V = Pkg.VersionList(); V.end() == false; V++) + { + for (pkgCache::VerFileIterator VF = V.FileList(); VF.end() == false; VF++) + { +// This might be nice, but wouldn't uniquely identify the source -mdz +// if (VF.File().Archive() != 0) +// { +// cout << setw(10) << Pkg.Name() << " | " << setw(10) << V.VerStr() << " | " +// << VF.File().Archive() << endl; +// } + + // Locate the associated index files so we can derive a description + for (pkgSourceList::const_iterator S = SrcList->begin(); S != SrcList->end(); S++) + { + vector *Indexes = (*S)->GetIndexFiles(); + for (vector::const_iterator IF = Indexes->begin(); + IF != Indexes->end(); IF++) + { + if ((*IF)->FindInCache(*(VF.File().Cache())) == VF.File()) + { + cout << setw(10) << Pkg.Name() << " | " << setw(10) << V.VerStr() << " | " + << (*IF)->Describe(true) << endl; + } + } + } + } + } + } + + + SrcRecs.Restart(); + pkgSrcRecords::Parser *SrcParser; + while ((SrcParser = SrcRecs.Find(*I,false)) != 0) + { + // Maybe support Release info here too eventually + cout << setw(10) << SrcParser->Package() << " | " + << setw(10) << SrcParser->Version() << " | " + << SrcParser->Index().Describe(true) << endl; + } + } + + return true; +} + + /*}}}*/ +// GenCaches - Call the main cache generator /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool GenCaches(CommandLine &Cmd) +{ + OpTextProgress Progress(*_config); + + pkgSourceList List; + if (List.ReadMainList() == false) + return false; + return pkgMakeStatusCache(List,Progress); +} + /*}}}*/ +// ShowHelp - Show a help screen /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool ShowHelp(CommandLine &Cmd) +{ + ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION, + COMMON_OS,COMMON_CPU,__DATE__,__TIME__); + + if (_config->FindB("version") == true) + return true; + + cout << + _("Usage: apt-cache [options] command\n" + " apt-cache [options] add file1 [file2 ...]\n" + " apt-cache [options] showpkg pkg1 [pkg2 ...]\n" + " apt-cache [options] showsrc pkg1 [pkg2 ...]\n" + "\n" + "apt-cache is a low-level tool used to manipulate APT's binary\n" + "cache files, and query information from them\n" + "\n" + "Commands:\n" + " add - Add a package file to the source cache\n" + " gencaches - Build both the package and source cache\n" + " showpkg - Show some general information for a single package\n" + " showsrc - Show source records\n" + " stats - Show some basic statistics\n" + " dump - Show the entire file in a terse form\n" + " dumpavail - Print an available file to stdout\n" + " unmet - Show unmet dependencies\n" + " search - Search the package list for a regex pattern\n" + " show - Show a readable record for the package\n" + " depends - Show raw dependency information for a package\n" + " rdepends - Show reverse dependency information for a package\n" + " pkgnames - List the names of all packages\n" + " dotty - Generate package graphs for GraphVis\n" + " xvcg - Generate package graphs for xvcg\n" + " policy - Show policy settings\n" + "\n" + "Options:\n" + " -h This help text.\n" + " -p=? The package cache.\n" + " -s=? The source cache.\n" + " -q Disable progress indicator.\n" + " -i Show only important deps for the unmet command.\n" + " -c=? Read this configuration file\n" + " -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" + "See the apt-cache(8) and apt.conf(5) manual pages for more information.\n"); + return true; +} + /*}}}*/ +// CacheInitialize - Initialize things for apt-cache /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void CacheInitialize() +{ + _config->Set("quiet",0); + _config->Set("help",false); +} + /*}}}*/ + +int main_(int argc,const char *argv[]); +int main(int argc,const char *argv[]) { + _exit(main_(argc, argv)); +} +int main_(int argc,const char *argv[]) +{ + CommandLine::Args Args[] = { + {'h',"help","help",0}, + {'v',"version","version",0}, + {'p',"pkg-cache","Dir::Cache::pkgcache",CommandLine::HasArg}, + {'s',"src-cache","Dir::Cache::srcpkgcache",CommandLine::HasArg}, + {'q',"quiet","quiet",CommandLine::IntLevel}, + {'i',"important","APT::Cache::Important",0}, + {'f',"full","APT::Cache::ShowFull",0}, + {'g',"generate","APT::Cache::Generate",0}, + {'a',"all-versions","APT::Cache::AllVersions",0}, + {'n',"names-only","APT::Cache::NamesOnly",0}, + {0,"all-names","APT::Cache::AllNames",0}, + {0,"recurse","APT::Cache::RecurseDepends",0}, + {'c',"config-file",0,CommandLine::ConfigFile}, + {'o',"option",0,CommandLine::ArbItem}, + {0,"installed","APT::Cache::Installed",0}, + {0,0,0,0}}; + CommandLine::Dispatch CmdsA[] = {{"help",&ShowHelp}, + {"add",&DoAdd}, + {"gencaches",&GenCaches}, + {"showsrc",&ShowSrcPackage}, + {0,0}}; + CommandLine::Dispatch CmdsB[] = {{"showpkg",&DumpPackage}, + {"stats",&Stats}, + {"dump",&Dump}, + {"dumpavail",&DumpAvail}, + {"unmet",&UnMet}, + {"search",&Search}, + {"depends",&Depends}, + {"rdepends",&RDepends}, + {"dotty",&Dotty}, + {"xvcg",&XVcg}, + {"show",&ShowPackage}, + {"pkgnames",&ShowPkgNames}, + {"policy",&Policy}, + {"madison",&Madison}, + {0,0}}; + + CacheInitialize(); + + // Set up gettext support + setlocale(LC_ALL,""); + //textdomain(PACKAGE); + + // Parse the command line and initialize the package library + CommandLine CmdL(Args,_config); + if (pkgInitConfig(*_config) == false || + CmdL.Parse(argc,argv) == false || + pkgInitSystem(*_config,_system) == false) + { + _error->DumpErrors(); + return 100; + } + + // See if the help should be shown + if (_config->FindB("help") == true || + CmdL.FileSize() == 0) + { + ShowHelp(CmdL); + return 0; + } + + // Deal with stdout not being a tty + if (isatty(STDOUT_FILENO) && _config->FindI("quiet",0) < 1) + _config->Set("quiet","1"); + + if (CmdL.DispatchArg(CmdsA,false) == false && _error->PendingError() == false) + { + MMap *Map = 0; + if (_config->FindB("APT::Cache::Generate",true) == false) + { + Map = new MMap(*new FileFd(_config->FindFile("Dir::Cache::pkgcache"), + FileFd::ReadOnly),MMap::Public|MMap::ReadOnly); + } + else + { + // Open the cache file + SrcList = new pkgSourceList; + SrcList->ReadMainList(); + + // Generate it and map it + OpProgress Prog; + pkgMakeStatusCache(*SrcList,Prog,&Map,true); + } + + if (_error->PendingError() == false) + { + pkgCache Cache(Map); + GCache = &Cache; + if (_error->PendingError() == false) + CmdL.DispatchArg(CmdsB); + } + delete Map; + } + + // Print any errors or warnings found during parsing + if (_error->empty() == false) + { + bool Errors = _error->PendingError(); + _error->DumpErrors(); + return Errors == true?100:0; + } + + return 0; +} diff --git a/cmdline/apt-cdrom.cc b/cmdline/apt-cdrom.cc new file mode 100644 index 0000000..1585694 --- /dev/null +++ b/cmdline/apt-cdrom.cc @@ -0,0 +1,228 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: apt-cdrom.cc,v 1.45 2003/11/19 23:50:51 mdz Exp $ +/* ###################################################################### + + APT CDROM - Tool for handling APT's CDROM database. + + Currently the only option is 'add' which will take the current CD + in the drive and add it into the database. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//#include "indexcopy.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + /*}}}*/ + +using namespace std; + + /*{{{*/ +class pkgCdromTextStatus : public pkgCdromStatus +{ +protected: + OpTextProgress Progress; + void Prompt(const char *Text); + string PromptLine(const char *Text); + bool AskCdromName(string &name); + +public: + virtual void Update(string text, int current); + virtual bool ChangeCdrom(); + virtual OpProgress* GetOpProgress(); +}; + +void pkgCdromTextStatus::Prompt(const char *Text) +{ + char C; + cout << Text << ' ' << flush; + read(STDIN_FILENO,&C,1); + if (C != '\n') + cout << endl; +} + +string pkgCdromTextStatus::PromptLine(const char *Text) +{ + cout << Text << ':' << endl; + + string Res; + getline(cin,Res); + return Res; +} + +bool pkgCdromTextStatus::AskCdromName(string &name) +{ + cout << _("Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'") << flush; + name = PromptLine(""); + + return true; +} + + +void pkgCdromTextStatus::Update(string text, int current) +{ + if(text.size() > 0) + cout << text << flush; +} + +bool pkgCdromTextStatus::ChangeCdrom() +{ + Prompt(_("Please insert a Disc in the drive and press enter")); + return true; +} + +OpProgress* pkgCdromTextStatus::GetOpProgress() +{ + return &Progress; +}; + + /*}}}*/ + +// DoAdd - Add a new CDROM /*{{{*/ +// --------------------------------------------------------------------- +/* This does the main add bit.. We show some status and things. The + sequence is to mount/umount the CD, Ident it then scan it for package + files and reduce that list. Then we copy over the package files and + verify them. Then rewrite the database files */ +bool DoAdd(CommandLine &) +{ + bool res = false; + pkgCdromTextStatus log; + pkgCdrom cdrom; + res = cdrom.Add(&log); + if(res) + cout << _("Repeat this process for the rest of the CDs in your set.") << endl; + return res; +} + /*}}}*/ +// DoIdent - Ident a CDROM /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool DoIdent(CommandLine &) +{ + string ident; + pkgCdromTextStatus log; + pkgCdrom cdrom; + return cdrom.Ident(ident, &log); +} + /*}}}*/ + +// ShowHelp - Show the help screen /*{{{*/ +// --------------------------------------------------------------------- +/* */ +int ShowHelp() +{ + ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION, + COMMON_OS,COMMON_CPU,__DATE__,__TIME__); + if (_config->FindB("version") == true) + return 0; + + cout << + "Usage: apt-cdrom [options] command\n" + "\n" + "apt-cdrom is a tool to add CDROM's to APT's source list. The\n" + "CDROM mount point and device information is taken from apt.conf\n" + "and /etc/fstab.\n" + "\n" + "Commands:\n" + " add - Add a CDROM\n" + " ident - Report the identity of a CDROM\n" + "\n" + "Options:\n" + " -h This help text\n" + " -d CD-ROM mount point\n" + " -r Rename a recognized CD-ROM\n" + " -m No mounting\n" + " -f Fast mode, don't check package files\n" + " -a Thorough scan mode\n" + " -c=? Read this configuration file\n" + " -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" + "See fstab(5)\n"; + return 0; +} + /*}}}*/ + +int main_(int argc,const char *argv[]); +int main(int argc,const char *argv[]) { + _exit(main_(argc, argv)); +} +int main_(int argc,const char *argv[]) +{ + CommandLine::Args Args[] = { + {'h',"help","help",0}, + {'v',"version","version",0}, + {'d',"cdrom","Acquire::cdrom::mount",CommandLine::HasArg}, + {'r',"rename","APT::CDROM::Rename",0}, + {'m',"no-mount","APT::CDROM::NoMount",0}, + {'f',"fast","APT::CDROM::Fast",0}, + {'n',"just-print","APT::CDROM::NoAct",0}, + {'n',"recon","APT::CDROM::NoAct",0}, + {'n',"no-act","APT::CDROM::NoAct",0}, + {'a',"thorough","APT::CDROM::Thorough",0}, + {'c',"config-file",0,CommandLine::ConfigFile}, + {'o',"option",0,CommandLine::ArbItem}, + {0,0,0,0}}; + CommandLine::Dispatch Cmds[] = { + {"add",&DoAdd}, + {"ident",&DoIdent}, + {0,0}}; + + // Set up gettext support + setlocale(LC_ALL,""); + //textdomain(PACKAGE); + + // Parse the command line and initialize the package library + CommandLine CmdL(Args,_config); + if (pkgInitConfig(*_config) == false || + CmdL.Parse(argc,argv) == false || + pkgInitSystem(*_config,_system) == false) + { + _error->DumpErrors(); + return 100; + } + + // See if the help should be shown + if (_config->FindB("help") == true || _config->FindB("version") == true || + CmdL.FileSize() == 0) + return ShowHelp(); + + // Deal with stdout not being a tty + if (isatty(STDOUT_FILENO) && _config->FindI("quiet",0) < 1) + _config->Set("quiet","1"); + + // Match the operation + CmdL.DispatchArg(Cmds); + + // Print any errors or warnings found during parsing + if (_error->empty() == false) + { + bool Errors = _error->PendingError(); + _error->DumpErrors(); + return Errors == true?100:0; + } + + return 0; +} diff --git a/cmdline/apt-config.cc b/cmdline/apt-config.cc new file mode 100644 index 0000000..716d2e3 --- /dev/null +++ b/cmdline/apt-config.cc @@ -0,0 +1,139 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: apt-config.cc,v 1.11 2003/01/11 07:18:44 jgg Exp $ +/* ###################################################################### + + APT Config - Program to manipulate APT configuration files + + This program will parse a config file and then do something with it. + + Commands: + shell - Shell mode. After this a series of word pairs should occure. + The first is the environment var to set and the second is + the key to set it from. Use like: + eval `apt-config shell QMode apt::QMode` + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#include +#include +#include +#include + +#include +#include + +#include +#include +#include + /*}}}*/ +using namespace std; + +// DoShell - Handle the shell command /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool DoShell(CommandLine &CmdL) +{ + for (const char **I = CmdL.FileList + 1; *I != 0; I += 2) + { + if (I[1] == 0 || strlen(I[1]) == 0) + return _error->Error(_("Arguments not in pairs")); + + string key = I[1]; + if (key.end()[-1] == '/') // old directory format + key.append("d"); + + if (_config->ExistsAny(key.c_str())) + cout << *I << "='" << + SubstVar(_config->FindAny(key.c_str()),"'","'\\''") << '\'' << endl; + + } + + return true; +} + /*}}}*/ +// DoDump - Dump the configuration space /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool DoDump(CommandLine &CmdL) +{ + _config->Dump(cout); + return true; +} + /*}}}*/ +// ShowHelp - Show the help screen /*{{{*/ +// --------------------------------------------------------------------- +/* */ +int ShowHelp() +{ + ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION, + COMMON_OS,COMMON_CPU,__DATE__,__TIME__); + if (_config->FindB("version") == true) + return 0; + + cout << + _("Usage: apt-config [options] command\n" + "\n" + "apt-config is a simple tool to read the APT config file\n" + "\n" + "Commands:\n" + " shell - Shell mode\n" + " dump - Show the configuration\n" + "\n" + "Options:\n" + " -h This help text.\n" + " -c=? Read this configuration file\n" + " -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"); + return 0; +} + /*}}}*/ + +int main_(int argc,const char *argv[]); +int main(int argc,const char *argv[]) { + _exit(main_(argc, argv)); +} +int main_(int argc,const char *argv[]) +{ + CommandLine::Args Args[] = { + {'h',"help","help",0}, + {'v',"version","version",0}, + {'c',"config-file",0,CommandLine::ConfigFile}, + {'o',"option",0,CommandLine::ArbItem}, + {0,0,0,0}}; + CommandLine::Dispatch Cmds[] = {{"shell",&DoShell}, + {"dump",&DoDump}, + {0,0}}; + + // Set up gettext support + setlocale(LC_ALL,""); + //textdomain(PACKAGE); + + // Parse the command line and initialize the package library + CommandLine CmdL(Args,_config); + if (pkgInitConfig(*_config) == false || + CmdL.Parse(argc,argv) == false || + pkgInitSystem(*_config,_system) == false) + { + _error->DumpErrors(); + return 100; + } + + // See if the help should be shown + if (_config->FindB("help") == true || + CmdL.FileSize() == 0) + return ShowHelp(); + + // Match the operation + CmdL.DispatchArg(Cmds); + + // Print any errors or warnings found during parsing + if (_error->empty() == false) + { + bool Errors = _error->PendingError(); + _error->DumpErrors(); + return Errors == true?100:0; + } + + return 0; +} diff --git a/cmdline/apt-extracttemplates.cc b/cmdline/apt-extracttemplates.cc new file mode 100644 index 0000000..fa102b5 --- /dev/null +++ b/cmdline/apt-extracttemplates.cc @@ -0,0 +1,397 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: apt-extracttemplates.cc,v 1.15 2003/07/26 00:00:11 mdz Exp $ +/* ###################################################################### + + APT Extract Templates - Program to extract debconf config and template + files + + This is a simple program to extract config and template information + from Debian packages. It can be used to speed up the preconfiguration + process for debconf-enabled packages + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include "apt-extracttemplates.h" + /*}}}*/ + +using namespace std; + +#define TMPDIR "/tmp" + +pkgCache *DebFile::Cache = 0; + +// DebFile::DebFile - Construct the DebFile object /*{{{*/ +// --------------------------------------------------------------------- +/* */ +DebFile::DebFile(const char *debfile) + : File(debfile, FileFd::ReadOnly), Control(0), DepOp(0), + PreDepOp(0), Config(0), Template(0), Which(None) +{ +} + /*}}}*/ +// DebFile::~DebFile - Destruct the DebFile object /*{{{*/ +// --------------------------------------------------------------------- +/* */ +DebFile::~DebFile() +{ + delete [] Control; + delete [] Config; + delete [] Template; +} + /*}}}*/ +// DebFile::GetInstalledVer - Find out the installed version of a pkg /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string DebFile::GetInstalledVer(const string &package) +{ + pkgCache::PkgIterator Pkg = Cache->FindPkg(package); + if (Pkg.end() == false) + { + pkgCache::VerIterator V = Pkg.CurrentVer(); + if (V.end() == false) + { + return V.VerStr(); + } + } + + return string(); +} + /*}}}*/ +// DebFile::Go - Start extracting a debian package /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool DebFile::Go() +{ + ARArchive AR(File); + if (_error->PendingError() == true) + return false; + + const ARArchive::Member *Member = AR.FindMember("control.tar.gz"); + if (Member == 0) + return _error->Error(_("%s not a valid DEB package."),File.Name().c_str()); + + if (File.Seek(Member->Start) == false) + return false; + ExtractTar Tar(File, Member->Size,"gzip"); + return Tar.Go(*this); +} + /*}}}*/ +// DebFile::DoItem examine element in package and mark /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool DebFile::DoItem(Item &I, int &Fd) +{ + if (strcmp(I.Name, "control") == 0) + { + delete [] Control; + Control = new char[I.Size+1]; + Control[I.Size] = 0; + Which = IsControl; + ControlLen = I.Size; + // make it call the Process method below. this is so evil + Fd = -2; + } + else if (strcmp(I.Name, "config") == 0) + { + delete [] Config; + Config = new char[I.Size+1]; + Config[I.Size] = 0; + Which = IsConfig; + Fd = -2; + } + else if (strcmp(I.Name, "templates") == 0) + { + delete [] Template; + Template = new char[I.Size+1]; + Template[I.Size] = 0; + Which = IsTemplate; + Fd = -2; + } + else + { + // Ignore it + Fd = -1; + } + return true; +} + /*}}}*/ +// DebFile::Process examine element in package and copy /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool DebFile::Process(Item &I, const unsigned char *data, + unsigned long size, unsigned long pos) +{ + switch (Which) + { + case IsControl: + memcpy(Control + pos, data, size); + break; + case IsConfig: + memcpy(Config + pos, data, size); + break; + case IsTemplate: + memcpy(Template + pos, data, size); + break; + default: /* throw it away */ ; + } + return true; +} + /*}}}*/ +// DebFile::ParseInfo - Parse control file for dependency info /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool DebFile::ParseInfo() +{ + if (Control == NULL) return false; + + pkgTagSection Section; + Section.Scan(Control, ControlLen); + + Package = Section.FindS("Package"); + Version = GetInstalledVer(Package); + + const char *Start, *Stop; + if (Section.Find("Depends", Start, Stop) == true) + { + while (1) + { + string P, V; + unsigned int Op; + Start = debListParser::ParseDepends(Start, Stop, P, V, Op); + if (Start == 0) return false; + if (P == "debconf") + { + DepVer = V; + DepOp = Op; + break; + } + if (Start == Stop) break; + } + } + + if (Section.Find("Pre-Depends", Start, Stop) == true) + { + while (1) + { + string P, V; + unsigned int Op; + Start = debListParser::ParseDepends(Start, Stop, P, V, Op); + if (Start == 0) return false; + if (P == "debconf") + { + PreDepVer = V; + PreDepOp = Op; + break; + } + if (Start == Stop) break; + } + } + + return true; +} + /*}}}*/ +// ShowHelp - show a short help text /*{{{*/ +// --------------------------------------------------------------------- +/* */ +int ShowHelp(void) +{ + ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION, + COMMON_OS,COMMON_CPU,__DATE__,__TIME__); + + if (_config->FindB("version") == true) + return 0; + + cout << + _("Usage: apt-extracttemplates file1 [file2 ...]\n" + "\n" + "apt-extracttemplates is a tool to extract config and template info\n" + "from debian packages\n" + "\n" + "Options:\n" + " -h This help text\n" + " -t Set the temp dir\n" + " -c=? Read this configuration file\n" + " -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"); + return 0; +} + /*}}}*/ +// WriteFile - write the contents of the passed string to a file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string WriteFile(const char *package, const char *prefix, const char *data) +{ + char fn[512]; + static int i; + char *tempdir = NULL; + + tempdir = getenv("TMPDIR"); + if (tempdir == NULL) + tempdir = TMPDIR; + + snprintf(fn, sizeof(fn), "%s/%s.%s.%u%d", + _config->Find("APT::ExtractTemplates::TempDir", tempdir).c_str(), + package, prefix, getpid(), i++); + FileFd f; + if (data == NULL) + data = ""; + + if (!f.Open(fn, FileFd::WriteTemp, 0600)) + { + _error->Errno("ofstream::ofstream",_("Unable to write to %s"),fn); + return string(); + } + + f.Write(data, strlen(data)); + f.Close(); + return fn; +} + /*}}}*/ +// WriteConfig - write out the config data from a debian package file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void WriteConfig(const DebFile &file) +{ + string templatefile = WriteFile(file.Package.c_str(), "template", file.Template); + string configscript = WriteFile(file.Package.c_str(), "config", file.Config); + + if (templatefile.empty() == true || configscript.empty() == true) + return; + cout << file.Package << " " << file.Version << " " + << templatefile << " " << configscript << endl; +} + /*}}}*/ +// InitCache - initialize the package cache /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool Go(CommandLine &CmdL) +{ + // Initialize the apt cache + MMap *Map = 0; + pkgSourceList List; + List.ReadMainList(); + OpProgress Prog; + pkgMakeStatusCache(List,Prog,&Map,true); + if (Map == 0) + return false; + DebFile::Cache = new pkgCache(Map); + if (_error->PendingError() == true) + return false; + + // Find out what version of debconf is currently installed + string debconfver = DebFile::GetInstalledVer("debconf"); + if (debconfver.empty() == true) + return _error->Error( _("Cannot get debconf version. Is debconf installed?")); + + // Process each package passsed in + for (unsigned int I = 0; I != CmdL.FileSize(); I++) + { + // Will pick up the errors later.. + DebFile file(CmdL.FileList[I]); + if (file.Go() == false) + { + _error->Error("Prior errors apply to %s",CmdL.FileList[I]); + continue; + } + + // Does the package have templates? + if (file.Template != 0 && file.ParseInfo() == true) + { + // Check to make sure debconf dependencies are + // satisfied + // cout << "Check " << file.DepVer << ',' << debconfver << endl; + if (file.DepVer != "" && + DebFile::Cache->VS->CheckDep(debconfver.c_str(), + file.DepOp,file.DepVer.c_str() + ) == false) + continue; + if (file.PreDepVer != "" && + DebFile::Cache->VS->CheckDep(debconfver.c_str(), + file.PreDepOp,file.PreDepVer.c_str() + ) == false) + continue; + + WriteConfig(file); + } + } + + + delete Map; + delete DebFile::Cache; + + return !_error->PendingError(); +} + /*}}}*/ + +int main_(int argc,const char *argv[]); +int main(int argc,const char *argv[]) { + _exit(main_(argc, argv)); +} +int main_(int argc,const char *argv[]) +{ + CommandLine::Args Args[] = { + {'h',"help","help",0}, + {'v',"version","version",0}, + {'t',"tempdir","APT::ExtractTemplates::TempDir",CommandLine::HasArg}, + {'c',"config-file",0,CommandLine::ConfigFile}, + {'o',"option",0,CommandLine::ArbItem}, + {0,0,0,0}}; + + // Set up gettext support + setlocale(LC_ALL,""); + //textdomain(PACKAGE); + + // Parse the command line and initialize the package library + CommandLine CmdL(Args,_config); + if (pkgInitConfig(*_config) == false || + CmdL.Parse(argc,argv) == false || + pkgInitSystem(*_config,_system) == false) + { + _error->DumpErrors(); + return 100; + } + + // See if the help should be shown + if (_config->FindB("help") == true || + CmdL.FileSize() == 0) + return ShowHelp(); + + Go(CmdL); + + // Print any errors or warnings found during operation + if (_error->empty() == false) + { + // This goes to stderr.. + bool Errors = _error->PendingError(); + _error->DumpErrors(); + return Errors == true?100:0; + } + + return 0; +} diff --git a/cmdline/apt-extracttemplates.h b/cmdline/apt-extracttemplates.h new file mode 100644 index 0000000..d0f90d3 --- /dev/null +++ b/cmdline/apt-extracttemplates.h @@ -0,0 +1,48 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: apt-extracttemplates.h,v 1.2 2001/02/27 04:26:03 jgg Exp $ +/* ###################################################################### + + apt-extracttemplate - tool to extract template and config data + + ##################################################################### */ + /*}}}*/ +#ifndef _APTEXTRACTTEMPLATE_H_ +#define _APTEXTRACTTEMPLATE_H_ + +#include +#include +#include + +class DebFile : public pkgDirStream +{ + FileFd File; + unsigned long Size; + char *Control; + unsigned long ControlLen; + +public: + DebFile(const char *FileName); + ~DebFile(); + bool DoItem(Item &I, int &fd); + bool Process(pkgDirStream::Item &I, const unsigned char *data, + unsigned long size, unsigned long pos); + + bool Go(); + bool ParseInfo(); + + static string GetInstalledVer(const string &package); + + string Package; + string Version; + string DepVer, PreDepVer; + unsigned int DepOp, PreDepOp; + + char *Config; + char *Template; + + static pkgCache *Cache; + enum { None, IsControl, IsConfig, IsTemplate } Which; +}; + +#endif diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc new file mode 100644 index 0000000..8628dbc --- /dev/null +++ b/cmdline/apt-get.cc @@ -0,0 +1,2624 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: apt-get.cc,v 1.156 2004/08/28 01:05:16 mdz Exp $ +/* ###################################################################### + + apt-get - Cover for dpkg + + This is an allout cover for dpkg implementing a safer front end. It is + based largely on libapt-pkg. + + The syntax is different, + apt-get [opt] command [things] + Where command is: + update - Resyncronize the package files from their sources + upgrade - Smart-Download the newest versions of all packages + dselect-upgrade - Follows dselect's changes to the Status: field + and installes new and removes old packages + dist-upgrade - Powerfull upgrader designed to handle the issues with + a new distribution. + install - Download and install a given package (by name, not by .deb) + check - Update the package cache and check for broken packages + clean - Erase the .debs downloaded to /var/cache/apt/archives and + the partial dir too + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "acqprogress.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + /*}}}*/ + +#define _trace() printf("_trace(%s:%d)\n", __FILE__, __LINE__) + +using namespace std; + +ostream c0out(0); +ostream c1out(0); +ostream c2out(0); +unsigned int ScreenWidth = 80 - 1; /* - 1 for the cursor */ + +// class CacheFile - Cover class for some dependency cache functions /*{{{*/ +// --------------------------------------------------------------------- +/* */ +class CacheFile : public pkgCacheFile +{ + static pkgCache *SortCache; + static int NameComp(const void *a,const void *b); + + public: + pkgCache::Package **List; + + void Sort(); + bool CheckDeps(bool AllowBroken = false); + bool BuildCaches(bool WithLock = true) + { + OpTextProgress Prog(*_config); + if (pkgCacheFile::BuildCaches(Prog,WithLock) == false) + return false; + return true; + } + bool Open(bool WithLock = true) + { + OpTextProgress Prog(*_config); + if (pkgCacheFile::Open(Prog,WithLock) == false) + return false; + Sort(); + + return true; + }; + bool OpenForInstall() + { + if (_config->FindB("APT::Get::Print-URIs") == true) + return Open(false); + else + return Open(true); + } + CacheFile() : List(0) {}; +}; + /*}}}*/ + +// YnPrompt - Yes No Prompt. /*{{{*/ +// --------------------------------------------------------------------- +/* Returns true on a Yes.*/ +bool YnPrompt(bool Default=true) +{ + if (_config->FindB("APT::Get::Assume-Yes",false) == true) + { + c1out << _("Y") << endl; + return true; + } + + char response[1024] = ""; + cin.getline(response, sizeof(response)); + + if (!cin) + return false; + + if (strlen(response) == 0) + return Default; + + regex_t Pattern; + int Res; + + Res = regcomp(&Pattern, nl_langinfo(YESEXPR), + REG_EXTENDED|REG_ICASE|REG_NOSUB); + + if (Res != 0) { + char Error[300]; + regerror(Res,&Pattern,Error,sizeof(Error)); + return _error->Error(_("Regex compilation error - %s"),Error); + } + + Res = regexec(&Pattern, response, 0, NULL, 0); + if (Res == 0) + return true; + return false; +} + /*}}}*/ +// AnalPrompt - Annoying Yes No Prompt. /*{{{*/ +// --------------------------------------------------------------------- +/* Returns true on a Yes.*/ +bool AnalPrompt(const char *Text) +{ + char Buf[1024]; + cin.getline(Buf,sizeof(Buf)); + if (strcmp(Buf,Text) == 0) + return true; + return false; +} + /*}}}*/ +// ShowList - Show a list /*{{{*/ +// --------------------------------------------------------------------- +/* This prints out a string of space separated words with a title and + a two space indent line wraped to the current screen width. */ +bool ShowList(ostream &out,string Title,string List,string VersionsList) +{ + if (List.empty() == true) + return true; + // trim trailing space + int NonSpace = List.find_last_not_of(' '); + if (NonSpace != -1) + { + List = List.erase(NonSpace + 1); + if (List.empty() == true) + return true; + } + + // Acount for the leading space + int ScreenWidth = ::ScreenWidth - 3; + + out << Title << endl; + string::size_type Start = 0; + string::size_type VersionsStart = 0; + while (Start < List.size()) + { + if(_config->FindB("APT::Get::Show-Versions",false) == true && + VersionsList.size() > 0) { + string::size_type End; + string::size_type VersionsEnd; + + End = List.find(' ',Start); + VersionsEnd = VersionsList.find('\n', VersionsStart); + + out << " " << string(List,Start,End - Start) << " (" << + string(VersionsList,VersionsStart,VersionsEnd - VersionsStart) << + ")" << endl; + + if (End == string::npos || End < Start) + End = Start + ScreenWidth; + + Start = End + 1; + VersionsStart = VersionsEnd + 1; + } else { + string::size_type End; + + if (Start + ScreenWidth >= List.size()) + End = List.size(); + else + End = List.rfind(' ',Start+ScreenWidth); + + if (End == string::npos || End < Start) + End = Start + ScreenWidth; + out << " " << string(List,Start,End - Start) << endl; + Start = End + 1; + } + } + + return false; +} + /*}}}*/ +// ShowBroken - Debugging aide /*{{{*/ +// --------------------------------------------------------------------- +/* This prints out the names of all the packages that are broken along + with the name of each each broken dependency and a quite version + description. + + The output looks like: + The following packages have unmet dependencies: + exim: Depends: libc6 (>= 2.1.94) but 2.1.3-10 is to be installed + Depends: libldap2 (>= 2.0.2-2) but it is not going to be installed + Depends: libsasl7 but it is not going to be installed + */ +void ShowBroken(ostream &out,CacheFile &Cache,bool Now) +{ + out << _("The following packages have unmet dependencies:") << endl; + for (unsigned J = 0; J < Cache->Head().PackageCount; J++) + { + pkgCache::PkgIterator I(Cache,Cache.List[J]); + + if (Now == true) + { + if (Cache[I].NowBroken() == false) + continue; + } + else + { + if (Cache[I].InstBroken() == false) + continue; + } + + // Print out each package and the failed dependencies + out <<" " << I.Name() << ":"; + unsigned Indent = strlen(I.Name()) + 3; + bool First = true; + pkgCache::VerIterator Ver; + + if (Now == true) + Ver = I.CurrentVer(); + else + Ver = Cache[I].InstVerIter(Cache); + + if (Ver.end() == true) + { + out << endl; + continue; + } + + for (pkgCache::DepIterator D = Ver.DependsList(); D.end() == false;) + { + // Compute a single dependency element (glob or) + pkgCache::DepIterator Start; + pkgCache::DepIterator End; + D.GlobOr(Start,End); // advances D + + if (Cache->IsImportantDep(End) == false) + continue; + + if (Now == true) + { + if ((Cache[End] & pkgDepCache::DepGNow) == pkgDepCache::DepGNow) + continue; + } + else + { + if ((Cache[End] & pkgDepCache::DepGInstall) == pkgDepCache::DepGInstall) + continue; + } + + bool FirstOr = true; + while (1) + { + if (First == false) + for (unsigned J = 0; J != Indent; J++) + out << ' '; + First = false; + + if (FirstOr == false) + { + for (unsigned J = 0; J != strlen(End.DepType()) + 3; J++) + out << ' '; + } + else + out << ' ' << End.DepType() << ": "; + FirstOr = false; + + out << Start.TargetPkg().Name(); + + // Show a quick summary of the version requirements + if (Start.TargetVer() != 0) + out << " (" << Start.CompType() << " " << Start.TargetVer() << ")"; + + /* Show a summary of the target package if possible. In the case + of virtual packages we show nothing */ + pkgCache::PkgIterator Targ = Start.TargetPkg(); + if (Targ->ProvidesList == 0) + { + out << ' '; + pkgCache::VerIterator Ver = Cache[Targ].InstVerIter(Cache); + if (Now == true) + Ver = Targ.CurrentVer(); + + if (Ver.end() == false) + { + if (Now == true) + ioprintf(out,_("but %s is installed"),Ver.VerStr()); + else + ioprintf(out,_("but %s is to be installed"),Ver.VerStr()); + } + else + { + if (Cache[Targ].CandidateVerIter(Cache).end() == true) + { + if (Targ->ProvidesList == 0) + out << _("but it is not installable"); + else + out << _("but it is a virtual package"); + } + else + out << (Now?_("but it is not installed"):_("but it is not going to be installed")); + } + } + + if (Start != End) + out << _(" or"); + out << endl; + + if (Start == End) + break; + Start++; + } + } + } +} + /*}}}*/ +// ShowNew - Show packages to newly install /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void ShowNew(ostream &out,CacheFile &Cache) +{ + /* Print out a list of packages that are going to be installed extra + to what the user asked */ + string List; + string VersionsList; + for (unsigned J = 0; J < Cache->Head().PackageCount; J++) + { + pkgCache::PkgIterator I(Cache,Cache.List[J]); + if (Cache[I].NewInstall() == true) { + List += string(I.Name()) + " "; + VersionsList += string(Cache[I].CandVersion) + "\n"; + } + } + + ShowList(out,_("The following NEW packages will be installed:"),List,VersionsList); +} + /*}}}*/ +// ShowDel - Show packages to delete /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void ShowDel(ostream &out,CacheFile &Cache) +{ + /* Print out a list of packages that are going to be removed extra + to what the user asked */ + string List; + string VersionsList; + for (unsigned J = 0; J < Cache->Head().PackageCount; J++) + { + pkgCache::PkgIterator I(Cache,Cache.List[J]); + if (Cache[I].Delete() == true) + { + if ((Cache[I].iFlags & pkgDepCache::Purge) == pkgDepCache::Purge) + List += string(I.Name()) + "* "; + else + List += string(I.Name()) + " "; + + VersionsList += string(Cache[I].CandVersion)+ "\n"; + } + } + + ShowList(out,_("The following packages will be REMOVED:"),List,VersionsList); +} + /*}}}*/ +// ShowKept - Show kept packages /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void ShowKept(ostream &out,CacheFile &Cache) +{ + string List; + string VersionsList; + for (unsigned J = 0; J < Cache->Head().PackageCount; J++) + { + pkgCache::PkgIterator I(Cache,Cache.List[J]); + + // Not interesting + if (Cache[I].Upgrade() == true || Cache[I].Upgradable() == false || + I->CurrentVer == 0 || Cache[I].Delete() == true) + continue; + + List += string(I.Name()) + " "; + VersionsList += string(Cache[I].CurVersion) + " => " + Cache[I].CandVersion + "\n"; + } + ShowList(out,_("The following packages have been kept back:"),List,VersionsList); +} + /*}}}*/ +// ShowUpgraded - Show upgraded packages /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void ShowUpgraded(ostream &out,CacheFile &Cache) +{ + string List; + string VersionsList; + for (unsigned J = 0; J < Cache->Head().PackageCount; J++) + { + pkgCache::PkgIterator I(Cache,Cache.List[J]); + + // Not interesting + if (Cache[I].Upgrade() == false || Cache[I].NewInstall() == true) + continue; + + List += string(I.Name()) + " "; + VersionsList += string(Cache[I].CurVersion) + " => " + Cache[I].CandVersion + "\n"; + } + ShowList(out,_("The following packages will be upgraded:"),List,VersionsList); +} + /*}}}*/ +// ShowDowngraded - Show downgraded packages /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool ShowDowngraded(ostream &out,CacheFile &Cache) +{ + string List; + string VersionsList; + for (unsigned J = 0; J < Cache->Head().PackageCount; J++) + { + pkgCache::PkgIterator I(Cache,Cache.List[J]); + + // Not interesting + if (Cache[I].Downgrade() == false || Cache[I].NewInstall() == true) + continue; + + List += string(I.Name()) + " "; + VersionsList += string(Cache[I].CurVersion) + " => " + Cache[I].CandVersion + "\n"; + } + return ShowList(out,_("The following packages will be DOWNGRADED:"),List,VersionsList); +} + /*}}}*/ +// ShowHold - Show held but changed packages /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool ShowHold(ostream &out,CacheFile &Cache) +{ + string List; + string VersionsList; + for (unsigned J = 0; J < Cache->Head().PackageCount; J++) + { + pkgCache::PkgIterator I(Cache,Cache.List[J]); + if (Cache[I].InstallVer != (pkgCache::Version *)I.CurrentVer() && + I->SelectedState == pkgCache::State::Hold) { + List += string(I.Name()) + " "; + VersionsList += string(Cache[I].CurVersion) + " => " + Cache[I].CandVersion + "\n"; + } + } + + return ShowList(out,_("The following held packages will be changed:"),List,VersionsList); +} + /*}}}*/ +// ShowEssential - Show an essential package warning /*{{{*/ +// --------------------------------------------------------------------- +/* This prints out a warning message that is not to be ignored. It shows + all essential packages and their dependents that are to be removed. + It is insanely risky to remove the dependents of an essential package! */ +bool ShowEssential(ostream &out,CacheFile &Cache) +{ + string List; + string VersionsList; + bool *Added = new bool[Cache->Head().PackageCount]; + for (unsigned int I = 0; I != Cache->Head().PackageCount; I++) + Added[I] = false; + + for (unsigned J = 0; J < Cache->Head().PackageCount; J++) + { + pkgCache::PkgIterator I(Cache,Cache.List[J]); + if ((I->Flags & pkgCache::Flag::Essential) != pkgCache::Flag::Essential && + (I->Flags & pkgCache::Flag::Important) != pkgCache::Flag::Important) + continue; + + // The essential package is being removed + if (Cache[I].Delete() == true) + { + if (Added[I->ID] == false) + { + Added[I->ID] = true; + List += string(I.Name()) + " "; + //VersionsList += string(Cache[I].CurVersion) + "\n"; ??? + } + } + + if (I->CurrentVer == 0) + continue; + + // Print out any essential package depenendents that are to be removed + for (pkgCache::DepIterator D = I.CurrentVer().DependsList(); D.end() == false; D++) + { + // Skip everything but depends + if (D->Type != pkgCache::Dep::PreDepends && + D->Type != pkgCache::Dep::Depends) + continue; + + pkgCache::PkgIterator P = D.SmartTargetPkg(); + if (Cache[P].Delete() == true) + { + if (Added[P->ID] == true) + continue; + Added[P->ID] = true; + + char S[300]; + snprintf(S,sizeof(S),_("%s (due to %s) "),P.Name(),I.Name()); + List += S; + //VersionsList += "\n"; ??? + } + } + } + + delete [] Added; + return ShowList(out,_("WARNING: The following essential packages will be removed.\n" + "This should NOT be done unless you know exactly what you are doing!"),List,VersionsList); +} + + /*}}}*/ +// Stats - Show some statistics /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void Stats(ostream &out,pkgDepCache &Dep) +{ + unsigned long Upgrade = 0; + unsigned long Downgrade = 0; + unsigned long Install = 0; + unsigned long ReInstall = 0; + for (pkgCache::PkgIterator I = Dep.PkgBegin(); I.end() == false; I++) + { + if (Dep[I].NewInstall() == true) + Install++; + else + { + if (Dep[I].Upgrade() == true) + Upgrade++; + else + if (Dep[I].Downgrade() == true) + Downgrade++; + } + + if (Dep[I].Delete() == false && (Dep[I].iFlags & pkgDepCache::ReInstall) == pkgDepCache::ReInstall) + ReInstall++; + } + + ioprintf(out,_("%lu upgraded, %lu newly installed, "), + Upgrade,Install); + + if (ReInstall != 0) + ioprintf(out,_("%lu reinstalled, "),ReInstall); + if (Downgrade != 0) + ioprintf(out,_("%lu downgraded, "),Downgrade); + + ioprintf(out,_("%lu to remove and %lu not upgraded.\n"), + Dep.DelCount(),Dep.KeepCount()); + + if (Dep.BadCount() != 0) + ioprintf(out,_("%lu not fully installed or removed.\n"), + Dep.BadCount()); +} + /*}}}*/ + +// CacheFile::NameComp - QSort compare by name /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgCache *CacheFile::SortCache = 0; +int CacheFile::NameComp(const void *a,const void *b) +{ + if (*(pkgCache::Package **)a == 0 || *(pkgCache::Package **)b == 0) + return *(pkgCache::Package **)a - *(pkgCache::Package **)b; + + const pkgCache::Package &A = **(pkgCache::Package **)a; + const pkgCache::Package &B = **(pkgCache::Package **)b; + + return strcmp(SortCache->StrP + A.Name,SortCache->StrP + B.Name); +} + /*}}}*/ +// CacheFile::Sort - Sort by name /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void CacheFile::Sort() +{ + delete [] List; + List = new pkgCache::Package *[Cache->Head().PackageCount]; + memset(List,0,sizeof(*List)*Cache->Head().PackageCount); + pkgCache::PkgIterator I = Cache->PkgBegin(); + for (;I.end() != true; I++) + List[I->ID] = I; + + SortCache = *this; + qsort(List,Cache->Head().PackageCount,sizeof(*List),NameComp); +} + /*}}}*/ +// CacheFile::CheckDeps - Open the cache file /*{{{*/ +// --------------------------------------------------------------------- +/* This routine generates the caches and then opens the dependency cache + and verifies that the system is OK. */ +bool CacheFile::CheckDeps(bool AllowBroken) +{ + if (_error->PendingError() == true) + return false; + + // Check that the system is OK + if (DCache->DelCount() != 0 || DCache->InstCount() != 0) + return _error->Error("Internal error, non-zero counts"); + + // Apply corrections for half-installed packages + if (pkgApplyStatus(*DCache) == false) + return false; + + // Nothing is broken + if (DCache->BrokenCount() == 0 || AllowBroken == true) + return true; + + // Attempt to fix broken things + if (_config->FindB("APT::Get::Fix-Broken",false) == true) + { + c1out << _("Correcting dependencies...") << flush; + if (pkgFixBroken(*DCache) == false || DCache->BrokenCount() != 0) + { + c1out << _(" failed.") << endl; + ShowBroken(c1out,*this,true); + + return _error->Error(_("Unable to correct dependencies")); + } + if (pkgMinimizeUpgrade(*DCache) == false) + return _error->Error(_("Unable to minimize the upgrade set")); + + c1out << _(" Done") << endl; + } + else + { + c1out << _("You might want to run `apt-get -f install' to correct these.") << endl; + ShowBroken(c1out,*this,true); + + return _error->Error(_("Unmet dependencies. Try using -f.")); + } + + return true; +} + +static bool CheckAuth(pkgAcquire& Fetcher) +{ + string UntrustedList; + for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I < Fetcher.ItemsEnd(); ++I) + { + if (!(*I)->IsTrusted()) + { + UntrustedList += string((*I)->ShortDesc()) + " "; + } + } + + if (UntrustedList == "") + { + return true; + } + + ShowList(c2out,_("WARNING: The following packages cannot be authenticated!"),UntrustedList,""); + + if (_config->FindB("APT::Get::AllowUnauthenticated",false) == true) + { + c2out << _("Authentication warning overridden.\n"); + return true; + } + + if (_config->FindI("quiet",0) < 2 + && _config->FindB("APT::Get::Assume-Yes",false) == false) + { + c2out << _("Install these packages without verification [y/N]? ") << flush; + if (!YnPrompt(false)) + return _error->Error(_("Some packages could not be authenticated")); + + return true; + } + else if (_config->FindB("APT::Get::Force-Yes",false) == true) + { + return true; + } + + return _error->Error(_("There are problems and -y was used without --force-yes")); +} + + + /*}}}*/ + +// InstallPackages - Actually download and install the packages /*{{{*/ +// --------------------------------------------------------------------- +/* This displays the informative messages describing what is going to + happen and then calls the download routines */ +bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask = true, + bool Safety = true) +{ + if (_config->FindB("APT::Get::Purge",false) == true) + { + pkgCache::PkgIterator I = Cache->PkgBegin(); + for (; I.end() == false; I++) + { + if (I.Purge() == false && Cache[I].Mode == pkgDepCache::ModeDelete) + Cache->MarkDelete(I,true); + } + } + + bool Fail = false; + bool Essential = false; + + // Show all the various warning indicators + ShowDel(c1out,Cache); + ShowNew(c1out,Cache); + if (ShwKept == true) + ShowKept(c1out,Cache); + Fail |= !ShowHold(c1out,Cache); + if (_config->FindB("APT::Get::Show-Upgraded",true) == true) + ShowUpgraded(c1out,Cache); + Fail |= !ShowDowngraded(c1out,Cache); + if (_config->FindB("APT::Get::Download-Only",false) == false) + Essential = !ShowEssential(c1out,Cache); + Fail |= Essential; + Stats(c1out,Cache); + + // Sanity check + if (Cache->BrokenCount() != 0) + { + ShowBroken(c1out,Cache,false); + return _error->Error(_("Internal error, InstallPackages was called with broken packages!")); + } + + if (Cache->DelCount() == 0 && Cache->InstCount() == 0 && + Cache->BadCount() == 0) + return true; + + // No remove flag + if (Cache->DelCount() != 0 && _config->FindB("APT::Get::Remove",true) == false) + return _error->Error(_("Packages need to be removed but remove is disabled.")); + + // Run the simulator .. + if (_config->FindB("APT::Get::Simulate") == true) + { + pkgSimulate PM(Cache); + int status_fd = _config->FindI("APT::Status-Fd",-1); + pkgPackageManager::OrderResult Res = PM.DoInstall(status_fd); + if (Res == pkgPackageManager::Failed) + return false; + if (Res != pkgPackageManager::Completed) + return _error->Error(_("Internal error, Ordering didn't finish")); + return true; + } + + // Create the text record parser + pkgRecords Recs(Cache); + if (_error->PendingError() == true) + return false; + + // Lock the archive directory + FileFd Lock; + if (_config->FindB("Debug::NoLocking",false) == false && + _config->FindB("APT::Get::Print-URIs") == false) + { + Lock.Fd(GetLock(_config->FindDir("Dir::Cache::Archives") + "lock")); + if (_error->PendingError() == true) + return _error->Error(_("Unable to lock the download directory")); + } + + // Create the download object + AcqTextStatus Stat(ScreenWidth,_config->FindI("quiet",0)); + pkgAcquire Fetcher(&Stat); + + // Read the source list + pkgSourceList List; + if (List.ReadMainList() == false) + return _error->Error(_("The list of sources could not be read.")); + + // Create the package manager and prepare to download + SPtr PM= _system->CreatePM(Cache); + if (PM->GetArchives(&Fetcher,&List,&Recs) == false || + _error->PendingError() == true) + return false; + + // Display statistics + double FetchBytes = Fetcher.FetchNeeded(); + double FetchPBytes = Fetcher.PartialPresent(); + double DebBytes = Fetcher.TotalNeeded(); + if (DebBytes != Cache->DebSize()) + { + c0out << DebBytes << ',' << Cache->DebSize() << endl; + c0out << _("How odd.. The sizes didn't match, email apt@packages.debian.org") << endl; + } + + // Number of bytes + if (DebBytes != FetchBytes) + ioprintf(c1out,_("Need to get %sB/%sB of archives.\n"), + SizeToStr(FetchBytes).c_str(),SizeToStr(DebBytes).c_str()); + else + ioprintf(c1out,_("Need to get %sB of archives.\n"), + SizeToStr(DebBytes).c_str()); + + // Size delta + if (Cache->UsrSize() >= 0) + ioprintf(c1out,_("After unpacking %sB of additional disk space will be used.\n"), + SizeToStr(Cache->UsrSize()).c_str()); + else + ioprintf(c1out,_("After unpacking %sB disk space will be freed.\n"), + SizeToStr(-1*Cache->UsrSize()).c_str()); + + if (_error->PendingError() == true) + return false; + + /* Check for enough free space, but only if we are actually going to + download */ + if (_config->FindB("APT::Get::Print-URIs") == false && + _config->FindB("APT::Get::Download",true) == true) + { + struct statvfs Buf; + string OutputDir = _config->FindDir("Dir::Cache::Archives"); + if (statvfs(OutputDir.c_str(),&Buf) != 0) + return _error->Errno("statvfs",_("Couldn't determine free space in %s"), + OutputDir.c_str()); + if (unsigned(Buf.f_bfree) < (FetchBytes - FetchPBytes)/Buf.f_bsize) + return _error->Error(_("You don't have enough free space in %s."), + OutputDir.c_str()); + } + + // Fail safe check + if (_config->FindI("quiet",0) >= 2 || + _config->FindB("APT::Get::Assume-Yes",false) == true) + { + if (Fail == true && _config->FindB("APT::Get::Force-Yes",false) == false) + return _error->Error(_("There are problems and -y was used without --force-yes")); + } + + if (Essential == true && Safety == true) + { + if (_config->FindB("APT::Get::Trivial-Only",false) == true) + return _error->Error(_("Trivial Only specified but this is not a trivial operation.")); + + const char *Prompt = _("Yes, do as I say!"); + ioprintf(c2out, + _("You are about to do something potentially harmful.\n" + "To continue type in the phrase '%s'\n" + " ?] "),Prompt); + c2out << flush; + if (AnalPrompt(Prompt) == false) + { + c2out << _("Abort.") << endl; + exit(1); + } + } + else + { + // Prompt to continue + if (Ask == true || Fail == true) + { + if (_config->FindB("APT::Get::Trivial-Only",false) == true) + return _error->Error(_("Trivial Only specified but this is not a trivial operation.")); + + if (_config->FindI("quiet",0) < 2 && + _config->FindB("APT::Get::Assume-Yes",false) == false) + { + c2out << _("Do you want to continue [Y/n]? ") << flush; + + if (YnPrompt() == false) + { + c2out << _("Abort.") << endl; + exit(1); + } + } + } + } + + // Just print out the uris an exit if the --print-uris flag was used + if (_config->FindB("APT::Get::Print-URIs") == true) + { + pkgAcquire::UriIterator I = Fetcher.UriBegin(); + for (; I != Fetcher.UriEnd(); I++) + cout << '\'' << I->URI << "' " << flNotDir(I->Owner->DestFile) << ' ' << + I->Owner->FileSize << ' ' << I->Owner->MD5Sum() << endl; + return true; + } + + if (!CheckAuth(Fetcher)) + return false; + + /* Unlock the dpkg lock if we are not going to be doing an install + after. */ + if (_config->FindB("APT::Get::Download-Only",false) == true) + _system->UnLock(); + + // Run it + while (1) + { + bool Transient = false; + if (_config->FindB("APT::Get::Download",true) == false) + { + for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I < Fetcher.ItemsEnd();) + { + if ((*I)->Local == true) + { + I++; + continue; + } + + // Close the item and check if it was found in cache + (*I)->Finished(); + if ((*I)->Complete == false) + Transient = true; + + // Clear it out of the fetch list + delete *I; + I = Fetcher.ItemsBegin(); + } + } + + if (Fetcher.Run() == pkgAcquire::Failed) + return false; + + // Print out errors + bool Failed = false; + for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); I++) + { + if ((*I)->Status == pkgAcquire::Item::StatDone && + (*I)->Complete == true) + continue; + + if ((*I)->Status == pkgAcquire::Item::StatIdle) + { + Transient = true; + // Failed = true; + continue; + } + + fprintf(stderr,_("Failed to fetch %s %s\n"),(*I)->DescURI().c_str(), + (*I)->ErrorText.c_str()); + Failed = true; + } + + /* If we are in no download mode and missing files and there were + 'failures' then the user must specify -m. Furthermore, there + is no such thing as a transient error in no-download mode! */ + if (Transient == true && + _config->FindB("APT::Get::Download",true) == false) + { + Transient = false; + Failed = true; + } + + if (_config->FindB("APT::Get::Download-Only",false) == true) + { + if (Failed == true && _config->FindB("APT::Get::Fix-Missing",false) == false) + return _error->Error(_("Some files failed to download")); + c1out << _("Download complete and in download only mode") << endl; + return true; + } + + if (Failed == true && _config->FindB("APT::Get::Fix-Missing",false) == false) + { + return _error->Error(_("Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?")); + } + + if (Transient == true && Failed == true) + return _error->Error(_("--fix-missing and media swapping is not currently supported")); + + // Try to deal with missing package files + if (Failed == true && PM->FixMissing() == false) + { + cerr << _("Unable to correct missing packages.") << endl; + return _error->Error(_("Aborting install.")); + } + + _system->UnLock(); + int status_fd = _config->FindI("APT::Status-Fd",-1); + pkgPackageManager::OrderResult Res = PM->DoInstall(status_fd); + if (Res == pkgPackageManager::Failed || _error->PendingError() == true) + return false; + if (Res == pkgPackageManager::Completed) + return true; + + // Reload the fetcher object and loop again for media swapping + Fetcher.Shutdown(); + if (PM->GetArchives(&Fetcher,&List,&Recs) == false) + return false; + + _system->Lock(); + } +} + /*}}}*/ +// TryToInstall - Try to install a single package /*{{{*/ +// --------------------------------------------------------------------- +/* This used to be inlined in DoInstall, but with the advent of regex package + name matching it was split out.. */ +bool TryToInstall(pkgCache::PkgIterator Pkg,pkgDepCache &Cache, + pkgProblemResolver &Fix,bool Remove,bool BrokenFix, + unsigned int &ExpectedInst,bool AllowFail = true) +{ + /* This is a pure virtual package and there is a single available + provides */ + if (Cache[Pkg].CandidateVer == 0 && Pkg->ProvidesList != 0 && + Pkg.ProvidesList()->NextProvides == 0) + { + pkgCache::PkgIterator Tmp = Pkg.ProvidesList().OwnerPkg(); + ioprintf(c1out,_("Note, selecting %s instead of %s\n"), + Tmp.Name(),Pkg.Name()); + Pkg = Tmp; + } + + // Handle the no-upgrade case + if (_config->FindB("APT::Get::upgrade",true) == false && + Pkg->CurrentVer != 0) + { + if (AllowFail == true) + ioprintf(c1out,_("Skipping %s, it is already installed and upgrade is not set.\n"), + Pkg.Name()); + return true; + } + + // Check if there is something at all to install + pkgDepCache::StateCache &State = Cache[Pkg]; + if (Remove == true && Pkg->CurrentVer == 0) + { + Fix.Clear(Pkg); + Fix.Protect(Pkg); + Fix.Remove(Pkg); + + /* We want to continue searching for regex hits, so we return false here + otherwise this is not really an error. */ + if (AllowFail == false) + return false; + + ioprintf(c1out,_("Package %s is not installed, so not removed\n"),Pkg.Name()); + return true; + } + + if (State.CandidateVer == 0 && Remove == false) + { + if (AllowFail == false) + return false; + + if (Pkg->ProvidesList != 0) + { + ioprintf(c1out,_("Package %s is a virtual package provided by:\n"), + Pkg.Name()); + + pkgCache::PrvIterator I = Pkg.ProvidesList(); + for (; I.end() == false; I++) + { + pkgCache::PkgIterator Pkg = I.OwnerPkg(); + + if (Cache[Pkg].CandidateVerIter(Cache) == I.OwnerVer()) + { + if (Cache[Pkg].Install() == true && Cache[Pkg].NewInstall() == false) + c1out << " " << Pkg.Name() << " " << I.OwnerVer().VerStr() << + _(" [Installed]") << endl; + else + c1out << " " << Pkg.Name() << " " << I.OwnerVer().VerStr() << endl; + } + } + c1out << _("You should explicitly select one to install.") << endl; + } + else + { + ioprintf(c1out, + _("Package %s is not available, but is referred to by another package.\n" + "This may mean that the package is missing, has been obsoleted, or\n" + "is only available from another source\n"),Pkg.Name()); + + string List; + string VersionsList; + SPtrArray Seen = new bool[Cache.Head().PackageCount]; + memset(Seen,0,Cache.Head().PackageCount*sizeof(*Seen)); + pkgCache::DepIterator Dep = Pkg.RevDependsList(); + for (; Dep.end() == false; Dep++) + { + if (Dep->Type != pkgCache::Dep::Replaces) + continue; + if (Seen[Dep.ParentPkg()->ID] == true) + continue; + Seen[Dep.ParentPkg()->ID] = true; + List += string(Dep.ParentPkg().Name()) + " "; + //VersionsList += string(Dep.ParentPkg().CurVersion) + "\n"; ??? + } + ShowList(c1out,_("However the following packages replace it:"),List,VersionsList); + } + + _error->Error(_("Package %s has no installation candidate"),Pkg.Name()); + return false; + } + + Fix.Clear(Pkg); + Fix.Protect(Pkg); + if (Remove == true) + { + Fix.Remove(Pkg); + Cache.MarkDelete(Pkg,_config->FindB("APT::Get::Purge",false)); + return true; + } + + // Install it + Cache.MarkInstall(Pkg,false); + if (State.Install() == false) + { + if (_config->FindB("APT::Get::ReInstall",false) == true) + { + if (Pkg->CurrentVer == 0 || Pkg.CurrentVer().Downloadable() == false) + ioprintf(c1out,_("Reinstallation of %s is not possible, it cannot be downloaded.\n"), + Pkg.Name()); + else + Cache.SetReInstall(Pkg,true); + } + else + { + if (AllowFail == true) + ioprintf(c1out,_("%s is already the newest version.\n"), + Pkg.Name()); + } + } + else + ExpectedInst++; + + // Install it with autoinstalling enabled. + if (State.InstBroken() == true && BrokenFix == false) + Cache.MarkInstall(Pkg,true); + return true; +} + /*}}}*/ +// TryToChangeVer - Try to change a candidate version /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool TryToChangeVer(pkgCache::PkgIterator Pkg,pkgDepCache &Cache, + const char *VerTag,bool IsRel) +{ + pkgVersionMatch Match(VerTag,(IsRel == true?pkgVersionMatch::Release : + pkgVersionMatch::Version)); + + pkgCache::VerIterator Ver = Match.Find(Pkg); + + if (Ver.end() == true) + { + if (IsRel == true) + return _error->Error(_("Release '%s' for '%s' was not found"), + VerTag,Pkg.Name()); + return _error->Error(_("Version '%s' for '%s' was not found"), + VerTag,Pkg.Name()); + } + + if (strcmp(VerTag,Ver.VerStr()) != 0) + { + ioprintf(c1out,_("Selected version %s (%s) for %s\n"), + Ver.VerStr(),Ver.RelStr().c_str(),Pkg.Name()); + } + + Cache.SetCandidateVersion(Ver); + return true; +} + /*}}}*/ +// FindSrc - Find a source record /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs, + pkgSrcRecords &SrcRecs,string &Src, + pkgDepCache &Cache) +{ + // We want to pull the version off the package specification.. + string VerTag; + string TmpSrc = Name; + string::size_type Slash = TmpSrc.rfind('='); + + // honor default release + string DefRel = _config->Find("APT::Default-Release"); + pkgCache::PkgIterator Pkg = Cache.FindPkg(TmpSrc); + + if (Slash != string::npos) + { + VerTag = string(TmpSrc.begin() + Slash + 1,TmpSrc.end()); + TmpSrc = string(TmpSrc.begin(),TmpSrc.begin() + Slash); + } + else if(!Pkg.end() && DefRel.empty() == false) + { + // we have a default release, try to locate the pkg. we do it like + // this because GetCandidateVer() will not "downgrade", that means + // "apt-get source -t stable apt" won't work on a unstable system + for (pkgCache::VerIterator Ver = Pkg.VersionList(); Ver.end() == false; + Ver++) + { + for (pkgCache::VerFileIterator VF = Ver.FileList(); VF.end() == false; + VF++) + { + /* If this is the status file, and the current version is not the + version in the status file (ie it is not installed, or somesuch) + then it is not a candidate for installation, ever. This weeds + out bogus entries that may be due to config-file states, or + other. */ + if ((VF.File()->Flags & pkgCache::Flag::NotSource) == + pkgCache::Flag::NotSource && Pkg.CurrentVer() != Ver) + continue; + + //std::cout << VF.File().Archive() << std::endl; + if(VF.File().Archive() && (VF.File().Archive() == DefRel)) + { + VerTag = Ver.VerStr(); + break; + } + } + } + } + + /* Lookup the version of the package we would install if we were to + install a version and determine the source package name, then look + in the archive for a source package of the same name. */ + if (_config->FindB("APT::Get::Only-Source") == false) + { + if (Pkg.end() == false) + { + pkgCache::VerIterator Ver = Cache.GetCandidateVer(Pkg); + if (Ver.end() == false) + { + pkgRecords::Parser &Parse = Recs.Lookup(Ver.FileList()); + Src = Parse.SourcePkg(); + } + } + } + + // No source package name.. + if (Src.empty() == true) + Src = TmpSrc; + + // The best hit + pkgSrcRecords::Parser *Last = 0; + unsigned long Offset = 0; + string Version; + bool IsMatch = false; + + // If we are matching by version then we need exact matches to be happy + if (VerTag.empty() == false) + IsMatch = true; + + /* Iterate over all of the hits, which includes the resulting + binary packages in the search */ + pkgSrcRecords::Parser *Parse; + SrcRecs.Restart(); + while ((Parse = SrcRecs.Find(Src.c_str(),false)) != 0) + { + string Ver = Parse->Version(); + + // Skip name mismatches + if (IsMatch == true && Parse->Package() != Src) + continue; + + if (VerTag.empty() == false) + { + /* Don't want to fall through because we are doing exact version + matching. */ + if (Cache.VS().CmpVersion(VerTag,Ver) != 0) + continue; + + Last = Parse; + Offset = Parse->Offset(); + break; + } + + // Newer version or an exact match + if (Last == 0 || Cache.VS().CmpVersion(Version,Ver) < 0 || + (Parse->Package() == Src && IsMatch == false)) + { + IsMatch = Parse->Package() == Src; + Last = Parse; + Offset = Parse->Offset(); + Version = Ver; + } + } + + if (Last == 0 || Last->Jump(Offset) == false) + return 0; + + return Last; +} + /*}}}*/ + +// DoUpdate - Update the package lists /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool DoUpdate(CommandLine &CmdL) +{ + if (CmdL.FileSize() != 1) + return _error->Error(_("The update command takes no arguments")); + + // Get the source list + pkgSourceList List; + if (List.ReadMainList() == false) + return false; + + // Lock the list directory + FileFd Lock; + if (_config->FindB("Debug::NoLocking",false) == false) + { + Lock.Fd(GetLock(_config->FindDir("Dir::State::Lists") + "lock")); + if (_error->PendingError() == true) + return _error->Error(_("Unable to lock the list directory")); + } + + // Create the download object + AcqTextStatus Stat(ScreenWidth,_config->FindI("quiet",0)); + pkgAcquire Fetcher(&Stat); + + + // Just print out the uris an exit if the --print-uris flag was used + if (_config->FindB("APT::Get::Print-URIs") == true) + { + // Populate it with the source selection and get all Indexes + // (GetAll=true) + if (List.GetIndexes(&Fetcher,true) == false) + return false; + + pkgAcquire::UriIterator I = Fetcher.UriBegin(); + for (; I != Fetcher.UriEnd(); I++) + cout << '\'' << I->URI << "' " << flNotDir(I->Owner->DestFile) << ' ' << + I->Owner->FileSize << ' ' << I->Owner->MD5Sum() << endl; + return true; + } + + // Populate it with the source selection + if (List.GetIndexes(&Fetcher) == false) + return false; + + // Run it + if (Fetcher.Run() == pkgAcquire::Failed) + return false; + + bool Failed = false; + for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); I++) + { + if ((*I)->Status == pkgAcquire::Item::StatDone) + continue; + + (*I)->Finished(); + + fprintf(stderr,_("Failed to fetch %s %s\n"),(*I)->DescURI().c_str(), + (*I)->ErrorText.c_str()); + Failed = true; + } + + // Clean out any old list files + if (!Failed && _config->FindB("APT::Get::List-Cleanup",true) == true) + { + if (Fetcher.Clean(_config->FindDir("Dir::State::lists")) == false || + Fetcher.Clean(_config->FindDir("Dir::State::lists") + "partial/") == false) + return false; + } + + // Prepare the cache. + CacheFile Cache; + if (Cache.BuildCaches() == false) + return false; + + if (Failed == true) + return _error->Error(_("Some index files failed to download, they have been ignored, or old ones used instead.")); + + return true; +} + /*}}}*/ +// DoUpgrade - Upgrade all packages /*{{{*/ +// --------------------------------------------------------------------- +/* Upgrade all packages without installing new packages or erasing old + packages */ +bool DoUpgrade(CommandLine &CmdL) +{ + CacheFile Cache; + if (Cache.OpenForInstall() == false || Cache.CheckDeps() == false) + return false; + + // Do the upgrade + if (pkgAllUpgrade(Cache) == false) + { + ShowBroken(c1out,Cache,false); + return _error->Error(_("Internal error, AllUpgrade broke stuff")); + } + + return InstallPackages(Cache,true); +} + /*}}}*/ +// DoInstall - Install packages from the command line /*{{{*/ +// --------------------------------------------------------------------- +/* Install named packages */ +bool DoInstall(CommandLine &CmdL) +{ + CacheFile Cache; + if (Cache.OpenForInstall() == false || + Cache.CheckDeps(CmdL.FileSize() != 1) == false) + return false; + + // Enter the special broken fixing mode if the user specified arguments + bool BrokenFix = false; + if (Cache->BrokenCount() != 0) + BrokenFix = true; + + unsigned int ExpectedInst = 0; + unsigned int Packages = 0; + pkgProblemResolver Fix(Cache); + + bool DefRemove = false; + if (strcasecmp(CmdL.FileList[0],"remove") == 0) + DefRemove = true; + + for (const char **I = CmdL.FileList + 1; *I != 0; I++) + { + // Duplicate the string + unsigned int Length = strlen(*I); + char S[300]; + if (Length >= sizeof(S)) + continue; + strcpy(S,*I); + + // See if we are removing and special indicators.. + bool Remove = DefRemove; + char *VerTag = 0; + bool VerIsRel = false; + while (Cache->FindPkg(S).end() == true) + { + // Handle an optional end tag indicating what to do + if (Length >= 1 && S[Length - 1] == '-') + { + Remove = true; + S[--Length] = 0; + continue; + } + + if (Length >= 1 && S[Length - 1] == '+') + { + Remove = false; + S[--Length] = 0; + continue; + } + + char *Slash = strchr(S,'='); + if (Slash != 0) + { + VerIsRel = false; + *Slash = 0; + VerTag = Slash + 1; + } + + Slash = strchr(S,'/'); + if (Slash != 0) + { + VerIsRel = true; + *Slash = 0; + VerTag = Slash + 1; + } + + break; + } + + // Locate the package + pkgCache::PkgIterator Pkg = Cache->FindPkg(S); + Packages++; + if (Pkg.end() == true) + { + // Check if the name is a regex + const char *I; + for (I = S; *I != 0; I++) + if (*I == '?' || *I == '*' || *I == '|' || + *I == '[' || *I == '^' || *I == '$') + break; + if (*I == 0) + return _error->Error(_("Couldn't find package %s"),S); + + // Regexs must always be confirmed + ExpectedInst += 1000; + + // Compile the regex pattern + regex_t Pattern; + int Res; + if ((Res = regcomp(&Pattern,S,REG_EXTENDED | REG_ICASE | + REG_NOSUB)) != 0) + { + char Error[300]; + regerror(Res,&Pattern,Error,sizeof(Error)); + return _error->Error(_("Regex compilation error - %s"),Error); + } + + // Run over the matches + bool Hit = false; + for (Pkg = Cache->PkgBegin(); Pkg.end() == false; Pkg++) + { + if (regexec(&Pattern,Pkg.Name(),0,0,0) != 0) + continue; + + ioprintf(c1out,_("Note, selecting %s for regex '%s'\n"), + Pkg.Name(),S); + + if (VerTag != 0) + if (TryToChangeVer(Pkg,Cache,VerTag,VerIsRel) == false) + return false; + + Hit |= TryToInstall(Pkg,Cache,Fix,Remove,BrokenFix, + ExpectedInst,false); + } + regfree(&Pattern); + + if (Hit == false) + return _error->Error(_("Couldn't find package %s"),S); + } + else + { + if (VerTag != 0) + if (TryToChangeVer(Pkg,Cache,VerTag,VerIsRel) == false) + return false; + if (TryToInstall(Pkg,Cache,Fix,Remove,BrokenFix,ExpectedInst) == false) + return false; + } + } + + /* If we are in the Broken fixing mode we do not attempt to fix the + problems. This is if the user invoked install without -f and gave + packages */ + if (BrokenFix == true && Cache->BrokenCount() != 0) + { + c1out << _("You might want to run `apt-get -f install' to correct these:") << endl; + ShowBroken(c1out,Cache,false); + + return _error->Error(_("Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).")); + } + + // Call the scored problem resolver + Fix.InstallProtect(); + if (Fix.Resolve(true) == false) + _error->Discard(); + + // Now we check the state of the packages, + if (Cache->BrokenCount() != 0) + { + c1out << + _("Some packages could not be installed. This may mean that you have\n" + "requested an impossible situation or if you are using the unstable\n" + "distribution that some required packages have not yet been created\n" + "or been moved out of Incoming.") << endl; + if (Packages == 1) + { + c1out << endl; + c1out << + _("Since you only requested a single operation it is extremely likely that\n" + "the package is simply not installable and a bug report against\n" + "that package should be filed.") << endl; + } + + c1out << _("The following information may help to resolve the situation:") << endl; + c1out << endl; + ShowBroken(c1out,Cache,false); + return _error->Error(_("Broken packages")); + } + + /* Print out a list of packages that are going to be installed extra + to what the user asked */ + if (Cache->InstCount() != ExpectedInst) + { + string List; + string VersionsList; + for (unsigned J = 0; J < Cache->Head().PackageCount; J++) + { + pkgCache::PkgIterator I(Cache,Cache.List[J]); + if ((*Cache)[I].Install() == false) + continue; + + const char **J; + for (J = CmdL.FileList + 1; *J != 0; J++) + if (strcmp(*J,I.Name()) == 0) + break; + + if (*J == 0) { + List += string(I.Name()) + " "; + VersionsList += string(Cache[I].CandVersion) + "\n"; + } + } + + ShowList(c1out,_("The following extra packages will be installed:"),List,VersionsList); + } + + /* Print out a list of suggested and recommended packages */ + { + string SuggestsList, RecommendsList, List; + string SuggestsVersions, RecommendsVersions; + for (unsigned J = 0; J < Cache->Head().PackageCount; J++) + { + pkgCache::PkgIterator Pkg(Cache,Cache.List[J]); + + /* Just look at the ones we want to install */ + if ((*Cache)[Pkg].Install() == false) + continue; + + // get the recommends/suggests for the candidate ver + pkgCache::VerIterator CV = (*Cache)[Pkg].CandidateVerIter(*Cache); + for (pkgCache::DepIterator D = CV.DependsList(); D.end() == false; ) + { + pkgCache::DepIterator Start; + pkgCache::DepIterator End; + D.GlobOr(Start,End); // advances D + + // FIXME: we really should display a or-group as a or-group to the user + // the problem is that ShowList is incapable of doing this + string RecommendsOrList,RecommendsOrVersions; + string SuggestsOrList,SuggestsOrVersions; + bool foundInstalledInOrGroup = false; + for(;;) + { + /* Skip if package is installed already, or is about to be */ + string target = string(Start.TargetPkg().Name()) + " "; + + if ((*Start.TargetPkg()).SelectedState == pkgCache::State::Install + || Cache[Start.TargetPkg()].Install()) + { + foundInstalledInOrGroup=true; + break; + } + + /* Skip if we already saw it */ + if (int(SuggestsList.find(target)) != -1 || int(RecommendsList.find(target)) != -1) + { + foundInstalledInOrGroup=true; + break; + } + + // this is a dep on a virtual pkg, check if any package that provides it + // should be installed + if(Start.TargetPkg().ProvidesList() != 0) + { + pkgCache::PrvIterator I = Start.TargetPkg().ProvidesList(); + for (; I.end() == false; I++) + { + pkgCache::PkgIterator Pkg = I.OwnerPkg(); + if (Cache[Pkg].CandidateVerIter(Cache) == I.OwnerVer() && + Pkg.CurrentVer() != 0) + foundInstalledInOrGroup=true; + } + } + + if (Start->Type == pkgCache::Dep::Suggests) + { + SuggestsOrList += target; + SuggestsOrVersions += string(Cache[Start.TargetPkg()].CandVersion) + "\n"; + } + + if (Start->Type == pkgCache::Dep::Recommends) + { + RecommendsOrList += target; + RecommendsOrVersions += string(Cache[Start.TargetPkg()].CandVersion) + "\n"; + } + + if (Start >= End) + break; + Start++; + } + + if(foundInstalledInOrGroup == false) + { + RecommendsList += RecommendsOrList; + RecommendsVersions += RecommendsOrVersions; + SuggestsList += SuggestsOrList; + SuggestsVersions += SuggestsOrVersions; + } + + } + } + + ShowList(c1out,_("Suggested packages:"),SuggestsList,SuggestsVersions); + ShowList(c1out,_("Recommended packages:"),RecommendsList,RecommendsVersions); + + } + + // See if we need to prompt + if (Cache->InstCount() == ExpectedInst && Cache->DelCount() == 0) + return InstallPackages(Cache,false,false); + + return InstallPackages(Cache,false); +} + /*}}}*/ +// DoDistUpgrade - Automatic smart upgrader /*{{{*/ +// --------------------------------------------------------------------- +/* Intelligent upgrader that will install and remove packages at will */ +bool DoDistUpgrade(CommandLine &CmdL) +{ + CacheFile Cache; + if (Cache.OpenForInstall() == false || Cache.CheckDeps() == false) + return false; + + c0out << _("Calculating upgrade... ") << flush; + if (pkgDistUpgrade(*Cache) == false) + { + c0out << _("Failed") << endl; + ShowBroken(c1out,Cache,false); + return false; + } + + c0out << _("Done") << endl; + + return InstallPackages(Cache,true); +} + /*}}}*/ +// DoDSelectUpgrade - Do an upgrade by following dselects selections /*{{{*/ +// --------------------------------------------------------------------- +/* Follows dselect's selections */ +bool DoDSelectUpgrade(CommandLine &CmdL) +{ + CacheFile Cache; + if (Cache.OpenForInstall() == false || Cache.CheckDeps() == false) + return false; + + // Install everything with the install flag set + pkgCache::PkgIterator I = Cache->PkgBegin(); + for (;I.end() != true; I++) + { + /* Install the package only if it is a new install, the autoupgrader + will deal with the rest */ + if (I->SelectedState == pkgCache::State::Install) + Cache->MarkInstall(I,false); + } + + /* Now install their deps too, if we do this above then order of + the status file is significant for | groups */ + for (I = Cache->PkgBegin();I.end() != true; I++) + { + /* Install the package only if it is a new install, the autoupgrader + will deal with the rest */ + if (I->SelectedState == pkgCache::State::Install) + Cache->MarkInstall(I,true); + } + + // Apply erasures now, they override everything else. + for (I = Cache->PkgBegin();I.end() != true; I++) + { + // Remove packages + if (I->SelectedState == pkgCache::State::DeInstall || + I->SelectedState == pkgCache::State::Purge) + Cache->MarkDelete(I,I->SelectedState == pkgCache::State::Purge); + } + + /* Resolve any problems that dselect created, allupgrade cannot handle + such things. We do so quite agressively too.. */ + if (Cache->BrokenCount() != 0) + { + pkgProblemResolver Fix(Cache); + + // Hold back held packages. + if (_config->FindB("APT::Ignore-Hold",false) == false) + { + for (pkgCache::PkgIterator I = Cache->PkgBegin(); I.end() == false; I++) + { + if (I->SelectedState == pkgCache::State::Hold) + { + Fix.Protect(I); + Cache->MarkKeep(I); + } + } + } + + if (Fix.Resolve() == false) + { + ShowBroken(c1out,Cache,false); + return _error->Error(_("Internal error, problem resolver broke stuff")); + } + } + + // Now upgrade everything + if (pkgAllUpgrade(Cache) == false) + { + ShowBroken(c1out,Cache,false); + return _error->Error(_("Internal error, problem resolver broke stuff")); + } + + return InstallPackages(Cache,false); +} + /*}}}*/ +// DoClean - Remove download archives /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool DoClean(CommandLine &CmdL) +{ + if (_config->FindB("APT::Get::Simulate") == true) + { + cout << "Del " << _config->FindDir("Dir::Cache::archives") << "* " << + _config->FindDir("Dir::Cache::archives") << "partial/*" << endl; + return true; + } + + // Lock the archive directory + FileFd Lock; + if (_config->FindB("Debug::NoLocking",false) == false) + { + Lock.Fd(GetLock(_config->FindDir("Dir::Cache::Archives") + "lock")); + if (_error->PendingError() == true) + return _error->Error(_("Unable to lock the download directory")); + } + + pkgAcquire Fetcher; + Fetcher.Clean(_config->FindDir("Dir::Cache::archives")); + Fetcher.Clean(_config->FindDir("Dir::Cache::archives") + "partial/"); + return true; +} + /*}}}*/ +// DoAutoClean - Smartly remove downloaded archives /*{{{*/ +// --------------------------------------------------------------------- +/* This is similar to clean but it only purges things that cannot be + downloaded, that is old versions of cached packages. */ +class LogCleaner : public pkgArchiveCleaner +{ + protected: + virtual void Erase(const char *File,string Pkg,string Ver,struct stat &St) + { + c1out << "Del " << Pkg << " " << Ver << " [" << SizeToStr(St.st_size) << "B]" << endl; + + if (_config->FindB("APT::Get::Simulate") == false) + unlink(File); + }; +}; + +bool DoAutoClean(CommandLine &CmdL) +{ + // Lock the archive directory + FileFd Lock; + if (_config->FindB("Debug::NoLocking",false) == false) + { + Lock.Fd(GetLock(_config->FindDir("Dir::Cache::Archives") + "lock")); + if (_error->PendingError() == true) + return _error->Error(_("Unable to lock the download directory")); + } + + CacheFile Cache; + if (Cache.Open() == false) + return false; + + LogCleaner Cleaner; + + return Cleaner.Go(_config->FindDir("Dir::Cache::archives"),*Cache) && + Cleaner.Go(_config->FindDir("Dir::Cache::archives") + "partial/",*Cache); +} + /*}}}*/ +// DoCheck - Perform the check operation /*{{{*/ +// --------------------------------------------------------------------- +/* Opening automatically checks the system, this command is mostly used + for debugging */ +bool DoCheck(CommandLine &CmdL) +{ + CacheFile Cache; + Cache.Open(); + Cache.CheckDeps(); + + return true; +} + /*}}}*/ +// DoSource - Fetch a source archive /*{{{*/ +// --------------------------------------------------------------------- +/* Fetch souce packages */ +struct DscFile +{ + string Package; + string Version; + string Dsc; +}; + +bool DoSource(CommandLine &CmdL) +{ + CacheFile Cache; + if (Cache.Open(false) == false) + return false; + + if (CmdL.FileSize() <= 1) + return _error->Error(_("Must specify at least one package to fetch source for")); + + // Read the source list + pkgSourceList List; + if (List.ReadMainList() == false) + return _error->Error(_("The list of sources could not be read.")); + + // Create the text record parsers + pkgRecords Recs(Cache); + pkgSrcRecords SrcRecs(List); + if (_error->PendingError() == true) + return false; + + // Create the download object + AcqTextStatus Stat(ScreenWidth,_config->FindI("quiet",0)); + pkgAcquire Fetcher(&Stat); + + DscFile *Dsc = new DscFile[CmdL.FileSize()]; + + // insert all downloaded uris into this set to avoid downloading them + // twice + set queued; + // Load the requestd sources into the fetcher + unsigned J = 0; + for (const char **I = CmdL.FileList + 1; *I != 0; I++, J++) + { + string Src; + pkgSrcRecords::Parser *Last = FindSrc(*I,Recs,SrcRecs,Src,*Cache); + + if (Last == 0) + return _error->Error(_("Unable to find a source package for %s"),Src.c_str()); + + // Back track + vector Lst; + if (Last->Files(Lst) == false) + return false; + + // Load them into the fetcher + for (vector::const_iterator I = Lst.begin(); + I != Lst.end(); I++) + { + // Try to guess what sort of file it is we are getting. + if (I->Type == "dsc") + { + Dsc[J].Package = Last->Package(); + Dsc[J].Version = Last->Version(); + Dsc[J].Dsc = flNotDir(I->Path); + } + + // Diff only mode only fetches .diff files + if (_config->FindB("APT::Get::Diff-Only",false) == true && + I->Type != "diff") + continue; + + // Tar only mode only fetches .tar files + if (_config->FindB("APT::Get::Tar-Only",false) == true && + I->Type != "tar") + continue; + + // don't download the same uri twice (should this be moved to + // the fetcher interface itself?) + if(queued.find(Last->Index().ArchiveURI(I->Path)) != queued.end()) + continue; + queued.insert(Last->Index().ArchiveURI(I->Path)); + + // check if we have a file with that md5 sum already localy + if(!I->MD5Hash.empty() && FileExists(flNotDir(I->Path))) + { + FileFd Fd(flNotDir(I->Path), FileFd::ReadOnly); + MD5Summation sum; + sum.AddFD(Fd.Fd(), Fd.Size()); + Fd.Close(); + if((string)sum.Result() == I->MD5Hash) + { + ioprintf(c1out,_("Skipping already downloaded file '%s'\n"), + flNotDir(I->Path).c_str()); + continue; + } + } + + new pkgAcqFile(&Fetcher,Last->Index().ArchiveURI(I->Path), + I->MD5Hash,I->Size, + Last->Index().SourceInfo(*Last,*I),Src); + } + } + + // Display statistics + double FetchBytes = Fetcher.FetchNeeded(); + double FetchPBytes = Fetcher.PartialPresent(); + double DebBytes = Fetcher.TotalNeeded(); + + // Check for enough free space + struct statvfs Buf; + string OutputDir = "."; + if (statvfs(OutputDir.c_str(),&Buf) != 0) + return _error->Errno("statvfs",_("Couldn't determine free space in %s"), + OutputDir.c_str()); + if (unsigned(Buf.f_bfree) < (FetchBytes - FetchPBytes)/Buf.f_bsize) + return _error->Error(_("You don't have enough free space in %s"), + OutputDir.c_str()); + + // Number of bytes + if (DebBytes != FetchBytes) + ioprintf(c1out,_("Need to get %sB/%sB of source archives.\n"), + SizeToStr(FetchBytes).c_str(),SizeToStr(DebBytes).c_str()); + else + ioprintf(c1out,_("Need to get %sB of source archives.\n"), + SizeToStr(DebBytes).c_str()); + + if (_config->FindB("APT::Get::Simulate",false) == true) + { + for (unsigned I = 0; I != J; I++) + ioprintf(cout,_("Fetch source %s\n"),Dsc[I].Package.c_str()); + return true; + } + + // Just print out the uris an exit if the --print-uris flag was used + if (_config->FindB("APT::Get::Print-URIs") == true) + { + pkgAcquire::UriIterator I = Fetcher.UriBegin(); + for (; I != Fetcher.UriEnd(); I++) + cout << '\'' << I->URI << "' " << flNotDir(I->Owner->DestFile) << ' ' << + I->Owner->FileSize << ' ' << I->Owner->MD5Sum() << endl; + return true; + } + + // Run it + if (Fetcher.Run() == pkgAcquire::Failed) + return false; + + // Print error messages + bool Failed = false; + for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); I++) + { + if ((*I)->Status == pkgAcquire::Item::StatDone && + (*I)->Complete == true) + continue; + + fprintf(stderr,_("Failed to fetch %s %s\n"),(*I)->DescURI().c_str(), + (*I)->ErrorText.c_str()); + Failed = true; + } + if (Failed == true) + return _error->Error(_("Failed to fetch some archives.")); + + if (_config->FindB("APT::Get::Download-only",false) == true) + { + c1out << _("Download complete and in download only mode") << endl; + return true; + } + + // Unpack the sources + pid_t Process = ExecFork(); + + if (Process == 0) + { + for (unsigned I = 0; I != J; I++) + { + string Dir = Dsc[I].Package + '-' + Cache->VS().UpstreamVersion(Dsc[I].Version.c_str()); + + // Diff only mode only fetches .diff files + if (_config->FindB("APT::Get::Diff-Only",false) == true || + _config->FindB("APT::Get::Tar-Only",false) == true || + Dsc[I].Dsc.empty() == true) + continue; + + // See if the package is already unpacked + struct stat Stat; + if (stat(Dir.c_str(),&Stat) == 0 && + S_ISDIR(Stat.st_mode) != 0) + { + ioprintf(c0out ,_("Skipping unpack of already unpacked source in %s\n"), + Dir.c_str()); + } + else + { + // Call dpkg-source + char S[500]; + snprintf(S,sizeof(S),"%s -x %s", + _config->Find("Dir::Bin::dpkg-source","dpkg-source").c_str(), + Dsc[I].Dsc.c_str()); + if (system(S) != 0) + { + fprintf(stderr,_("Unpack command '%s' failed.\n"),S); + fprintf(stderr,_("Check if the 'dpkg-dev' package is installed.\n")); + _exit(1); + } + } + + // Try to compile it with dpkg-buildpackage + if (_config->FindB("APT::Get::Compile",false) == true) + { + // Call dpkg-buildpackage + char S[500]; + snprintf(S,sizeof(S),"cd %s && %s %s", + Dir.c_str(), + _config->Find("Dir::Bin::dpkg-buildpackage","dpkg-buildpackage").c_str(), + _config->Find("DPkg::Build-Options","-b -uc").c_str()); + + if (system(S) != 0) + { + fprintf(stderr,_("Build command '%s' failed.\n"),S); + _exit(1); + } + } + } + + _exit(0); + } + + // Wait for the subprocess + int Status = 0; + while (waitpid(Process,&Status,0) != Process) + { + if (errno == EINTR) + continue; + return _error->Errno("waitpid","Couldn't wait for subprocess"); + } + + if (WIFEXITED(Status) == 0 || WEXITSTATUS(Status) != 0) + return _error->Error(_("Child process failed")); + + return true; +} + /*}}}*/ +// DoBuildDep - Install/removes packages to satisfy build dependencies /*{{{*/ +// --------------------------------------------------------------------- +/* This function will look at the build depends list of the given source + package and install the necessary packages to make it true, or fail. */ +bool DoBuildDep(CommandLine &CmdL) +{ + CacheFile Cache; + if (Cache.Open(true) == false) + return false; + + if (CmdL.FileSize() <= 1) + return _error->Error(_("Must specify at least one package to check builddeps for")); + + // Read the source list + pkgSourceList List; + if (List.ReadMainList() == false) + return _error->Error(_("The list of sources could not be read.")); + + // Create the text record parsers + pkgRecords Recs(Cache); + pkgSrcRecords SrcRecs(List); + if (_error->PendingError() == true) + return false; + + // Create the download object + AcqTextStatus Stat(ScreenWidth,_config->FindI("quiet",0)); + pkgAcquire Fetcher(&Stat); + + unsigned J = 0; + for (const char **I = CmdL.FileList + 1; *I != 0; I++, J++) + { + string Src; + pkgSrcRecords::Parser *Last = FindSrc(*I,Recs,SrcRecs,Src,*Cache); + if (Last == 0) + return _error->Error(_("Unable to find a source package for %s"),Src.c_str()); + + // Process the build-dependencies + vector BuildDeps; + if (Last->BuildDepends(BuildDeps, _config->FindB("APT::Get::Arch-Only",false)) == false) + return _error->Error(_("Unable to get build-dependency information for %s"),Src.c_str()); + + // Also ensure that build-essential packages are present + Configuration::Item const *Opts = _config->Tree("APT::Build-Essential"); + if (Opts) + Opts = Opts->Child; + for (; Opts; Opts = Opts->Next) + { + if (Opts->Value.empty() == true) + continue; + + pkgSrcRecords::Parser::BuildDepRec rec; + rec.Package = Opts->Value; + rec.Type = pkgSrcRecords::Parser::BuildDependIndep; + rec.Op = 0; + BuildDeps.push_back(rec); + } + + if (BuildDeps.size() == 0) + { + ioprintf(c1out,_("%s has no build depends.\n"),Src.c_str()); + continue; + } + + // Install the requested packages + unsigned int ExpectedInst = 0; + vector ::iterator D; + pkgProblemResolver Fix(Cache); + bool skipAlternatives = false; // skip remaining alternatives in an or group + for (D = BuildDeps.begin(); D != BuildDeps.end(); D++) + { + bool hasAlternatives = (((*D).Op & pkgCache::Dep::Or) == pkgCache::Dep::Or); + + if (skipAlternatives == true) + { + if (!hasAlternatives) + skipAlternatives = false; // end of or group + continue; + } + + if ((*D).Type == pkgSrcRecords::Parser::BuildConflict || + (*D).Type == pkgSrcRecords::Parser::BuildConflictIndep) + { + pkgCache::PkgIterator Pkg = Cache->FindPkg((*D).Package); + // Build-conflicts on unknown packages are silently ignored + if (Pkg.end() == true) + continue; + + pkgCache::VerIterator IV = (*Cache)[Pkg].InstVerIter(*Cache); + + /* + * Remove if we have an installed version that satisfies the + * version criteria + */ + if (IV.end() == false && + Cache->VS().CheckDep(IV.VerStr(),(*D).Op,(*D).Version.c_str()) == true) + TryToInstall(Pkg,Cache,Fix,true,false,ExpectedInst); + } + else // BuildDep || BuildDepIndep + { + pkgCache::PkgIterator Pkg = Cache->FindPkg((*D).Package); + if (_config->FindB("Debug::BuildDeps",false) == true) + cout << "Looking for " << (*D).Package << "...\n"; + + if (Pkg.end() == true) + { + if (_config->FindB("Debug::BuildDeps",false) == true) + cout << " (not found)" << (*D).Package << endl; + + if (hasAlternatives) + continue; + + return _error->Error(_("%s dependency for %s cannot be satisfied " + "because the package %s cannot be found"), + Last->BuildDepType((*D).Type),Src.c_str(), + (*D).Package.c_str()); + } + + /* + * if there are alternatives, we've already picked one, so skip + * the rest + * + * TODO: this means that if there's a build-dep on A|B and B is + * installed, we'll still try to install A; more importantly, + * if A is currently broken, we cannot go back and try B. To fix + * this would require we do a Resolve cycle for each package we + * add to the install list. Ugh + */ + + /* + * If this is a virtual package, we need to check the list of + * packages that provide it and see if any of those are + * installed + */ + pkgCache::PrvIterator Prv = Pkg.ProvidesList(); + for (; Prv.end() != true; Prv++) + { + if (_config->FindB("Debug::BuildDeps",false) == true) + cout << " Checking provider " << Prv.OwnerPkg().Name() << endl; + + if ((*Cache)[Prv.OwnerPkg()].InstVerIter(*Cache).end() == false) + break; + } + + // Get installed version and version we are going to install + pkgCache::VerIterator IV = (*Cache)[Pkg].InstVerIter(*Cache); + + if ((*D).Version[0] != '\0') { + // Versioned dependency + + pkgCache::VerIterator CV = (*Cache)[Pkg].CandidateVerIter(*Cache); + + for (; CV.end() != true; CV++) + { + if (Cache->VS().CheckDep(CV.VerStr(),(*D).Op,(*D).Version.c_str()) == true) + break; + } + if (CV.end() == true) + if (hasAlternatives) + { + continue; + } + else + { + return _error->Error(_("%s dependency for %s cannot be satisfied " + "because no available versions of package %s " + "can satisfy version requirements"), + Last->BuildDepType((*D).Type),Src.c_str(), + (*D).Package.c_str()); + } + } + else + { + // Only consider virtual packages if there is no versioned dependency + if (Prv.end() == false) + { + if (_config->FindB("Debug::BuildDeps",false) == true) + cout << " Is provided by installed package " << Prv.OwnerPkg().Name() << endl; + skipAlternatives = hasAlternatives; + continue; + } + } + + if (IV.end() == false) + { + if (_config->FindB("Debug::BuildDeps",false) == true) + cout << " Is installed\n"; + + if (Cache->VS().CheckDep(IV.VerStr(),(*D).Op,(*D).Version.c_str()) == true) + { + skipAlternatives = hasAlternatives; + continue; + } + + if (_config->FindB("Debug::BuildDeps",false) == true) + cout << " ...but the installed version doesn't meet the version requirement\n"; + + if (((*D).Op & pkgCache::Dep::LessEq) == pkgCache::Dep::LessEq) + { + return _error->Error(_("Failed to satisfy %s dependency for %s: Installed package %s is too new"), + Last->BuildDepType((*D).Type), + Src.c_str(), + Pkg.Name()); + } + } + + + if (_config->FindB("Debug::BuildDeps",false) == true) + cout << " Trying to install " << (*D).Package << endl; + + if (TryToInstall(Pkg,Cache,Fix,false,false,ExpectedInst) == true) + { + // We successfully installed something; skip remaining alternatives + skipAlternatives = hasAlternatives; + continue; + } + else if (hasAlternatives) + { + if (_config->FindB("Debug::BuildDeps",false) == true) + cout << " Unsatisfiable, trying alternatives\n"; + continue; + } + else + { + return _error->Error(_("Failed to satisfy %s dependency for %s: %s"), + Last->BuildDepType((*D).Type), + Src.c_str(), + (*D).Package.c_str()); + } + } + } + + Fix.InstallProtect(); + if (Fix.Resolve(true) == false) + _error->Discard(); + + // Now we check the state of the packages, + if (Cache->BrokenCount() != 0) + return _error->Error(_("Build-dependencies for %s could not be satisfied."),*I); + } + + if (InstallPackages(Cache, false, true) == false) + return _error->Error(_("Failed to process build dependencies")); + return true; +} + /*}}}*/ + +// DoMoo - Never Ask, Never Tell /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool DoMoo(CommandLine &CmdL) +{ + cout << + " (__) \n" + " (oo) \n" + " /------\\/ \n" + " / | || \n" + " * /\\---/\\ \n" + " ~~ ~~ \n" + "....\"Have you mooed today?\"...\n"; + + return true; +} + /*}}}*/ +// ShowHelp - Show a help screen /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool ShowHelp(CommandLine &CmdL) +{ + ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION, + COMMON_OS,COMMON_CPU,__DATE__,__TIME__); + + if (_config->FindB("version") == true) + { + cout << _("Supported modules:") << endl; + + for (unsigned I = 0; I != pkgVersioningSystem::GlobalListLen; I++) + { + pkgVersioningSystem *VS = pkgVersioningSystem::GlobalList[I]; + if (_system != 0 && _system->VS == VS) + cout << '*'; + else + cout << ' '; + cout << "Ver: " << VS->Label << endl; + + /* Print out all the packaging systems that will work with + this VS */ + for (unsigned J = 0; J != pkgSystem::GlobalListLen; J++) + { + pkgSystem *Sys = pkgSystem::GlobalList[J]; + if (_system == Sys) + cout << '*'; + else + cout << ' '; + if (Sys->VS->TestCompatibility(*VS) == true) + cout << "Pkg: " << Sys->Label << " (Priority " << Sys->Score(*_config) << ")" << endl; + } + } + + for (unsigned I = 0; I != pkgSourceList::Type::GlobalListLen; I++) + { + pkgSourceList::Type *Type = pkgSourceList::Type::GlobalList[I]; + cout << " S.L: '" << Type->Name << "' " << Type->Label << endl; + } + + for (unsigned I = 0; I != pkgIndexFile::Type::GlobalListLen; I++) + { + pkgIndexFile::Type *Type = pkgIndexFile::Type::GlobalList[I]; + cout << " Idx: " << Type->Label << endl; + } + + return true; + } + + cout << + _("Usage: apt-get [options] command\n" + " apt-get [options] install|remove pkg1 [pkg2 ...]\n" + " apt-get [options] source pkg1 [pkg2 ...]\n" + "\n" + "apt-get is a simple command line interface for downloading and\n" + "installing packages. The most frequently used commands are update\n" + "and install.\n" + "\n" + "Commands:\n" + " update - Retrieve new lists of packages\n" + " upgrade - Perform an upgrade\n" + " install - Install new packages (pkg is libc6 not libc6.deb)\n" + " remove - Remove packages\n" + " source - Download source archives\n" + " build-dep - Configure build-dependencies for source packages\n" + " dist-upgrade - Distribution upgrade, see apt-get(8)\n" + " dselect-upgrade - Follow dselect selections\n" + " clean - Erase downloaded archive files\n" + " autoclean - Erase old downloaded archive files\n" + " check - Verify that there are no broken dependencies\n" + "\n" + "Options:\n" + " -h This help text.\n" + " -q Loggable output - no progress indicator\n" + " -qq No output except for errors\n" + " -d Download only - do NOT install or unpack archives\n" + " -s No-act. Perform ordering simulation\n" + " -y Assume Yes to all queries and do not prompt\n" + " -f Attempt to continue if the integrity check fails\n" + " -m Attempt to continue if archives are unlocatable\n" + " -u Show a list of upgraded packages as well\n" + " -b Build the source package after fetching it\n" + " -V Show verbose version numbers\n" + " -c=? Read this configuration file\n" + " -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" + "See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" + "pages for more information and options.\n" + " This APT has Super Cow Powers.\n"); + return true; +} + /*}}}*/ +// GetInitialize - Initialize things for apt-get /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void GetInitialize() +{ + _config->Set("quiet",0); + _config->Set("help",false); + _config->Set("APT::Get::Download-Only",false); + _config->Set("APT::Get::Simulate",false); + _config->Set("APT::Get::Assume-Yes",false); + _config->Set("APT::Get::Fix-Broken",false); + _config->Set("APT::Get::Force-Yes",false); + _config->Set("APT::Get::List-Cleanup",true); +} + /*}}}*/ +// SigWinch - Window size change signal handler /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void SigWinch(int) +{ + // Riped from GNU ls +#ifdef TIOCGWINSZ + struct winsize ws; + + if (ioctl(1, TIOCGWINSZ, &ws) != -1 && ws.ws_col >= 5) + ScreenWidth = ws.ws_col - 1; +#endif +} + /*}}}*/ + +int main_(int argc,const char *argv[]); +int main(int argc,const char *argv[]) { + _exit(main_(argc, argv)); +} +int main_(int argc,const char *argv[]) +{ + CommandLine::Args Args[] = { + {'h',"help","help",0}, + {'v',"version","version",0}, + {'V',"verbose-versions","APT::Get::Show-Versions",0}, + {'q',"quiet","quiet",CommandLine::IntLevel}, + {'q',"silent","quiet",CommandLine::IntLevel}, + {'d',"download-only","APT::Get::Download-Only",0}, + {'b',"compile","APT::Get::Compile",0}, + {'b',"build","APT::Get::Compile",0}, + {'s',"simulate","APT::Get::Simulate",0}, + {'s',"just-print","APT::Get::Simulate",0}, + {'s',"recon","APT::Get::Simulate",0}, + {'s',"dry-run","APT::Get::Simulate",0}, + {'s',"no-act","APT::Get::Simulate",0}, + {'y',"yes","APT::Get::Assume-Yes",0}, + {'y',"assume-yes","APT::Get::Assume-Yes",0}, + {'f',"fix-broken","APT::Get::Fix-Broken",0}, + {'u',"show-upgraded","APT::Get::Show-Upgraded",0}, + {'m',"ignore-missing","APT::Get::Fix-Missing",0}, + {'t',"target-release","APT::Default-Release",CommandLine::HasArg}, + {'t',"default-release","APT::Default-Release",CommandLine::HasArg}, + {0,"download","APT::Get::Download",0}, + {0,"fix-missing","APT::Get::Fix-Missing",0}, + {0,"ignore-hold","APT::Ignore-Hold",0}, + {0,"upgrade","APT::Get::upgrade",0}, + {0,"force-yes","APT::Get::force-yes",0}, + {0,"print-uris","APT::Get::Print-URIs",0}, + {0,"diff-only","APT::Get::Diff-Only",0}, + {0,"tar-only","APT::Get::tar-Only",0}, + {0,"purge","APT::Get::Purge",0}, + {0,"list-cleanup","APT::Get::List-Cleanup",0}, + {0,"reinstall","APT::Get::ReInstall",0}, + {0,"trivial-only","APT::Get::Trivial-Only",0}, + {0,"remove","APT::Get::Remove",0}, + {0,"only-source","APT::Get::Only-Source",0}, + {0,"arch-only","APT::Get::Arch-Only",0}, + {0,"allow-unauthenticated","APT::Get::AllowUnauthenticated",0}, + {'c',"config-file",0,CommandLine::ConfigFile}, + {'o',"option",0,CommandLine::ArbItem}, + {0,0,0,0}}; + CommandLine::Dispatch Cmds[] = {{"update",&DoUpdate}, + {"upgrade",&DoUpgrade}, + {"install",&DoInstall}, + {"remove",&DoInstall}, + {"dist-upgrade",&DoDistUpgrade}, + {"dselect-upgrade",&DoDSelectUpgrade}, + {"build-dep",&DoBuildDep}, + {"clean",&DoClean}, + {"autoclean",&DoAutoClean}, + {"check",&DoCheck}, + {"source",&DoSource}, + {"moo",&DoMoo}, + {"help",&ShowHelp}, + {0,0}}; + + // Set up gettext support + setlocale(LC_ALL,""); + //textdomain(PACKAGE); + + // Parse the command line and initialize the package library + CommandLine CmdL(Args,_config); + if (pkgInitConfig(*_config) == false || + CmdL.Parse(argc,argv) == false || + pkgInitSystem(*_config,_system) == false) + { + if (_config->FindB("version") == true) + ShowHelp(CmdL); + + _error->DumpErrors(); + return 100; + } + + // See if the help should be shown + if (_config->FindB("help") == true || + _config->FindB("version") == true || + CmdL.FileSize() == 0) + { + ShowHelp(CmdL); + return 0; + } + + // Deal with stdout not being a tty + if (!isatty(STDOUT_FILENO) && _config->FindI("quiet",0) < 1) + _config->Set("quiet","1"); + + ofstream devnull("/dev/null"); + + // Setup the output streams + c0out.rdbuf(cout.rdbuf()); + c1out.rdbuf(cout.rdbuf()); + c2out.rdbuf(cout.rdbuf()); + if (_config->FindI("quiet",0) > 0) + c0out.rdbuf(devnull.rdbuf()); + if (_config->FindI("quiet",0) > 1) + c1out.rdbuf(devnull.rdbuf()); + + // Setup the signals + signal(SIGPIPE,SIG_IGN); + signal(SIGWINCH,SigWinch); + SigWinch(0); + + // Match the operation + CmdL.DispatchArg(Cmds); + + // Print any errors or warnings found during parsing + if (_error->empty() == false) + { + bool Errors = _error->PendingError(); + _error->DumpErrors(); + return Errors == true?100:0; + } + + return 0; +} diff --git a/cmdline/apt-key b/cmdline/apt-key new file mode 100755 index 0000000..90ecae2 --- /dev/null +++ b/cmdline/apt-key @@ -0,0 +1,89 @@ +#!/bin/sh + +set -e + +# We don't use a secret keyring, of course, but gpg panics and +# implodes if there isn't one available + +GPG_CMD="gpg --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg" +GPG="$GPG_CMD --keyring /etc/apt/trusted.gpg" + + +ARCHIVE_KEYRING=/usr/share/keyrings/debian-archive-keyring.gpg +REMOVED_KEYS=/usr/share/keyrings/debian-archive-removed-keys.gpg + + +update() { + if [ ! -f $ARCHIVE_KEYRING ]; then + echo >&2 "ERROR: Can't find the archive-keyring" + echo >&2 "Is the debian-archive-keyring package installed?" + exit 1 + fi + + # add new keys + $GPG_CMD --quiet --batch --keyring $ARCHIVE_KEYRING --export | $GPG --ignore-time-conflict --import + + # remove no-longer used keys + keys=`$GPG_CMD --keyring $REMOVED_KEYS --with-colons --list-keys | grep ^pub | cut -d: -f5` + for key in $keys; do + if $GPG --list-keys --with-colons | grep ^pub | cut -d: -f5 | grep -q $key; then + $GPG --quiet --batch --delete-key --yes ${key} + fi + done +} + +usage() { + echo "Usage: apt-key [command] [arguments]" + echo + echo "Manage apt's list of trusted keys" + echo + echo " apt-key add - add the key contained in ('-' for stdin)" + echo " apt-key del - remove the key " + echo " apt-key update - update keys using the keyring package" + echo " apt-key list - list keys" + echo +} + +command="$1" +if [ -z "$command" ]; then + usage + exit 1 +fi +shift + +if [ "$command" != "help" ] && ! which gpg >/dev/null 2>&1; then + echo >&2 "Warning: gnupg does not seem to be installed." + echo >&2 "Warning: apt-key requires gnupg for most operations." + echo >&2 +fi + +case "$command" in + add) + $GPG --quiet --batch --import "$1" + echo "OK" + ;; + del|rm|remove) + $GPG --quiet --batch --delete-key --yes "$1" + echo "OK" + ;; + update) + update + ;; + list) + $GPG --batch --list-keys + ;; + finger*) + $GPG --batch --fingerprint + ;; + adv*) + echo "Executing: $GPG $*" + $GPG $* + ;; + help) + usage + ;; + *) + usage + exit 1 + ;; +esac diff --git a/cmdline/apt-sortpkgs.cc b/cmdline/apt-sortpkgs.cc new file mode 100644 index 0000000..1d04f0a --- /dev/null +++ b/cmdline/apt-sortpkgs.cc @@ -0,0 +1,212 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: apt-sortpkgs.cc,v 1.5 2003/01/11 07:18:44 jgg Exp $ +/* ###################################################################### + + APT Sort Packages - Program to sort Package and Source files + + This program is quite simple, it just sorts the package files by + package and sorts the fields inside by the internal APT sort order. + Input is taken from a named file and sent to stdout. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include + +#include +#include + /*}}}*/ + +using namespace std; + +struct PkgName +{ + string Name; + string Ver; + string Arch; + unsigned long Offset; + unsigned long Length; + + inline int Compare3(const PkgName &x) const + { + int A = stringcasecmp(Name,x.Name); + if (A == 0) + { + A = stringcasecmp(Ver,x.Ver); + if (A == 0) + A = stringcasecmp(Arch,x.Arch); + } + return A; + } + + bool operator <(const PkgName &x) const {return Compare3(x) < 0;}; + bool operator >(const PkgName &x) const {return Compare3(x) > 0;}; + bool operator ==(const PkgName &x) const {return Compare3(x) == 0;}; +}; + +// DoIt - Sort a single file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool DoIt(string InFile) +{ + FileFd Fd(InFile,FileFd::ReadOnly); + pkgTagFile Tags(&Fd); + if (_error->PendingError() == true) + return false; + + // Parse. + vector List; + pkgTagSection Section; + unsigned long Largest = 0; + unsigned long Offset = Tags.Offset(); + bool Source = _config->FindB("APT::SortPkgs::Source",false); + while (Tags.Step(Section) == true) + { + PkgName Tmp; + + /* Fetch the name, auto-detecting if this is a source file or a + package file */ + Tmp.Name = Section.FindS("Package"); + Tmp.Ver = Section.FindS("Version"); + Tmp.Arch = Section.FindS("Architecture"); + + if (Tmp.Name.empty() == true) + return _error->Error(_("Unknown package record!")); + + Tmp.Offset = Offset; + Tmp.Length = Section.size(); + if (Largest < Tmp.Length) + Largest = Tmp.Length; + + List.push_back(Tmp); + + Offset = Tags.Offset(); + } + if (_error->PendingError() == true) + return false; + + // Sort it + sort(List.begin(),List.end()); + + const char **Order = TFRewritePackageOrder; + if (Source == true) + Order = TFRewriteSourceOrder; + + // Emit + unsigned char *Buffer = new unsigned char[Largest+1]; + for (vector::iterator I = List.begin(); I != List.end(); I++) + { + // Read in the Record. + if (Fd.Seek(I->Offset) == false || Fd.Read(Buffer,I->Length) == false) + { + delete [] Buffer; + return false; + } + + Buffer[I->Length] = '\n'; + if (Section.Scan((char *)Buffer,I->Length+1) == false) + { + delete [] Buffer; + return _error->Error("Internal error, failed to scan buffer"); + } + + // Sort the section + if (TFRewrite(stdout,Section,Order,0) == false) + { + delete [] Buffer; + return _error->Error("Internal error, failed to sort fields"); + } + + fputc('\n',stdout); + } + + delete [] Buffer; + return true; +} + /*}}}*/ +// ShowHelp - Show the help text /*{{{*/ +// --------------------------------------------------------------------- +/* */ +int ShowHelp() +{ + ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION, + COMMON_OS,COMMON_CPU,__DATE__,__TIME__); + if (_config->FindB("version") == true) + return 0; + + cout << + _("Usage: apt-sortpkgs [options] file1 [file2 ...]\n" + "\n" + "apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" + "to indicate what kind of file it is.\n" + "\n" + "Options:\n" + " -h This help text\n" + " -s Use source file sorting\n" + " -c=? Read this configuration file\n" + " -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"); + + return 0; +} + /*}}}*/ + +int main_(int argc,const char *argv[]); +int main(int argc,const char *argv[]) { + _exit(main_(argc, argv)); +} +int main_(int argc,const char *argv[]) +{ + CommandLine::Args Args[] = { + {'h',"help","help",0}, + {'v',"version","version",0}, + {'s',"source","APT::SortPkgs::Source",0}, + {'c',"config-file",0,CommandLine::ConfigFile}, + {'o',"option",0,CommandLine::ArbItem}, + {0,0,0,0}}; + + // Set up gettext support + setlocale(LC_ALL,""); + //textdomain(PACKAGE); + + // Parse the command line and initialize the package library + CommandLine CmdL(Args,_config); + if (pkgInitConfig(*_config) == false || + CmdL.Parse(argc,argv) == false || + pkgInitSystem(*_config,_system) == false) + { + _error->DumpErrors(); + return 100; + } + + // See if the help should be shown + if (_config->FindB("help") == true || + CmdL.FileSize() == 0) + return ShowHelp(); + + // Match the operation + for (unsigned int I = 0; I != CmdL.FileSize(); I++) + if (DoIt(CmdL.FileList[I]) == false) + break; + + // Print any errors or warnings found during parsing + if (_error->empty() == false) + { + bool Errors = _error->PendingError(); + _error->DumpErrors(); + return Errors == true?100:0; + } + + return 0; +} diff --git a/cmdline/makefile b/cmdline/makefile new file mode 100644 index 0000000..882a0e1 --- /dev/null +++ b/cmdline/makefile @@ -0,0 +1,54 @@ +# -*- make -*- +BASE=.. +SUBDIR=cmdline + +# Bring in the default rules +include ../buildlib/defaults.mak + +# The apt-cache program +PROGRAM=apt-cache +SLIBS = -lapt-pkg +LIB_MAKES = apt-pkg/makefile +SOURCE = apt-cache.cc +include $(PROGRAM_H) + +# The apt-get program +PROGRAM=apt-get +SLIBS = -lapt-pkg +LIB_MAKES = apt-pkg/makefile +SOURCE = apt-get.cc acqprogress.cc +include $(PROGRAM_H) + +# The apt-config program +PROGRAM=apt-config +SLIBS = -lapt-pkg +LIB_MAKES = apt-pkg/makefile +SOURCE = apt-config.cc +include $(PROGRAM_H) + +# The apt-cdrom program +PROGRAM=apt-cdrom +SLIBS = -lapt-pkg +LIB_MAKES = apt-pkg/makefile +SOURCE = apt-cdrom.cc +include $(PROGRAM_H) + +# The apt-sortpkgs program +PROGRAM=apt-sortpkgs +SLIBS = -lapt-pkg +LIB_MAKES = apt-pkg/makefile +SOURCE = apt-sortpkgs.cc +include $(PROGRAM_H) + +# The apt-extracttemplates program +PROGRAM=apt-extracttemplates +SLIBS = -lapt-pkg -lapt-inst +LIB_MAKES = apt-pkg/makefile +SOURCE = apt-extracttemplates.cc +include $(PROGRAM_H) + +# The apt-key program +SOURCE=apt-key +TO=$(BIN) +TARGET=program +include $(COPY_H) diff --git a/configure b/configure new file mode 100755 index 0000000..2b08e9d --- /dev/null +++ b/configure @@ -0,0 +1,10566 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.61. +# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + +if test "x$CONFIG_SHELL" = x; then + if (eval ":") 2>/dev/null; then + as_have_required=yes +else + as_have_required=no +fi + + if test $as_have_required = yes && (eval ": +(as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=\$LINENO + as_lineno_2=\$LINENO + test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && + test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } +") 2> /dev/null; then + : +else + as_candidate_shells= + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + case $as_dir in + /*) + for as_base in sh bash ksh sh5; do + as_candidate_shells="$as_candidate_shells $as_dir/$as_base" + done;; + esac +done +IFS=$as_save_IFS + + + for as_shell in $as_candidate_shells $SHELL; do + # Try only shells that exist, to save several forks. + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { ("$as_shell") 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +_ASEOF +}; then + CONFIG_SHELL=$as_shell + as_have_required=yes + if { "$as_shell" 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +(as_func_return () { + (exit $1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = "$1" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test $exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } + +_ASEOF +}; then + break +fi + +fi + + done + + if test "x$CONFIG_SHELL" != x; then + for as_var in BASH_ENV ENV + do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + done + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +fi + + + if test $as_have_required = no; then + echo This script requires a shell more modern than all the + echo shells that I found on your system. Please install a + echo modern shell, or manually run the script under such a + echo shell if you do have one. + { (exit 1); exit 1; } +fi + + +fi + +fi + + + +(eval "as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0") || { + echo No shell found that supports shell functions. + echo Please tell autoconf@gnu.org about your system, + echo including any error possibly output before this + echo message +} + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + +exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Identity of this package. +PACKAGE_NAME= +PACKAGE_TARNAME= +PACKAGE_VERSION= +PACKAGE_STRING= +PACKAGE_BUGREPORT= + +ac_unique_file="configure.in" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='SHELL +PATH_SEPARATOR +PACKAGE_NAME +PACKAGE_TARNAME +PACKAGE_VERSION +PACKAGE_STRING +PACKAGE_BUGREPORT +exec_prefix +prefix +program_transform_name +bindir +sbindir +libexecdir +datarootdir +datadir +sysconfdir +sharedstatedir +localstatedir +includedir +oldincludedir +docdir +infodir +htmldir +dvidir +pdfdir +psdir +libdir +localedir +mandir +DEFS +ECHO_C +ECHO_N +ECHO_T +LIBS +build_alias +host_alias +target_alias +PACKAGE +build +build_cpu +build_vendor +build_os +host +host_cpu +host_vendor +host_os +target +target_cpu +target_vendor +target_os +CC +CFLAGS +LDFLAGS +CPPFLAGS +ac_ct_CC +EXEEXT +OBJEXT +CXX +CXXFLAGS +ac_ct_CXX +CPP +RANLIB +AR +SOCKETLIBS +PTHREADLIB +GREP +EGREP +BDBLIB +HAVE_STATVFS +HAVE_TIMEGM +HAVE_C9X +NEED_SOCKLEN_T_DEFINE +DEBIANDOC_HTML +DEBIANDOC_TEXT +DOCBOOK2MAN +XMLTO +GETCONF +NUM_CPUS +PROC_MULTIPLY +NUM_PROCS +GLIBC_VER +LIBSTDCPP_VER +GCC3DEP +SET_MAKE +INSTALL_PROGRAM +INSTALL_SCRIPT +INSTALL_DATA +mkdir_p +USE_NLS +MSGFMT +GMSGFMT +MSGFMT_015 +GMSGFMT_015 +XGETTEXT +XGETTEXT_015 +MSGMERGE +INTL_MACOSX_LIBS +LIBICONV +LTLIBICONV +INTLLIBS +LIBINTL +LTLIBINTL +POSUB +BASH +LIBOBJS +LTLIBOBJS' +ac_subst_files='' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CXX +CXXFLAGS +CCC +CPP' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` + eval enable_$ac_feature=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` + eval enable_$ac_feature=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/[-.]/_/g'` + eval with_$ac_package=\$ac_optarg ;; + + -without-* | --without-*) + ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/[-.]/_/g'` + eval with_$ac_package=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) { echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + { echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +# Be sure to have absolute directory names. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; } +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + { echo "$as_me: error: Working directory cannot be determined" >&2 + { (exit 1); exit 1; }; } +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + { echo "$as_me: error: pwd does not report name of working directory" >&2 + { (exit 1); exit 1; }; } + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$0" || +$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 + { (exit 1); exit 1; }; } + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures this package to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] + --target=TARGET configure for building compilers for TARGET [HOST] +_ACEOF +fi + +if test -n "$ac_init_help"; then + + cat <<\_ACEOF + +Optional Features: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --disable-nls do not use Native Language Support + --disable-rpath do not hardcode runtime library paths + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-cpus The number of cpus to be used for building(see --with-procs, default 1) + --with-getconf Enable automagical buildtime configuration + --with-proc-multiply Multiply this * number of cpus for parallel making(default 2). + --with-procs The number of processes to run in parallel during make(num_cpus * multiplier). + --with-gnu-ld assume the C compiler uses GNU ld default=no + --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib + --without-libiconv-prefix don't search for libiconv in includedir and libdir + --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib + --without-libintl-prefix don't search for libintl in includedir and libdir + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CXX C++ compiler command + CXXFLAGS C++ compiler flags + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +configure +generated by GNU Autoconf 2.61 + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by $as_me, which was +generated by GNU Autoconf 2.61. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + echo "PATH: $as_dir" +done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 2) + ac_configure_args1="$ac_configure_args1 '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + ac_configure_args="$ac_configure_args '$ac_arg'" + ;; + esac + done +done +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------------- ## +## File substitutions. ## +## ------------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer explicitly selected file to automatically selected ones. +if test -n "$CONFIG_SITE"; then + set x "$CONFIG_SITE" +elif test "x$prefix" != xNONE; then + set x "$prefix/share/config.site" "$prefix/etc/config.site" +else + set x "$ac_default_prefix/share/config.site" \ + "$ac_default_prefix/etc/config.site" +fi +shift +for ac_site_file +do + if test -r "$ac_site_file"; then + { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { echo "$as_me:$LINENO: loading cache $cache_file" >&5 +echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { echo "$as_me:$LINENO: creating cache $cache_file" >&5 +echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 +echo "$as_me: former value: $ac_old_val" >&2;} + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 +echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } +fi + + + + + + + + + + + + + + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_aux_dir= +for ac_dir in buildlib "$srcdir"/buildlib; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in buildlib \"$srcdir\"/buildlib" >&5 +echo "$as_me: error: cannot find install-sh or install.sh in buildlib \"$srcdir\"/buildlib" >&2;} + { (exit 1); exit 1; }; } +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +ac_config_headers="$ac_config_headers include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in" + + +cat >>confdefs.h <<_ACEOF +#define VERSION "0.6.46.4-0.1" +_ACEOF + +PACKAGE="apt" +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 +echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} + { (exit 1); exit 1; }; } + +{ echo "$as_me:$LINENO: checking build system type" >&5 +echo $ECHO_N "checking build system type... $ECHO_C" >&6; } +if test "${ac_cv_build+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { (exit 1); exit 1; }; } +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +echo "${ECHO_T}$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 +echo "$as_me: error: invalid value of canonical build" >&2;} + { (exit 1); exit 1; }; };; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ echo "$as_me:$LINENO: checking host system type" >&5 +echo $ECHO_N "checking host system type... $ECHO_C" >&6; } +if test "${ac_cv_host+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +echo "${ECHO_T}$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 +echo "$as_me: error: invalid value of canonical host" >&2;} + { (exit 1); exit 1; }; };; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +{ echo "$as_me:$LINENO: checking target system type" >&5 +echo $ECHO_N "checking target system type... $ECHO_C" >&6; } +if test "${ac_cv_target+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "x$target_alias" = x; then + ac_cv_target=$ac_cv_host +else + ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_target" >&5 +echo "${ECHO_T}$ac_cv_target" >&6; } +case $ac_cv_target in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical target" >&5 +echo "$as_me: error: invalid value of canonical target" >&2;} + { (exit 1); exit 1; }; };; +esac +target=$ac_cv_target +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_target +shift +target_cpu=$1 +target_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +target_os=$* +IFS=$ac_save_IFS +case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac + + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +test -n "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for C compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } +ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +# +# List of possible output files, starting from the most likely. +# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) +# only as a last resort. b.out is created by i960 compilers. +ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' +# +# The IRIX 6 linker writes into existing files which may not be +# executable, retaining their permissions. Remove them first so a +# subsequent execution test works. +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { (ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi + +{ echo "$as_me:$LINENO: result: $ac_file" >&5 +echo "${ECHO_T}$ac_file" >&6; } +if test -z "$ac_file"; then + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: C compiler cannot create executables +See \`config.log' for more details." >&5 +echo "$as_me: error: C compiler cannot create executables +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } +fi + +ac_exeext=$ac_cv_exeext + +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } +# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { echo "$as_me:$LINENO: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi +{ echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + +rm -f a.out a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: result: $cross_compiling" >&5 +echo "${ECHO_T}$cross_compiling" >&6; } + +{ echo "$as_me:$LINENO: checking for suffix of executables" >&5 +echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest$ac_cv_exeext +{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +echo "${ECHO_T}$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +{ echo "$as_me:$LINENO: checking for suffix of object files" >&5 +echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } +if test "${ac_cv_objext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +echo "${ECHO_T}$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } +GCC=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_c89=$ac_arg +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6; } ;; + xno) + { echo "$as_me:$LINENO: result: unsupported" >&5 +echo "${ECHO_T}unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; +esac + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ echo "$as_me:$LINENO: checking for library containing strerror" >&5 +echo $ECHO_N "checking for library containing strerror... $ECHO_C" >&6; } +if test "${ac_cv_search_strerror+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char strerror (); +int +main () +{ +return strerror (); + ; + return 0; +} +_ACEOF +for ac_lib in '' cposix; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_search_strerror=$ac_res +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext + if test "${ac_cv_search_strerror+set}" = set; then + break +fi +done +if test "${ac_cv_search_strerror+set}" = set; then + : +else + ac_cv_search_strerror=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5 +echo "${ECHO_T}$ac_cv_search_strerror" >&6; } +ac_res=$ac_cv_search_strerror +if test "$ac_res" != no; then + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + { echo "$as_me:$LINENO: result: $CXX" >&5 +echo "${ECHO_T}$CXX" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 +echo "${ECHO_T}$ac_ct_CXX" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_CXX" && break +done + + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi +fi + + fi +fi +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for C++ compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +{ echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; } +if test "${ac_cv_cxx_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; } +GXX=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +{ echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 +echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_cxx_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cxx_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CXXFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cxx_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; } +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ echo "$as_me:$LINENO: result: $CPP" >&5 +echo "${ECHO_T}$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { echo "$as_me:$LINENO: result: $RANLIB" >&5 +echo "${ECHO_T}$RANLIB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +echo "${ECHO_T}$ac_ct_RANLIB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { echo "$as_me:$LINENO: result: $AR" >&5 +echo "${ECHO_T}$AR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AR="ar" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 +echo "${ECHO_T}$ac_ct_AR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR=""ar"" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + + +SAVE_LIBS="$LIBS" +LIBS="" +{ echo "$as_me:$LINENO: checking for library containing gethostbyname" >&5 +echo $ECHO_N "checking for library containing gethostbyname... $ECHO_C" >&6; } +if test "${ac_cv_search_gethostbyname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +for ac_lib in '' nsl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_search_gethostbyname=$ac_res +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext + if test "${ac_cv_search_gethostbyname+set}" = set; then + break +fi +done +if test "${ac_cv_search_gethostbyname+set}" = set; then + : +else + ac_cv_search_gethostbyname=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_search_gethostbyname" >&5 +echo "${ECHO_T}$ac_cv_search_gethostbyname" >&6; } +ac_res=$ac_cv_search_gethostbyname +if test "$ac_res" != no; then + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + +{ echo "$as_me:$LINENO: checking for library containing connect" >&5 +echo $ECHO_N "checking for library containing connect... $ECHO_C" >&6; } +if test "${ac_cv_search_connect+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char connect (); +int +main () +{ +return connect (); + ; + return 0; +} +_ACEOF +for ac_lib in '' socket; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_search_connect=$ac_res +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext + if test "${ac_cv_search_connect+set}" = set; then + break +fi +done +if test "${ac_cv_search_connect+set}" = set; then + : +else + ac_cv_search_connect=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_search_connect" >&5 +echo "${ECHO_T}$ac_cv_search_connect" >&6; } +ac_res=$ac_cv_search_connect +if test "$ac_res" != no; then + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + +SOCKETLIBS="$LIBS" + +LIBS="$SAVE_LIBS" + + + +saveLIBS="$LIBS" +LIBS="$LIBS -ldb" + + +{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Extract the first word of "grep ggrep" to use in msg output +if test -z "$GREP"; then +set dummy grep ggrep; ac_prog_name=$2 +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_GREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + # Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_GREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +GREP="$ac_cv_path_GREP" +if test -z "$GREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_GREP=$GREP +fi + + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +echo "${ECHO_T}$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ echo "$as_me:$LINENO: checking for egrep" >&5 +echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } +if test "${ac_cv_path_EGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + # Extract the first word of "egrep" to use in msg output +if test -z "$EGREP"; then +set dummy egrep; ac_prog_name=$2 +if test "${ac_cv_path_EGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_EGREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + # Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_EGREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +EGREP="$ac_cv_path_EGREP" +if test -z "$EGREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_EGREP=$EGREP +fi + + + fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stdc=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. + + + + + + + + + +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Header=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +if test "${ac_cv_header_db_h+set}" = set; then + { echo "$as_me:$LINENO: checking for db.h" >&5 +echo $ECHO_N "checking for db.h... $ECHO_C" >&6; } +if test "${ac_cv_header_db_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_db_h" >&5 +echo "${ECHO_T}$ac_cv_header_db_h" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking db.h usability" >&5 +echo $ECHO_N "checking db.h usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking db.h presence" >&5 +echo $ECHO_N "checking db.h presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: db.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: db.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: db.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: db.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: db.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: db.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: db.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: db.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: db.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: db.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: db.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: db.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: db.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: db.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: db.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: db.h: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for db.h" >&5 +echo $ECHO_N "checking for db.h... $ECHO_C" >&6; } +if test "${ac_cv_header_db_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_db_h=$ac_header_preproc +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_db_h" >&5 +echo "${ECHO_T}$ac_cv_header_db_h" >&6; } + +fi +if test $ac_cv_header_db_h = yes; then + { echo "$as_me:$LINENO: checking if we can link against BerkeleyDB" >&5 +echo $ECHO_N "checking if we can link against BerkeleyDB... $ECHO_C" >&6; } + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +int r, s, t; db_version(&r, &s, &t); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_BDB 1 +_ACEOF + + BDBLIB="-ldb" + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + BDBLIB="" + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + +fi + + + +LIBS="$saveLIBS" + + + +{ echo "$as_me:$LINENO: checking system architecture" >&5 +echo $ECHO_N "checking system architecture... $ECHO_C" >&6; } +archset="`awk \" ! /^#|^\\\$/ { if(match(\\\"$target_cpu\\\",\\\"^\\\"\\\$1\\\"\\\$\\\")) {print \\\$2; exit}}\" $srcdir/buildlib/archtable`" +if test "x$archset" = "x"; then + { { echo "$as_me:$LINENO: error: failed: use --host= or check buildlib/archtable" >&5 +echo "$as_me: error: failed: use --host= or check buildlib/archtable" >&2;} + { (exit 1); exit 1; }; } +fi +{ echo "$as_me:$LINENO: result: $archset" >&5 +echo "${ECHO_T}$archset" >&6; } +cat >>confdefs.h <<_ACEOF +#define COMMON_CPU "$archset" +_ACEOF + + +{ echo "$as_me:$LINENO: checking system OS" >&5 +echo $ECHO_N "checking system OS... $ECHO_C" >&6; } +osset="`awk \" ! /^#|^\\\$/ {if (match(\\\"$target_vendor-$target_os\\\",\\\$1)) {print \\\$2; exit}}\" $srcdir/buildlib/ostable`" +{ echo "$as_me:$LINENO: result: $osset" >&5 +echo "${ECHO_T}$osset" >&6; } +cat >>confdefs.h <<_ACEOF +#define COMMON_OS "$osset" +_ACEOF + + +{ echo "$as_me:$LINENO: checking for C99 integer types" >&5 +echo $ECHO_N "checking for C99 integer types... $ECHO_C" >&6; } +if test "${c9x_ints+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +uint8_t Foo1;uint16_t Foo2;uint32_t Foo3; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + c9x_ints=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + c9x_ints=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $c9x_ints" >&5 +echo "${ECHO_T}$c9x_ints" >&6; } + +{ echo "$as_me:$LINENO: checking for statvfs" >&5 +echo $ECHO_N "checking for statvfs... $ECHO_C" >&6; } +if test "${ac_cv_func_statvfs+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define statvfs to an innocuous variant, in case declares statvfs. + For example, HP-UX 11i declares gettimeofday. */ +#define statvfs innocuous_statvfs + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char statvfs (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef statvfs + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char statvfs (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_statvfs || defined __stub___statvfs +choke me +#endif + +int +main () +{ +return statvfs (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func_statvfs=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_statvfs=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_statvfs" >&5 +echo "${ECHO_T}$ac_cv_func_statvfs" >&6; } +if test $ac_cv_func_statvfs = yes; then + HAVE_STATVFS=yes +fi + + + +if test x"$HAVE_STATVFS" != x"yes"; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "statfs" >/dev/null 2>&1; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_VFS_H 1 +_ACEOF + +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "statfs" >/dev/null 2>&1; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_MOUNT_H 1 +_ACEOF + +else + { { echo "$as_me:$LINENO: error: failed: Need statvfs" >&5 +echo "$as_me: error: failed: Need statvfs" >&2;} + { (exit 1); exit 1; }; } +fi +rm -f conftest* + + +fi +rm -f conftest* + +fi + +{ echo "$as_me:$LINENO: checking for timegm" >&5 +echo $ECHO_N "checking for timegm... $ECHO_C" >&6; } +if test "${ac_cv_func_timegm+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define timegm to an innocuous variant, in case declares timegm. + For example, HP-UX 11i declares gettimeofday. */ +#define timegm innocuous_timegm + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char timegm (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef timegm + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char timegm (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_timegm || defined __stub___timegm +choke me +#endif + +int +main () +{ +return timegm (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func_timegm=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_timegm=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_timegm" >&5 +echo "${ECHO_T}$ac_cv_func_timegm" >&6; } +if test $ac_cv_func_timegm = yes; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_TIMEGM 1 +_ACEOF + +fi + + + + +archline="`awk \" ! /^#|^\\\$/ {if (match(\\\"$archset\\\",\\\$1)) {print; exit}}\" $srcdir/buildlib/sizetable | cut -f 2- -d ' '`" +if test "x$archline" != "x"; then + + set $archline + if test "$1" = "little"; then + ac_cv_c_bigendian=no + else + ac_cv_c_bigendian=yes + fi + size_char=$2 + size_int=$3 + size_short=$4 + size_long=$5 +fi + +if test "$cross_compiling" = "yes" -a "x$archline" = "x"; then + { { echo "$as_me:$LINENO: error: When cross compiling" >&5 +echo "$as_me: error: When cross compiling" >&2;} + { (exit architecture must be present in sizetable); exit architecture must be present in sizetable; }; } +fi +{ echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 +echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6; } +if test "${ac_cv_c_bigendian+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # See if sys/param.h defines the BYTE_ORDER macro. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN && defined LITTLE_ENDIAN \ + && BYTE_ORDER && BIG_ENDIAN && LITTLE_ENDIAN) + bogus endian macros +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + # It does; now see whether it defined to BIG_ENDIAN or not. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_c_bigendian=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_c_bigendian=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # It does not; compile a test program. +if test "$cross_compiling" = yes; then + # try to guess the endianness by grepping values into an object file + ac_cv_c_bigendian=unknown + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; +short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; +void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; } +short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; +short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; +void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; } +int +main () +{ + _ascii (); _ebcdic (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then + ac_cv_c_bigendian=yes +fi +if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi +fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_bigendian=no +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5 +echo "${ECHO_T}$ac_cv_c_bigendian" >&6; } +case $ac_cv_c_bigendian in + yes) + +cat >>confdefs.h <<\_ACEOF +#define WORDS_BIGENDIAN 1 +_ACEOF + ;; + no) + ;; + *) + { { echo "$as_me:$LINENO: error: unknown endianness +presetting ac_cv_c_bigendian=no (or yes) will help" >&5 +echo "$as_me: error: unknown endianness +presetting ac_cv_c_bigendian=no (or yes) will help" >&2;} + { (exit 1); exit 1; }; } ;; +esac + + +HAVE_C9X=yes +if test x"$c9x_ints" = x"no"; then + { echo "$as_me:$LINENO: checking for char" >&5 +echo $ECHO_N "checking for char... $ECHO_C" >&6; } +if test "${ac_cv_type_char+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef char ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_char=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_char=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_char" >&5 +echo "${ECHO_T}$ac_cv_type_char" >&6; } + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ echo "$as_me:$LINENO: checking size of char" >&5 +echo $ECHO_N "checking size of char... $ECHO_C" >&6; } +if test "${ac_cv_sizeof_char+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef char ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef char ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef char ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef char ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo= ac_hi= +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef char ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr '(' $ac_mid ')' + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_char=$ac_lo;; +'') if test "$ac_cv_type_char" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (char) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (char) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_char=0 + fi ;; +esac +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef char ac__type_sizeof_; +static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } +static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (((long int) (sizeof (ac__type_sizeof_))) < 0) + { + long int i = longval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%ld\n", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%lu\n", i); + } + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_char=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +if test "$ac_cv_type_char" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (char) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (char) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_char=0 + fi +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.val +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sizeof_char" >&5 +echo "${ECHO_T}$ac_cv_sizeof_char" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_CHAR $ac_cv_sizeof_char +_ACEOF + + + { echo "$as_me:$LINENO: checking for int" >&5 +echo $ECHO_N "checking for int... $ECHO_C" >&6; } +if test "${ac_cv_type_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef int ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_int=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_int=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5 +echo "${ECHO_T}$ac_cv_type_int" >&6; } + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ echo "$as_me:$LINENO: checking size of int" >&5 +echo $ECHO_N "checking size of int... $ECHO_C" >&6; } +if test "${ac_cv_sizeof_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef int ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef int ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef int ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef int ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo= ac_hi= +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef int ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr '(' $ac_mid ')' + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_int=$ac_lo;; +'') if test "$ac_cv_type_int" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (int) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (int) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_int=0 + fi ;; +esac +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef int ac__type_sizeof_; +static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } +static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (((long int) (sizeof (ac__type_sizeof_))) < 0) + { + long int i = longval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%ld\n", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%lu\n", i); + } + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_int=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +if test "$ac_cv_type_int" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (int) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (int) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_int=0 + fi +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.val +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5 +echo "${ECHO_T}$ac_cv_sizeof_int" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT $ac_cv_sizeof_int +_ACEOF + + + { echo "$as_me:$LINENO: checking for short" >&5 +echo $ECHO_N "checking for short... $ECHO_C" >&6; } +if test "${ac_cv_type_short+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef short ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_short=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_short=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_short" >&5 +echo "${ECHO_T}$ac_cv_type_short" >&6; } + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ echo "$as_me:$LINENO: checking size of short" >&5 +echo $ECHO_N "checking size of short... $ECHO_C" >&6; } +if test "${ac_cv_sizeof_short+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef short ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef short ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef short ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef short ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo= ac_hi= +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef short ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr '(' $ac_mid ')' + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_short=$ac_lo;; +'') if test "$ac_cv_type_short" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (short) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (short) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_short=0 + fi ;; +esac +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef short ac__type_sizeof_; +static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } +static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (((long int) (sizeof (ac__type_sizeof_))) < 0) + { + long int i = longval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%ld\n", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%lu\n", i); + } + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_short=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +if test "$ac_cv_type_short" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (short) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (short) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_short=0 + fi +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.val +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5 +echo "${ECHO_T}$ac_cv_sizeof_short" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_SHORT $ac_cv_sizeof_short +_ACEOF + + + { echo "$as_me:$LINENO: checking for long" >&5 +echo $ECHO_N "checking for long... $ECHO_C" >&6; } +if test "${ac_cv_type_long+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef long ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_long=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_long=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5 +echo "${ECHO_T}$ac_cv_type_long" >&6; } + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ echo "$as_me:$LINENO: checking size of long" >&5 +echo $ECHO_N "checking size of long... $ECHO_C" >&6; } +if test "${ac_cv_sizeof_long+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo= ac_hi= +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr '(' $ac_mid ')' + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_long=$ac_lo;; +'') if test "$ac_cv_type_long" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (long) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (long) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_long=0 + fi ;; +esac +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef long ac__type_sizeof_; +static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } +static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (((long int) (sizeof (ac__type_sizeof_))) < 0) + { + long int i = longval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%ld\n", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%lu\n", i); + } + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_long=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +if test "$ac_cv_type_long" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (long) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (long) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_long=0 + fi +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.val +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5 +echo "${ECHO_T}$ac_cv_sizeof_long" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG $ac_cv_sizeof_long +_ACEOF + + + + HAVE_C9X= + +fi + +{ echo "$as_me:$LINENO: checking for missing socklen_t" >&5 +echo $ECHO_N "checking for missing socklen_t... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "socklen_t" >/dev/null 2>&1; then + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +else + + cat >>confdefs.h <<\_ACEOF +#define NEED_SOCKLEN_T_DEFINE 1 +_ACEOF + + NEED_SOCKLEN_T_DEFINE=yes + { echo "$as_me:$LINENO: result: missing." >&5 +echo "${ECHO_T}missing." >&6; } +fi +rm -f conftest* + + + +{ echo "$as_me:$LINENO: checking for h_errno" >&5 +echo $ECHO_N "checking for h_errno... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "h_errno" >/dev/null 2>&1; then + { echo "$as_me:$LINENO: result: normal" >&5 +echo "${ECHO_T}normal" >&6; } +else + CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "h_errno" >/dev/null 2>&1; then + { echo "$as_me:$LINENO: result: needs _XOPEN_SOURCE_EXTENDED" >&5 +echo "${ECHO_T}needs _XOPEN_SOURCE_EXTENDED" >&6; } +else + { { echo "$as_me:$LINENO: error: \"not found.\"" >&5 +echo "$as_me: error: \"not found.\"" >&2;} + { (exit 1); exit 1; }; } +fi +rm -f conftest* + + +fi +rm -f conftest* + + +# Extract the first word of "debiandoc2html", so it can be a program name with args. +set dummy debiandoc2html; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_DEBIANDOC_HTML+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $DEBIANDOC_HTML in + [\\/]* | ?:[\\/]*) + ac_cv_path_DEBIANDOC_HTML="$DEBIANDOC_HTML" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DEBIANDOC_HTML="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +DEBIANDOC_HTML=$ac_cv_path_DEBIANDOC_HTML +if test -n "$DEBIANDOC_HTML"; then + { echo "$as_me:$LINENO: result: $DEBIANDOC_HTML" >&5 +echo "${ECHO_T}$DEBIANDOC_HTML" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "debiandoc2text", so it can be a program name with args. +set dummy debiandoc2text; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_DEBIANDOC_TEXT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $DEBIANDOC_TEXT in + [\\/]* | ?:[\\/]*) + ac_cv_path_DEBIANDOC_TEXT="$DEBIANDOC_TEXT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DEBIANDOC_TEXT="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +DEBIANDOC_TEXT=$ac_cv_path_DEBIANDOC_TEXT +if test -n "$DEBIANDOC_TEXT"; then + { echo "$as_me:$LINENO: result: $DEBIANDOC_TEXT" >&5 +echo "${ECHO_T}$DEBIANDOC_TEXT" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + +# Extract the first word of "docbook2man", so it can be a program name with args. +set dummy docbook2man; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_DOCBOOK2MAN+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $DOCBOOK2MAN in + [\\/]* | ?:[\\/]*) + ac_cv_path_DOCBOOK2MAN="$DOCBOOK2MAN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DOCBOOK2MAN="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +DOCBOOK2MAN=$ac_cv_path_DOCBOOK2MAN +if test -n "$DOCBOOK2MAN"; then + { echo "$as_me:$LINENO: result: $DOCBOOK2MAN" >&5 +echo "${ECHO_T}$DOCBOOK2MAN" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + +# Extract the first word of "xmlto", so it can be a program name with args. +set dummy xmlto; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_XMLTO+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $XMLTO in + [\\/]* | ?:[\\/]*) + ac_cv_path_XMLTO="$XMLTO" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_XMLTO="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +XMLTO=$ac_cv_path_XMLTO +if test -n "$XMLTO"; then + { echo "$as_me:$LINENO: result: $XMLTO" >&5 +echo "${ECHO_T}$XMLTO" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + + + +# Check whether --with-getconf was given. +if test "${with_getconf+set}" = set; then + withval=$with_getconf; if test "$withval" = "yes"; then + # Extract the first word of "getconf", so it can be a program name with args. +set dummy getconf; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_GETCONF+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $GETCONF in + [\\/]* | ?:[\\/]*) + ac_cv_path_GETCONF="$GETCONF" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GETCONF="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +GETCONF=$ac_cv_path_GETCONF +if test -n "$GETCONF"; then + { echo "$as_me:$LINENO: result: $GETCONF" >&5 +echo "${ECHO_T}$GETCONF" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + elif test ! "$withval" = "no";then + { echo "$as_me:$LINENO: checking getconf" >&5 +echo $ECHO_N "checking getconf... $ECHO_C" >&6; } + { echo "$as_me:$LINENO: result: $withval" >&5 +echo "${ECHO_T}$withval" >&6; } + GETCONF=$withval + fi +else + # Extract the first word of "getconf", so it can be a program name with args. +set dummy getconf; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_GETCONF+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $GETCONF in + [\\/]* | ?:[\\/]*) + ac_cv_path_GETCONF="$GETCONF" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GETCONF="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +GETCONF=$ac_cv_path_GETCONF +if test -n "$GETCONF"; then + { echo "$as_me:$LINENO: result: $GETCONF" >&5 +echo "${ECHO_T}$GETCONF" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + +fi + + + +{ echo "$as_me:$LINENO: checking number of cpus" >&5 +echo $ECHO_N "checking number of cpus... $ECHO_C" >&6; } + +# Check whether --with-cpus was given. +if test "${with_cpus+set}" = set; then + withval=$with_cpus; + if test "$withval" = "yes"; then + + if test ! -z "$GETCONF";then + old_args="$@" + set -- SC_NPROCESSORS_ONLN _NPROCESSORS_ONLN + while eval test -z \"\$NUM_CPUS\" -a ! -z \"$1\";do + eval NUM_CPUS=`$GETCONF "$1" 2>/dev/null` + shift + done + fi + if eval test -z \"\$NUM_CPUS\" -o \"\$NUM_CPUS\" = "-1";then + eval NUM_CPUS="1" + fi + + elif test ! "$withval" = "no";then + NUM_CPUS=$withval + elif test "$withval" = "no";then + NUM_CPUS=1 + fi +else + + if test ! -z "$GETCONF";then + old_args="$@" + set -- SC_NPROCESSORS_ONLN _NPROCESSORS_ONLN + while eval test -z \"\$NUM_CPUS\" -a ! -z \"$1\";do + eval NUM_CPUS=`$GETCONF "$1" 2>/dev/null` + shift + done + fi + if eval test -z \"\$NUM_CPUS\" -o \"\$NUM_CPUS\" = "-1";then + eval NUM_CPUS="1" + fi + + +fi + + ah_NUM_CPUS_msg="$NUM_CPUS" + if test "$NUM_CPUS" = "0"; then + # broken getconf, time to bitch. + ah_NUM_CPUS_msg="found 0 cpus. Has someone done a lobotomy?" + NUM_CPUS=1 + fi + if test $NUM_CPUS = 1 ;then + default_PROC_MULTIPLY=1 + else + default_PROC_MULTIPLY=2 + fi + { echo "$as_me:$LINENO: result: $ah_NUM_CPUS_msg" >&5 +echo "${ECHO_T}$ah_NUM_CPUS_msg" >&6; } + + + + { echo "$as_me:$LINENO: checking processor multiplier" >&5 +echo $ECHO_N "checking processor multiplier... $ECHO_C" >&6; } + +# Check whether --with-proc-multiply was given. +if test "${with_proc_multiply+set}" = set; then + withval=$with_proc_multiply; if test "$withval" = "yes"; then + PROC_MULTIPLY=$default_PROC_MULTIPLY + elif test ! "$withval" = "no";then + PROC_MULTIPLY=$withval + fi +else + PROC_MULTIPLY=$default_PROC_MULTIPLY + +fi + + { echo "$as_me:$LINENO: result: $PROC_MULTIPLY" >&5 +echo "${ECHO_T}$PROC_MULTIPLY" >&6; } + + + + + { echo "$as_me:$LINENO: checking number of processes to run during make" >&5 +echo $ECHO_N "checking number of processes to run during make... $ECHO_C" >&6; } + +# Check whether --with-procs was given. +if test "${with_procs+set}" = set; then + withval=$with_procs; if test "$withval" = "yes"; then + NUM_PROCS=`expr $NUM_CPUS \* $PROC_MULTIPLY` + elif test ! "$withval" = "no";then + NUM_PROCS=$withval + fi +else + NUM_PROCS=`expr $NUM_CPUS \* $PROC_MULTIPLY` + +fi + + { echo "$as_me:$LINENO: result: $NUM_PROCS" >&5 +echo "${ECHO_T}$NUM_PROCS" >&6; } + + +{ echo "$as_me:$LINENO: checking glibc version" >&5 +echo $ECHO_N "checking glibc version... $ECHO_C" >&6; } + if test "${ac_cv_glibc_ver+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + dummy=if$$ + cat <<_GLIBC_>$dummy.c +#include +#include +#include +int main(int argc, char **argv) { printf("libc6.%d",__GLIBC_MINOR__); exit(0); } +_GLIBC_ + ${CC-cc} $dummy.c -o $dummy > /dev/null 2>&1 + if test "$?" = 0; then + GLIBC_VER=`./$dummy` + { echo "$as_me:$LINENO: result: $GLIBC_VER" >&5 +echo "${ECHO_T}$GLIBC_VER" >&6; } + ac_cv_glibc_ver=$GLIBC_VER + else + { echo "$as_me:$LINENO: WARNING: cannot determine GNU C library minor version number" >&5 +echo "$as_me: WARNING: cannot determine GNU C library minor version number" >&2;} + fi + rm -f $dummy $dummy.c + +fi + + GLIBC_VER="-$ac_cv_glibc_ver" + + +{ echo "$as_me:$LINENO: checking libstdc++ version" >&5 +echo $ECHO_N "checking libstdc++ version... $ECHO_C" >&6; } + dummy=if$$ + cat <<_LIBSTDCPP_>$dummy.cc +#include +#include +#include +int main(int argc, char **argv) { exit(0); } +_LIBSTDCPP_ + ${CXX-c++} $dummy.cc -o $dummy > /dev/null 2>&1 + + if test "$?" = 0; then + soname=`objdump -p ./$dummy |grep NEEDED|grep libstd` + LIBSTDCPP_VER=`echo $soname | sed -e 's/.*NEEDED.*libstdc++\(-libc.*\(-.*\)\)\?.so.\(.*\)/\3\2/'` + fi + rm -f $dummy $dummy.cc + + if test -z "$LIBSTDCPP_VER"; then + { echo "$as_me:$LINENO: WARNING: cannot determine standard C++ library version number" >&5 +echo "$as_me: WARNING: cannot determine standard C++ library version number" >&2;} + else + { echo "$as_me:$LINENO: result: $LIBSTDCPP_VER" >&5 +echo "${ECHO_T}$LIBSTDCPP_VER" >&6; } + LIBSTDCPP_VER="-$LIBSTDCPP_VER" + fi + + + + { echo "$as_me:$LINENO: checking if $CXX -MD works" >&5 +echo $ECHO_N "checking if $CXX -MD works... $ECHO_C" >&6; } + touch gcc3dep.cc + ${CXX-c++} -MD -o gcc3dep_test.o -c gcc3dep.cc + rm -f gcc3dep.cc gcc3dep_test.o + if test -e gcc3dep.d; then + rm -f gcc3dep.d + GCC_MD=input + GCC3DEP= + elif test -e gcc3dep_test.d; then + rm -f gcc3dep_test.d + GCC_MD=output + GCC3DEP=yes + else + { { echo "$as_me:$LINENO: error: no" >&5 +echo "$as_me: error: no" >&2;} + { (exit 1); exit 1; }; } + fi + { echo "$as_me:$LINENO: result: yes, for $GCC_MD" >&5 +echo "${ECHO_T}yes, for $GCC_MD" >&6; } + + + +ALL_LINGUAS="bg bs ca cs cy da de dz el en_GB es eu fi fr gl hu it ja ko ku nb nl nn pl pt_BR pt ro ru sk sl sv tl vi zn_CN zh_TW" +{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } +set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + SET_MAKE= +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done +IFS=$as_save_IFS + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then + # We used to keeping the `.' as first argument, in order to + # allow $(mkdir_p) to be used without argument. As in + # $(mkdir_p) $(somedir) + # where $(somedir) is conditionally defined. However this is wrong + # for two reasons: + # 1. if the package is installed by a user who cannot write `.' + # make install will fail, + # 2. the above comment should most certainly read + # $(mkdir_p) $(DESTDIR)$(somedir) + # so it does not work when $(somedir) is undefined and + # $(DESTDIR) is not. + # To support the latter case, we have to write + # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), + # so the `.' trick is pointless. + mkdir_p='mkdir -p --' +else + # On NextStep and OpenStep, the `mkdir' command does not + # recognize any option. It will interpret all options as + # directories to create, and then abort because `.' already + # exists. + for d in ./-p ./--version; + do + test -d $d && rmdir $d + done + # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. + if test -f "$ac_aux_dir/mkinstalldirs"; then + mkdir_p='$(mkinstalldirs)' + else + mkdir_p='$(install_sh) -d' + fi +fi + + + { echo "$as_me:$LINENO: checking whether NLS is requested" >&5 +echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6; } + # Check whether --enable-nls was given. +if test "${enable_nls+set}" = set; then + enableval=$enable_nls; USE_NLS=$enableval +else + USE_NLS=yes +fi + + { echo "$as_me:$LINENO: result: $USE_NLS" >&5 +echo "${ECHO_T}$USE_NLS" >&6; } + + + + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_MSGFMT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case "$MSGFMT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" + ;; +esac +fi +MSGFMT="$ac_cv_path_MSGFMT" +if test "$MSGFMT" != ":"; then + { echo "$as_me:$LINENO: result: $MSGFMT" >&5 +echo "${ECHO_T}$MSGFMT" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_GMSGFMT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { echo "$as_me:$LINENO: result: $GMSGFMT" >&5 +echo "${ECHO_T}$GMSGFMT" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + + case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; + *) MSGFMT_015=$MSGFMT ;; + esac + + case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; + *) GMSGFMT_015=$GMSGFMT ;; + esac + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_XGETTEXT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case "$XGETTEXT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" + ;; +esac +fi +XGETTEXT="$ac_cv_path_XGETTEXT" +if test "$XGETTEXT" != ":"; then + { echo "$as_me:$LINENO: result: $XGETTEXT" >&5 +echo "${ECHO_T}$XGETTEXT" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + rm -f messages.po + + case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; + *) XGETTEXT_015=$XGETTEXT ;; + esac + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "msgmerge", so it can be a program name with args. +set dummy msgmerge; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_MSGMERGE+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case "$MSGMERGE" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then + ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" + ;; +esac +fi +MSGMERGE="$ac_cv_path_MSGMERGE" +if test "$MSGMERGE" != ":"; then + { echo "$as_me:$LINENO: result: $MSGMERGE" >&5 +echo "${ECHO_T}$MSGMERGE" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$localedir" || localedir='${datadir}/locale' + + + ac_config_commands="$ac_config_commands po-directories" + + + + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { echo "$as_me:$LINENO: checking for ld used by GCC" >&5 +echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | [A-Za-z]:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { echo "$as_me:$LINENO: checking for GNU ld" >&5 +echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } +else + { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } +fi +if test "${acl_cv_path_LD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break ;; + *) + test "$with_gnu_ld" != yes && break ;; + esac + fi + done + IFS="$ac_save_ifs" +else + acl_cv_path_LD="$LD" # Let the user override the test with a path. +fi +fi + +LD="$acl_cv_path_LD" +if test -n "$LD"; then + { echo "$as_me:$LINENO: result: $LD" >&5 +echo "${ECHO_T}$LD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi +test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } +if test "${acl_cv_prog_gnu_ld+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # I'd rather use --version here, but apparently some GNU ld's only accept -v. +case `$LD -v 2>&1 &5 +echo "${ECHO_T}$acl_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$acl_cv_prog_gnu_ld + + + + + { echo "$as_me:$LINENO: checking for shared library run path origin" >&5 +echo $ECHO_N "checking for shared library run path origin... $ECHO_C" >&6; } +if test "${acl_cv_rpath+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + +fi +{ echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5 +echo "${ECHO_T}$acl_cv_rpath" >&6; } + wl="$acl_cv_wl" + libext="$acl_cv_libext" + shlibext="$acl_cv_shlibext" + hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + hardcode_direct="$acl_cv_hardcode_direct" + hardcode_minus_L="$acl_cv_hardcode_minus_L" + # Check whether --enable-rpath was given. +if test "${enable_rpath+set}" = set; then + enableval=$enable_rpath; : +else + enable_rpath=yes +fi + + + + acl_libdirstem=lib + searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi + + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libiconv-prefix was given. +if test "${with_libiconv_prefix+set}" = set; then + withval=$with_libiconv_prefix; + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + fi + fi + +fi + + LIBICONV= + LTLIBICONV= + INCICONV= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='iconv ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + if test $use_additional = yes; then + if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then + found_dir="$additional_libdir" + found_so="$additional_libdir/lib$name.$shlibext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + else + if test -f "$additional_libdir/lib$name.$libext"; then + found_dir="$additional_libdir" + found_a="$additional_libdir/lib$name.$libext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then + found_dir="$dir" + found_so="$dir/lib$name.$shlibext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + else + if test -f "$dir/lib$name.$libext"; then + found_dir="$dir" + found_a="$dir/lib$name.$libext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$hardcode_direct" = yes; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" + fi + if test "$hardcode_minus_L" != no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" + ;; + esac + done + fi + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" + done + fi + + + + + + + + + + + + + + + + + + + { echo "$as_me:$LINENO: checking for CFPreferencesCopyAppValue" >&5 +echo $ECHO_N "checking for CFPreferencesCopyAppValue... $ECHO_C" >&6; } +if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +CFPreferencesCopyAppValue(NULL, NULL) + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + gt_cv_func_CFPreferencesCopyAppValue=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gt_cv_func_CFPreferencesCopyAppValue=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" +fi +{ echo "$as_me:$LINENO: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 +echo "${ECHO_T}$gt_cv_func_CFPreferencesCopyAppValue" >&6; } + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_CFPREFERENCESCOPYAPPVALUE 1 +_ACEOF + + fi + { echo "$as_me:$LINENO: checking for CFLocaleCopyCurrent" >&5 +echo $ECHO_N "checking for CFLocaleCopyCurrent... $ECHO_C" >&6; } +if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +CFLocaleCopyCurrent(); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + gt_cv_func_CFLocaleCopyCurrent=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gt_cv_func_CFLocaleCopyCurrent=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" +fi +{ echo "$as_me:$LINENO: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 +echo "${ECHO_T}$gt_cv_func_CFLocaleCopyCurrent" >&6; } + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_CFLOCALECOPYCURRENT 1 +_ACEOF + + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + + + + + + + LIBINTL= + LTLIBINTL= + POSUB= + + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + + + + + + + { echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5 +echo $ECHO_N "checking for GNU gettext in libc... $ECHO_C" >&6; } +if test "${gt_cv_func_gnugettext1_libc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings; +int +main () +{ +bindtextdomain ("", ""); +return * gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + gt_cv_func_gnugettext1_libc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gt_cv_func_gnugettext1_libc=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libc" >&5 +echo "${ECHO_T}$gt_cv_func_gnugettext1_libc" >&6; } + + if test "$gt_cv_func_gnugettext1_libc" != "yes"; then + + + + + + am_save_CPPFLAGS="$CPPFLAGS" + + for element in $INCICONV; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + + { echo "$as_me:$LINENO: checking for iconv" >&5 +echo $ECHO_N "checking for iconv... $ECHO_C" >&6; } +if test "${am_cv_func_iconv+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +int +main () +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + am_cv_func_iconv=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +int +main () +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + am_cv_lib_iconv=yes + am_cv_func_iconv=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$am_save_LIBS" + fi + +fi +{ echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 +echo "${ECHO_T}$am_cv_func_iconv" >&6; } + if test "$am_cv_func_iconv" = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ICONV 1 +_ACEOF + + fi + if test "$am_cv_lib_iconv" = yes; then + { echo "$as_me:$LINENO: checking how to link with libiconv" >&5 +echo $ECHO_N "checking how to link with libiconv... $ECHO_C" >&6; } + { echo "$as_me:$LINENO: result: $LIBICONV" >&5 +echo "${ECHO_T}$LIBICONV" >&6; } + else + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libintl-prefix was given. +if test "${with_libintl_prefix+set}" = set; then + withval=$with_libintl_prefix; + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + fi + fi + +fi + + LIBINTL= + LTLIBINTL= + INCINTL= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='intl ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + if test $use_additional = yes; then + if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then + found_dir="$additional_libdir" + found_so="$additional_libdir/lib$name.$shlibext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + else + if test -f "$additional_libdir/lib$name.$libext"; then + found_dir="$additional_libdir" + found_a="$additional_libdir/lib$name.$libext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then + found_dir="$dir" + found_so="$dir/lib$name.$shlibext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + else + if test -f "$dir/lib$name.$libext"; then + found_dir="$dir" + found_a="$dir/lib$name.$libext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$hardcode_direct" = yes; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" + fi + if test "$hardcode_minus_L" != no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" + ;; + esac + done + fi + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" + done + fi + + { echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5 +echo $ECHO_N "checking for GNU gettext in libintl... $ECHO_C" >&6; } +if test "${gt_cv_func_gnugettext1_libintl+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +int +main () +{ +bindtextdomain ("", ""); +return * gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias ("") + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + gt_cv_func_gnugettext1_libintl=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gt_cv_func_gnugettext1_libintl=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + if test "$gt_cv_func_gnugettext1_libintl" != yes && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +int +main () +{ +bindtextdomain ("", ""); +return * gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias ("") + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + gt_cv_func_gnugettext1_libintl=yes + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS" +fi +{ echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libintl" >&5 +echo "${ECHO_T}$gt_cv_func_gnugettext1_libintl" >&6; } + fi + + if test "$gt_cv_func_gnugettext1_libc" = "yes" \ + || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + + + if test -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + +cat >>confdefs.h <<\_ACEOF +#define ENABLE_NLS 1 +_ACEOF + + else + USE_NLS=no + fi + fi + + { echo "$as_me:$LINENO: checking whether to use NLS" >&5 +echo $ECHO_N "checking whether to use NLS... $ECHO_C" >&6; } + { echo "$as_me:$LINENO: result: $USE_NLS" >&5 +echo "${ECHO_T}$USE_NLS" >&6; } + if test "$USE_NLS" = "yes"; then + { echo "$as_me:$LINENO: checking where the gettext function comes from" >&5 +echo $ECHO_N "checking where the gettext function comes from... $ECHO_C" >&6; } + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + { echo "$as_me:$LINENO: result: $gt_source" >&5 +echo "${ECHO_T}$gt_source" >&6; } + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then + { echo "$as_me:$LINENO: checking how to link with libintl" >&5 +echo $ECHO_N "checking how to link with libintl... $ECHO_C" >&6; } + { echo "$as_me:$LINENO: result: $LIBINTL" >&5 +echo "${ECHO_T}$LIBINTL" >&6; } + + for element in $INCINTL; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + fi + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_GETTEXT 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_DCGETTEXT 1 +_ACEOF + + fi + + POSUB=po + fi + + + + INTLLIBS="$LIBINTL" + + + + + + +if test x"$USE_NLS" = "xyes"; then + cat >>confdefs.h <<\_ACEOF +#define USE_NLS 1 +_ACEOF + +fi + +# Extract the first word of "bash", so it can be a program name with args. +set dummy bash; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_BASH+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $BASH in + [\\/]* | ?:[\\/]*) + ac_cv_path_BASH="$BASH" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_BASH="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +BASH=$ac_cv_path_BASH +if test -n "$BASH"; then + { echo "$as_me:$LINENO: result: $BASH" >&5 +echo "${ECHO_T}$BASH" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + +ac_config_files="$ac_config_files environment.mak:buildlib/environment.mak.in makefile:buildlib/makefile.in" + +ac_config_commands="$ac_config_commands default" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + test "x$cache_file" != "x/dev/null" && + { echo "$as_me:$LINENO: updating cache $cache_file" >&5 +echo "$as_me: updating cache $cache_file" >&6;} + cat confcache >$cache_file + else + { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 +echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + +: ${CONFIG_STATUS=./config.status} +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 + +# Save the log message, to keep $[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by $as_me, which was +generated by GNU Autoconf 2.61. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +ac_cs_version="\\ +config.status +configured by $0, generated by GNU Autoconf 2.61, + with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" + +Copyright (C) 2006 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + echo "$ac_cs_version"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + CONFIG_FILES="$CONFIG_FILES $ac_optarg" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + { echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +if \$ac_cs_recheck; then + echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 + CONFIG_SHELL=$SHELL + export CONFIG_SHELL + exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +# +# INIT-COMMANDS +# +# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it + # from automake < 1.5. + eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "include/config.h") CONFIG_HEADERS="$CONFIG_HEADERS include/config.h:buildlib/config.h.in" ;; + "include/apti18n.h") CONFIG_HEADERS="$CONFIG_HEADERS include/apti18n.h:buildlib/apti18n.h.in" ;; + "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; + "environment.mak") CONFIG_FILES="$CONFIG_FILES environment.mak:buildlib/environment.mak.in" ;; + "makefile") CONFIG_FILES="$CONFIG_FILES makefile:buildlib/makefile.in" ;; + "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; + + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= + trap 'exit_status=$? + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status +' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || +{ + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + +# +# Set up the sed scripts for CONFIG_FILES section. +# + +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "$CONFIG_FILES"; then + +_ACEOF + + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +SHELL!$SHELL$ac_delim +PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim +PACKAGE_NAME!$PACKAGE_NAME$ac_delim +PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim +PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim +PACKAGE_STRING!$PACKAGE_STRING$ac_delim +PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim +exec_prefix!$exec_prefix$ac_delim +prefix!$prefix$ac_delim +program_transform_name!$program_transform_name$ac_delim +bindir!$bindir$ac_delim +sbindir!$sbindir$ac_delim +libexecdir!$libexecdir$ac_delim +datarootdir!$datarootdir$ac_delim +datadir!$datadir$ac_delim +sysconfdir!$sysconfdir$ac_delim +sharedstatedir!$sharedstatedir$ac_delim +localstatedir!$localstatedir$ac_delim +includedir!$includedir$ac_delim +oldincludedir!$oldincludedir$ac_delim +docdir!$docdir$ac_delim +infodir!$infodir$ac_delim +htmldir!$htmldir$ac_delim +dvidir!$dvidir$ac_delim +pdfdir!$pdfdir$ac_delim +psdir!$psdir$ac_delim +libdir!$libdir$ac_delim +localedir!$localedir$ac_delim +mandir!$mandir$ac_delim +DEFS!$DEFS$ac_delim +ECHO_C!$ECHO_C$ac_delim +ECHO_N!$ECHO_N$ac_delim +ECHO_T!$ECHO_T$ac_delim +LIBS!$LIBS$ac_delim +build_alias!$build_alias$ac_delim +host_alias!$host_alias$ac_delim +target_alias!$target_alias$ac_delim +PACKAGE!$PACKAGE$ac_delim +build!$build$ac_delim +build_cpu!$build_cpu$ac_delim +build_vendor!$build_vendor$ac_delim +build_os!$build_os$ac_delim +host!$host$ac_delim +host_cpu!$host_cpu$ac_delim +host_vendor!$host_vendor$ac_delim +host_os!$host_os$ac_delim +target!$target$ac_delim +target_cpu!$target_cpu$ac_delim +target_vendor!$target_vendor$ac_delim +target_os!$target_os$ac_delim +CC!$CC$ac_delim +CFLAGS!$CFLAGS$ac_delim +LDFLAGS!$LDFLAGS$ac_delim +CPPFLAGS!$CPPFLAGS$ac_delim +ac_ct_CC!$ac_ct_CC$ac_delim +EXEEXT!$EXEEXT$ac_delim +OBJEXT!$OBJEXT$ac_delim +CXX!$CXX$ac_delim +CXXFLAGS!$CXXFLAGS$ac_delim +ac_ct_CXX!$ac_ct_CXX$ac_delim +CPP!$CPP$ac_delim +RANLIB!$RANLIB$ac_delim +AR!$AR$ac_delim +SOCKETLIBS!$SOCKETLIBS$ac_delim +PTHREADLIB!$PTHREADLIB$ac_delim +GREP!$GREP$ac_delim +EGREP!$EGREP$ac_delim +BDBLIB!$BDBLIB$ac_delim +HAVE_STATVFS!$HAVE_STATVFS$ac_delim +HAVE_TIMEGM!$HAVE_TIMEGM$ac_delim +HAVE_C9X!$HAVE_C9X$ac_delim +NEED_SOCKLEN_T_DEFINE!$NEED_SOCKLEN_T_DEFINE$ac_delim +DEBIANDOC_HTML!$DEBIANDOC_HTML$ac_delim +DEBIANDOC_TEXT!$DEBIANDOC_TEXT$ac_delim +DOCBOOK2MAN!$DOCBOOK2MAN$ac_delim +XMLTO!$XMLTO$ac_delim +GETCONF!$GETCONF$ac_delim +NUM_CPUS!$NUM_CPUS$ac_delim +PROC_MULTIPLY!$PROC_MULTIPLY$ac_delim +NUM_PROCS!$NUM_PROCS$ac_delim +GLIBC_VER!$GLIBC_VER$ac_delim +LIBSTDCPP_VER!$LIBSTDCPP_VER$ac_delim +GCC3DEP!$GCC3DEP$ac_delim +SET_MAKE!$SET_MAKE$ac_delim +INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim +INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim +INSTALL_DATA!$INSTALL_DATA$ac_delim +mkdir_p!$mkdir_p$ac_delim +USE_NLS!$USE_NLS$ac_delim +MSGFMT!$MSGFMT$ac_delim +GMSGFMT!$GMSGFMT$ac_delim +MSGFMT_015!$MSGFMT_015$ac_delim +GMSGFMT_015!$GMSGFMT_015$ac_delim +XGETTEXT!$XGETTEXT$ac_delim +XGETTEXT_015!$XGETTEXT_015$ac_delim +MSGMERGE!$MSGMERGE$ac_delim +INTL_MACOSX_LIBS!$INTL_MACOSX_LIBS$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +CEOF$ac_eof +_ACEOF + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +LIBICONV!$LIBICONV$ac_delim +LTLIBICONV!$LTLIBICONV$ac_delim +INTLLIBS!$INTLLIBS$ac_delim +LIBINTL!$LIBINTL$ac_delim +LTLIBINTL!$LTLIBINTL$ac_delim +POSUB!$POSUB$ac_delim +BASH!$BASH$ac_delim +LIBOBJS!$LIBOBJS$ac_delim +LTLIBOBJS!$LTLIBOBJS$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 9; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +:end +s/|#_!!_#|//g +CEOF$ac_eof +_ACEOF + + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/ +s/:*\${srcdir}:*/:/ +s/:*@srcdir@:*/:/ +s/^\([^=]*=[ ]*\):*/\1/ +s/:*$// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF +fi # test -n "$CONFIG_FILES" + + +for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 +echo "$as_me: error: Invalid tag $ac_tag." >&2;} + { (exit 1); exit 1; }; };; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 +echo "$as_me: error: cannot find input file: $ac_f" >&2;} + { (exit 1); exit 1; }; };; + esac + ac_file_inputs="$ac_file_inputs $ac_f" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input="Generated from "`IFS=: + echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + fi + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin";; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir="$ac_dir" + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= + +case `sed -n '/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p +' $ac_file_inputs` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF + sed "$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s&@configure_input@&$configure_input&;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +$ac_datarootdir_hack +" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&5 +echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&2;} + + rm -f "$tmp/stdin" + case $ac_file in + -) cat "$tmp/out"; rm -f "$tmp/out";; + *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; + esac + ;; + :H) + # + # CONFIG_HEADER + # +_ACEOF + +# Transform confdefs.h into a sed script `conftest.defines', that +# substitutes the proper values into config.h.in to produce config.h. +rm -f conftest.defines conftest.tail +# First, append a space to every undef/define line, to ease matching. +echo 's/$/ /' >conftest.defines +# Then, protect against being on the right side of a sed subst, or in +# an unquoted here document, in config.status. If some macros were +# called several times there might be several #defines for the same +# symbol, which is useless. But do not sort them, since the last +# AC_DEFINE must be honored. +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where +# NAME is the cpp macro being defined, VALUE is the value it is being given. +# PARAMS is the parameter list in the macro definition--in most cases, it's +# just an empty string. +ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' +ac_dB='\\)[ (].*,\\1define\\2' +ac_dC=' ' +ac_dD=' ,' + +uniq confdefs.h | + sed -n ' + t rset + :rset + s/^[ ]*#[ ]*define[ ][ ]*// + t ok + d + :ok + s/[\\&,]/\\&/g + s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p + s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p + ' >>conftest.defines + +# Remove the space that was appended to ease matching. +# Then replace #undef with comments. This is necessary, for +# example, in the case of _POSIX_SOURCE, which is predefined and required +# on some systems where configure will not decide to define it. +# (The regexp can be short, since the line contains either #define or #undef.) +echo 's/ $// +s,^[ #]*u.*,/* & */,' >>conftest.defines + +# Break up conftest.defines: +ac_max_sed_lines=50 + +# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" +# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" +# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" +# et cetera. +ac_in='$ac_file_inputs' +ac_out='"$tmp/out1"' +ac_nxt='"$tmp/out2"' + +while : +do + # Write a here document: + cat >>$CONFIG_STATUS <<_ACEOF + # First, check the format of the line: + cat >"\$tmp/defines.sed" <<\\CEOF +/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def +/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def +b +:def +_ACEOF + sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS + echo 'CEOF + sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS + ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in + sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail + grep . conftest.tail >/dev/null || break + rm -f conftest.defines + mv conftest.tail conftest.defines +done +rm -f conftest.defines conftest.tail + +echo "ac_result=$ac_in" >>$CONFIG_STATUS +cat >>$CONFIG_STATUS <<\_ACEOF + if test x"$ac_file" != x-; then + echo "/* $configure_input */" >"$tmp/config.h" + cat "$ac_result" >>"$tmp/config.h" + if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then + { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 +echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f $ac_file + mv "$tmp/config.h" $ac_file + fi + else + echo "/* $configure_input */" + cat "$ac_result" + fi + rm -f "$tmp/out12" + ;; + + :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 +echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "po-directories":C) + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assigment from automake < 1.5. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + # Hide the ALL_LINGUAS assigment from automake < 1.5. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done ;; + "default":C) make -s dirs ;; + + esac +done # for ac_tag + + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || { (exit 1); exit 1; } +fi + diff --git a/configure.in b/configure.in new file mode 100644 index 0000000..22ea296 --- /dev/null +++ b/configure.in @@ -0,0 +1,203 @@ +ad +dnl Process this file with autoconf to produce a configure script. +dnl The ONLY thing this is used for is to configure for different +dnl linux architectures and configurations, it is not used to make the +dnl code more portable + +dnl You MUST have an environment that has all the POSIX functions and +dnl some of the more populare bsd/sysv ones (like select). You'll also +dnl need a C++ compiler that is semi-standard conformant, exceptions are +dnl not used but STL is. + +dnl 'make -f Makefile startup' will generate the configure file from +dnl configure.in correctly and can be run at any time + +AC_PREREQ(2.50) +AC_INIT(configure.in) +AC_CONFIG_AUX_DIR(buildlib) +AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in) + +dnl -- SET THIS TO THE RELEASE VERSION -- +AC_DEFINE_UNQUOTED(VERSION,"0.6.46.4-0.1") +PACKAGE="apt" +AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE") +AC_SUBST(PACKAGE) + +dnl Check the archs, we want the target type. +AC_CANONICAL_SYSTEM + +dnl Check our C compiler +AC_CHECK_TOOL_PREFIX +AC_PROG_CC +AC_ISC_POSIX + +dnl Check for other programs +AC_PROG_CXX +AC_PROG_CPP +AC_PROG_RANLIB +AC_CHECK_TOOL(AR,ar,"ar") + +dnl Checks for sockets +SAVE_LIBS="$LIBS" +LIBS="" +AC_SEARCH_LIBS(gethostbyname,nsl) +AC_SEARCH_LIBS(connect,socket) +SOCKETLIBS="$LIBS" +AC_SUBST(SOCKETLIBS) +LIBS="$SAVE_LIBS" + +dnl Checks for pthread -- disabled due to glibc bugs jgg +dnl AC_CHECK_LIB(pthread, pthread_create,[AC_DEFINE(HAVE_PTHREAD) PTHREADLIB="-lpthread"]) +AC_SUBST(PTHREADLIB) +dnl if test "$PTHREADLIB" != "-lpthread"; then +dnl AC_MSG_ERROR(failed: I need posix threads, pthread) +dnl fi + +dnl Check for BDB +saveLIBS="$LIBS" +LIBS="$LIBS -ldb" + +AC_CHECK_HEADER(db.h, + [AC_MSG_CHECKING(if we can link against BerkeleyDB) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [#include ], + [int r, s, t; db_version(&r, &s, &t);] + )], + [AC_DEFINE(HAVE_BDB) + BDBLIB="-ldb" + AC_MSG_RESULT(yes)], + [BDBLIB="" + AC_MSG_RESULT(no)] + )] +) + +LIBS="$saveLIBS" + +AC_SUBST(BDBLIB) + +dnl Converts the ARCH to be something singular for this general CPU family +dnl This is often the dpkg architecture string. +AC_MSG_CHECKING(system architecture) +archset="`awk \" ! /^#|^\\\$/ { if(match(\\\"$target_cpu\\\",\\\"^\\\"\\\$1\\\"\\\$\\\")) {print \\\$2; exit}}\" $srcdir/buildlib/archtable`" +if test "x$archset" = "x"; then + AC_MSG_ERROR(failed: use --host= or check buildlib/archtable) +fi +AC_MSG_RESULT($archset) +AC_DEFINE_UNQUOTED(COMMON_CPU,"$archset") + +dnl Get a common name for the host OS - this is primarily only for HURD and is +dnl non fatal if it fails +AC_MSG_CHECKING(system OS) +osset="`awk \" ! /^#|^\\\$/ {if (match(\\\"$target_vendor-$target_os\\\",\\\$1)) {print \\\$2; exit}}\" $srcdir/buildlib/ostable`" +AC_MSG_RESULT($osset) +AC_DEFINE_UNQUOTED(COMMON_OS,"$osset") + +dnl We use C99 types if at all possible +AC_CACHE_CHECK([for C99 integer types],c9x_ints,[ + AC_TRY_COMPILE([#include ], + [uint8_t Foo1;uint16_t Foo2;uint32_t Foo3;], + c9x_ints=yes,c9x_ints=no)]) + +dnl Single Unix Spec statvfs +AC_CHECK_FUNC(statvfs,[HAVE_STATVFS=yes]) +AC_SUBST(HAVE_STATVFS) + +dnl Arg, linux and bsd put their statfs function in different places +if test x"$HAVE_STATVFS" != x"yes"; then + AC_EGREP_HEADER(statfs,sys/vfs.h,[AC_DEFINE(HAVE_VFS_H)],[ + AC_EGREP_HEADER(statfs,sys/mount.h,[AC_DEFINE(HAVE_MOUNT_H)],[AC_MSG_ERROR(failed: Need statvfs)]) + ]) +fi + +dnl We should use the real timegm function if we have it. +AC_CHECK_FUNC(timegm,AC_DEFINE(HAVE_TIMEGM)) +AC_SUBST(HAVE_TIMEGM) + +dnl Check the sizes etc. of the architecture +dnl This is stupid, it should just use the AC macros like it does below +dnl Cross compilers can either get a real C library or preload the cache +dnl with their size values. +changequote(,) +archline="`awk \" ! /^#|^\\\$/ {if (match(\\\"$archset\\\",\\\$1)) {print; exit}}\" $srcdir/buildlib/sizetable | cut -f 2- -d ' '`" +if test "x$archline" != "x"; then + changequote([,]) + set $archline + if test "$1" = "little"; then + ac_cv_c_bigendian=no + else + ac_cv_c_bigendian=yes + fi + size_char=$2 + size_int=$3 + size_short=$4 + size_long=$5 +fi + +dnl I wonder what AC_C_BIGENDIAN does if you cross compile... +dnl This is probably bogus, as above we only care if we have to build our own +dnl C9x types. +if test "$cross_compiling" = "yes" -a "x$archline" = "x"; then + AC_MSG_ERROR(When cross compiling, architecture must be present in sizetable) +fi +AC_C_BIGENDIAN + +dnl We do not need this if we have inttypes! +HAVE_C9X=yes +if test x"$c9x_ints" = x"no"; then + AC_CHECK_SIZEOF(char,$size_char) + AC_CHECK_SIZEOF(int,$size_int) + AC_CHECK_SIZEOF(short,$size_short) + AC_CHECK_SIZEOF(long,$size_long) + + HAVE_C9X= + AC_SUBST(HAVE_C9X) +fi + +dnl HP-UX sux.. +AC_MSG_CHECKING(for missing socklen_t) +AC_EGREP_HEADER(socklen_t, sys/socket.h,[AC_MSG_RESULT(no)],[ + AC_DEFINE(NEED_SOCKLEN_T_DEFINE) + NEED_SOCKLEN_T_DEFINE=yes + AC_MSG_RESULT(missing.)]) +AC_SUBST(NEED_SOCKLEN_T_DEFINE) + +dnl HP-UX needs -d_XOPEN_SOURCE_EXTENDED for h_errno +AC_MSG_CHECKING(for h_errno) +AC_EGREP_HEADER(h_errno, netdb.h, [AC_MSG_RESULT(normal)], + [CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED" + AC_EGREP_HEADER(h_errno, netdb.h, + [AC_MSG_RESULT(needs _XOPEN_SOURCE_EXTENDED)], + [AC_MSG_ERROR("not found.")]) + ]) + +dnl Check for debiandoc +AC_PATH_PROG(DEBIANDOC_HTML,debiandoc2html) +AC_PATH_PROG(DEBIANDOC_TEXT,debiandoc2text) + +dnl Check for the SGML tools needed to build man pages +AC_PATH_PROG(DOCBOOK2MAN,docbook2man) + +dnl Check for the XML tools needed to build man pages +AC_PATH_PROG(XMLTO,xmlto) + +dnl Check for YODL +dnl AC_CHECK_PROG(YODL_MAN,yodl2man,"yes","") + +ah_NUM_PROCS +rc_GLIBC_VER +rc_LIBSTDCPP_VER +ah_GCC3DEP + +dnl It used to be that the user could select translations and that could get +dnl passed to the makefiles, but now that can only work if you use special +dnl gettext approved makefiles, so this feature is unsupported by this. +ALL_LINGUAS="bg bs ca cs cy da de dz el en_GB es eu fi fr gl hu it ja ko ku nb nl nn pl pt_BR pt ro ru sk sl sv tl vi zn_CN zh_TW" +AM_GNU_GETTEXT(external) +if test x"$USE_NLS" = "xyes"; then + AC_DEFINE(USE_NLS) +fi +AC_SUBST(USE_NLS) +AC_PATH_PROG(BASH, bash) + +AC_OUTPUT(environment.mak:buildlib/environment.mak.in makefile:buildlib/makefile.in,make -s dirs) diff --git a/debian/.cvsignore b/debian/.cvsignore new file mode 100644 index 0000000..d9f9836 --- /dev/null +++ b/debian/.cvsignore @@ -0,0 +1,13 @@ +copyright +apt +apt-doc +apt-utils +apt-utils.substvars +apt.substvars +files +libapt-pkg-dev +libapt-pkg-doc +shlibs.local +shlibs.local.apt +shlibs.local.apt-utils +*.debhelper diff --git a/debian/NEWS.Debian b/debian/NEWS.Debian new file mode 100644 index 0000000..f44d196 --- /dev/null +++ b/debian/NEWS.Debian @@ -0,0 +1,18 @@ +apt (0.6.44) unstable; urgency=low + + * apt-ftparchive --db now uses Berkeley DB_BTREE instead of DB_HASH. + If you use a database created by an older version of apt, delete + it and allow it to be recreated the next time. + + -- Michael Vogt Wed, 26 Apr 2006 12:57:53 +0200 + +apt (0.5.25) unstable; urgency=low + + * apt-ftparchive --db now uses Berkeley DB version 4.2. If used with a + database created by an older version of apt, an attempt will be made + to upgrade the database, but this may not work in all cases. If your + database is not automatically upgraded, delete it and allow it to be + recreated the next time. + + -- Matt Zimmerman Sat, 8 May 2004 12:38:07 -0700 + diff --git a/debian/apt-doc.doc-base.guide b/debian/apt-doc.doc-base.guide new file mode 100644 index 0000000..bce689a --- /dev/null +++ b/debian/apt-doc.doc-base.guide @@ -0,0 +1,13 @@ +Document: apt-user-guide +Title: APT User's Guide +Author: Jason Gunthorpe +Abstract: The APT User's Guide provides an overview of how to use the the + APT package manager, and provides a detailed look at the apt-get tool. +Section: Debian + +Format: html +Index: /usr/share/doc/apt-doc/guide.html/index.html +Files: /usr/share/doc/apt-doc/guide.html/*.html + +Format: text +Files: /usr/share/doc/apt-doc/guide.text.gz diff --git a/debian/apt-doc.doc-base.offline b/debian/apt-doc.doc-base.offline new file mode 100644 index 0000000..f67ec73 --- /dev/null +++ b/debian/apt-doc.doc-base.offline @@ -0,0 +1,13 @@ +Document: apt-offline-usage-guide +Title: APT Offline Usage Guide +Author: Jason Gunthorpe +Abstract: The APT Offline Usage Guide provides detailed instructions and + examples of how to use APT on an unconnected computer. +Section: Debian + +Format: html +Index: /usr/share/doc/apt-doc/offline.html/index.html +Files: /usr/share/doc/apt-doc/offline.html/*.html + +Format: text +Files: /usr/share/doc/apt-doc/offline.text.gz diff --git a/debian/apt-doc.docs b/debian/apt-doc.docs new file mode 100644 index 0000000..a7507f4 --- /dev/null +++ b/debian/apt-doc.docs @@ -0,0 +1 @@ +README.progress-reporting \ No newline at end of file diff --git a/debian/apt-utils.dirs b/debian/apt-utils.dirs new file mode 100644 index 0000000..14f5b95 --- /dev/null +++ b/debian/apt-utils.dirs @@ -0,0 +1,2 @@ +usr/lib +usr/bin diff --git a/debian/apt-utils.examples b/debian/apt-utils.examples new file mode 100644 index 0000000..25aadf9 --- /dev/null +++ b/debian/apt-utils.examples @@ -0,0 +1 @@ +doc/examples/apt-ftparchive.conf \ No newline at end of file diff --git a/debian/apt-utils.manpages b/debian/apt-utils.manpages new file mode 100644 index 0000000..a68e909 --- /dev/null +++ b/debian/apt-utils.manpages @@ -0,0 +1,6 @@ +doc/apt-extracttemplates.1 +doc/apt-ftparchive.1 +doc/apt-sortpkgs.1 +doc/fr/apt-extracttemplates.fr.1 +doc/fr/apt-ftparchive.fr.1 +doc/fr/apt-sortpkgs.fr.1 diff --git a/debian/apt.cron.daily b/debian/apt.cron.daily new file mode 100644 index 0000000..26dfa25 --- /dev/null +++ b/debian/apt.cron.daily @@ -0,0 +1,186 @@ +#!/bin/sh +# + +#set -e +# +# This file understands the following apt configuration variables: +# +# "APT::Periodic::Update-Package-Lists=1" +# - Do "apt-get update" automatically every n-days (0=disable) +# +# "APT::Periodic::Download-Upgradeable-Packages=0", +# - Do "apt-get upgrade --download-only" every n-days (0=disable) +# +# "APT::Periodic::AutocleanInterval" +# - Do "apt-get autoclean" every n-days (0=disable) +# +# "APT::Archives::MaxAge", +# - Set maximum allowed age of a cache package file. If a cache +# package file is older it is deleted (0=disable) +# +# "APT::Archives::MaxSize", +# - Set maximum size of the cache in MB (0=disable). If the cache +# is bigger, cached package files are deleted until the size +# requirement is met (the biggest packages will be deleted +# first). +# +# "APT::Archives::MinAge" +# - Set minimum age of a package file. If a file is younger it +# will not be deleted (0=disable). Usefull to prevent races +# and to keep backups of the packages for emergency. +# + +check_stamp() +{ + stamp="$1" + interval="$2" + + if [ $interval -eq 0 ]; then + return 1 + fi + + if [ ! -f $stamp ]; then + return 0 + fi + + # compare midnight today to midnight the day the stamp was updated + stamp=$(date --date=$(date -r $stamp --iso-8601) +%s) + now=$(date --date=$(date --iso-8601) +%s) + delta=$(($now-$stamp)) + + # intervall is in days, + interval=$(($interval*60*60*24)) + #echo "stampfile: $1" + #echo "interval=$interval, now=$now, stamp=$stamp, delta=$delta" + + if [ $delta -ge $interval ]; then + return 0 + fi + + return 1 +} + +update_stamp() +{ + stamp="$1" + + touch $stamp +} + + + +# we check here if autoclean was enough sizewise +check_size_constraints() +{ + # min-age in days + MaxAge=0 + MinAge=2 + MaxSize=0 + CacheDir="var/cache/apt" + CacheArchive="archives/" + eval $(apt-config shell MaxAge APT::Archives::MaxAge) + eval $(apt-config shell MinAge APT::Archives::MinAge) + eval $(apt-config shell MaxSize APT::Archives::MaxSize) + eval $(apt-config shell Dir Dir) + eval $(apt-config shell CacheDir Dir::Cache) + eval $(apt-config shell CacheArchive Dir::Cache::archives) + + # sanity check + if [ -z "$CacheDir" -o -z "$CacheArchive" ]; then + echo "empty Dir::Cache or Dir::Cache::archives, exiting" + exit + fi + + Cache="${Dir%/}/${CacheDir%/}/${CacheArchive%/}/" + + # check age + if [ ! $MaxAge -eq 0 ] && [ ! $MinAge -eq 0 ]; then + find $Cache -name "*.deb" \( -mtime +$MaxAge -and -ctime +$MaxAge \) -and -not \( -mtime -$MinAge -or -ctime -$MinAge \) -print0 | xargs -r -0 rm -f + elif [ ! $MaxAge -eq 0 ]; then + find $Cache -name "*.deb" -ctime +$MaxAge -and -mtime +$MaxAge -print0 | xargs -r -0 rm -f + fi + + # check size + if [ ! $MaxSize -eq 0 ]; then + # maxSize is in MB + MaxSize=$(($MaxSize*1024)) + + #get current time + now=$(date --date=$(date --iso-8601) +%s) + MinAge=$(($MinAge*24*60*60)) + + # reverse-sort by mtime + for file in $(ls -rt $Cache/*.deb 2>/dev/null); do + du=$(du -s $Cache) + size=${du%%/*} + # check if the cache is small enough + if [ $size -lt $MaxSize ]; then + break + fi + + # check for MinAge of the file + if [ ! $MinAge -eq 0 ]; then + # check both ctime and mtime + mtime=$(stat -c %Y $file) + ctime=$(stat -c %Z $file) + if [ $mtime -gt $ctime ]; then + delta=$(($now-$mtime)) + else + delta=$(($now-$ctime)) + fi + #echo "$file ($delta), $MinAge" + if [ $delta -le $MinAge ]; then + #echo "Skiping $file (delta=$delta)" + break + fi + fi + + # delete oldest file + rm -f $file + done + fi +} + + +UpdateInterval=0 +DownloadUpgradeableInterval=0 +eval $(apt-config shell UpdateInterval APT::Periodic::Update-Package-Lists DownloadUpgradeableInterval APT::Periodic::Download-Upgradeable-Packages) +AutocleanInterval=$DownloadUpgradeableInterval +eval $(apt-config shell AutocleanInterval APT::Periodic::Autoclean) + +# laptop check, on_ac_power returns: +# 0 (true) System is on mains power +# 1 (false) System is not on mains power +# 255 (false) Power status could not be determined +# Desktop systems always return 255 it seems +if which on_ac_power >/dev/null; then + on_ac_power + if [ $? -eq 1 ]; then + exit 0 + fi +fi + +UPDATE_STAMP=/var/lib/apt/periodic/update-stamp +if check_stamp $UPDATE_STAMP $UpdateInterval; then + if apt-get -qq update 2>/dev/null; then + if which dbus-send >/dev/null; then + dbus-send --system / app.apt.dbus.updated boolean:true + fi + update_stamp $UPDATE_STAMP + fi +fi + +DOWNLOAD_UPGRADEABLE_STAMP=/var/lib/apt/periodic/download-upgradeable-stamp +if check_stamp $DOWNLOAD_UPGRADEABLE_STAMP $DownloadUpgradeableInterval; then + apt-get -qq -d dist-upgrade 2>/dev/null + update_stamp $DOWNLOAD_UPGRADEABLE_STAMP +fi + +AUTOCLEAN_STAMP=/var/lib/apt/periodic/autoclean-stamp +if check_stamp $AUTOCLEAN_STAMP $AutocleanInterval; then + apt-get -qq autoclean + update_stamp $AUTOCLEAN_STAMP +fi + +# check cache size +check_size_constraints diff --git a/debian/apt.dirs b/debian/apt.dirs new file mode 100644 index 0000000..e1cb738 --- /dev/null +++ b/debian/apt.dirs @@ -0,0 +1,9 @@ +usr/bin +usr/lib/apt/methods +usr/lib/dpkg/methods/apt +etc/apt +etc/apt/sources.list.d +var/cache/apt/archives/partial +var/lib/apt/lists/partial +var/lib/apt/periodic +usr/share/bug/apt diff --git a/debian/apt.examples b/debian/apt.examples new file mode 100644 index 0000000..e69de29 diff --git a/debian/apt.manpages b/debian/apt.manpages new file mode 100644 index 0000000..b52ea3d --- /dev/null +++ b/debian/apt.manpages @@ -0,0 +1,32 @@ +doc/apt-cache.8 +doc/apt-cdrom.8 +doc/apt-config.8 +doc/apt-get.8 +doc/apt-key.8 +doc/apt-secure.8 +doc/apt.8 +doc/apt.conf.5 +doc/apt_preferences.5 +doc/fr/apt-cache.fr.8 +doc/fr/apt-cdrom.fr.8 +doc/fr/apt-config.fr.8 +doc/fr/apt-get.fr.8 +doc/fr/apt-key.fr.8 +doc/fr/apt.conf.fr.5 +doc/fr/apt_preferences.fr.5 +doc/fr/sources.list.fr.5 +doc/es/apt-cache.es.8 +doc/es/apt-cdrom.es.8 +doc/es/apt-config.es.8 +doc/es/apt-get.es.8 +doc/es/apt.conf.es.5 +doc/es/apt_preferences.es.5 +doc/es/sources.list.es.5 +doc/es/apt.es.8 +doc/pt_BR/apt_preferences.pt_BR.5 +doc/ja/apt-cache.ja.8 +doc/ja/apt-cdrom.ja.8 +doc/ja/apt-get.ja.8 +doc/ja/apt.conf.ja.5 +doc/sources.list.5 +doc/de/apt.de.8 diff --git a/debian/apt.postinst b/debian/apt.postinst new file mode 100644 index 0000000..88fb932 --- /dev/null +++ b/debian/apt.postinst @@ -0,0 +1,44 @@ +#! /bin/sh + +set -e + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + +case "$1" in + configure) + + if ! test -f /etc/apt/trusted.gpg; then + cp /usr/share/apt/debian-archive.gpg /etc/apt/trusted.gpg + fi + + apt-key update + + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + diff --git a/debian/bugscript b/debian/bugscript new file mode 100755 index 0000000..f5ec9e0 --- /dev/null +++ b/debian/bugscript @@ -0,0 +1,33 @@ +#!/bin/bash -e + +# reportbug #169495 +if [ -z "$YESNO" ]; then + YESNO=$"yYnN" +fi + +cat <&3 + apt-config dump >&3 2>&1 +fi + +for config in /etc/apt/preferences /etc/apt/sources.list; do + if [ -f $config ]; then + yesno "May I include your $config configuration file? [Y/n] " yep + if [ "$REPLY" = "yep" ]; then + echo -e "\n-- $config --\n" >&3 + cat $config >&3 + else + echo -e "\n-- ($config present, but not submitted) --\n" >&3 + fi + else + echo -e "\n-- (no $config present) --\n" >&3 + fi +done diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..9adaa34 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,2376 @@ +apt (0.6.46.4-0.1) unstable; urgency=emergency + + * NMU + * Fix broken use of awk in apt-key that caused removal of the wrong keys + from the keyring. Closes: #412572 + + -- Joey Hess Mon, 26 Feb 2007 16:00:22 -0500 + +apt (0.6.46.4) unstable; urgency=high + + * ack NMU (closes: #401017) + * added apt-secure.8 to "See also" section + * apt-pkg/deb/dpkgpm.cc: + - added "Dpkg::StopOnError" variable that controls if apt + will abort on errors from dpkg + * apt-pkg/deb/debsrcrecords.{cc,h}: + - make the Buffer grow dynmaically (closes: #400874) + * Merged from Christian Perrier bzr branch: + - uk.po: New Ukrainian translation: 483t28f3u + - el.po: Update to 503t9f2u + - de.po: Updates and corrections. + * apt-pkg/contrib/progress.cc: + - OpProgress::CheckChange optimized, thanks to Paul Brook + (closes: #398381) + * apt-pkg/contrib/sha256.cc: + - fix building with noopt + + -- Michael Vogt Thu, 7 Dec 2006 10:49:50 +0100 + +apt (0.6.46.3-0.2) unstable; urgency=high + + * Non-maintainer upload with permission of Michael Vogt. + * Fix FTBFS on most arches (regression from the fix of #400874) + + -- Andreas Barth Tue, 5 Dec 2006 15:51:22 +0000 + +apt (0.6.46.3-0.1) unstable; urgency=high + + * Non-maintainer upload with permission of Michael Vogt. + * Fix segfault at apt-get source. Closes: #400874 + * Add apt-key update in postinst, so that debian-archive-keyring doesn't + need to depend on apt >= 0.6. Closes: #401114 + * Don't double-queue pdiff files. Closes: #401017 + + -- Andreas Barth Tue, 5 Dec 2006 10:34:56 +0000 + +apt (0.6.46.3) unstable; urgency=low + + * apt-pkg/deb/dpkgpm.cc: + - make progress reporting robust against multiline error + messages + + * Merged from Christian Perrier bzr branch: + - ca.po: Updated to 514t + - be.po: Updated to 514t + - it.po: Updated to 514t + - hu.po: Updated to 514t + - zh_TW.po: Updated to 514t + - ar.po: Updated to 293t221u. + - ru.po: Updated to 514t. Closes: #392466 + - nb.po: Updated to 514t. Closes: #392466 + - pt.po: Updated to 514t. Closes: #393199 + - fr.po: One spelling error corrected: s/accèder/accéder + - km.po: Updated to 514t. + - ko.po: Updated to 514t. + - bg.po: Updated to 514t. + - de.po: Updated to 514t. + - en_GB.po: Updated to 514t. + + -- Michael Vogt Thu, 2 Nov 2006 11:37:58 +0100 + +apt (0.6.46.2) unstable; urgency=low + + * debian/control: + - depend on debian-archive-keyring to offer clean upgrade path + (closes: #386800) + * Merged from Christian Perrier bzr branch: + - es.po: Updated to 514t. Closes: #391661 + - da.po: Updated to 514t. Closes: #391424 + - cs.po: Updated. Closes: #391064 + - es.po: Updated to 514t. Closes: #391661 + - da.po: Updated to 514t. Closes: #391424 + + -- Michael Vogt Wed, 11 Oct 2006 09:03:15 +0200 + +apt (0.6.46.1) unstable; urgency=low + + * methods/gzip.cc: + - deal with empty files + * Applied patch from Daniel Schepler to make apt bin-NMU able. + (closes: bug#359634) + * rebuild against current g++ because of: + http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29289 + (closes: #390189) + * fix broken i18n in the dpkg progress reporting, thanks to + Frans Pop and Steinar Gunderson. (closes: #389261) + * Merged from Christian Perrier bzr branch: + * fi.po: Updated to 514t. Closes: #390149 + * eu.po: Updated to 514t. Closes: #389725 + * vi.po: Updated to 514t. Closes: #388555 + * make the internal buffer in pkgTagFile grow dynamically + (closes: #388708) + + -- Michael Vogt Mon, 2 Oct 2006 20:42:20 +0200 + +apt (0.6.46) unstable; urgency=low + + * debian/control: + - switched to libdb4.4 for building (closes: #381019) + * cmdline/apt-get.cc: + - show only the recommends/suggests for the candidate-version, not for all + versions of the package (closes: #257054) + - properly handle recommends/suggests or-groups when printing the list of + suggested/recommends packages (closes: #311619) + * methods/http.cc: + - check more careful for incorrect proxy settings (closes: #378868) + * methods/gzip.cc: + - don't hang when /var is full (closes: #341537), thanks to + Luis Rodrigo Gallardo Cruz for the patch + * doc/examples/sources.list: + - removed non-us.debian.org from the example (closes: #380030,#316196) + * Merged from Christian Perrier bzr branch: + * ro.po: Updated to 514t. Closes: #388402 + * dz.po: Updated to 514t. Closes: #388184 + * it.po: Fixed typos. Closes: #387812 + * ku.po: New kurdish translation. Closes: #387766 + * sk.po: Updated to 514t. Closes: #386851 + * ja.po: Updated to 514t. Closes: #386537 + * gl.po: Updated to 514t. Closes: #386397 + * fr.po: Updated to 516t. + * fi.po: Updated to 512t. Closes: #382702 + * share/archive-archive.gpg: + - removed the outdated amd64 and debian-2004 keys + * apt-pkg/tagfile.cc: + - applied patch from Jeroen van Wolffelaar to make the tags + caseinsensitive (closes: #384182) + - reverted MMap use in the tagfile because it does not work + across pipes (closes: #383487) + + -- Michael Vogt Thu, 21 Sep 2006 10:25:03 +0200 + +apt (0.6.45) unstable; urgency=low + + * apt-pkg/contrib/sha256.cc: + - fixed the sha256 generation (closes: #378183) + * ftparchive/cachedb.cc: + - applied patch from Anthony Towns to fix Clean() function + (closes: #379576) + * doc/apt-get.8.xml: + - fix path to the apt user build (Closes: #375640) + * doc/apt-cache.8.xml: + - typo (Closes: #376408) + * apt-pkg/deb/dpkgpm.cc: + - make progress reporting more robust against multiline error + messages (first half of a fix for #374195) + * doc/examples/configure-index: + - document Debug::pkgAcquire::Auth + * methods/gpgv.cc: + - deal with gpg error "NODATA". Closes: #296103, Thanks to + Luis Rodrigo Gallardo Cruz for the patch + * apt-inst/contrib/extracttar.cc: + - fix for string mangling, closes: #373864 + * apt-pkg/acquire-item.cc: + - check for bzip2 in /bin (closes: #377391) + * apt-pkg/tagfile.cc: + - make it work on non-mapable files again, thanks + to James Troup for confirming the fix (closes: #376777) + * Merged from Christian Perrier bzr branch: + * ko.po: Updated to 512t. Closes: #378901 + * hu.po: Updated to 512t. Closes: #376330 + * km.po: New Khmer translation: 506t6f. Closes: #375068 + * ne.po: New Nepali translation: 512t. Closes: #373729 + * vi.po: Updated to 512t. Closes: #368038 + * zh_TW.po: Remove an extra %s in one string. Closes: #370551 + * dz.po: New Dzongkha translation: 512t + * ro.po: Updated to 512t + * eu.po: Updated + + -- Michael Vogt Thu, 27 Jul 2006 00:52:05 +0200 + +apt (0.6.44.2) unstable; urgency=low + + * apt-pkg/depcache.cc: + - added Debug::pkgDepCache::AutoInstall (thanks to infinity) + * apt-pkg/acquire-item.cc: + - fix missing chmod() in the new aquire code + (thanks to Bastian Blank, Closes: #367425) + * merged from + http://www.perrier.eu.org/debian/packages/d-i/level4/apt-main: + * sk.po: Completed to 512t + * eu.po: Completed to 512t + * fr.po: Completed to 512t + * sv.po: Completed to 512t + * Update all PO and the POT. Gives 506t6f for formerly + complete translations + + -- Michael Vogt Wed, 14 Jun 2006 12:00:57 +0200 + +apt (0.6.44.1-0.1) unstable; urgency=low + + * Non-maintainer upload. + * Don't give an error when parsing empty Packages/Sources files. + (Closes: #366931, #367086, #370160) + + -- Steinar H. Gunderson Fri, 9 Jun 2006 00:52:21 +0200 + +apt (0.6.44.1) unstable; urgency=low + + * apt-pkg/acquire-item.cc: + - fix reversed logic of the "Acquire::PDiffs" option + * merged from + http://www.perrier.eu.org/debian/packages/d-i/level4/apt-main: + - po/LINGUAS: added "bg" Closes: #360262 + - po/gl.po: Galician translation update. Closes: #366849 + - po/hu.po: Hungarian translation update. Closes: #365448 + - po/cs.po: Czech translation updated. Closes: #367244 + * apt-pkg/contrib/sha256.cc: + - applied patch to fix unaligned access problem. Closes: #367417 + (thanks to David Mosberger) + + -- Michael Vogt Tue, 16 May 2006 21:51:16 +0200 + +apt (0.6.44) unstable; urgency=low + + * apt-pkg/acquire.cc: don't show ETA if it is 0 or absurdely large + * apt-pkg/contrib/sha256.{cc,h},hashes.{cc,h}: support for sha256 + (thanks to Anthony Towns) + * ftparchive/cachedb.{cc,h},writer.{cc,h}: optimizations + (thanks to Anthony Towns) + * apt pdiff support from experimental merged + * apt-pkg/deb/dpkgpm.cc: wording fixes (thanks to Matt Zimmerman) + * apt-pkg/deb/dpkgpm.cc: + - wording fixes (thanks to Matt Zimmerman) + - fix error in dpkg interaction (closes: #364513, thanks to Martin Dickopp) + * apt-pkg/tagfile.{cc,h}: + - use MMap to read the entries (thanks to Zephaniah E. Hull for the + patch) Closes: #350025 + * Merge from http://www.perrier.eu.org/debian/packages/d-i/level4/apt-main: + * bg.po: Added, complete to 512t. Closes: #360262 + * doc/apt-ftparchive.1.xml: + - fix documentation for "SrcPackages" -> "Sources" + (thanks to Bart Martens for the patch, closes: #307756) + * debian/libapt-pkg-doc.doc-base.cache: + - remove broken charackter from description (closes: #361129) + * apt-inst/deb/dpkgdb.cc, methods/gpgv.cc: + - i18n fixes (closes: #349298) + * debian/postinst: dont fail on not available + /usr/share/doc/apt/examples/sources.list (closes: #361130) + * methods/ftp.cc: + - unlink empty file in partial if the download failed because + the file is missing on the server (closes: #316337) + * apt-pkg/deb/debversion.cc: + - treats a version string with explicit zero epoch equal + than the same without epoch (Policy 5.6.12, closes: #363358) + Thanks to Lionel Elie Mamane for the patch + + -- Michael Vogt Mon, 8 May 2006 22:28:53 +0200 + +apt (0.6.43.3) unstable; urgency=low + + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-186: + * ca.po: Completed to 512t. Closes: #351592 + * eu.po: Completed to 512t. Closes: #350483 + * ja.po: Completed to 512t. Closes: #349806 + * pl.po: Completed to 512t. Closes: #349514 + * sk.po: Completed to 512t. Closes: #349474 + * gl.po: Completed to 512 strings Closes: #349407 + * sv.po: Completed to 512 strings Closes: #349210 + * ru.po: Completed to 512 strings Closes: #349154 + * da.po: Completed to 512 strings Closes: #349084 + * fr.po: Completed to 512 strings + * vi.po: Completed to 511 strings Closes: #348968 + * zh_CN.po: Completed to 512t. Closes: #353936 + * it.po: Completed to 512t. Closes: #352803 + * pt_BR.po: Completed to 512t. Closes: #352419 + * LINGUAS: Add Welsh + * *.po: Updated from sources (512 strings) + * apt-pkg/deb/deblistparser.cc: + - don't explode on a DepCompareOp in a Provides line, but warn about + it and ignore it otherwise (thanks to James Troup for reporting it) + * cmdline/apt-get.cc: + - don't lock the lists directory in DoInstall, breaks --print-uri + (thanks to James Troup for reporting it) + * debian/apt.dirs: create /etc/apt/sources.list.d + * make apt-cache madison work without deb-src entries (#352583) + * cmdline/apt-get.cc: only run the list-cleaner if a update was + successfull + + -- Michael Vogt Wed, 22 Feb 2006 10:13:04 +0100 + +apt (0.6.43.2) unstable; urgency=low + + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-166: + - en_GB.po, de.po: fix spaces errors in "Ign " translations Closes: #347258 + - makefile: make update-po a pre-requisite of clean target so + that POT and PO files are always up-to-date + - sv.po: Completed to 511t. Closes: #346450 + - sk.po: Completed to 511t. Closes: #346369 + - fr.po: Completed to 511t + - *.po: Updated from sources (511 strings) + - el.po: Completed to 511 strings Closes: #344642 + - da.po: Completed to 511 strings Closes: #348574 + - es.po: Updated to 510t1f Closes: #348158 + - gl.po: Completed to 511 strings Closes: #347729 + - it.po: Yet another update Closes: #347435 + * added debian-archive-keyring to the Recommends (closes: #347970) + * fixed message in apt-key to install debian-archive-keyring + * typos fixed in apt-cache.8 (closes: #348348, #347349) + * add patch to fix http download corruption problem (thanks to + Petr Vandrovec, closes: #280844, #290694) + + -- Michael Vogt Thu, 19 Jan 2006 00:06:33 +0100 + +apt (0.6.43.1) unstable; urgency=low + + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-148: + * fr.po: Completed to 510 strings + * it.po: Completed to 510t + * en_GB.po: Completed to 510t + * cs.po: Completed to 510t + * zh_CN.po: Completed to 510t + * el.po: Updated to 510t + * vi.po: Updated to 383t93f34u + * tl.po: Completed to 510 strings (Closes: #344306) + * sv.po: Completed to 510 strings (Closes: #344056) + * LINGUAS: disabled Hebrew translation. (Closes: #313283) + * eu.po: Completed to 510 strings (Closes: #342091) + * apt-get source won't download already downloaded files again + (closes: #79277) + * share/debian-archive.gpg: new 2006 ftp-archive signing key added + (#345891) + * redownload the Release file if IMS-Hit and gpg failure + * deal with multiple signatures on a Release file + + -- Michael Vogt Fri, 6 Jan 2006 01:17:08 +0100 + +apt (0.6.43) unstable; urgency=medium + + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-132: + * zh_CN.po: Completed to 510 strings(Closes: #338267) + * gl.po: Completed to 510 strings (Closes: #338356) + * added support for "/etc/apt/sources.list.d" directory + (closes: #66325) + * make pkgDirStream (a bit) more complete + * fix bug in pkgCache::VerIterator::end() (thanks to Daniel Burrows) + (closes: #339533) + * pkgAcqFile is more flexible now (closes: #57091) + * support a download rate limit for http (closes: #146877) + * included lots of the speedup changes from #319377 + * add stdint.h to contrib/md5.h (closes: #340448) + * ABI change, library name changed (closes: #339147) + * Fix GNU/kFreeBSD crash on non-existing server file (closes: #317718) + * switch to libdb4.3 in build-depends + + -- Michael Vogt Tue, 29 Nov 2005 00:17:07 +0100 + +apt (0.6.42.3) unstable; urgency=low + + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-129: + - patch-118: Russian translation update by Yuri Kozlov (closes: #335164) + - patch-119: add update-po as a pre-req for binary (closes: #329910) + - patch-121: Complete French translation + - patch-125: Fixed localization of y/n questions in German translation + (closes: #337078) + - patch-126: Swedish translation update (closes: #337163) + - patch-127: Complete Tagalog translation (closes: #337306) + - patch-128: Danish translation update (closes: #337949) + - patch-129: Basque translation update (closes: #338101) + * cmdline/apt-get.cc: + - bufix in FindSrc (closes: #335213, #337910) + * added armeb to archtable (closes: #333599) + * with --allow-unauthenticated use the old fallback behaviour for + sources (closes: #335112) + + -- Michael Vogt Wed, 9 Nov 2005 07:22:31 +0100 + +apt (0.6.42.2) unstable; urgency=high + + * NMU (approved by maintainer) + * Add AMD64 archive signing key to debian-archive.gpg (closes: #336500). + * Add big-endian arm (armeb) support (closes: #333599). + * Priority high to get the AMD key into testing ASAP. + + -- Frans Pop Sun, 30 Oct 2005 21:29:11 +0100 + +apt (0.6.42.1) unstable; urgency=low + + * fix a incorrect example in the apt_prefrences man page + (thanks to Filipus Klutiero, closes: #282918) + * apt-pkg/pkgrecords.cc: + - revert patch from last version, it causes trouble on alpha + and ia64 (closes: #335102, #335103) + * cmdline/apt-get.cc: + - be extra carefull in FindSrc (closes: #335213) + + -- Michael Vogt Sat, 22 Oct 2005 23:44:35 +0200 + +apt (0.6.42) unstable; urgency=low + + * apt-pkg/cdrom.cc: + - unmount the cdrom when apt failed to locate any package files + * allow cdrom failures and fallback to other sources in that case + (closes: #44135) + * better error text when dpkg-source fails + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-115: + - patch-99: Added Galician translation + - patch-100: Completed Danish translation (Closes: #325686) + - patch-104: French translation completed + - patch-109: Italian translation completed + - patch-112: Swedish translation update + - patch-115: Basque translation completed (Closes: #333299) + * applied french man-page update (thanks to Philippe Batailler) + (closes: #316638, #327456) + * fix leak in the mmap code, thanks to Daniel Burrows for the + patch (closes: #250583) + * support for apt-get [build-dep|source] -t (closes: #152129) + * added "APT::Authentication::TrustCDROM" option to make the life + for the installer people easier (closes: #334656) + * fix crash in apt-ftparchive (thanks to Bastian Blank for the patch) + (closes: #334671) + * apt-pkg/contrib/md5.cc: + - fix a alignment problem on sparc64 that gives random bus errors + (thanks to Fabbione for providing a test-case) + * init the default ScreenWidth to 79 columns by default + (Closes: #324921) + * cmdline/apt-cdrom.cc: + - fix some missing gettext() calls (closes: #334539) + * doc/apt-cache.8.xml: fix typo (closes: #334714) + + -- Michael Vogt Wed, 19 Oct 2005 22:02:09 +0200 + +apt (0.6.41) unstable; urgency=low + + * improved the support for "error" and "conffile" reporting from + dpkg, added the format to README.progress-reporting + * added README.progress-reporting to the apt-doc package + * improved the network timeout handling, if a index file from a + sources.list times out or EAI_AGAIN is returned from getaddrinfo, + don't try to get the other files from that entry + * Support architecture-specific extra overrides + (closes: #225947). Thanks to Anthony Towns for idea and + the patch, thanks to Colin Watson for testing it. + * Javier Fernandez-Sanguino Pen~a: + - Added a first version of an apt-secure.8 manpage, and modified + apt-key and apt.end accordingly. Also added the 'update' + argument to apt-key which was previously not documented + (Closes: #322120) + * Andreas Pakulat: + - added example apt-ftparchive.conf file to doc/examples + (closes: #322483) + * Fix a incorrect example in the man-page (closes: #282918) + * Fix a bug for very long lines in the apt-cdrom code (closes: #280356) + * Fix a manual page bug (closes: #316314) + * Do md5sum checking for file and cdrom method (closes: #319142) + * Change pkgPolicy::Pin from private to protected to let subclasses + access it too (closes: #321799) + * add default constructor for PrvIterator (closes: #322267) + * Reread status configuration on debSystem::Initialize() + (needed for apt-proxy, thanks to Otavio for this patch) + + -- Michael Vogt Mon, 5 Sep 2005 22:59:03 +0200 + +apt (0.6.40.1) unstable; urgency=low + + * bugfix in the parsing code for the apt<->dpkg communication. apt + crashed when dpkg sends the same state more than once under certain + conditions + * 0.6.40 breaks the ABI but I accidentally didn't change the soname :/ + + -- Michael Vogt Fri, 5 Aug 2005 13:24:58 +0200 + +apt (0.6.40) unstable; urgency=low + + * Patch from Jordi Mallach to mark some additional strings for translation + * Updated Catalan translation from Jordi Mallach + * Merge from bubulle@debian.org--2005/apt--main--0: + - Update pot and merge with *.po + - Updated French translation, including apt-key.fr.8 + * Restore changelog entries from the 0.6.x series that went to Debian + experimental + * Merge michael.vogt@ubuntu.com--2005/apt--progress-reporting--0 + - Provide an interface for progress reporting which can be used by + (e.g.) base-config + + -- Matt Zimmerman Thu, 28 Jul 2005 11:57:32 -0700 + +apt (0.6.39) unstable; urgency=low + + * Welsh translation update: daf@muse.19inch.net--2005/apt--main--0--patch-6 + * Merge mvo's changes from 0.6.36ubuntu1: + michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-32 + * Merge aggregated translation updates: + bubulle@debian.org--2005/apt--main--0 + * Update priority of apt-utils to important, to match the override file + * Install only one keyring on each branch (Closes: #316119) + + -- Matt Zimmerman Tue, 28 Jun 2005 11:51:09 -0700 + +apt (0.6.38) unstable; urgency=low + + * Merge michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-6, a workaround + for the French man pages' failure to build + * Branch Debian and Ubuntu + - apt.postinst, apt-key: use the appropriate keyring + - debian/rules: install all keyrings + * Add the current Debian archive signing key (4F368D5D) to + debian-archive.gpg + * make pinning on the "component" work again (using the section of the + archive, we don't use per-section Release files anymore with apt-0.6) + (closes ubuntu #9935) + + -- Matt Zimmerman Sat, 25 Jun 2005 09:51:00 -0700 + +apt (0.6.37) breezy; urgency=low + + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-81 + - patch-66: Italian update + - patch-71: French update + - patch-73: Basque update + - patch-74: Hebrew update + - patch-76: Correct Hebrew translation (Closes: #306658) + - patch-77: French man page update + - patch-79: Correct syntax errors in Hebrew translation + - patch-81: Portuguese update + * Fix build of French man pages (now using XML, not SGML) + * Add Welsh translation from Dafydd Harries + (daf@muse.19inch.net--2005/apt--main--0--patch-1) + * Change debian/bugscript to use #!/bin/bash (Closes: #313402) + + -- Matt Zimmerman Tue, 24 May 2005 14:38:25 -0700 + +apt (0.6.36ubuntu1) breezy; urgency=low + + * make it possible to write a cache-control: no-cache header even if + no proxy is set to support transparent proxies (closes ubuntu: #10773) + + * Merge otavio@debian.org--2005/apt--fixes--0.6: + - Fix comment about the need of xmlto while building from Arch; + - Fix StatStore struct on cachedb.h to use time_t and then fix a compile + warning; + - Lock database at start of DoInstall routine to avoid concurrent + runs of install/remove and update commands (Closes: #194467) + - Fix warnings while compiling with GCC 4.0 compiler + + -- Michael Vogt Mon, 23 May 2005 11:57:53 +0200 + +apt (0.6.36) experimental; urgency=low + + * Merge apt--mvo--0: + - apt-pkg/acquire-item.cc: + added "Acquire::BrokenProxy" that will force apt to always + re-get the Release.gpg file (for broken proxies) + - debian/apt.cron.daily: + MinAge is defaulting to 2 days now to prevent over-aggresive removal + - apt-pkg/cdrom.cc: + honor "Acquire::gpgv::Options" when verifying the signature (Ubuntu #8496) + + -- Michael Vogt Thu, 31 Mar 2005 20:37:11 +0200 + +apt (0.6.35) hoary; urgency=low + + * Merge apt--mvo--0 (incorporates 0.6.34ubuntu1): + - Implement MaxSize and MaxAge in apt.cron.daily, to prevent the cache + from growing too large (Ubuntu #6761) + - some comments about the pkgAcqMetaSig::Custom600Headers() added + - use gpg --with-colons + - commented the ftp no_proxy unseting in methods/ftp.cc + - added support for "Acquire::gpgv::options" in methods/gpgv.cc + * Merge bubulle@debian.org--2005/apt--main--0 + - Make capitalization more consistent + - Un-fuzzy translations resulting from capitalization changes + - Italian translation update + + -- Matt Zimmerman Mon, 7 Mar 2005 20:08:33 -0800 + +apt (0.6.34) hoary; urgency=low + + * Add missing semicolon to configure-index (Closes: #295773) + * Update build-depends on gettext to 0.12 (Closes: #295077) + * Merge from bubulle@debian.org--2005/apt--main--0 to get + translation updates + + -- Matt Zimmerman Fri, 4 Mar 2005 16:13:15 -0800 + +apt (0.6.33) hoary; urgency=low + + * Merge michael.vogt@ubuntu.com--2005/apt--mvo--0 (through patch-6) + - patch-1: cosmetic changes (whitespace, "Apt::GPGV->APT::GPGV") + - patch-2: (doc) documentation for gpgv + - patch-3: (doc) new config variables added configure-index + - patch-4: pkgAcquire::Run() pulse intervall can be configured + - patch-5: fix for apt-get update removing Release.gpg files (#6865) + - patch-6: change the path scoring in apt-cdrom, prefer pathes without + symlinks + + -- Matt Zimmerman Sat, 26 Feb 2005 15:21:17 -0800 + +apt (0.6.32) hoary; urgency=low + + * Merge michael.vogt@ubuntu.com--2005/apt--mvo--0 (patch-1) + - Implement Acquire::gpgv::options (Ubuntu bug#6283) + + -- Matt Zimmerman Tue, 8 Feb 2005 19:31:15 -0800 + +apt (0.6.31) hoary; urgency=low + + * Matt Zimmerman + - Remove debugging output from apt.cron.daily (no one noticed?) + - Apply patch from Anthony Towns to allow SHA1Summation to process a file + descriptor until EOF, rather than requiring that the length of input be + specified (Closes: #291338) + - Fix build/install of Polish offline documentation, based on patch from + Christian Perrier (Closes: #270404) + * Michael Vogt + - apt-cdrom.cc seperated into frontend (cmdline/apt-cdrom.cc and library + apt-pkg/cdrom.{cc,h}) (Ubuntu #5668) + + -- Matt Zimmerman Fri, 4 Feb 2005 10:23:01 -0800 + +apt (0.6.30) unstable; urgency=low + + * Add ppc64 to buildlib/archtable + * Merge michael.vogt@canonical.com--2004/apt--status-fd--0 + - Support preserving dpkg status file descriptor, to support + better integration with synaptic + + -- Matt Zimmerman Wed, 19 Jan 2005 00:26:01 -0800 + +apt (0.6.29) hoary; urgency=low + + * Merge apt--mvo--0 (0.6.27ubuntu4) + + + -- Matt Zimmerman Tue, 28 Dec 2004 17:18:02 -0800 + +apt (0.6.28) hoary; urgency=low + + * Merge apt--mvo--0 + * Rebuild source to get rid of arch metadata and temporary files in + 0.6.27ubuntu3 + + -- Matt Zimmerman Thu, 23 Dec 2004 18:53:16 -0800 + +apt (0.6.27ubuntu4) hoary; urgency=low + + * remove old sig-file in partial/ before starting to fetch a new sig-file + (see ubuntu #4769 for the rational) + * added apt-key update method (uses ubuntu-keyring) + * documented the "--allow-unauthenticated" switch + * added DEB_BUILD_PROG_OPTS to debian/rules (additonal options can be + passed to DEB_BUILD_PROG like "-S") + + -- Michael Vogt Thu, 23 Dec 2004 11:12:51 +0100 + +apt (0.6.27ubuntu3) hoary; urgency=low + + * added a exact dependency from libapt-pkg-dev to the apt version it was + build with + + -- Michael Vogt Wed, 15 Dec 2004 09:56:32 +0100 + +apt (0.6.27ubuntu2) hoary; urgency=low + + * fixed a bug in the rule file that happend during the big 0.5->0.6 merge + + -- Michael Vogt Tue, 14 Dec 2004 12:14:25 +0100 + +apt (0.6.27ubuntu1) hoary; urgency=low + + * chmod 755 /usr/bin/apt-key + * don't display a error when a apt-get update don't find a + Packages.bz2/Sources.bz2 file + + -- Michael Vogt Mon, 13 Dec 2004 18:40:21 +0100 + +apt (0.6.27) hoary; urgency=low + + * Merge apt--authentication--0 branch + - Implement gpg authentication for package repositories (Closes: #203741) + - Also includes Michael Vogt's fixes + * Merge apt--misc-abi-changes--0 branch + - Use pid_t throughout to hold process IDs (Closes: #226701) + - Import patch from Debian bug #195510: (Closes: #195510) + - Make Simulate::Describe and Simulate::ShortBreaks private member + functions + - Add a parameter (Candidate) to Describe to control whether the + candidate version is displayed + - Pass an appropriate value for Candidate everywhere Describe is called + + -- Matt Zimmerman Mon, 13 Dec 2004 01:03:11 -0800 + +apt (0.6.25) experimental; urgency=low + + * Fix handling of two-part sources for sources.list deb-src entries in + the same way that deb entries were fixed + + -- Matt Zimmerman Wed, 9 Jun 2004 05:29:50 -0700 + +apt (0.6.24) experimental; urgency=low + + * YnPrompt fixes were inadvertently left out, include them (Closes: + #249251) + + -- Matt Zimmerman Sun, 16 May 2004 14:18:53 -0700 + +apt (0.6.23) experimental; urgency=low + + * Remove obsolete pkgIterator::TargetVer() (Closes: #230159) + * Reverse test in CheckAuth to match new prompt (Closes: #248211) + + -- Matt Zimmerman Sun, 9 May 2004 21:01:58 -0700 + +apt (0.6.22) experimental; urgency=low + + * Merge 0.5.25 + * Make the unauthenticated packages prompt more intuitive (yes to + continue, default no), but require --force-yes in addition to + --assume-yes in order to override + + -- Matt Zimmerman Fri, 19 Mar 2004 13:55:35 -0800 + +apt (0.6.21) experimental; urgency=low + + * Merge 0.5.24 + + -- Matt Zimmerman Tue, 16 Mar 2004 22:52:34 -0800 + +apt (0.6.20) experimental; urgency=low + + * Merge 0.5.23 + + -- Matt Zimmerman Thu, 26 Feb 2004 17:17:02 -0800 + +apt (0.6.19) experimental; urgency=low + + * Merge 0.5.22 + * Convert apt-key(8) to docbook XML + + -- Matt Zimmerman Mon, 9 Feb 2004 15:44:49 -0800 + +apt (0.6.18) experimental; urgency=low + + * Add new Debian Archive Automatic Signing Key to the default keyring + (existing keyrings are not updated; do that yourself) + + -- Matt Zimmerman Sat, 17 Jan 2004 17:04:30 -0800 + +apt (0.6.17) experimental; urgency=low + + * Merge 0.5.21 + * Handle more IMS stuff correctly + + -- Matt Zimmerman Fri, 16 Jan 2004 10:54:25 -0800 + +apt (0.6.16) experimental; urgency=low + + * Fix some cases where the .gpg file could be left in place when it is + invalid + + -- Matt Zimmerman Fri, 9 Jan 2004 09:22:15 -0800 + +apt (0.6.15) experimental; urgency=low + + * s/Debug::Acquire::gpg/&v/ + * Honor the [vendor] syntax in sources.list again (though it is not + presently used for anything) + * Don't ship vendors.list(5) since it isn't used yet + * Revert change from 0.6.10; it was right in the first place and the + problem was apparently something else. Archive = Suite. + + -- Matt Zimmerman Mon, 5 Jan 2004 17:43:01 -0800 + +apt (0.6.14) experimental; urgency=low + + * Merge 0.5.20 + + -- Matt Zimmerman Sun, 4 Jan 2004 11:09:21 -0800 + +apt (0.6.13) experimental; urgency=low + + * Merge 0.5.19 + + -- Matt Zimmerman Sat, 3 Jan 2004 16:22:31 -0800 + +apt (0.6.12) experimental; urgency=low + + * Have pkgAcquireIndex calculate an MD5 sum if one is not provided by + the method (as with file: and copy:). Local repositories + * Fix warning about dist name mismatch to actually print what it was + expecting + * Don't expect any particular distribution name for two-part + sources.list entries + * Merge 0.5.18 + + -- Matt Zimmerman Fri, 2 Jan 2004 13:59:00 -0800 + +apt (0.6.11) experimental; urgency=low + + * Support IMS requests of Release.gpg and Release + * This required API changes, bump the libapt-pkg version + * Copy local Release files into Dir::State::Lists + * Set IndexFile attribute when retrieving Release and Release.gpg so + that the appropriate Cache-Control headers are sent + + -- Matt Zimmerman Fri, 2 Jan 2004 10:46:17 -0800 + +apt (0.6.10) experimental; urgency=low + + * Use "Codename" (woody, sarge, etc.) to supply the value of the + "Archive" package file attribute, used to match "release a=" type + pins, rather than "Suite" (stable, testing, etc.) + + -- Matt Zimmerman Thu, 1 Jan 2004 16:56:47 -0800 + +apt (0.6.9) experimental; urgency=low + + * Another tagfile workaround + + -- Matt Zimmerman Thu, 1 Jan 2004 13:56:08 -0800 + +apt (0.6.8) experimental; urgency=low + + * Add a config option and corresponding command line option + (--allow-unauthenticated) to apt-get, to make buildd operators happy + (Closes: #225648) + + -- Matt Zimmerman Wed, 31 Dec 2003 08:28:04 -0800 + +apt (0.6.7) experimental; urgency=low + + * Forgot to revert part of the changes to tagfile in 0.6.4. Hopefully + will fix segfaults for some folks. + + -- Matt Zimmerman Wed, 31 Dec 2003 08:01:28 -0800 + +apt (0.6.6) experimental; urgency=low + + * Restore the ugly hack I removed from indexRecords::Load which set the + pkgTagFile buffer size to (file size)+256. This is concealing a bug, + but I can't fix it right now. This should fix the segfaults that + folks are seeing with 0.6.[45]. + + -- Matt Zimmerman Mon, 29 Dec 2003 18:11:13 -0800 + +apt (0.6.5) experimental; urgency=low + + * Move the authentication check into a separate function in apt-get + * Fix display of unauthenticated packages when they are in the cache + (Closes: #225336) + + -- Matt Zimmerman Sun, 28 Dec 2003 16:47:57 -0800 + +apt (0.6.4) experimental; urgency=low + + * Use the top-level Release file in LoadReleaseInfo, rather than looking + for the per-section ones (which aren't downloaded anymore). This + unbreaks release pinning, including the NotAutomatic bit used by + project/experimental + * Use FileFd::Size() rather than a separate stat() call in + LoadReleaseInfo + * Fix pkgTagFile to leave a little extra room at the end of the buffer + to append the record separator if it isn't present + * Change LoadReleaseInfo to use "Suite" rather than "Archive", to match + the Debian archive's dist-level Release files + + -- Matt Zimmerman Sun, 28 Dec 2003 15:55:55 -0800 + +apt (0.6.3) experimental; urgency=low + + * Fix MetaIndexURI for flat ("foo/") sources + + -- Matt Zimmerman Sun, 28 Dec 2003 12:11:56 -0800 + +apt (0.6.2) experimental; urgency=low + + * Add space between package names when multiple unauthenticated packages + are being installed (Closes: #225212) + * Provide apt-key with a secret keyring and a trustdb, even though we + would never use them, because it blows up if it doesn't have them + * Fix typo in apt-key(8) (standard input is '-', not '/') + + -- Matt Zimmerman Sat, 27 Dec 2003 13:01:40 -0800 + +apt (0.6.1) experimental; urgency=low + + * Merge apt 0.5.17 + * Rearrange Release file authentication code to be more clear + * If Release is present, but Release.gpg is not, don't forget to still + queue Packages files + * Convert distribution "../project/experimental" to "experimental" for + comparison purposes + * Make a number of Release file errors into warnings; for now, it is OK + not to have a codename, for example. We mostly care about checksums + for now + + -- Matt Zimmerman Fri, 26 Dec 2003 15:12:47 -0800 + +apt (0.6.0) experimental; urgency=low + + * Signature verification support patch ("apt-secure") from Colin Walters + and Isaac Jones . This + implements: + - Release signature verification (Release.gpg) + - Packages, Sources md5sum verification against Release + - Closes: #203741 + * Make some modifications to signature verification support: + - Release.gpg is always retrieved and verified if present, rather than + requiring that sources be configured as secure + - Print a hint about installing gnupg if exec(gpgv) fails + - Remove obsolete pkgAcqIndexRel + - Move vendors.list stuff into a separate module (vendorlist.{h,cc}) + - If any files about to be retrieved are not authenticated, issue a + warning to the user and require confirmation + - Fix a heap corruption bug in pkgSrcRecords::pkgSrcRecords() + * Suggests: gnupg + * Install a keyring in /usr/share/apt/debian-archive.gpg containing an + initial set of Debian archive signing keys to seed /etc/apt/trusted.gpg + * Add a new tool, apt-key(8) used to manage the keyring + + -- Matt Zimmerman Fri, 26 Dec 2003 08:27:19 -0800 + +apt (0.5.32) hoary; urgency=low + + * Call setlocale in the methods, so that the messages are properly + localised (Closes: #282700) + * Implement support for bzip2-compressed debs (data.tar.bz2) + + -- Matt Zimmerman Sat, 11 Dec 2004 09:05:52 -0800 + +apt (0.5.31) unstable; urgency=low + + * New Romanian translation from Sorin Batariuc + (Closes: #281458) + * Merge changes from Hoary (0.5.30,0.5.30ubuntu2] + * Fix the example in apt_preferences(5) to match the text + (Closes: #222267) + * Add APT::Periodic::Autoclean setting, to allow "apt-get autoclean" to + be run periodically. This is useful with + APT::Periodic::Download-Upgradeable-Packages, and defaults to the same + value, so that the cache size is bounded + + -- Matt Zimmerman Tue, 23 Nov 2004 12:53:04 -0800 + +apt (0.5.30ubuntu2) hoary; urgency=low + + * bzip2 is now "Suggested" and it will detect if bzip2 is installed + and only then trying to get Packages.bz2 + + -- Michael Vogt Fri, 19 Nov 2004 12:00:39 +0100 + +apt (0.5.30ubuntu1) hoary; urgency=low + + * Need to Depend: bzip2 or Packages.bz2 fail. + + -- LaMont Jones Thu, 18 Nov 2004 12:51:05 -0700 + +apt (0.5.30) hoary; urgency=low + + * Patch from Michael Vogt to enable Packages.bz2 use, with a fallback to + Packages.gz if it is not present (Closes: #37525) + + -- Matt Zimmerman Mon, 15 Nov 2004 12:57:28 -0800 + +apt (0.5.29) unstable; urgency=low + + * Don't hardcode paths in apt.cron.daily + * Add to apt.cron.daily the capability to pre-download upgradeable + packages + * Place timestamp files in /var/lib/apt/periodic, rather than + /var/lib/apt itself + * Standardize debhelper files a bit + - Create all directories in debian/dirs rather than creating some on + the dh_installdirs command line + - Rename debian/dirs to debian/apt.dirs, debian/examples to + debian/apt.examples + + -- Matt Zimmerman Sat, 13 Nov 2004 17:58:07 -0800 + +apt (0.5.28) hoary; urgency=low + + * Translation updates: + - Updated Hungarian from Kelemen Gábor (Closes: #263436) + - Updated Greek from George Papamichelakis (Closes: #265004) + - Updated Simplified Chinese from Tchaikov (Closes: #265190) + - Updated French by Christian Perrier (Closes: #265816) + - Updated Japanese by Kenshi Muto (Closes: #265630) + - Updated Catalan from Jordi Mallach + - Updated Dutch from Bart Cornelis (Closes: #268258, #278697) + - Updated Portuguese from Miguel Figueiredo (Closes: #268265) + - Updated Polish from Robert Luberda (Closes: #268451) + - Updated Danish from Claus Hindsgaul (Closes: #269417) + - Updated Norwegian Nynorsk from Håvard Korsvoll + (Closes: #269965) + - Updated Russian from Yuri Kozlov (Closes: #271104) + - Updated Italian from Samuele Giovanni Tonon + (Closes: #275083) + - Updated Brazilian Portuguese from Andre Luis Lopes (Closes: #273944) + - Updated Slovak from Peter Mann (Closes: #279481) + * APT::Get::APT::Get::No-List-Cleanup -> APT::Get::List-Cleanup in apt-get.cc + (Closes: #267266) + * Merge Ubuntu changes: + - Set default Dpkg::MaxArgs to 1024, and Dpkg::MaxArgBytes to 32k. + Needed to work around ordering bugs when installing a large number of + packages + - Patch from Michael Vogt to add an optional cron job which + can run apt-get update periodically + * Add arch-build target to debian/rules + + -- Matt Zimmerman Sat, 13 Nov 2004 15:52:20 -0800 + +apt (0.5.27) unstable; urgency=high + + * Sneak in a bunch of updated translations before the freeze + (no code changes) + * Translation updates: + - New Finnish translation from Tapio Lehtonen + (Closes: #258999) + - New Bosnian translation from Safir Šećerović + (Closes: #254201) + - Fix Italian incontrario (Closes: #217277) + - Updated Spanish from Ruben Porras (Closes: #260483) + - Updated Danish from Claus Hindsgaul (Closes: #260569) + - Updated Slovak from Peter Mann (Closes: #260627) + - Updated Portuguese from Miguel Figueiredo (Closes: #261423) + * Bring configure-index up to date with documented options, patch from + Uwe Zeisberger (Closes: #259540) + * Note in apt.conf(5) that configure-index does not contain strictly + default values, but also examples + * Add Polish translation of offline.sgml (Closes: #259229) + + -- Matt Zimmerman Thu, 29 Jul 2004 09:30:12 -0700 + +apt (0.5.26) unstable; urgency=low + + * Translation updates: + - Spanish update from Ruben Porras (Closes: #248214) + - Sync Spanish apt(8) (Closes: #249241) + - French update from Christian Perrier (Closes: #248614) + - New Slovak translation from Peter Mann (Closes: #251676) + - Czech update from Miroslav Kure (Closes: #251682) + - pt_BR update from Andre Luis Lopes (Closes: #251961) + - German translation of apt(8) from Helge Kreutzmann + (Closes: #249453) + - pt update from Miguel Figueiredo (Closes: #252700) + - New Hebrew translation from Lior Kaplan + (Closes: #253182) + - New Basque translation from Piarres Beobide Egaña + (Vasco - Euskara - difficult language, Closes: #254407) and already a + correction (Closes: #255760) + - Updated Brazilian Portuguese translation from + Guilherme de S. Pastore (Closes: #256396) + - Updated Greek translation (complete now) from + George Papamichelakis (Closes: #256797) + - New Korean translation from Changwoo Ryu + (Closes: #257143) + - German translation now available in two flavours: with Unicode usage and + without (related to #228486, #235759) + * Update apt-get(8) to reflect the fact that APT::Get::Only-Source will + affect apt-get build-dep as well as apt-get source + * Remove aborted remnants of a different method of implementing DEB_BUILD_OPTIONS + from debian/rules + * Fix typo in error message when encountering unknown type in source list + (Closes: #253217) + * Update k*bsd-gnu arch names in buildlib/ostable (Closes: #253532) + * Add amd64 to buildlib/archtable (Closes: #240896) + * Have configure output a more useful error message if the architecture + isn't in archtable + + -- Matt Zimmerman Thu, 8 Jul 2004 15:53:28 -0700 + +apt (0.5.25) unstable; urgency=low + + * Patch from Jason Gunthorpe to remove arbitrary length limit on Binary + field in SourcesWriter::DoPackage + * Fix typo in apt-cache(8) (Closes: #238578) + * Fix obsolete reference to bug(1) in stub apt(8) man page + (Closes: #245923) + * Fix typo in configure-index (RecruseDepends -> RecurseDepends) + (Closes: #246550) + * Support DEB_BUILD_OPTIONS=noopt in debian/rules + (Closes: #244293) + * Increase length of line buffer in ReadConfigFile to 1024 chars; + detect if a line is longer than that and error out + (Closes: #244835) + * Suppress a signed/unsigned warning in apt-cache.cc:DisplayRecord + * Build apt-ftparchive with libdb4.2 rather than libdb2 + - Patch from Clint Adams to do most of the work + - Build-Depends: s/libdb2-dev/libdb4.2-dev/ + - Add AC_PREREQ(2.50) to configure.in + - Use db_strerror(err) rather than GlobalError::Errno (which uses strerror) + - Add note to NEWS.Debian about upgrading old databases + * Attempt to fix problems with chunked encoding by stripping only a single CR + (Closes: #152711) + * Modify debian/rules cvs-build to use cvs export, to avoid picking up + junk files from the working directory + * Add lang=fr attribute to refentry section of + apt-extracttemplates.fr.1.sgml and apt-sortpkgs.fr.1.sgml so they are + correctly built + * Remove extraneous '\' characters from tags in + apt_preferences.fr.5.sgml + * Translation updates: + - Updated Swedish translation from Peter Karlsson + (Closes: #238943) + - New Slovenian translation from Jure Čuhalev + (closes: #239785) + - New Portuguese translation from Miguel Figueiredo + (closes: #240074) + - Updated Spanish translation from Ruben Porras + - Updated Spanish translation of man pages from Ruben Porras + + - Updated Simplified Chinese translation from "Carlos Z.F. Liu" + (Closes: #241971) + - Updated Russian translation from Dmitry Astapov + (Closes: #243959) + - Updated Polish translation from Marcin Owsiany + (Closes: #242388) + - Updated Czech translation from Miroslav Kure + (Closes: #244369) + - Updated Japanese translation from Kenshi Muto + (Closes: #244176) + - Run make -C po update-po to update .po files + - Updated French translation from Christian Perrier + (Closes: #246925) + - Updated Danish translation from Claus Hindsgaul + (Closes: #247311) + + -- Matt Zimmerman Sat, 8 May 2004 12:52:20 -0700 + +apt (0.5.24) unstable; urgency=low + + * Updated Czech translation from Miroslav Kure + (Closes: #235822) + * Updated French translation from Christian Perrier + (Closes: #237403) + * Updates to XML man pages from richard.bos@xs4all.nl + * Updated Danish translation from Claus Hindsgaul + (Closes: #237771) + * Updated Greek translation from Konstantinos Margaritis + + (Closes: #237806) + * Updated Spanish translation from Ruben Porras + (Closes: #237863) + * Updated pt_BR translation from Andre Luis Lopes + (Closes: #237960) + * Regenerate .pot file (Closes: #237892) + * Updated Polish translation from Marcin Owsiany + (Closes: #238333) + * In pkgAcquire::Shutdown(), set the status of fetching items to + StatError to avoid a sometimes large batch of error messages + (Closes: #234685) + * Implement an ugly workaround for the 10000-character limit on the + Binaries field in debSrcRecordParser, until such time as some things + can be converted over to use STL data types (ABI change) (Closes: #236688) + * Increase default tagfile buffer from 32k to 128k; this arbitrary limit + should also be removed someday (Closes: #174945) + * Checked against Standards-Version 3.6.1 (no changes) + + -- Matt Zimmerman Tue, 16 Mar 2004 22:47:55 -0800 + +apt (0.5.23) unstable; urgency=low + + * Cosmetic updates to XML man pages from Richard Bos + * Use the 'binary' target rather than 'all' so that the ssh and bzip2 + symlinks are created correctly (thanks to Adam Heath) + (Closes: #214842) + * Updated Simplified Chinese translation of message catalog from Tchaikov + (Closes: #234186) + * Change default for Acquire::http::max-age to 0 to prevent index files + being out of sync with each other (important with Release.gpg) + * Add an assert() to make sure that we don't overflow a fixed-size + buffer in the very unlikely event that someone adds 10 packaging + systems to apt (Closes: #233678) + * Fix whitespace in French translation of "Yes, do as I say!", which + made it tricky to type, again. Thanks to Sylvain Pasche + (Closes: #234494) + * Print a slightly clearer error message if no packaging systems are + available (Closes: #233681) + * Point to Build-Depends in COMPILING (Closes: #233669) + * Make debian/rules a bit more consistent in a few places. + Specifically, always use -p$@ rather than an explicit package name, + and always specify it first, and use dh_shlibdeps -l uniformly rather + than sometimes changing LD_LIBRARY_PATH directly + * Document unit for Cache-Limit (bytes) (Closes: #234737) + * Don't translate "Yes, do as I say!" in Chinese locales, because it can + be difficult to input (Closes: #234886) + + -- Matt Zimmerman Thu, 26 Feb 2004 17:08:14 -0800 + +apt (0.5.22) unstable; urgency=low + + * Updated French translation of man pages from Philippe Batailler + (Closes: #203119) + * Initialize StatusFile in debSystem (Closes: #229791) + * Fix apt-get's suggests/recommends printing, which was skipping every + other dependency due to both using GlobOr and incrementing the DepIterator + (Closes: #229722) + * Restore SIGINT/SIGQUIT handlers to their old values (rather than + SIG_DFL) after invoking dpkg (Closes: #229854) + * Updated Dutch translation of message catalog from cobaco + (Closes: #229601) + * Catalan translation from Antoni Bella, Matt Bonner and Jordi Mallach + (Closes: #230102) + * Simplified Chinese translation of message catalog from "Carlos + Z.F. Liu" (Closes: #230960) + * Replace SGML manpages with XML man pages from richard.bos@xs4all.nl + (Closes: #230687) + * Updated Spanish translation of man pages from Ruben Porras + (Closes: #231539) + * New Czech translation of message catalog from Miroslav Kure + (Closes: #231921) + + -- Matt Zimmerman Mon, 9 Feb 2004 12:44:54 -0800 + +apt (0.5.21) unstable; urgency=low + + * Patch from Eric Wong to include apt18n.h after + other headers to avoid breaking locale.h when setlocale() is defined + as an empty macro. This was not a problem on Debian, but broke + compilation on Solaris. (Closes: #226509) + * Updated French translation from Pierre Machard + (Closes: #226886) + * Add colons to apt-get's "kept back"/"upgraded"/"downgraded" messages + (Closes: #226813) + * Fix typo in apt-cache(8) (Closes: #226351) + * Clearer error message in place of "...has no available version, but + exists in the database" (Closes: #212203) + * Patch from Oliver Kurth to use AC_CACHE_VAL for + GLIBC_VER to make cross-compilation easier (Closes: #221528) + * Add example preferences file (Closes: #220799) + * Updated Greek translation from Konstantinos Margaritis + (Closes: #227205) + * Updated Spanish translation of man pages from Ruben Porras + (Closes: #227729) + + -- Matt Zimmerman Fri, 16 Jan 2004 10:54:39 -0800 + +apt (0.5.20) unstable; urgency=low + + * Fixed German translations of "Suggested" from Christian Garbs + (Closes: #197960) + * Add an "apt-cache madison" command with an output format similar to + the katie tool of the same name (but less functionality) + * Fix debSourcesIndex::Describe() to correctly say "Sources" rather than + "Packages" + + -- Matt Zimmerman Sat, 3 Jan 2004 23:42:50 -0800 + +apt (0.5.19) unstable; urgency=low + + * Fix Packages::Extensions support in apt-ftparchive generate + (Closes: #225453) + + -- Matt Zimmerman Sat, 3 Jan 2004 16:20:31 -0800 + +apt (0.5.18) unstable; urgency=low + + * New no_NO.po file from Tollef Fog Heen to fix + encoding problems (Closes: #225602) + * Have "apt-ftparchive release" strip the leading path component from + the checksum entries + + -- Matt Zimmerman Fri, 2 Jan 2004 11:24:35 -0800 + +apt (0.5.17) unstable; urgency=low + + * Enable apt-ftparchive to generate Release files. Hopefully this will + make it easier for folks to secure their apt-able packages + + -- Matt Zimmerman Fri, 26 Dec 2003 12:53:21 -0800 + +apt (0.5.16) unstable; urgency=low + + * po/de.po update from Michael Karcher + (Closes: #222560) + * Update config.guess and config.sub from autotools-dev 20031007.1 + * Add knetbsd to buildlib/ostable (Closes: #212344) + * Don't suggest apt-get -f install to correct broken build-deps; broken + installed packages are rarely the cause (Closes: #220858) + * Avoid clobbering configure.in if sed fails + + -- Matt Zimmerman Wed, 24 Dec 2003 14:54:40 -0800 + +apt (0.5.15) unstable; urgency=low + + * Spanish man pages, patch from Ruben Porras + (Closes: #195444) + - apt.es.8 wasn't included in the patch, but was referenced. Fetched + version 1.3 from debian-doc cvs + - Create doc/es/.cvsignore + * Patch from Koblinger Egmont to fix + pkgCache::PkgFileIterator::Label() to correctly refer to File->Label + rather than File->Origin (Closes: #213311) + * Add missing comma and space to German translation of "downgraded" + (Closes: #213975) + * Add missing comma in apt_preferences(5) (Closes: #215362) + * Fix whitespace in French translation of "Yes, do as I say!", which + made it tricky to type. Thanks to Sylvain Pasche + (Closes: #217152) + * Let apt-get build-dep try alternatives if the installed package + doesn't meet version requirements (Closes: #214736) + * Fix version display for recommends (Closes: #219900) + * Use isatty rather than ttyname for checking if stdin is a terminal. + isatty has the advantage of not requiring /proc under Linux, and thus + Closes: #221728 + * Correctly implement -n as a synonym for --names-only (Closes: #224515) + * Update apt-cache(8) + - Document --installed + - --recursive applies to both depends and rdepends + * Japanese translation of documentation from Kurasawa Nozomu + (Closes: #186235) + * Clarify documentation of --no-upgrade in apt-get(8) (Closes: #219743) + * Clean up and simplify some of the suggests/recommends display in apt-get + * Use cvs update -d in debian/rules cvs-build rather than just update + * Pass --preserve-envvar PATH --preserve-envvar CCACHE_DIR to debuild. apt + takes a long time to build, and ccache helps + + -- Matt Zimmerman Sat, 20 Dec 2003 16:34:30 -0800 + +apt (0.5.14) unstable; urgency=low + + * apt-get build-dep, when trying to skip over the remaining elements of + an or-expression, would accidentally inherit the version requirements of a + later item in the or-expression. Fixed it. + * Let apt-get build-dep try alternatives if the first dependency in an + or-expression is not available + * Add a Debug::BuildDeps to generate some trace output + * Help apt-get build-dep produce more useful error messages + * Process build-dependencies in forward rather than reverse order + * Error out if an installed package is too new for a << or <= + build-dependency + * apt-get build-dep should now be able to handle almost any package with + correct build-depends. The primary exception is build-dependencies on + virtual packages with more than one provider, and these are + discouraged for automated processing (but still common, + unfortunately). + + -- Matt Zimmerman Tue, 23 Sep 2003 22:57:31 -0400 + +apt (0.5.13) unstable; urgency=medium + + * Document configuration file comment syntax in apt.conf(5) + (Closes: #211262) + * s/removed/installed/ in a comment in apt-get.cc + * Move comment for ListParser::ParseDepends into the right place + * Don't preserve ownership when copying config.guess and config.sub. + This broke builds where the clean target was run with different + privileges than the rest of the build (i.e., root) (Closes: #212183) + * On second thought, don't copy config.guess and config.sub at all. I'd + rather they always match what is in CVS. + + -- Matt Zimmerman Mon, 22 Sep 2003 10:28:17 -0400 + +apt (0.5.12) unstable; urgency=low + + * Exclude subdirectories named 'debian-installer' from the apt-cdrom + search (Closes: #210485 -- release-critical) + + -- Matt Zimmerman Thu, 11 Sep 2003 21:48:14 -0400 + +apt (0.5.11) unstable; urgency=low + + * Updated pt_BR translations from Andre Luis Lopes + (Closes: #208302) + * In apt.conf(5), give the fully qualified name of Dir::Bin::Methods, + rather than just "methods" + * Add new nb and nn translations from Petter Reinholdtsen + * Clean up reportbug script a bit, and extend it to distinguish between a + configuration file not existing and the user declining to submit it with + the report + * Add #include to cmdline/apt-get.cc. This apparently gets + pulled in by something else with recent g++ and/or glibc, but is + required when building on, e.g., stable + * Patch from Koblinger Egmont to fix version + comparisons with '~' (Closes: #205960) + * Disable Russian translation until someone can review it + (Closes: #207690) + + -- Matt Zimmerman Wed, 10 Sep 2003 19:41:28 -0400 + +apt (0.5.10) unstable; urgency=low + + * Correct the section in apt_preferences(5) on interpreting priorities + to show that zero is not a valid priority, and print a warning if such + a pin is encountered in the preferences file (Closes: #204971) + * Regenerate French man pages from sgml source (Closes: #205886) + * Get self-tests compiling again, updated for latest library API + and g++ 3.3 + * Add version comparison tests for #194327 and #205960 + * Fix error message in version test to output versions in the order in + which they were compared when the reverse comparison fails + * Reference the source package bug page rather than the one for the + binary package 'apt' in the man pages (Closes: #205290) + * Updated Polish po file from Marcin Owsiany + (Closes: #205950) + * Mention some of the available frontends in apt-get(8) (Closes: #205829) + * Add apt-config to SEE ALSO section of apt-get (Closes: #205036) + * Add missing "lang" attributes to refentry tags in French man pages + (apt-cdrom, apt-extracttemplates, apt-sortpkgs) + * Change upgraded/newly installed/not fully installed or removed + messages to be consistent and somewhat shorter (some translations + exceeded 80 characters even in the simplest case) + * Make APT::Get::Show-Upgraded (aka apt-get -u) default to true. + * Updates to Dutch translation from Bart Cornelis + (Closes: #207656) + + -- Matt Zimmerman Sun, 31 Aug 2003 21:12:39 -0400 + +apt (0.5.9) unstable; urgency=low + + * Oh well, apt isn't going to make it into testing anytime soon due to + new glibc and gcc deps, so we might as well fix more bugs + * Fix typo in example ftp-archive.conf (Closes: #203295) + * Mention default setting for --all-versions (Closes: #203298) + * Patch from Otavio Salvador to have --version + only print the version (and not usage as well) (Closes: #203418) + * Patch from Otavio Salvador to switch from + dh_installmanpages to dh_installman. Fixes the problem where the + pt_BR man page was installed in the wrong location (Closes: #194558) + * Move the French apt-ftparchive man page into apt-utils where it + belongs. apt-utils Replaces: apt (<< 0.5.9) + * Write records from "apt-cache show" using fwrite(3) rather than + write(2), in case for some reason the entire record doesn't get + written by a single write(2) + * Add new French man pages to doc/fr/.cvsignore + * Add freebsd to buildlib/ostable (Closes: #193430) + * Avoid segfault if a package name is specified which consists + entirely of characters which look like end tags ('+', '-') + (Closes: #200425) + * Patch from Otavio Salvador to avoid listing + suggests/recommends for packages which are selected for installation + at the same time as the package which suggests/recommends them + (Closes: #200102) + * Patch from Otavio Salvador to avoid listing + suggests/recommends which are Provided by a package which is already + installed (Closes: #200395) + * Patch to update pt_BR man page for apt_preferences(5) from Andre Luis + Lopes (Closes: #202245) + * Use nl_langinfo(YESEXPR) rather than comparing to the translated + string "Y". Closes: #200953 and should make the prompting generally + more robust in the face of i18n. In the particular case of #200953, + it was being fooled because of signedness issues with toupper(3) + (Closes: #194614) + * apt Suggests: aptitude | synaptic | gnome-apt | wajig + (Closes: #146667) + * Clean up whitespace in translated strings in ru.po, which messed up + indentation (some other translations probably have similar problems) + (Closes: #194282) + * Run ispell -h over the man page sources and fix a bunch of typos + * Use debian/compat rather than DH_COMPAT + * Update to debhelper compatibility level 3 + - remove ldconfig calls from debian/{postinst,postrm} as dh_makeshlibs + will add them + - echo 3 > debian/compat + - Build-Depends: debhelper (>= 3) + * Exclude '.#*' from cvs-build + * Let the ftp method work with ftp servers which do not require a + password (Closes: #199425) + * Build-depend on debhelper >= 4.1.62, because we need the fix for + #204731 in order for dh_installman to work correctly + with our SGML man pages + * Move dh_makeshlibs ahead of dh_installdeb so that its postinst + fragments are properly substituted + + -- Matt Zimmerman Sun, 10 Aug 2003 19:54:39 -0400 + +apt (0.5.8) unstable; urgency=medium + + * urgency=medium because the changes since 0.5.5.1 are pretty safe as + far as core functionality, 0.5.5.1 survived unstable for 10 days, and + I don't want to delay apt's progress into testing any further. It's + decidedly better than 0.5.4. + * Clarify the meaning of the only-source option in apt-get(8) + (Closes: #177258) + * Updated French man pages from Philippe Batailler + (Closes: #182194) + * Give a warning if an illegal type abbreviation is used when looking up a + configuration item (Closes: #168453) + * Improve build-depends handling of virtual packages even further, so that + it will now also try to satisfy build-depends on virtual packages if they + are not installed. Note that this only works if there is only one + package providing the virtual package, as in other cases (Closes: #165404) + * Update config.guess and config.sub from autotools-dev 20030717.1 + * Tweak SGML in apt-extracttemplates.1.sgml so that literal '>' doesn't end + up in output + * Document SrcDirectory in apt-ftparchive.1.sgml (Closes: #156370) + * Support TMPDIR in apt-extracttemplates (Closes: #191656) + * Fix ru.po to use a capital letter for the translation of 'Y' so that + YnPrompt works correctly (Closes: #200953). No other translations seem + to have this problem + * Regenerate POT file and sync .po files + * Only try to clear stdin if it is a tty, to avoid looping if there is + lots of stuff (perhaps an infinite amount) to read (Closes: #192228) + + -- Matt Zimmerman Fri, 25 Jul 2003 20:21:53 -0400 + +apt (0.5.7) unstable; urgency=low + + * Update control file to match overrides (apt priority important, + libapt-pkg-dev section libdevel) + * Silence the essential packages check if we are only downloading + archives and not changing the system (Closes: #190862) + * Skip version check if a build-dependency is provided by an installed package + (Closes: #126938) + * Have apt-cache show exit with an error if it cannot find any of the + specified packages (Closes: #101490) + + -- Matt Zimmerman Mon, 21 Jul 2003 23:43:24 -0400 + +apt (0.5.6) unstable; urgency=low + + * Adam Heath + - Fix segfault when handling /etc/apt/preferences. Closes: #192409. + * Matt Zimmerman + - Clean up some string handling, patch from Peter Lundkvist + (Closes: #192225) + - Don't fall off the end of the buffer when comparing versions. + Patch from Koblinger Egmont (Closes: #194327) + - Minor fixes to apt-ftparchive(1) (Closes: #118156) + - Fix typo in apt-ftparchive help text (Closes: #119072) + - More typos in apt-ftparchive help text (Closes: #190936) + - Update config.guess, config.sub to latest versions + - Modify the description for apt-utils to reflect the fact that it is not + (any longer) infrequently used (Closes: #138045) + - Make setup script for dselect method more explicit about + overwriting sources.list (Closes: #151727) + - Fix typo in apt-cache(8) (Closes: #161243) + - Remove duplicate 'showpkg' from synopsis on apt-cache(8) + (Closes: #175611) + - Document in apt-get(8) the meaning of the '*' in ShowList, which is that + the package is being purged (Closes: #182369) + - Fix extra "/" character in apt.conf(5) (Closes: #185545) + - Fix typo in tar error message (Closes: #191424) + - Clarify description of 'search' on apt-cache(8) (Closes: #192216) + - Fix incorrect path for 'partial' directory on apt-get(8) + (Closes: #192933) + - Fixes to pt_BR translation from Andre Luis Lopes + (Closes: #196669) + - Updated apt_preferences(5) man page with many corrections and + clarifications from Thomas Hood + (Closes: #193336) + - Fix SGML validation errors in apt-cache.8.sgml introduced in 0.5.5 or so + - Add a simple example to apt-ftparchive(1) (Closes: #95257) + - Add bug script for collecting configuration info (Closes: #176482) + + -- Matt Zimmerman Mon, 21 Jul 2003 01:59:43 -0400 + +apt (0.5.5.1) unstable; urgency=low + + * Move the target of the example docs from doc to binary. Closes: + #192331 + * Fix api breakage that broke apt-ftparchive and apt-cache dumpavail, by + backing out change that incorretly attempted to handle Package sections + larger than 32k. Closes: #192373 + * Fix never-ending loop with apt-get install -V. Closes: #192355. + + -- Adam Heath Mon, 19 May 2003 12:30:16 -0500 + +apt (0.5.5) unstable; urgency=low + + * New deb version compare function, that has no integer limits, and + supports pre-versions using ~. Code ported from dpkg. + * Fix handling of [!arch] for build-dependencies. Closes: #88798, #149595 + * Fix handling of build-deps on unknown packages. Closes: #88664, #153307 + * "apt-get --arch-only build-dep" to install only architecture- + dependent build dependencies. Bump minor shared lib number to reflect + small change in BuildDepend API. + * APT::Build-Essential configuration option (defaults to "build-essential") + so that "apt-get build-dep" will ensure build essential packages are + installed prior to installing other build-dependencies. Closes: #148879 + * LD_LIBRARY_PATH thing. Closes: #109430, #147529 + * /usr/doc reference in postinst. Closes: #126189 + * Doc updates. Closes: #120689 + * Possible apt-cache segfault. Closes: #120311, #118431, #117915, #135295, + #131062, #136749 + * Print special message for EAI_AGAIN. Closes: #131397 + * libapt-pkg-dev needs to bring in the apt-inst library if linking + is to work. Closes: #133943 + * Typos, Doc Stuff. Closes: #132772, #129970, #123642, #114892, #113786, + #109591, #105920, #103678, #139752, #138186, #138054, #138050, + #139994, #142955, #151654, #151834, #147611, #154268, #173971 + * Fix possibility for tag file parsing to fail in some unlikely situations. + Closes: #139328 + * Use std C++ names for some header files. Closes: #128741 + * Do not check for free space if --no-download. Closes: #117856 + * Actually implement or group handling for 'upgrade'. Closes: #133950 + * "Internal Error, Couldn't configure pre-depend" is not actually an + internal error, it is a packaging error and now it says so, and + pinpoints the problem dependency. Closes: #155621 + * Allows failure to write to a pipe for post-invoke stuff. Closes: #89830 + * Use usr/share/doc for dhelp. Closes: #115701 + * --print-uris works with 'update'. Closes: #57070 + * Options Dpkg::MaxArgs,Dpkg::MaxArgBytes to allow a much longer dpkg + command line. + * Fixed 2 little OR group bugs, thanks to Yann Dirson. Closes: #143995, + #142298 + * Allow an uninstalled package to be marked for removal on an install + line (meaning not to automatically install it), also fix some dodgy + handling of protected packages. Closes: #92287, #116011 + * Fix errant prefix matching in version selection. Closes: #105968 + * Ensure that all files needed to run APT as a user are readable and + ignore roots umask for these files. Closes: #108801 + * Support larger config spaces. Closes: #111914 + * 'apt-get update' no longer does 'Building Dependency Tree'. + * When matching regexs allways print a message. Change regex activation + charset. Closes: #147817 + * Don't die if lines in sources.list are too long. Closes: #146846 + * Show file name on apt-extracttemplate error messges. Closes: #151835 + * i18n gettext stuff, based on work from Michael Piefel: Closes: #95933 + * Some highly unlikely memory faults. Closes: #155842 + * C++ stuff for G++3.2. Closes: #162617, #165515, + * apt-config dumps sends to stdout not stderr now. Closes: #146294 + * Fix segfault in FindAny when /i is used, and there is no default. + Closes: #165891 + * Add s390x to archtable. Closese: #160992. + * Update config.sub/config.guess in cvs, and add support to debian/rules + to update them from /usr/share/misc if they exist. Closes: #155014 + * Remove 'Sorry' from messages. Closes: #148824. + * Change wording of 'additional disk space usage' message. Closes: + #135021. + * apt-extracttemplates now prepends the package name when extracting + files. Closes: #132776 + * Add -n synonym for --names-only for apt-cache. Closes: #130689 + * Display both current version and new version in apt-get -s. Closes: + #92358 + * Add an options and timeout config item to ssh/rsh. Closes: #90654 + * libapt-pkg-dev now depends on apt-utils. Closes: #133942. + * Change verbose logging output of apt-ftparchive to go to stderr, + instead of stdout. Also, errors that occur no longer go to stdout, + but stderr. Closes: #161592 + * Test for timegm in configure. Closes: #165516. + * s/st_mtime/mtime/ on our local stat structure in apt-ftparchive, to + support compliation on platforms where st_mtime is a macro. Closes: + #165518 + * Check the currently mounted cdrom, to see if it's the one we are + interested in. Closes: #154602 + * Refer to reportbug instead of bug in the man pages. Closes: #173745 + * Link apt-inst to apt-pkg. Closes: #175055 + * New apt_preferences man page from Thomas Hood, Susan Kleinmann, + and others. + * Fix > 300 col screen segfault. Closes: #176052 + * Rebuild with gcc-3.2. Closes: #177752, #178008. + * Fix build-dep handling of | dependencies. + Closes: #98640, #145997, #158896, #172901 + * Double default value of APT::Cache-Limit, until such time as it + can be made more dynamic. Closes: #178623. + * Report uris with '.gz' when there are errors. Closes: #178435. + * When installing build-deps, make sure the new version will + satisfy build requirements. Closes: #178121 + * Split offline and guide documentation into apt-doc. This was done so + that binary-arch builds do not require documention deps. Note, that + apt-doc is not installed on upgrades. + * Use doc-base, instead of dhelp directly. Closes: #110389 + * Change http message 'Waiting for file' to 'Waiting for headers'. + Closes: #178537 + * Remove trailing lines on package lists in apt-get. Closes: #178736. + * Fix origin pins for file:// uris. Closes: #189014. + * Apply typo and syntax patch from bug to apt-cache.8.sgml. Closes: + #155194 + * s/dpkg-preconfig/dpkg-preconfigure/ in examples/configure-index. + Closes: #153734. + * Fix some typos in the apt-get manual. Closes: #163932. + * Apply patch from bug, to change frozen to testing, and then do it + everywhere else. Closes: #165085. + * Update es.po. Closes: #183111. + * Add pt_BR translation of apt_preferences(5). Also, build fr manpages. + Closes: #183904. + * Add a vcg command to apt-cache, similiar to dotty. Closes: #150512. + * Add option to apt-get to show versions of packages being + upgraded/installed. + * Be quiet in apt.post{inst,rm}. Closes: #70685. + * apt-get now prints out suggested and recommended packages. Closes: + #54982. + * Insert some newlines in the cdrom change media message. Closes: + #154601. + * Add a rdepends command to apt-cache. Closes: #159864. + * When building the dpkg command line, allow for 8192 chars to be used, + instead of only 1024. + * APT::Immediate-Configure had inverted semantics(false meant it was + enabled). Closes: #173619. + * Fix status file parser so that if a record is larger than 32k, the + buffer size will be doubled, and the read attempted again. Closes: + #174945. + + -- Adam Heath Sun, 27 Apr 2003 01:23:12 -0500 + +apt (0.5.4) unstable; urgency=low + + * M68k config.guess patch. Closes: #88913 + * Bi-yearly test on OpenBSD and Solaris + * Doc updates. Closes: #89121, #89854, #99671, #98353, #95823, #93057, + #97520, #102867, #101071, #102421, #101565, #98272, #106914, + #105606, #105377 + * Various cosmetic code updates. Closes: #89066, #89066, #89152 + * Add "pre-auto" as an option for DSelect::Clean (run autoclean after + update). + * More patches from Alfredo for Vendors and more SHA-1 stuff + * Fix for AJ's 'desire to remove perl-5.005' and possibly other + similar situations. Closes: #56708, #59432 + * no_proxy and ftp. Closes: #89671 + * Philippe Batailler's man page patches. + * Fix for display bug. Closes: #92033, #93652, #98468 + * Use more than 16bits for the dep ID. Some people ran out.. + Closes: #103020, #97809, #102951, #99974, #107362, #107395, #107362, + #106911, #107395, #108968 + * Reordered some things to make dante and FTP happier. Closes: #92757 + * James R. Van Zandt's guide.sgml updates. Closes: #90027 + * apt-ftparchive copes with no uncompressed package files + contents. + * French man pages from philippe batailler - well sort of. They + don't build yet.. + * run-parts. Closes: #94286 + * 'apt-cache policy' preferences debug tool. + * Whatever. Closes: #89762 + * libstdc++ and HURD. Closes: #92025 + * More apt-utils verbage. Closes: #86954 + * Fliped comparision operator. Closes: #94618 + * Used the right copyright file. Closes: #65691 + * Randolph's G++3 patches. + * Fixed no_proxy tokanizing. Closes: #100046 + * Strip Config-Version when copying status to available. Closes: #97520 + * Segfault with missing source files. Closes: #100325 + * EINTR check. Closes: #102293 + * Various changes to the locking metholodgy for --print-uris. + Closes: #100590 + * Lame LD_LIBRARY_PATH thing. Closes: #98928 + * apt-cache search searchs provide names too now. Closes: #98695 + * Checksum and long lines problem. Closes: #106591 + * .aptignr and empty files are just a warning. Closes: #97364 + + -- Jason Gunthorpe Sat, 18 Aug 2001 17:21:59 -0500 + +apt (0.5.3) unstable; urgency=low + + * JoeyH's dpkg::preconfig not working. Closes: #88675 + * Fixed apt override disparity + * Alfredo's SHA-1 and related patches + + -- Jason Gunthorpe Sun, 4 Mar 2001 15:39:43 -0700 + +apt (0.5.2) unstable; urgency=low + + * Fixed mention of /usr/doc in the long description + * JoeyH's downgrade bug -- don't use 0.5.1 + * Doc bug. Closes: #88538 + * Fault in building release strings. Closes: #88533 + + -- Jason Gunthorpe Sun, 4 Mar 2001 15:39:43 -0700 + +apt (0.5.1) unstable; urgency=low + + * Fixed #82894 again, or should be and. + * Process the option string right. Closes: #86921 + * Don't eat the last command for pipes. Closes: #86923 + * Ignore .* for configuration directory processing. Closes: #86923 + * Alfredo's no_proxy patch + * Documentation fixes. Closes: #87091 + * JoeyH's double slash bug. Closes: #87266 + * Unintitialized buffer and apt-ftparchive contents generation. + Closes: #87612 + * Build-deps on virtual packages. Closes: #87639 + * Fixes glibc/libstdc++ symbol dependencies by including glibc and + libstdc++ version info in the library soname and in the package + provides. Closes: #87426 + * Updated soname version to 0.3.2 + * apt-extracttemplates moved from debconf into apt-utils + * s390 archtable entry. Closes: #88232 + * Dan's segfault + * Some instances where the status file can source a package in a + non-sensical way. Closes: #87390 + * Work better if there are duplicate sources.list entries. + * Fixed the resetting of Dir with "dir {};". Closes: #87323 + + -- Randolph Chung Sat, 3 Mar 2001 15:37:38 -0700 + +apt (0.5.0) unstable; urgency=low + + * Fixed an obscure bug with missing final double new lines in + package files + * Changed the apt-cdrom index copy routine to use the new section + rewriter + * Added a package file sorter, apt-sortpkgs + * Parse obsolete Optional dependencies. + * Added Ben's rsh method. Closes: #57794 + * Added IPv6 FTP support and better DNS rotation support. + * Include the server IP in error messages when using a DNS rotation. + Closes: #64895 + * Made most of the byte counters into doubles to prevent 32bit overflow. + Closes: #65349 + * HTTP Authorization. Closes: #61158 + * Ability to parse and return source index build depends from Randolph. + * new 'apt-get build-dep' command from Randolph. Closes: #63982 + * Added apt-ftparchive the all dancing all singing FTP archive + maintinance program + * Allow version specifications with =1.2.4-3 and /2.2 or /stable postfixes + in apt-get. + * Removed useless internal cruft including the xstatus file. + * Fixed config parser bugs. Closes: #67848, #71108 + * Brain Damanged apt-get config options changed, does not change the command + line interface, except to allow --enable-* to undo a configuration + option: + No-Remove -> Remove + No-Download -> Download + No-Upgrade -> Upgrade + * Made this fix configable (DSelect::CheckDir) and default to disabled: + * No remove prompt if the archives dir has not changed. Closes: #55709 + Because it is stupid in the case where no files were downloaded due to + a resumed-aborted install, or a full cache! Closes: #65952 + * Obscure divide by zero problem. Closes: #64394 + * Update sizetable for mips. Closes: #62288 + * Fixed a bug with passive FTP connections + * Has sizetable entry for sparc64. Closes: #64869 + * Escape special characters in the ::Label section of the cdroms.lst + * Created apt-utils and python-apt packages + * Due to the new policy engine, the available file may contain entries + from the status file. These are generated if the package is not obsolete + but the policy engine prohibits using the version from the package files. + They can be identified by the lack of a Filename field. + * The new policy engine. Closes: #66509, #66944, #45122, #45094, #40006, + #36223, #33468, #22551 + * Fixed deb-src line for non-us. Closes: #71501, #71601 + * Fixes for G++ 2.96, s/friend/friend class/ + * Fixed mis doc of APT::Get::Fix-Missing. Closes: #69269 + * Confirmed fix for missing new line problem. Closes: #69386 + * Fixed up dhelp files. Closes: #71312 + * Added some notes about dselect and offline usage. Closes: #66473, #38316 + * Lock files on read only file systems are ignored w/ warning. + Closes: #61701 + * apt-get update foo now gives an error! Closes: #42891 + * Added test for shlibs on hurd. Closes: #71499 + * Clarified apt-cache document. Closes: #71934 + * DocBook SGML man pages and some improvements in the text.. + * sigwinch thing. Closes: #72382 + * Caching can be turned off by setting the cache file names blank. + * Ignores arches it does not know about when autocleaning. Closes: #72862 + * New function in apt-config to return dirs, files, bools and integers. + * Fixed an odd litle bug in MarkInstall and fixed it up to handle + complex cases involving OR groups and provides. + 68754 describes confusing messages which are the result of this.. + Closes: #63149, #69394, #68754, #77683, #66806, #81486, #78712 + * Speeling mistake and return code for the 'wicked' resolver error + Closes: #72621, #75226, #77464 + * Solved unable to upgrade libc6 from potato to woody due to 3 package + libc6 dependency loop problem. + * Leading sources.list spaces. Closes: #76010 + * Removed a possible infinite loop while processing installations. + * Man page updates. Closes: #75411, #75560, #64292, #78469 + * ReduceSourceList bug. Closes: #76027 + * --only-source option. Closes: #76320 + * Typos. Closes: #77812, #77999 + * Different status messages. Closes: #76652, #78353 + * /etc/apt/apt.conf.d/ directory for Joey and Matt and pipe protocol 2 + * OS detection an support for the new pseduo standard of os-arch for the + Architecture string. Also uses regexing.. Closes: #39227, #72349 + * Various i18n stuff. Note that this still needs some i18n wizard + to do the last gettextization right. Closes: #62386 + * Fixed a problem with some odd http servers/proxies that did not return + the content size in the header. Closes: #79878, #44379 + * Little acquire bugs. Closes: #77029, #55820 + * _POSIX_THREADS may not be defined to anything, just defined.. + Closes: #78996 + * Spelling of Ignore-Hold correctly. Closes: #78042 + * Unlock the dpkg db if in download only mode. Closes: #84851 + * Brendan O'Dea's dselect admindir stuff. Closes: #62811 + * Patch from BenC. Closes: #80810 + * Single output of some names in lists. Closes: #80498, #43286 + * Nice message for people who can't read syserror output. Closes: #84734 + * OR search function. Closes: #82894 + * User's guide updates. Closes: #82469 + * The AJ/JoeyH var/state to var/lib transition patch. Closes: #59094 + * Various CD bugs, again thanks to Greenbush + Closes: #80946, #76547, #71810, #70049, #69482 + * Using potato debhelper. Closes: #57977 + * I cannot self-terminate. Closes: #74928 + + -- Jason Gunthorpe Wed, 21 Feb 2001 00:39:15 -0500 + +apt (0.3.19) frozen unstable; urgency=low + + * Updates to apt-cdrom to support integrated non-us nicely, thanks to + Paul Wade. + * Fixed that apt-get/cdrom deadlock thing. Closes: #59853, #62945, #61976 + * Fixed hardcoded path. Closes: #59743 + * Fixed Jay's relative path bug + * Allowed source only CDs. Closes: #58952 + * Space check is supressed if --print-uris is given. Closes: #58965 + * Clarified the documenation examples for non-us. Closes: #58646 + * Typo in the package description. Closes: #60230 + * Man Page typo. Closes: #60347 + * Typo in Algorithms.cc. Closes: #63577 + * Evil dotty function in apt-cache for generating dependency graphs + with the as-yet-unpackaged GraphVis. + * Appears to have been fixed in Janurary.. Closes: #57981 + * New config.guess/sub for the new archs. Closes: #60874 + * Fixed error reporting for certain kinds of resolution failures. + Closes: #61327 + * Made autoclean respect 'q' settings. Closes: #63023 + * Fixed up the example sources.list. Closes: #63676 + * Added DPkg::FlushSTDIN to control the flushing of stdin before + forking dpkg. Closes: #63991 + + -- Ben Gertzfield Fri, 12 May 2000 21:10:54 -0700 + +apt (0.3.18) frozen unstable; urgency=low + + * Changes in the postinst script. Closes: #56855, #57237 + * Fixed bashism. Closes: #57216, #57335 + * Doc updates. Closes: #57772, #57069, #57331, #57833, #57896 + + -- Ben Gertzfield Sun, 13 Feb 2000 01:52:31 -0800 + +apt (0.3.17) unstable; urgency=low + + * RFC 2732 usage for CDROM URIs and fixes to apt-cdrom + * Fixed the configuration parser to not blow up if ; is in the config + string + * Applied visual patch to dselect install script . Closes #55214 + * Included the configure-index example + * Minimal CD swaps + * Library soname has increased + * Fixed default sources.list to have correct URLs for potato when it + becomes stable + * Added a message about erasing sources.list to dselect setup script + Closes: #55755 + * No remove prompt if the archives dir has not changed. Closes: #55709 + * Fixed inclusion of 2nd sample config file. Closes: #55374 + * Made file mtimes of 0 not confuse the methods If-Modifed-Since check. + Closes: #55991 + + -- Ben Gertzfield Mon, 31 Jan 2000 12:12:40 -0800 + +apt (0.3.16) unstable; urgency=low + + * Made --no-download work. Closes: #52993 + * Now compiles on OpenBSD, Solaris and HP-UX + * Clarify segfault errors + * More debhelper fixes. Closes: #52662, #54566, #52090, #53531, #54769 + * Fix for Joel's discovery of glibc removal behavoir. + * Fix for Ben Collins file: uri from slink upgrade. + * Fixed resume code in FTP. Closes: #54323 + * Take more precautions to prevent the corruption Joey Hess saw. + * Fixed --no-list-cleanup + * RFC 2732 URI parsing ([] for hostnames). + * Typo in apt-cache man page. Closes: #54949 + + -- Ben Gertzfield Fri, 14 Jan 2000 08:04:15 -0800 + +apt (0.3.15) unstable; urgency=low + + * Added DSelect::WaitAfterDownload Closes: #49549 + * Fixed cast error in byteswap macro and supporting code. Closes: #50093 + * Fixed buffer overflow for wide terminal sizes. Closes: #50295 + * Made -s and clean not do anything. Closes: #50238 + * Problem with Protected packages and the new OR code. + * /usr/share/doc stuff. Closes: #51017, #50228, #51141 + * Remove doesn't require a package to be installable. Closes: #51175 + * FTP proxy touch ups in the mabn page. Closes: #51315, #51314 + + -- Ben Gertzfield Sat, 4 Dec 1999 21:17:24 -0800 + +apt (0.3.14) unstable; urgency=low + + * Fix Perl or group pre-depends thing Closes: #46091, #46096, #46233, #45901 + * Fix handling of dpkg's conversions from < -> <= Closes: #46094, #47088 + * Make unparsable priorities non-fatal Closes: #46266, #46267, #46293, #46298 + * Fix handling of '/' for the dist name. Closes: #43830, #45640, #45692 + * Fixed 'Method gave a blank filename' error from IMS queries onto CDs. + Closes: #45034, #45695, #46537 + * Made OR group handling in the problem resolver more elaborate. Closes: #45646 + * Added APT::Clean-Installed option. Closes: #45973 + * Moves the free space check to after the calculated size is printed. + Closes: #46639, #47498 + * mipsel arch Closes: #47614 + * Beautified URI printing to not include passwords Closes: #46857 + * Fixed little problem with --no-download Closes: #47557 + * Tweaked Dselect 'update' script to re-gen the avail file even in the + event of a failure Closes: #47112 + * Retries for source archives too Closes: #47529 + * Unmounts CDROMs iff it mounted them Closes: #45299 + * Checks for the partial directories before doing downloads Closes: #47392 + * no_proxy environment variable (http only!) Closes: #43476 + * apt-cache showsrc Closes: #45799 + * De-Refs Single Pure virtual packages. Closes: #42437, #43555 + * Regexs for install. Closes: #35304, #38835 + * Dependency reports now show OR group relations + * Re-Install feature. Cloes: #46961, #37393, #38919 + * Locks archive directory on clean (woops) + * Remove is not 'sticky'. Closes: #48392 + * Slightly more accurate 'can not find package' message. Closes: #48311 + * --trivial-only and --no-remove. Closes: #48518 + * Increased the cache size. Closes: #47648 + * Comment woopsie. Closes: #48789 + * Removes existing links when linking sources. Closes: #48775 + * Problem resolver does not install all virtual packages. Closes: #48591, #49252 + * Clearer usage message about 'source' Closes: #48858 + * Immediate configure internal error Closes: #49062, #48884 + + -- Ben Gertzfield Sun, 7 Nov 1999 20:21:25 -0800 + +apt (0.3.13) unstable; urgency=low + + * Fix timestamp miss in FTP. Closes: #44363 + * Fix sorting of Kept packages. Closes: #44377 + * Fix Segfault for dselect-upgrade. Closes: #44436 + * Fix handling of '/' for the dist name. Closes #43830 + * Added APT::Get::Diff-Only and Tar-Only options. Closes #44384 + * Add commented-out deb-src URI to default sources.list file. + + -- Ben Gertzfield Sun, 19 Sep 1999 18:54:20 -0700 + +apt (0.3.12) unstable; urgency=low + + * Fix for typo in the dhelp index. Closes: #40377 + * Multiple media swap support + * Purge support. Closes: #33291, #40694 + * Better handling of - remove notation. Closes: #41024 + * Purge support. Closes: #33291, #40694 + * Error code on failed update. Closes: #41053 + * apt-cdrom adds entries for source directories. Closes: #41231 + * Sorts the output of any list. Closes: #41107 + * Fixes the looping problem. Closes: #41784, #42414, #44022 + * Fixes the CRC mechanism to lowercase all strings. Closes: #41839 + * More checks to keep the display sane. Particularly when fail-over is + used with local mirrors and CD-Roms. Closes: #42127, #43130, #43668 + * PThread lockup problem on certain sparc/m68k. Closes: #40628 + * apt-cdrom understands .gz Package files too. Closes: #42779 + * Spelling error in dselect method description. Closes: #43251 + * Added security to the default source list. Closes: #43356 + + -- Ben Gertzfield Fri, 3 Sep 1999 09:04:28 -0700 + +apt (0.3.11) unstable; urgency=low + + * Fix for mis-parsed file: URIs. Closes: #40373, #40366, #40230 + * Fix for properly upgrading the system from perl 5.004 to 5.005 + + -- Ben Gertzfield Mon, 28 Jun 1999 21:06:44 -0700 + +apt (0.3.9) unstable; urgency=low + + * Spelling error in cachefile.cc. Closes: #39885 + * Trailing slash in dselect install if you try to use the + default config file. Closes: #40011 + * Simulate works for autoclean. Closes: #39141 + * Fixed spelling errors. Closes: #39673 + * Changed url parsing a bit. Closes: #40070, #40069 + * Version 0.3.8 will be for slink/hamm (GNU libc 2). + + -- Ben Gertzfield Thu, 24 Jun 1999 18:02:52 -0700 + +apt (0.3.7) unstable; urgency=low + + * Fixed missing text in the apt-get(8) page. Closes: #37596 + * Made --simulate and friends work with apt-get source. Closes: #37597, #37656 + * Fixed inclusion of man pages in the -doc/-dev package. Closes: #37633, #38651 + * Fixed handling of the -q option with not-entirely integer arguments + Closes: #37499 + * Man page typo Closes: #37762 + * Fixed parsing of the Source: line. Closes: #37679 + * Dpkg/dpkg-hurd source bug. Closes: #38004, #38032 + * Added a check for an empty cache directory. Closes: #37963 + * Return a failure code if -d is given and packages fail to download. + Closes: #38127 + * Arranged for an ftp proxy specifing an http server to work. See the + important note in the sources.list man page. + * Accounted for resumed files in the cps calculation. Closes: #36787 + * Deal with duplicate same version different packages. Closes: #30237 + * Added --no-download. Closes: #38095 + * Order of apt-cdrom dist detection. Closes: #38139 + * Fix apt-cdrom chop handling and missing lines. Closes: #37276 + * IPv6 http support + * Suggests dpkg-dev for apt-get source. Closes: #38158 + * Fixed typo in apt-get help. Closes: #38712 + * Improved the error message in the case of broken held package. Closes: #38777 + * Fixed handling of MD5 failures + * Documented list notation Closes: #39008 + * Change the 'b' to 'B'. Closes: #39007 + + -- Ben Gertzfield Sun, 20 Jun 1999 18:36:20 -0700 + +apt (0.3.6) unstable; urgency=low + + * Note that 0.3.5 never made it out the door.. + * Fix for apt-cdrom and unusual disk label locations. Closes: #35571 + * Made APT print numbers in decimal. Closes: #35617, #37319 + * Buffer munching fix for FTP. Closes: #35868 + * Typo in sample config file. Closes: #35907 + * Fixed whitespace in version compares. Closes: #35968, #36283, #37051 + * Changed installed size counter to only count unpacked packages. + Closes: #36201 + * apt-get source support. Closes: #23934, #27190 + * Renames .debs that fail MD5 checking, provides automatic corruption + recovery. Closes: #35931 + * Fixed autoconf verison. Closes: #37305 + * Random Segfaulting. Closes: #37312, #37530 + * Fixed apt-cache man page. Closes: #36904 + * Added a newline to apt-cache showpkg. Closes: #36903 + + -- Ben Gertzfield Wed, 12 May 1999 09:18:49 -0700 + +apt (0.3.4) unstable; urgency=low + + * Release for Ben while he is out of town. + * Checked the size of partial files. Closes: #33705 + * apt-get should not print progress on non-tty. Closes: #34944 + * s/guide.text.gz/users-guide.txt.gz/ debian/control: Closes: #35207 + * Applied cdrom patches from Torsten. Closes: #35140, #35141 + * smbmounted cdrom fix. Closes: #35470 + * Changed ie to eg. Closes: #35196 + + -- Adam Heath Sun, 4 Apr 1999 18:26:44 -0500 + +apt (0.3.3) unstable; urgency=low + + * Fixes bug with file:/ URIs and multi-CD handling. Closes: #34923 + + -- Ben Gertzfield Tue, 23 Mar 1999 12:15:44 -0800 + +apt (0.3.2) unstable; urgency=low + + * Major release into unstable of v3 + * These bugs have been fixed, explanations are in the bug system, read + the man pages as well.. + Closes: #21113, #22507, #22675, #22836, #22892, #32883, #33006, #34121, + #23984, #24685, #24799, #25001, #25019, #34223, #34296, #34355, + #24021, #25022, #25026, #25104, #25176, #31557, #31691, #31853, + #25458, #26019, #26433, #26592, #26670, #27100, #27100, #27601, + #28184, #28391, #28778, #29293, #29351, #27841, #28172, #30260, + #29382, #29441, #29903, #29920, #29983, #30027, #30076, #30112, + #31009, #31155, #31381, #31883, #32140, #32395, #32584. #34465, + #30383, #30441, #30472, #30643, #30827, #30324, #36425, #34596 + + -- Ben Gertzfield Mon, 15 Mar 1999 19:14:25 -0800 + +apt (0.3.1) experimental; urgency=low + + * Minor release of cvs version. + * Added virtual package libapt-pkgx.x + + -- Mitch Blevins Wed, 10 Mar 1999 07:52:44 -0500 + +apt (0.3.0) experimental; urgency=low + + * New experimental version. + + -- Ben Gertzfield Tue, 15 Dec 1998 12:53:21 -0800 + +apt (0.1.9) frozen unstable; urgency=low + + * Return to the wacky numbering for when we build 0.1.8 for hamm + * Important bug related to APT on the Alpha fixed + * apt-get dist-upgrade problems fixed + * tiny patch for http method to fix an endless loop + * nice fix from /usr/doc/lintian/ to remove rpath nastiness from + libtool and add proper shared lib dependancies + * now dh_shlibdeps is called with LD_LIBRARY_PATH=debian/tmp/usr/lib + in case an old libpkg is installed while building APT to prevent + spurious dependancies + + -- Ben Gertzfield Thu, 5 Nov 1998 17:43:25 -0800 + +apt (0.1.7) unstable; urgency=low + + * New build with libstdc++2.9. + * Various fixes; read the Changelog. + + -- Ben Gertzfield Thu, 15 Oct 1998 18:29:18 -0700 + +apt (0.1.6) unstable; urgency=low + + * Various fixes in the FTP method for error checking. Fixes: #26188. + * Spelling corrections in dselect method. Fixes: #25884 + * Fixes for compilation on alpha/ppc. Fixes: #25313, #26108. + * No more bo releases: we're using a normal numbering system now. + + -- Ben Gertzfield Tue, 8 Sep 1998 19:27:13 -0700 + +apt (0.1.5) unstable; urgency=low + + * Changed sources.list to point to 'unstable' by default, as + 'frozen' no longer exists! + + -- Ben Gertzfield Thu, 23 Jul 1998 22:00:18 -0700 + +apt (0.1.3) unstable; urgency=low + + * New upstreamish version. + * ftp method rewritten in C. Removes dependancies on all perl/perl + related modules. This fixes many of the ftp method bugs. + + -- Ben Gertzfield Thu, 16 Jul 1998 22:19:00 -0700 + +apt (0.1.1) unstable; urgency=low + + * Release for unstable. + + -- Ben Gertzfield Tue, 30 Jun 1998 20:48:30 -0700 + +apt (0.1) unstable; urgency=low + + * Kludge to fix problem in libnet-perl with illegal anonymous + FTP passwords. + * Moved to unstable; apt is in a useable state now. + * Fixed version numbering. From now on, numbering will be: + 0.1 (no actual release) -> 0.1.0bo (release for libc5) -> + 0.1.1 (release for unstable). Thanks, Manoj. + + -- Ben Gertzfield Tue, 30 Jun 1998 20:40:58 -0700 + +apt (0.0.17-1) experimental; urgency=low + + * Fixed problem with libc6 version compare + * Scott's away for a while, so I'll be packaging apt for the time + being. + + -- Ben Gertzfield Thu, 25 Jun 1998 19:02:03 -0700 + +apt (0.0.16-1) experimental; urgency=low + + * Modifications to make apt-get more friendly when backgrounded. + * Updated documentation. + * Updates to graphic widgets + + -- Scott K. Ellis Mon, 8 Jun 1998 11:22:02 -0400 + +apt (0.0.15-0.2bo) experimental; urgency=low + + * Bo compilation + * Bob Hilliards crash + + -- Jason Gunthorpe Sun, 31 May 1998 20:18:35 -0600 + +apt (0.0.15-0.1bo) experimental; urgency=low + + * Bo compilation + * libstdc++272 patch + + -- Jason Gunthorpe Sun, 31 May 1998 20:18:35 -0600 + +apt (0.0.15) experimental; urgency=low + + * Clean up source tarball (no user-visible changes) + + -- Scott K. Ellis Tue, 26 May 1998 12:23:53 -0400 + +apt (0.0.14) experimental; urgency=low + + * Updates in ordering code to make sure certain upgrades work correctly. + * Made dselect/setup understand ftp as well as http + + -- Scott K. Ellis Wed, 20 May 1998 13:33:32 -0400 + +apt (0.0.13-bo1) experimental; urgency=low + + * Bo compilation + + -- Jason Gunthorpe Mon, 18 May 1998 15:10:49 -0600 + +apt (0.0.13) experimental; urgency=low + + * Remove hardcoded egcc from debian/rules (#21575) + * Fixes for ordering logic when system has a number of unpacked + but unconfigured packages installed. + * Spelling fix in dselect install method (#22556) + + -- Scott K. Ellis Sun, 17 May 1998 20:08:33 -0400 + +apt (0.0.12) experimental; urgency=low + + * Fixed problems with package cache corruption. + * Made to depend on libc6 >= 2.0.7pre1 due to timezone problems with + earlier versions. + * Interface and documentation improvements. + + -- Scott K. Ellis Sat, 16 May 1998 23:17:32 -0400 + +apt (0.0.11) experimental; urgency=low + + * Change dependancies to pre-depends since breaking your packaging tools + in the middle of an installation isn't very good. + * Bug fixes to ftp method and general apt-get code + + -- Scott K. Ellis Fri, 15 May 1998 08:57:38 -0400 + +apt (0.0.10) experimental; urgency=low + + * Run "dpkg --configure -a" after an aborted dselect install + * Fixed problem with install looping + * Support for authenticating proxys: (note this isn't terribly secure) + http_proxy="http://user:pass@firewall:port/" + * Substitute $ARCH in sources.list + * Fixes in the resumption code for ftp + + -- Scott K. Ellis Tue, 12 May 1998 09:14:41 -0400 + +apt (0.0.9) experimental; urgency=low + + * Added ftp support. + * Various other less visible bug fixes. + * Fixed problem with segfault when apt-get invoked in a non-existant + directory (Bug #21863) + * Bumped policy to 2.4.1 + + -- Scott K. Ellis Fri, 1 May 1998 09:18:19 -0400 + +apt (0.0.8) experimental; urgency=low + + * Fixed generated available file (Bug #21836) + * Added download ETA (Bug #21774). + * Fixed hardcoded ARCH (Bug #21751). + * Fixed check on http_proxy (Bug #21795). + * Added download speed indicator. + + -- Scott K. Ellis Mon, 27 Apr 1998 10:58:32 -0400 + +apt (0.0.7) experimental; urgency=low + + * Remove libdeity and apt from package for now, since only apt-get and + apt-cache are actually useful right now. + * Clean up handling of package installation errors. + * Added timeout to http transfers (#21269) + * Updated setup for dselect/apt method. + * Updated man pages + * Long options (added in 0.0.6) + + -- Scott K. Ellis Tue, 21 Apr 1998 09:06:49 -0400 + +apt (0.0.6) experimental; urgency=low + + * Spelling changes. + * Revamped download status display. + * Call apt-get clean after successful install in dselect. + * Added "apt-get clean" which deletes package files from /var/cache/apt + + -- Scott K. Ellis Thu, 9 Apr 1998 15:13:59 -0400 + +apt (0.0.5) experimental; urgency=low + + * Ignore signals while dpkg is running so we don't leave dpkg running in + the background (#20804) + * Check Packages as well as Packages.gz for file URIs (#20784) + * Spelling cleanup (#20800) + * Added -m option to permit upgrade to go on in the case of a bad mirror. + This option may result in incomplete upgrades when used with -f. + + -- Scott K. Ellis Tue, 7 Apr 1998 12:40:29 -0400 + +apt (0.0.4) experimental; urgency=low + + * New usage guide. + * Various documentation updates and cleanup. + * Added '-f' option to apt-get attempt to fix broken dependancies. + + -- Scott K. Ellis Sat, 4 Apr 1998 14:36:00 -0500 + +apt (0.0.3) experimental; urgency=low + + * Added a shlibs.local file to prevent apt from depending on itself. + * Updates to how apt-get handles bad states in installed packages. + * Updated rules to make sure build works from a freshly checked out source + archive. Building from CVS needs libtool/automake/autoconf, builds from + the distributed source package should have no such dependancy. + + -- Scott K. Ellis Fri, 3 Apr 1998 11:49:47 -0500 + +apt (0.0.2) unstable; urgency=low + + * Updates to apt-get and http binding for dselect method (apt). + * Updating version number from 0.0.1, which was released only on IRC. + + -- Scott K. Ellis Fri, 3 Apr 1998 00:35:18 -0500 + +apt (0.0.1) unstable; urgency=low + + * Initial Release. + + -- Scott K. Ellis Tue, 31 Mar 1998 12:49:28 -0500 + diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +5 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..f331a84 --- /dev/null +++ b/debian/control @@ -0,0 +1,66 @@ +Source: apt +Section: admin +Priority: important +Maintainer: APT Development Team +Uploaders: Jason Gunthorpe , Adam Heath , Matt Zimmerman , Michael Vogt +Standards-Version: 3.6.2.2 +Build-Depends: debhelper (>= 5.0), libdb4.4-dev, gettext (>= 0.12) +Build-Depends-Indep: debiandoc-sgml, docbook-utils (>= 0.6.12-1) + +Package: apt +Architecture: any +Depends: ${shlibs:Depends}, debian-archive-keyring +Priority: important +Replaces: libapt-pkg-doc (<< 0.3.7), libapt-pkg-dev (<< 0.3.7) +Provides: ${libapt-pkg:provides} +Suggests: aptitude | synaptic | gnome-apt | wajig, dpkg-dev, apt-doc, bzip2 +Section: admin +Description: Advanced front-end for dpkg + This is Debian's next generation front-end for the dpkg package manager. + It provides the apt-get utility and APT dselect method that provides a + simpler, safer way to install and upgrade packages. + . + APT features complete installation ordering, multiple source capability + and several other unique features, see the Users Guide in apt-doc. + +Package: apt-doc +Architecture: all +Priority: optional +Replaces: apt (<< 0.5.4.9) +Section: doc +Description: Documentation for APT + This package contains the user guide and offline guide, for APT, an + Advanced Package Tool. + +Package: libapt-pkg-dev +Architecture: any +Priority: optional +Depends: apt (= ${Source-Version}), apt-utils (= ${Source-Version}), ${libapt-pkg:provides}, ${libapt-inst:provides} +Section: libdevel +Description: Development files for APT's libapt-pkg and libapt-inst + This package contains the header files and libraries for + developing with APT's libapt-pkg Debian package manipulation + library and the libapt-inst deb/tar/ar library. + +Package: libapt-pkg-doc +Architecture: all +Priority: optional +Section: doc +Description: Documentation for APT development + This package contains documentation for development of the APT + Debian package manipulation program and its libraries. + +Package: apt-utils +Architecture: any +Depends: ${shlibs:Depends} +Priority: important +Provides: ${libapt-inst:provides} +Replaces: apt (<< 0.5.9) +Section: admin +Description: APT utility programs + This package contains some APT utility programs such as apt-ftparchive, + apt-sortpkgs and apt-extracttemplates. + . + apt-extracttemplates is used by debconf to prompt for configuration + questions before installation. apt-ftparchive is used to create Package + and other index files. apt-sortpkgs is a Package/Source file normalizer. diff --git a/debian/libapt-pkg-dev.dirs b/debian/libapt-pkg-dev.dirs new file mode 100644 index 0000000..844642a --- /dev/null +++ b/debian/libapt-pkg-dev.dirs @@ -0,0 +1,2 @@ +usr/lib +usr/include/apt-pkg diff --git a/debian/libapt-pkg-doc.doc-base.cache b/debian/libapt-pkg-doc.doc-base.cache new file mode 100644 index 0000000..59558de --- /dev/null +++ b/debian/libapt-pkg-doc.doc-base.cache @@ -0,0 +1,18 @@ +Document: libapt-pkg-doc-cache +Title: APT Cache Specification +Author: Jason Gunthorpe +Abstract: The APT Cache Specification describes the complete implementation + and format of the APT Cache file. The APT Cache file is a way for APT to + parse and store a large number of package files for display in the UI. + It's primary design goal is to make display of a single package in the + tree very fast by pre-linking important things like dependencies and + provides. The specification doubles as documentation for one of the + in-memory structures used by the package library and the APT GUI. +Section: Devel + +Format: html +Index: /usr/share/doc/libapt-pkg-doc/cache.html/index.html +Files: /usr/share/doc/libapt-pkg-doc/cache.html/*.html + +Format: text +Files: /usr/share/doc/libapt-pkg-doc/cache.text.gz diff --git a/debian/libapt-pkg-doc.doc-base.design b/debian/libapt-pkg-doc.doc-base.design new file mode 100644 index 0000000..ce5e0ce --- /dev/null +++ b/debian/libapt-pkg-doc.doc-base.design @@ -0,0 +1,14 @@ +Document: libapt-pkg-doc-design +Title: APT Design Document +Author: Jason Gunthorpe +Abstract: The APT Design Document is an overview of the specifications and + design goals of the APT project. It also attempts to give a broad + description of the implementation as well. +Section: Debian + +Format: html +Index: /usr/share/doc/libapt-pkg-doc/design.html/index.html +Files: /usr/share/doc/libapt-pkg-doc/design.html/*.html + +Format: text +Files: /usr/share/doc/libapt-pkg-doc/design.text.gz diff --git a/debian/libapt-pkg-doc.doc-base.dpkg-tech b/debian/libapt-pkg-doc.doc-base.dpkg-tech new file mode 100644 index 0000000..3afc262 --- /dev/null +++ b/debian/libapt-pkg-doc.doc-base.dpkg-tech @@ -0,0 +1,13 @@ +Document: libapt-pkg-doc-dpkg-tech +Title: APT's interpetation of DPkg Technical Specification +Author: Jason Gunthorpe +Abstract: The DPkg Technical Manual gives an overview of dpkg's external + functions(as APT sees them) and describes how it views the world. +Section: Devel + +Format: html +Index: /usr/share/doc/libapt-pkg-doc/dpkg-tech.html/index.html +Files: /usr/share/doc/libapt-pkg-doc/dpkg-tech.html/*.html + +Format: text +Files: /usr/share/doc/libapt-pkg-doc/dpkg-tech.text.gz diff --git a/debian/libapt-pkg-doc.doc-base.files b/debian/libapt-pkg-doc.doc-base.files new file mode 100644 index 0000000..e0b7935 --- /dev/null +++ b/debian/libapt-pkg-doc.doc-base.files @@ -0,0 +1,14 @@ +Document: libapt-pkg-doc-files +Title: APT Files +Author: Jason Gunthorpe +Abstract: The APT Files document describes the complete implementation and + format of the installed APT directory structure. It also serves as guide + to how APT views the Debian archive. +Section: Devel + +Format: html +Index: /usr/share/doc/libapt-pkg-doc/files.html/index.html +Files: /usr/share/doc/libapt-pkg-doc/files.html/*.html + +Format: text +Files: /usr/share/doc/libapt-pkg-doc/files.text.gz diff --git a/debian/libapt-pkg-doc.doc-base.method b/debian/libapt-pkg-doc.doc-base.method new file mode 100644 index 0000000..61c3612 --- /dev/null +++ b/debian/libapt-pkg-doc.doc-base.method @@ -0,0 +1,14 @@ +Document: libapt-pkg-doc-method +Title: APT Method Interface +Author: Jason Gunthorpe +Abstract: The APT Method Interface document describes the interface that + APT uses to the archive access methods. +Section: Devel + +Format: html +Index: /usr/share/doc/libapt-pkg-doc/method.html/index.html +Files: /usr/share/doc/libapt-pkg-doc/method.html/*.html + +Format: text +Files: /usr/share/doc/libapt-pkg-doc/method.text.gz + diff --git a/debian/postinst b/debian/postinst new file mode 100755 index 0000000..1588f52 --- /dev/null +++ b/debian/postinst @@ -0,0 +1,39 @@ +#! /bin/sh + +# apt postinst, based liberally on James Troup's gpm postinst +# Copyright (C) 1998, Ben Gertzfield + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. + +set -e + +create_apt_conf () +{ + EXAMPLE_SOURCE=/usr/share/doc/apt/examples/sources.list + if [ -f $EXAMPLE_SOURCE ]; then + cp $EXAMPLE_SOURCE /etc/apt/sources.list + fi +} + +check_apt_conf () +{ + true + # this is for future expansion +} + +#DEBHELPER# + +case "$1" in + configure) + # + # If there is no /etc/apt/sources.list then create a default + # + if [ ! -f /etc/apt/sources.list ]; then + create_apt_conf + else + check_apt_conf + fi +esac diff --git a/debian/postrm b/debian/postrm new file mode 100755 index 0000000..8b921dd --- /dev/null +++ b/debian/postrm @@ -0,0 +1,20 @@ +#! /bin/sh + +# apt postrm +# Copyright (C) 1998, Ben Gertzfield + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. + +#DEBHELPER# + +case "$1" in + remove) + ;; + purge) + rm -rf /var/cache/apt + rm -rf /var/lib/apt +esac + diff --git a/debian/preinst b/debian/preinst new file mode 100755 index 0000000..276eae5 --- /dev/null +++ b/debian/preinst @@ -0,0 +1,30 @@ +#! /bin/sh + +# dpkg does this for us while we are upgrading.. +#if [ "$1" = "upgrade" -a -L /var/state/apt -a -e /var/lib/apt -a ! -L /var/state/apt ] && dpkg --compare-versions "$2" ">=" "0.4.10"; then +# rm /var/state/apt +#fi + +if [ "$1" = "upgrade" -o "$1" = "install" -a "$2" != "" ]; then + if [ ! -e /var/lib/apt -a -e /var/state/apt ]; then + # upgrading from /var/state/apt using apt. + # it's probably running now so we want to ensure /var/state/apt + # is still valid afterwards. and since we're upgrading + + if [ -x /usr/bin/perl -a -d /var/state/apt -a ! -L /var/state/apt ] && + perl -e 'exit 1 if ((stat("/var/lib"))[0] != (stat("/var/state/apt"))[0])' + then + # same fs, we can mv it + mv /var/state/apt /var/lib/apt + ln -s ../lib/apt /var/state/apt + # note that this symlink (/var/state/apt) will be removed when + # dpkg finishes unpacking the apt we're about to install; this is okay + else + # scary, let's just symlink it and hope + ln -s /var/state/apt /var/lib/apt + fi + fi + touch /var/lib/apt/lists/partial/.delete-me-later || true +fi + +#DEBHELPER# diff --git a/debian/prerm b/debian/prerm new file mode 100755 index 0000000..ac70a02 --- /dev/null +++ b/debian/prerm @@ -0,0 +1,13 @@ +#! /bin/sh + +#DEBHELPER# + +if [ "$1" = "upgrade" -o "$1" = "failed-upgrade" ] && + dpkg --compare-versions "$2" "<<" 0.4.10 +then + if [ ! -d /var/state/apt/ ]; then + ln -s /var/lib/apt /var/state/apt + touch /var/lib/apt/lists/partial/.delete-me-later + fi +fi + diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..02ee734 --- /dev/null +++ b/debian/rules @@ -0,0 +1,341 @@ +#!/usr/bin/make -f +# Made with the aid of dh_make, by Craig Small +# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. +# Some lines taken from debmake, by Christoph Lameter. +# $Id: rules,v 1.68 2004/05/30 18:21:43 mdz Exp $ + +# LD_LIBRARY_PATH=pwd/debian/apt/usr/lib dh_shlibdeps -papt +# dpkg: /home/jgg/work/apt2/debian/apt/usr/lib/libapt-pkg.so.2.9 not found. + +# For the deb builder, you can run 'debian/rules cvs-build', which does all +# steps nescessary to produce a proper source tarball with the CVS/ removed. +# It builds in debian/cvs-build/apt-/, and places files in +# debian/cvs-build/. Optionally, you can run 'debian/rules cvs-mkul' to +# create ../upload-, with all the files needed to be uploaded placed +# in it. + +export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) + +# FOR AUTOCONF 2.52 AND NEWER ONLY +ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) + confflags += --build $(DEB_HOST_GNU_TYPE) +else + confflags += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE) +endif + +# See below +-include build/environment.mak + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + export CXXFLAGS = -O0 -g -Wall +else + export CXXFLAGS = -O2 -g -Wall +endif + +# Default rule +build: + +PKG=apt +DEB_BUILD_PROG:=debuild --preserve-envvar PATH --preserve-envvar CCACHE_DIR -us -uc $(DEB_BUILD_PROG_OPTS) +APT_DEBVER=$(shell dpkg-parsechangelog |sed -n -e '/^Version:/s/^Version: //p' -e 's/\+.*$$//') +APT_CONFVER=$(shell sed -n -e 's/^AC_DEFINE_UNQUOTED(VERSION,"\(.*\)")/\1/p' configure.in) +APT_CVSTAG=$(shell echo "$(APT_DEBVER)" | sed -e 's/^/v/' -e 's/\./_/g') + +# Determine the build directory to use +BASE=. +ifdef BUILD +BUILD_POSSIBLE := $(BUILD) $(BASE)/$(BUILD) +else +BUILD_POSSIBLE := $(BASE) $(BASE)/build-$(shell uname -m) $(BASE)/build +endif +BUILDX:= $(foreach i,$(BUILD_POSSIBLE),$(wildcard $(i)/environment.mak*)) +BUILDX:= $(patsubst %/,%,$(firstword $(dir $(BUILDX)))) +override BLD := $(BUILDX) + +ifeq ($(words $(BLD)),0) +override BLD := ./build +endif + +# Rebuild configure.in to have the correct version from the change log +ifneq ($(APT_DEBVER),$(APT_CONFVER)) +ifneq ($(APT_DEBVER),) +.PHONY: configure.in +configure.in: + sed -e 's/$(APT_CONFVER)/$(APT_DEBVER)/' $@ > $@.$$$$ && mv $@.$$$$ $@ +endif +else +configure.in: +endif + +# APT Programs in apt-utils +APT_UTILS=ftparchive sortpkgs extracttemplates + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# Find the libapt-pkg major version for use in other control files +export LIBAPTPKG_MAJOR:=$(shell egrep '^MAJOR=' apt-pkg/makefile |cut -d '=' -f 2) +export LIBAPTINST_MAJOR:=$(shell egrep '^MAJOR=' apt-inst/makefile |cut -d '=' -f 2) + +# Determine which package we should provide in the control files +LIBAPTPKG_PROVIDE=libapt-pkg$(GLIBC_VER)$(LIBSTDCPP_VER)-$(LIBAPTPKG_MAJOR) +LIBAPTINST_PROVIDE=libapt-inst$(GLIBC_VER)$(LIBSTDCPP_VER)-$(LIBAPTINST_MAJOR) + +debian/shlibs.local: apt-pkg/makefile + # We have 3 shlibs.local files.. One for 'apt', one for 'apt-utils' and + # one for the rest of the packages. This ensures that each package gets + # the right overrides.. + rm -rf $@ $@.apt $@.apt-utils + echo "libapt-pkg$(GLIBC_VER)$(LIBSTDCPP_VER) $(LIBAPTPKG_MAJOR)" > $@.apt + + echo "libapt-pkg$(GLIBC_VER)$(LIBSTDCPP_VER) $(LIBAPTPKG_MAJOR) $(LIBAPTPKG_PROVIDE)" > $@.apt-utils + echo "libapt-inst$(GLIBC_VER)$(LIBSTDCPP_VER) $(LIBAPTINST_MAJOR)" >> $@.apt-utils + + echo "libapt-pkg$(GLIBC_VER)$(LIBSTDCPP_VER) $(LIBAPTPKG_MAJOR) $(LIBAPTPKG_PROVIDE)" > $@ + echo "libapt-inst$(GLIBC_VER)$(LIBSTDCPP_VER) $(LIBAPTINST_MAJOR) $(LIBAPTINST_PROVIDE)" >> $@ + +build: build/build-stamp +build-doc: build/build-doc-stamp + +# Note that this is unconditionally done first as part of loading environment.mak +# The true is needed to force make to reload environment.mak after running +# configure-stamp. Otherwise we can get stale or invalid, or missing config data. +build/environment.mak: build/configure-stamp + @true + +configure: configure.in +build/configure-stamp: configure + dh_testdir + -mkdir build + cp COPYING debian/copyright + cd build && CXXFLAGS="$(confcxxflags)" ../configure $(confflags) + touch $@ + +build/build-stamp: build/configure-stamp + # Add here commands to compile the package. + $(MAKE) binary + touch $@ + +build/build-doc-stamp: build/configure-stamp + # Add here commands to compile the package. + $(MAKE) doc + touch $@ + +clean: + dh_testdir +# dh_testroot + -$(MAKE) clean + -$(MAKE) distclean + + rm -rf build + + # Add here commands to clean up after the build process. + dh_clean debian/copyright debian/shlibs.local debian/shlibs.local.apt debian/shlibs.local.apt-utils + +binary-indep: apt-doc libapt-pkg-doc +# Build architecture-independent files here. +libapt-pkg-doc: build-doc debian/shlibs.local + dh_testdir -p$@ + dh_testroot -p$@ + dh_clean -p$@ -k + dh_installdirs -p$@ +# +# libapt-pkg-doc install +# + dh_installdocs -p$@ $(BLD)/docs/cache* $(BLD)/docs/design* $(BLD)/docs/dpkg-tech* \ + $(BLD)/docs/files* $(BLD)/docs/method* \ + doc/libapt-pkg2_to_3.txt doc/style.txt + dh_installexamples -p$@ +# dh_installmenu -p$@ +# dh_installinit -p$@ +# dh_installcron -p$@ +# dh_installman -p$@ + +# dh_undocumented -p$@ + dh_installchangelogs -p$@ + dh_strip -p$@ + dh_compress -p$@ + dh_fixperms -p$@ +# dh_suidregister -p$@ + dh_installdeb -p$@ + dh_gencontrol -p$@ -u -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE) + dh_md5sums -p$@ + dh_builddeb -p$@ + +apt-doc: build-doc + dh_testdir -p$@ + dh_testroot -p$@ + dh_clean -p$@ -k +# +# apt-doc install +# + # Copy the guides + dh_installdocs -p$@ $(BLD)/docs/guide*.text $(BLD)/docs/guide*.html \ + $(BLD)/docs/offline*.text $(BLD)/docs/offline*.html + dh_installchangelogs -p$@ + dh_compress -p$@ + dh_fixperms -p$@ + dh_installdeb -p$@ + dh_gencontrol -p$@ + dh_md5sums -p$@ + dh_builddeb -p$@ + + + +# Build architecture-dependent files here. + +binary-arch: apt libapt-pkg-dev apt-utils +apt: build debian/shlibs.local + dh_testdir -p$@ + dh_testroot -p$@ + dh_clean -p$@ -k + dh_installdirs -p$@ /usr/share/bug/$@ /usr/share/$@ +# +# apt install +# + cp $(BLD)/bin/apt-* debian/$@/usr/bin/ + + # Remove the bits that are in apt-utils + rm $(addprefix debian/$@/usr/bin/apt-,$(APT_UTILS)) + + # install the shared libs + find $(BLD)/bin/ -type f -name "libapt-pkg*.so.*" -exec cp -a "{}" debian/$@/usr/lib/ \; + find $(BLD)/bin/ -type l -name "libapt-pkg*.so.*" -exec cp -a "{}" debian/$@/usr/lib/ \; + + cp $(BLD)/bin/methods/* debian/$@/usr/lib/apt/methods/ + + cp $(BLD)/scripts/dselect/* debian/$@/usr/lib/dpkg/methods/apt/ + cp -r $(BLD)/locale debian/$@/usr/share/ + + cp debian/bugscript debian/$@/usr/share/bug/apt/script + + cp share/debian-archive.gpg debian/$@/usr/share/$@ + +# head -n 500 ChangeLog > debian/ChangeLog + + dh_installexamples -p$@ $(BLD)/docs/examples/* + dh_installman -p$@ + dh_installcron -p$@ + dh_installdocs -p$@ + dh_installchangelogs -p$@ + dh_strip -p$@ + dh_compress -p$@ + dh_fixperms -p$@ + dh_makeshlibs -p$@ -m$(LIBAPTPKG_MAJOR) -V '$(LIBAPTPKG_PROVIDE)' + dh_installdeb -p$@ + dh_shlibdeps -p$@ -l`pwd`/debian/apt/usr/lib:`pwd`/debian/$@/usr/lib -- -Ldebian/shlibs.local.apt + dh_gencontrol -p$@ -u -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE) + dh_md5sums -p$@ + dh_builddeb -p$@ + +libapt-pkg-dev: build debian/shlibs.local + dh_testdir -p$@ + dh_testroot -p$@ + dh_clean -p$@ -k + dh_installdirs -p$@ +# +# libapt-pkg-dev install +# + cp -a $(BLD)/bin/libapt-pkg*.so debian/libapt-pkg-dev/usr/lib/ + cp -a $(BLD)/bin/libapt-inst*.so debian/libapt-pkg-dev/usr/lib/ +# ln -s libapt-pkg.so.$(LIBAPTPKG_MAJOR) debian/libapt-pkg-dev/usr/lib/libapt-pkg.so + cp $(BLD)/include/apt-pkg/*.h debian/libapt-pkg-dev/usr/include/apt-pkg/ + + dh_installdocs -p$@ +# dh_installmenu -p$@ +# dh_installinit -p$@ +# dh_installcron -p$@ +# dh_installman -p$@ + + dh_installchangelogs -p$@ + dh_strip -p$@ + dh_compress -p$@ + dh_fixperms -p$@ +# dh_suidregister -p$@ + dh_installdeb -p$@ + dh_gencontrol -p$@ -u -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE) -Vlibapt-inst:provides=$(LIBAPTINST_PROVIDE) + dh_md5sums -p$@ + dh_builddeb -p$@ + +apt-utils: build debian/shlibs.local + dh_testdir -p$@ + dh_testroot -p$@ + dh_clean -p$@ -k + dh_installdirs -p$@ + + # install the shared libs + find $(BLD)/bin/ -type f -name "libapt-inst*.so.*" -exec cp -a "{}" debian/$@/usr/lib/ \; + find $(BLD)/bin/ -type l -name "libapt-inst*.so.*" -exec cp -a "{}" debian/$@/usr/lib/ \; + + cp $(addprefix $(BLD)/bin/apt-,$(APT_UTILS)) debian/$@/usr/bin/ + dh_installdocs -p$@ + dh_installexamples -p$@ + + # Install the man pages.. + dh_installman -p$@ + + dh_installchangelogs -p$@ + dh_strip -p$@ + dh_compress -p$@ + dh_fixperms -p$@ + dh_makeshlibs -m$(LIBAPTINST_MAJOR) -V '$(LIBAPTINST_PROVIDE)' -p$@ + dh_installdeb -p$@ + dh_shlibdeps -p$@ -l`pwd`/debian/apt/usr/lib:`pwd`/debian/$@/usr/lib -- -Ldebian/shlibs.local.apt-utils + dh_gencontrol -p$@ -u -Vlibapt-inst:provides=$(LIBAPTINST_PROVIDE) + dh_md5sums -p$@ + dh_builddeb -p$@ + +source diff: + @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false + +# Update from CVS +l33ch: really-clean + cvs update + buildlib/mkChangeLog + +# Update from CVS and then configure for build +super-l33ch: l33ch Makefile.in + +configure: + $(MAKE) configure + +l33ch-stamp: super-l33ch + touch $@ + +really-clean: clean + -find -name Makefile.in -print0 | xargs -0r rm -f + find -name ChangeLog | xargs rm -f + rm -f l33ch-stamp + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary debian/shlibs.local + + +# Done by the uploader. +#cvs update.. +#edit debian/changelog +# configure.in has the version automatically updated now. +# edit configure.in +# debian/rules cvs-build + +CVS_BUILDDIR=apt-$(APT_DEBVER) +CVS_ROOT=$(shell cat CVS/Root) +CVS_MODULE=$(shell cat CVS/Repository) +cvs-build: + rm -rf debian/cvs-build + mkdir -p debian/cvs-build + (cd debian/cvs-build;cvs -d $(CVS_ROOT) export -r$(APT_CVSTAG) -d apt-$(APT_DEBVER) $(CVS_MODULE)) + $(MAKE) -C debian/cvs-build/$(CVS_BUILDDIR) startup doc + (cd debian/cvs-build/$(CVS_BUILDDIR);$(DEB_BUILD_PROG)) + +cvs-mkul: + -mkdir -p ../upload-$(APT_DEBVER) + cp `find debian/cvs-build -maxdepth 1 -type f` ../upload-$(APT_DEBVER) + +arch-build: + rm -rf debian/arch-build + mkdir -p debian/arch-build/apt-$(APT_DEBVER) + tar -c --exclude=arch-build --no-recursion -f - `bzr inventory` | (cd debian/arch-build/$(PKG)-$(APT_DEBVER);tar xf -) + $(MAKE) -C debian/arch-build/apt-$(APT_DEBVER) startup doc + (cd debian/arch-build/apt-$(APT_DEBVER); $(DEB_BUILD_PROG)) diff --git a/doc/.cvsignore b/doc/.cvsignore new file mode 100644 index 0000000..94d80ad --- /dev/null +++ b/doc/.cvsignore @@ -0,0 +1,14 @@ +apt-cache.8 +apt-get.8 +apt-cdrom.8 +apt.conf.5 +sources.list.5 +apt-config.8 +apt-sortpkgs.1 +apt-ftparchive.1 +manpage.links +manpage.refs +manpage.log +apt_preferences.5 +apt-extracttemplates.1 +vendors.list.5 diff --git a/doc/Bugs b/doc/Bugs new file mode 100644 index 0000000..deb7334 --- /dev/null +++ b/doc/Bugs @@ -0,0 +1,174 @@ +-- Real Problems +#24000: Bug in apt Version: 0.0.17-1bo0 + Summary: Couldn't locate an archive source for a package + Status: Require Status file. +#24717: apt dies early if one postinst/preinst dies + Status: Requires dpkg modifications +#25104: APT should retry failed downloads + Summary: FTP method has problems with busy servers + Status: The 0.3.0 ftp method should probably use the configuration mechanism + to control this desired behavoir. +#25176: Problem with FTP/firewall +#25458: Problem with FTP/firewall + Summary: FTP method has no controls for firewalls + Status: The 0.3.0 ftp method should probably use the configuration mechanism + to control this desired behavoir. + +-- Fixed but unclosed things +#25026: apt: Why do you list the packages you're _not_ doing anything to instead of the ones you are? +#22507: apt: apt-get - listing packages to be upgraded (wishlist) + Summary: Feature request + Status: Fixed in 0.3.0 via the -u option +#21113: [Apt] In dselect, update dies and exits if the packages file is not found. + Status: Fixed in 0.3.0 +#22675: APT does not honor the --admin-dir option +#22836: Disk/Zip-Method for apt? + Summary: APT does not provide a way to download packages onto a + removable media for another computer + Status: 0.3.0 has substantially better support for this to the point + that it is doable by using a separate configuration file and + the -c option +#27601: srange errors from dselect + Summary: Couldn't locate an archive source + Status: Require status file + Believed to be fixed in 0.1.9, was not reproducable w/ given + status file +#27841: apt: apt depends on a missing library + Status: New versions of APT in slink have been compiled with libstdc++2.9 +#23984: apt: support for "no_proxy" would be nice + Status: Planed to be integrated into the new methods via the configuration + file + Done - Use Acquire::http::proxy::host.com="DIRECT" +#25021: apt: Need some control over multiple connections + Status: Probable that 0.3.x will have support for configuing some + parameters + Done - Use Acquire::Queue-Mode="access" +#25019: apt: Confusing progress report + Summary: Gripes about the progress meter + Status: I do not intend to implement very many of these ideas in apt-get. + The GUI will naturally be better + I think the new progress meter address basically everyone's + concerns. +#25022: apt: Lack of feedback on date checking + Summary: Wants to know what package files were not updated + Status: There is no place for this in the current apt-get design, + probably won't make the GUI either. + Wee, the new acquire code allows this, it now prints out 'Hit' +#26019: apt may report wrong line speed +#26433: apt: claims to fetch things it doesn't actually fetch (wishlist) +#28778: apt: apt's fetched message is wrong for update of packages files + Summary: APT includes the fetch time from the local cache in its + calculations + Status: Probably will be fixed with new acquire code + And it actually was fixed with the new acquire code +#26670: apt: apt-get dumps core after checking integrity + Summary: Some terminal environments cause APT to crash + Win95 telnet and emacs term-in-a-buffer are two at least + Status: I have no idea why. + Seems to be gone in .3, whatever it was... +#25001: apt: cleaned out archive even though not all files were installed + Status: Apparently in some cases APT can return a success code even + though it failed. I'm paying very close attention to this in + 0.3.x. Not to mention that the clean behavior will be + configurable.. +#28391: apt-get install without upgrading + Summary: Make install leave the package in the keep state if it is already + installed + Status: Will be implemented in 0.3.0 + Try the --no-upgrade options +#28373: apt package is missing information on ftp.conf +#29293: apt: Docs reference apt(8) but apt(8) not provided. + Summary: The man pages have references to several non-existent items, + ftp.conf is only one of them. + Status: Fix the man pages. This certainly will be done in 0.3.0 +#24799: Some suggestions for the apt method in dselect + Summary: Wants to be able to specifiy -d from dselect + Status: Likely a APT_OPTIONS enviornment variable will be created, -d can + be put there. + There is already an APT_CONFIG in 0.3, APT_OPTIONS may also + appear.. + Use Dselect::Options "-d" and others +#29920: Wish for more verbosity on "has no installation candidate" + Summary: More reports + Status: Already fixed in .3 +#29382: apt: apt deletes packages after installation without any question + Summary: Obvois. + Status: Fixed in .3, use Dselect::Clean "prompt" +#30027: apt: version comparison bug + Summary: Version compare differs from dpkg + Status: Fixed in all CVS versions. +#30260: apt: wishlist: do not return to main menu without prompting for return + Summary: Wants to prompt after dselect update + Status: Fixed in v3, use dselect::promptafterupdate "true"; +#29441: documenting the codes for -s + Summary: Apparently the simulation output is not immediately obvois + Status: Someone should update the man page. +#24685: HTTP Proxy cache refresh + Summary: Some caches hold onto the package index file for too long + Status: It may be possible to insert the proper header to disable + caching but I can't think how to do this while allowing + the cache to return cached objects - in effect it would + completely disable the cache which may not be desired. + APT now sends a max age header. See the apt.conf(5) +#28172: HTTP Proxy cache refresh should be forced for corrupted packages + Summary: Some problem resulted in a corrupted package + Status: I belive this reflects a deeper problem and the suggested solution + is only a band-aide patch. I intend to close this bug when #24685 + is fixed with a configuration directive. + Use -o acquire::http::no-cache=true +#29351: poor error message after conffile update + Summary: APT errors when the package file is not found + Status: The new APT warns better and the error is not fatal +#30112: apt: internal error in apt + Summary: APT gives an unclear error when it cannot correct dependencies + Status: Error is clearer +#30324: apt-get lying about file dates in /var/state/apt/lists + Summary: Doesn't copy the file dates right with file URIs + Status: Fixed in v3 +#30383: apt: dist-upgrade msg "E: Internal error, ScoredFix generated breaks." + Summary: libc6 maddness causes bizzar problems + Status: Fixed in v3 +#29983: apt: Wrong diagnostic, could be better + Summary: It doesn't explicy say you should be root + Status: Fixed in v3 +#22892: Apt improvements + Summary: Bails if an index file can't be found + Status: Fixed in v3 +#28184: apt could be smarter regarding mirrors + Summary: Make use of redundant sources + Status: 0.3.0 will likely do this, already the information for it is stored. +#27646: Apt: dpkg --merge-avail + Summary: Suggestion to call merge avail after each update operation + Status: Unlikely. The dpkg --print-avail functions should be obsoleted + by the apt-query program which should be written. + Use the dselect script, alias or something. +#26663: rsync file access + Status: Unlikely, rsync does not provide the necessary support to be + a terribly good method. I do not intend any 'split mode' + support (ie a way to get Package files via rsync and .debs + via http) +#27100: apt: Better support for project/experimental + Status: GUI Feature - Version selection and pinning + Honors the NotAutomatic flag +#30643: base: apt-get update problems with http-/ftp-caches (i.e. squid) + Status: Fixed as best I can. Try the Acquire::http::No-Cache option. + +-- Silly things +#26592: apt: Problems with ftpd in SunOS 5.6 +#29903: apt-get insists onto sending a SIZE command + Summary: SunOS ftpd does not support the SIZE command + Status: Probably not worth fixing +#20723: Apt suggestion + Summary: Package Grouping Mechanism + Status: Who knows +#22550: apt-get upgrade could configure packages earlier + Status: Who knows +#23934: apt-get source +#27190: apt: installing source packages (wishlist) + Status: Impossible to do without an index file for all source archives. +#22551: apt: wish: use dist X iff pkg does not exist in dist Y + Status: GUI Feature - Version selection and pinning +#30237: apt: 0.1.9 checks dependencies against packages.gz + Summary: For packages with identical version numbers APT prefers + to use the archive index files + Status: Yes it is sorta bad, but there is no reasonable solution. diff --git a/doc/apt-cache.8 b/doc/apt-cache.8 new file mode 100644 index 0000000..0b2c414 --- /dev/null +++ b/doc/apt-cache.8 @@ -0,0 +1,377 @@ +.\" Title: apt\-cache +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-CACHE" "8" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-cache \- APT package handling utility \-\- cache manipulator +.SH "SYNOPSIS" +.HP 10 +\fBapt\-cache\fR [\fB\-hvsn\fR] [\fB\-o=\fR\fB\fIconfig\ string\fR\fR] [\fB\-c=\fR\fB\fIfile\fR\fR] {[add\ \fIfile\fR...] | [gencaches] | [showpkg\ \fIpkg\fR...] | [showsrc\ \fIpkg\fR...] | [stats] | [dump] | [dumpavail] | [unmet] | [search\ \fIregex\fR] | [show\ \fIpkg\fR...] | [depends\ \fIpkg\fR...] | [rdepends\ \fIpkg\fR...] | [pkgnames\ \fIprefix\fR] | [dotty\ \fIpkg\fR...] | [policy\ \fIpkgs\fR...] | [madison\ \fIpkgs\fR...]} +.SH "DESCRIPTION" +.PP +\fBapt\-cache\fR +performs a variety of operations on APT's package cache. +\fBapt\-cache\fR +does not manipulate the state of the system but does provide operations to search and generate interesting output from the package metadata. +.PP +Unless the +\fB\-h\fR, or +\fB\-\-help\fR +option is given, one of the commands below must be present. +.PP +add \fIfile(s)\fR +.RS 3n +add +adds the named package index files to the package cache. This is for debugging only. +.RE +.PP +gencaches +.RS 3n +gencaches +performs the same operation as +\fBapt\-get check\fR. It builds the source and package caches from the sources in +\fBsources.list\fR(5) +and from +\fI/var/lib/dpkg/status\fR. +.RE +.PP +showpkg \fIpkg(s)\fR +.RS 3n +showpkg +displays information about the packages listed on the command line. Remaining arguments are package names. The available versions and reverse dependencies of each package listed are listed, as well as forward dependencies for each version. Forward (normal) dependencies are those packages upon which the package in question depends; reverse dependencies are those packages that depend upon the package in question. Thus, forward dependencies must be satisfied for a package, but reverse dependencies need not be. For instance, +\fBapt\-cache showpkg libreadline2\fR +would produce output similar to the following: +.sp +.RS 3n +.nf +Package: libreadline2 +Versions: 2.1\-12(/var/state/apt/lists/foo_Packages), +Reverse Depends: + libreadlineg2,libreadline2 + libreadline2\-altdev,libreadline2 +Dependencies: +2.1\-12 \- libc5 (2 5.4.0\-0) ncurses3.0 (0 (null)) +Provides: +2.1\-12 \- +Reverse Provides: +.fi +.RE +Thus it may be seen that libreadline2, version 2.1\-12, depends on libc5 and ncurses3.0 which must be installed for libreadline2 to work. In turn, libreadlineg2 and libreadline2\-altdev depend on libreadline2. If libreadline2 is installed, libc5 and ncurses3.0 (and ldso) must also be installed; libreadlineg2 and libreadline2\-altdev do not have to be installed. For the specific meaning of the remainder of the output it is best to consult the apt source code. +.RE +.PP +stats +.RS 3n +stats +displays some statistics about the cache. No further arguments are expected. Statistics reported are: +.RS 3n +.TP 3n +\(bu +Total package names +is the number of package names found in the cache. +.TP 3n +\(bu +Normal packages +is the number of regular, ordinary package names; these are packages that bear a one\-to\-one correspondence between their names and the names used by other packages for them in dependencies. The majority of packages fall into this category. +.TP 3n +\(bu +Pure virtual packages +is the number of packages that exist only as a virtual package name; that is, packages only "provide" the virtual package name, and no package actually uses the name. For instance, "mail\-transport\-agent" in the Debian GNU/Linux system is a pure virtual package; several packages provide "mail\-transport\-agent", but there is no package named "mail\-transport\-agent". +.TP 3n +\(bu +Single virtual packages +is the number of packages with only one package providing a particular virtual package. For example, in the Debian GNU/Linux system, "X11\-text\-viewer" is a virtual package, but only one package, xless, provides "X11\-text\-viewer". +.TP 3n +\(bu +Mixed virtual packages +is the number of packages that either provide a particular virtual package or have the virtual package name as the package name. For instance, in the Debian GNU/Linux system, "debconf" is both an actual package, and provided by the debconf\-tiny package. +.TP 3n +\(bu +Missing +is the number of package names that were referenced in a dependency but were not provided by any package. Missing packages may be in evidence if a full distribution is not accessed, or if a package (real or virtual) has been dropped from the distribution. Usually they are referenced from Conflicts statements. +.TP 3n +\(bu +Total distinct +versions is the number of package versions found in the cache; this value is therefore at least equal to the number of total package names. If more than one distribution (both "stable" and "unstable", for instance), is being accessed, this value can be considerably larger than the number of total package names. +.TP 3n +\(bu +Total dependencies +is the number of dependency relationships claimed by all of the packages in the cache. +.RE +.IP "" 3n +.RE +.PP +showsrc \fIpkg(s)\fR +.RS 3n +showsrc +displays all the source package records that match the given package names. All versions are shown, as well as all records that declare the name to be a Binary. +.RE +.PP +dump +.RS 3n +dump +shows a short listing of every package in the cache. It is primarily for debugging. +.RE +.PP +dumpavail +.RS 3n +dumpavail +prints out an available list to stdout. This is suitable for use with +\fBdpkg\fR(8) +and is used by the +\fBdselect\fR(8) +method. +.RE +.PP +unmet +.RS 3n +unmet +displays a summary of all unmet dependencies in the package cache. +.RE +.PP +show \fIpkg(s)\fR +.RS 3n +show +performs a function similar to +\fBdpkg \-\-print\-avail\fR; it displays the package records for the named packages. +.RE +.PP +search \fIregex [ regex ... ]\fR +.RS 3n +search +performs a full text search on all available package lists for the regex pattern given. It searches the package names and the descriptions for an occurrence of the regular expression and prints out the package name and the short description. If +\fB\-\-full\fR +is given then output identical to +show +is produced for each matched package, and if +\fB\-\-names\-only\fR +is given then the long description is not searched, only the package name is. +.sp +Separate arguments can be used to specify multiple search patterns that are and'ed together. +.RE +.PP +depends \fIpkg(s)\fR +.RS 3n +depends +shows a listing of each dependency a package has and all the possible other packages that can fulfill that dependency. +.RE +.PP +rdepends \fIpkg(s)\fR +.RS 3n +rdepends +shows a listing of each reverse dependency a package has. +.RE +.PP +pkgnames \fI[ prefix ]\fR +.RS 3n +This command prints the name of each package in the system. The optional argument is a prefix match to filter the name list. The output is suitable for use in a shell tab complete function and the output is generated extremely quickly. This command is best used with the +\fB\-\-generate\fR +option. +.RE +.PP +dotty \fIpkg(s)\fR +.RS 3n +dotty +takes a list of packages on the command line and generates output suitable for use by dotty from the +[1]\&\fIGraphViz\fR +package. The result will be a set of nodes and edges representing the relationships between the packages. By default the given packages will trace out all dependent packages; this can produce a very large graph. To limit the output to only the packages listed on the command line, set the +APT::Cache::GivenOnly +option. +.sp +The resulting nodes will have several shapes; normal packages are boxes, pure provides are triangles, mixed provides are diamonds, missing packages are hexagons. Orange boxes mean recursion was stopped [leaf packages], blue lines are pre\-depends, green lines are conflicts. +.sp +Caution, dotty cannot graph larger sets of packages. +.RE +.PP +policy \fI[ pkg(s) ]\fR +.RS 3n +policy +is meant to help debug issues relating to the preferences file. With no arguments it will print out the priorities of each source. Otherwise it prints out detailed information about the priority selection of the named package. +.RE +.PP +madison \fI/[ pkg(s) ]\fR +.RS 3n +apt\-cache's +madison +command attempts to mimic the output format and a subset of the functionality of the Debian archive management tool, +madison. It displays available versions of a package in a tabular format. Unlike the original +madison, it can only display information for the architecture for which APT has retrieved package lists (APT::Architecture). +.RE +.SH "OPTIONS" +.PP +All command line options may be set using the configuration file, the descriptions indicate the configuration option to set. For boolean options you can override the config file by using something like +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +or several other variations. +.PP +\fB\-p\fR, \fB\-\-pkg\-cache\fR +.RS 3n +Select the file to store the package cache. The package cache is the primary cache used by all operations. Configuration Item: +Dir::Cache::pkgcache. +.RE +.PP +\fB\-s\fR, \fB\-\-src\-cache\fR +.RS 3n +Select the file to store the source cache. The source is used only by +gencaches +and it stores a parsed version of the package information from remote sources. When building the package cache the source cache is used to avoid reparsing all of the package files. Configuration Item: +Dir::Cache::srcpkgcache. +.RE +.PP +\fB\-q\fR, \fB\-\-quiet\fR +.RS 3n +Quiet; produces output suitable for logging, omitting progress indicators. More q's will produce more quietness up to a maximum of 2. You can also use +\fB\-q=#\fR +to set the quietness level, overriding the configuration file. Configuration Item: +quiet. +.RE +.PP +\fB\-i\fR, \fB\-\-important\fR +.RS 3n +Print only important dependencies; for use with unmet. Causes only Depends and Pre\-Depends relations to be printed. Configuration Item: +APT::Cache::Important. +.RE +.PP +\fB\-f\fR, \fB\-\-full\fR +.RS 3n +Print full package records when searching. Configuration Item: +APT::Cache::ShowFull. +.RE +.PP +\fB\-a\fR, \fB\-\-all\-versions\fR +.RS 3n +Print full records for all available versions. This is the default; to turn it off, use +\fB\-\-no\-all\-versions\fR. If +\fB\-\-no\-all\-versions\fR +is specified, only the candidate version will displayed (the one which would be selected for installation). This option is only applicable to the +show +command. Configuration Item: +APT::Cache::AllVersions. +.RE +.PP +\fB\-g\fR, \fB\-\-generate\fR +.RS 3n +Perform automatic package cache regeneration, rather than use the cache as it is. This is the default; to turn it off, use +\fB\-\-no\-generate\fR. Configuration Item: +APT::Cache::Generate. +.RE +.PP +\fB\-\-names\-only\fR, \fB\-n\fR +.RS 3n +Only search on the package names, not the long descriptions. Configuration Item: +APT::Cache::NamesOnly. +.RE +.PP +\fB\-\-all\-names\fR +.RS 3n +Make +pkgnames +print all names, including virtual packages and missing dependencies. Configuration Item: +APT::Cache::AllNames. +.RE +.PP +\fB\-\-recurse\fR +.RS 3n +Make +depends +and +rdepends +recursive so that all packages mentioned are printed once. Configuration Item: +APT::Cache::RecurseDepends. +.RE +.PP +\fB\-\-installed\fR +.RS 3n +Limit the output of +depends +and +rdepends +to packages which are currently installed. Configuration Item: +APT::Cache::Installed. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +Show a short usage summary. +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +Show the program version. +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +Configuration File; Specify a configuration file to use. The program will read the default configuration file and then this configuration file. See +\fBapt.conf\fR(5) +for syntax information. +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +Set a Configuration Option; This will set an arbitary configuration option. The syntax is +\fB\-o Foo::Bar=bar\fR. +.RE +.SH "FILES" +.PP +\fI/etc/apt/sources.list\fR +.RS 3n +Locations to fetch packages from. Configuration Item: +Dir::Etc::SourceList. +.RE +.PP +\fI/var/lib/apt/lists/\fR +.RS 3n +Storage area for state information for each package resource specified in +\fBsources.list\fR(5) +Configuration Item: +Dir::State::Lists. +.RE +.PP +\fI/var/lib/apt/lists/partial/\fR +.RS 3n +Storage area for state information in transit. Configuration Item: +Dir::State::Lists +(implicit partial). +.RE +.SH "SEE ALSO" +.PP +\fBapt.conf\fR(5), +\fBsources.list\fR(5), +\fBapt\-get\fR(8) +.SH "DIAGNOSTICS" +.PP +\fBapt\-cache\fR +returns zero on normal operation, decimal 100 on error. +.SH "BUGS" +.PP +[2]\&\fIAPT bug page\fR. If you wish to report a bug in APT, please see +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +or the +\fBreportbug\fR(1) +command. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ GraphViz +\%http://www.research.att.com/sw/tools/graphviz/ +.TP 3 +2.\ APT bug page +\%http://bugs.debian.org/src:apt diff --git a/doc/apt-cache.8.xml b/doc/apt-cache.8.xml new file mode 100644 index 0000000..2779f25 --- /dev/null +++ b/doc/apt-cache.8.xml @@ -0,0 +1,378 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 February 2004 + + + + apt-cache + 8 + + + + + apt-cache + APT package handling utility -- cache manipulator + + + + + + apt-cache + + + + + add file + gencaches + showpkg pkg + showsrc pkg + stats + dump + dumpavail + unmet + search regex + show pkg + depends pkg + rdepends pkg + pkgnames prefix + dotty pkg + policy pkgs + madison pkgs + + + + + Description + apt-cache performs a variety of operations on APT's package + cache. apt-cache does not manipulate the state of the system + but does provide operations to search and generate interesting output + from the package metadata. + + Unless the , or option is given, one of the + commands below must be present. + + + add file(s) + add adds the named package index files to the package cache. + This is for debugging only. + + + gencaches + gencaches performs the same operation as + apt-get check. It builds the source and package caches from + the sources in &sources-list; and from + /var/lib/dpkg/status. + + + showpkg pkg(s) + showpkg displays information about the packages listed on the + command line. Remaining arguments are package names. The available + versions and reverse dependencies of each package listed are listed, as + well as forward dependencies for each version. Forward (normal) + dependencies are those packages upon which the package in question + depends; reverse dependencies are those packages that depend upon the + package in question. Thus, forward dependencies must be satisfied for a + package, but reverse dependencies need not be. + For instance, apt-cache showpkg libreadline2 would produce + output similar to the following: + + +Package: libreadline2 +Versions: 2.1-12(/var/state/apt/lists/foo_Packages), +Reverse Depends: + libreadlineg2,libreadline2 + libreadline2-altdev,libreadline2 +Dependencies: +2.1-12 - libc5 (2 5.4.0-0) ncurses3.0 (0 (null)) +Provides: +2.1-12 - +Reverse Provides: + + + Thus it may be seen that libreadline2, version 2.1-12, depends on + libc5 and ncurses3.0 which must be installed for libreadline2 to work. + In turn, libreadlineg2 and libreadline2-altdev depend on libreadline2. If + libreadline2 is installed, libc5 and ncurses3.0 (and ldso) must also be + installed; libreadlineg2 and libreadline2-altdev do not have to be + installed. For the specific meaning of the remainder of the output it + is best to consult the apt source code. + + + statsstats displays some statistics about the cache. + No further arguments are expected. Statistics reported are: + + Total package names is the number of package names found + in the cache. + + + Normal packages is the number of regular, ordinary package + names; these are packages that bear a one-to-one correspondence between + their names and the names used by other packages for them in + dependencies. The majority of packages fall into this category. + + + Pure virtual packages is the number of packages that exist + only as a virtual package name; that is, packages only "provide" the + virtual package name, and no package actually uses the name. For + instance, "mail-transport-agent" in the Debian GNU/Linux system is a + pure virtual package; several packages provide "mail-transport-agent", + but there is no package named "mail-transport-agent". + + + Single virtual packages is the number of packages with only + one package providing a particular virtual package. For example, in the + Debian GNU/Linux system, "X11-text-viewer" is a virtual package, but + only one package, xless, provides "X11-text-viewer". + + + Mixed virtual packages is the number of packages that either + provide a particular virtual package or have the virtual package name + as the package name. For instance, in the Debian GNU/Linux system, + "debconf" is both an actual package, and provided by the debconf-tiny + package. + + + Missing is the number of package names that were referenced in + a dependency but were not provided by any package. Missing packages may + be in evidence if a full distribution is not accessed, or if a package + (real or virtual) has been dropped from the distribution. Usually they + are referenced from Conflicts statements. + + + Total distinct versions is the number of package versions + found in the cache; this value is therefore at least equal to the + number of total package names. If more than one distribution (both + "stable" and "unstable", for instance), is being accessed, this value + can be considerably larger than the number of total package names. + + + Total dependencies is the number of dependency relationships + claimed by all of the packages in the cache. + + + + + + showsrc pkg(s) + showsrc displays all the source package records that match + the given package names. All versions are shown, as well as all + records that declare the name to be a Binary. + + + dump + dump shows a short listing of every package in the cache. It is + primarily for debugging. + + + dumpavail + dumpavail prints out an available list to stdout. This is + suitable for use with &dpkg; and is used by the &dselect; method. + + + unmet + unmet displays a summary of all unmet dependencies in the + package cache. + + + show pkg(s) + show performs a function similar to + dpkg --print-avail; it displays the package records for the + named packages. + + + search regex [ regex ... ] + search performs a full text search on all available package + lists for the regex pattern given. It searches the package names and the + descriptions for an occurrence of the regular expression and prints out + the package name and the short description. If is given + then output identical to show is produced for each matched + package, and if is given then the long description + is not searched, only the package name is. + + Separate arguments can be used to specify multiple search patterns that + are and'ed together. + + + depends pkg(s) + depends shows a listing of each dependency a package has + and all the possible other packages that can fulfill that dependency. + + + rdepends pkg(s) + rdepends shows a listing of each reverse dependency a + package has. + + + pkgnames [ prefix ] + This command prints the name of each package in the system. The optional + argument is a prefix match to filter the name list. The output is suitable + for use in a shell tab complete function and the output is generated + extremely quickly. This command is best used with the + option. + + + dotty pkg(s) + dotty takes a list of packages on the command line and + generates output suitable for use by dotty from the + GraphViz + package. The result will be a set of nodes and edges representing the + relationships between the packages. By default the given packages will + trace out all dependent packages; this can produce a very large graph. + To limit the output to only the packages listed on the command line, + set the APT::Cache::GivenOnly option. + + The resulting nodes will have several shapes; normal packages are boxes, + pure provides are triangles, mixed provides are diamonds, + missing packages are hexagons. Orange boxes mean recursion was stopped + [leaf packages], blue lines are pre-depends, green lines are conflicts. + + Caution, dotty cannot graph larger sets of packages. + + + policy [ pkg(s) ] + policy is meant to help debug issues relating to the + preferences file. With no arguments it will print out the + priorities of each source. Otherwise it prints out detailed information + about the priority selection of the named package. + + + madison /[ pkg(s) ] + apt-cache's madison command attempts to mimic + the output format and a subset of the functionality of the Debian + archive management tool, madison. It displays + available versions of a package in a tabular format. Unlike the + original madison, it can only display information for + the architecture for which APT has retrieved package lists + (APT::Architecture). + + + + + options + &apt-cmdblurb; + + + + Select the file to store the package cache. The package cache is the + primary cache used by all operations. + Configuration Item: Dir::Cache::pkgcache. + + + + Select the file to store the source cache. The source is used only by + gencaches and it stores a parsed version of the package + information from remote sources. When building the package cache the + source cache is used to avoid reparsing all of the package files. + Configuration Item: Dir::Cache::srcpkgcache. + + + + Quiet; produces output suitable for logging, omitting progress indicators. + More q's will produce more quietness up to a maximum of 2. You can also use + to set the quietness level, overriding the configuration file. + Configuration Item: quiet. + + + + Print only important dependencies; for use with unmet. Causes only Depends and + Pre-Depends relations to be printed. + Configuration Item: APT::Cache::Important. + + + + Print full package records when searching. + Configuration Item: APT::Cache::ShowFull. + + + + Print full records for all available versions. This is the + default; to turn it off, use . + If is specified, only the candidate version + will displayed (the one which would be selected for installation). + This option is only applicable to the show command. + Configuration Item: APT::Cache::AllVersions. + + + + Perform automatic package cache regeneration, rather than use the cache + as it is. This is the default; to turn it off, use . + Configuration Item: APT::Cache::Generate. + + + + Only search on the package names, not the long descriptions. + Configuration Item: APT::Cache::NamesOnly. + + + + Make pkgnames print all names, including virtual packages + and missing dependencies. + Configuration Item: APT::Cache::AllNames. + + + + Make depends and rdepends recursive so + that all packages mentioned are printed once. + Configuration Item: APT::Cache::RecurseDepends. + + + + + Limit the output of depends and rdepends to + packages which are currently installed. + Configuration Item: APT::Cache::Installed. + + + &apt-commonoptions; + + + + + Files + + /etc/apt/sources.list + Locations to fetch packages from. + Configuration Item: Dir::Etc::SourceList. + + + &statedir;/lists/ + Storage area for state information for each package resource specified in + &sources-list; + Configuration Item: Dir::State::Lists. + + + &statedir;/lists/partial/ + Storage area for state information in transit. + Configuration Item: Dir::State::Lists (implicit partial). + + + + + See Also + &apt-conf;, &sources-list;, &apt-get; + + + + Diagnostics + apt-cache returns zero on normal operation, decimal 100 on error. + + + + &manbugs; + + diff --git a/doc/apt-cdrom.8 b/doc/apt-cdrom.8 new file mode 100644 index 0000000..6330cde --- /dev/null +++ b/doc/apt-cdrom.8 @@ -0,0 +1,153 @@ +.\" Title: apt\-cdrom +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 14 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-CDROM" "8" "14 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-cdrom \- APT CDROM management utility +.SH "SYNOPSIS" +.HP 10 +\fBapt\-cdrom\fR [\fB\-hvrmfan\fR] [\fB\-d=\fR\fB\fIcdrom\ mount\ point\fR\fR] [\fB\-o=\fR\fB\fIconfig\ string\fR\fR] [\fB\-c=\fR\fB\fIfile\fR\fR] [[add] | [ident]] +.SH "DESCRIPTION" +.PP +\fBapt\-cdrom\fR +is used to add a new CDROM to APTs list of available sources. +\fBapt\-cdrom\fR +takes care of determining the structure of the disc as well as correcting for several possible mis\-burns and verifying the index files. +.PP +It is necessary to use +\fBapt\-cdrom\fR +to add CDs to the APT system, it cannot be done by hand. Furthermore each disk in a multi\-cd set must be inserted and scanned separately to account for possible mis\-burns. +.PP +Unless the +\fB\-h\fR, or +\fB\-\-help\fR +option is given one of the commands below must be present. +.PP +add +.RS 3n +add +is used to add a new disc to the source list. It will unmount the CDROM device, prompt for a disk to be inserted and then procceed to scan it and copy the index files. If the disc does not have a proper +\fIdisk\fR +directory you will be prompted for a descriptive title. +.sp +APT uses a CDROM ID to track which disc is currently in the drive and maintains a database of these IDs in +\fI/var/lib/apt/cdroms.list\fR +.RE +.PP +ident +.RS 3n +A debugging tool to report the identity of the current disc as well as the stored file name +.RE +.SH "OPTIONS" +.PP +All command line options may be set using the configuration file, the descriptions indicate the configuration option to set. For boolean options you can override the config file by using something like +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +or several other variations. +.PP +\fB\-d\fR, \fB\-\-cdrom\fR +.RS 3n +Mount point; specify the location to mount the cdrom. This mount point must be listed in +\fI/etc/fstab\fR +and properly configured. Configuration Item: +Acquire::cdrom::mount. +.RE +.PP +\fB\-r\fR, \fB\-\-rename\fR +.RS 3n +Rename a disc; change the label of a disk or override the disks given label. This option will cause +\fBapt\-cdrom\fR +to prompt for a new label. Configuration Item: +APT::CDROM::Rename. +.RE +.PP +\fB\-m\fR, \fB\-\-no\-mount\fR +.RS 3n +No mounting; prevent +\fBapt\-cdrom\fR +from mounting and unmounting the mount point. Configuration Item: +APT::CDROM::NoMount. +.RE +.PP +\fB\-f\fR, \fB\-\-fast\fR +.RS 3n +Fast Copy; Assume the package files are valid and do not check every package. This option should be used only if +\fBapt\-cdrom\fR +has been run on this disc before and did not detect any errors. Configuration Item: +APT::CDROM::Fast. +.RE +.PP +\fB\-a\fR, \fB\-\-thorough\fR +.RS 3n +Thorough Package Scan; This option may be needed with some old Debian 1.1/1.2 discs that have Package files in strange places. It takes much longer to scan the CD but will pick them all up. +.RE +.PP +\fB\-n\fR, \fB\-\-just\-print\fR, \fB\-\-recon\fR, \fB\-\-no\-act\fR +.RS 3n +No Changes; Do not change the +\fBsources.list\fR(5) +file and do not write index files. Everything is still checked however. Configuration Item: +APT::CDROM::NoAct. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +Show a short usage summary. +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +Show the program version. +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +Configuration File; Specify a configuration file to use. The program will read the default configuration file and then this configuration file. See +\fBapt.conf\fR(5) +for syntax information. +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +Set a Configuration Option; This will set an arbitary configuration option. The syntax is +\fB\-o Foo::Bar=bar\fR. +.RE +.SH "SEE ALSO" +.PP +\fBapt.conf\fR(5), +\fBapt\-get\fR(8), +\fBsources.list\fR(5) +.SH "DIAGNOSTICS" +.PP +\fBapt\-cdrom\fR +returns zero on normal operation, decimal 100 on error. +.SH "BUGS" +.PP +[1]\&\fIAPT bug page\fR. If you wish to report a bug in APT, please see +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +or the +\fBreportbug\fR(1) +command. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT bug page +\%http://bugs.debian.org/src:apt diff --git a/doc/apt-cdrom.8.xml b/doc/apt-cdrom.8.xml new file mode 100644 index 0000000..6ab8fad --- /dev/null +++ b/doc/apt-cdrom.8.xml @@ -0,0 +1,167 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + 14 February 2004 + + + + apt-cdrom + 8 + + + + + apt-cdrom + APT CDROM management utility + + + + + + apt-cdrom + + + + + + add + ident + + + + + Description + apt-cdrom is used to add a new CDROM to APTs list + of available sources. apt-cdrom takes care of + determining the structure of + the disc as well as correcting for several possible mis-burns and + verifying the index files. + + + It is necessary to use apt-cdrom to add CDs to the + APT system, + it cannot be done by hand. Furthermore each disk in a multi-cd set must be + inserted and scanned separately to account for possible mis-burns. + + + Unless the , or option is + given one of the commands below must be present. + + + add + add is used to add a new disc to the + source list. It will unmount the + CDROM device, prompt for a disk to be inserted and then procceed to + scan it and copy the index files. If the disc does not have a proper + disk directory you will be prompted for a descriptive + title. + + + APT uses a CDROM ID to track which disc is currently in the drive and + maintains a database of these IDs in + &statedir;/cdroms.list + + + + + ident + A debugging tool to report the identity of the current + disc as well as the stored file name + + + + + + + + Options + &apt-cmdblurb; + + + + Mount point; specify the location to mount the cdrom. This + mount point must be listed in /etc/fstab and + properly configured. + Configuration Item: Acquire::cdrom::mount. + + + + + + Rename a disc; change the label of a disk or override the + disks given label. This option will cause apt-cdrom to + prompt for a new label. + Configuration Item: APT::CDROM::Rename. + + + + + + No mounting; prevent apt-cdrom from + mounting and unmounting the mount point. + Configuration Item: APT::CDROM::NoMount. + + + + + + Fast Copy; Assume the package files are valid and do not + check every package. This option should be used only if + apt-cdrom has been run on this disc before and did not + detect any errors. + Configuration Item: APT::CDROM::Fast. + + + + + + Thorough Package Scan; This option may be needed with some + old Debian 1.1/1.2 discs that have Package files in strange places. It + takes much longer to scan the CD but will pick them all up. + + + + + + + + + No Changes; Do not change the &sources-list; file and do + not write index files. Everything is still checked however. + Configuration Item: APT::CDROM::NoAct. + + + + + &apt-commonoptions; + + + + + See Also + &apt-conf;, &apt-get;, &sources-list; + + + + Diagnostics + apt-cdrom returns zero on normal operation, decimal 100 on error. + + + + &manbugs; + + + diff --git a/doc/apt-config.8 b/doc/apt-config.8 new file mode 100644 index 0000000..4464b32 --- /dev/null +++ b/doc/apt-config.8 @@ -0,0 +1,108 @@ +.\" Title: apt\-config +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-CONFIG" "8" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-config \- APT Configuration Query program +.SH "SYNOPSIS" +.HP 11 +\fBapt\-config\fR [\fB\-hv\fR] [\fB\-o=\fR\fB\fIconfig\ string\fR\fR] [\fB\-c=\fR\fB\fIfile\fR\fR] {[shell] | [dump]} +.SH "DESCRIPTION" +.PP +\fBapt\-config\fR +is an internal program used by various portions of the APT suite to provide consistent configurability. It accesses the main configuration file +\fI/etc/apt/apt.conf\fR +in a manner that is easy to use by scripted applications. +.PP +Unless the +\fB\-h\fR, or +\fB\-\-help\fR +option is given one of the commands below must be present. +.PP +shell +.RS 3n +shell is used to access the configuration information from a shell script. It is given pairs of arguments, the first being a shell variable and the second the configuration value to query. As output it lists a series of shell assignments commands for each present value. In a shell script it should be used like: +.sp +.RS 3n +.nf +OPTS="\-f" +RES=`apt\-config shell OPTS MyApp::options` +eval $RES +.fi +.RE +This will set the shell environment variable $OPTS to the value of MyApp::options with a default of +\fB\-f\fR. +.sp +The configuration item may be postfixed with a /[fdbi]. f returns file names, d returns directories, b returns true or false and i returns an integer. Each of the returns is normalized and verified internally. +.RE +.PP +dump +.RS 3n +Just show the contents of the configuration space. +.RE +.SH "OPTIONS" +.PP +All command line options may be set using the configuration file, the descriptions indicate the configuration option to set. For boolean options you can override the config file by using something like +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +or several other variations. +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +Show a short usage summary. +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +Show the program version. +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +Configuration File; Specify a configuration file to use. The program will read the default configuration file and then this configuration file. See +\fBapt.conf\fR(5) +for syntax information. +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +Set a Configuration Option; This will set an arbitary configuration option. The syntax is +\fB\-o Foo::Bar=bar\fR. +.RE +.SH "SEE ALSO" +.PP +\fBapt.conf\fR(5) +.SH "DIAGNOSTICS" +.PP +\fBapt\-config\fR +returns zero on normal operation, decimal 100 on error. +.SH "BUGS" +.PP +[1]\&\fIAPT bug page\fR. If you wish to report a bug in APT, please see +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +or the +\fBreportbug\fR(1) +command. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT bug page +\%http://bugs.debian.org/src:apt diff --git a/doc/apt-config.8.xml b/doc/apt-config.8.xml new file mode 100644 index 0000000..39fed59 --- /dev/null +++ b/doc/apt-config.8.xml @@ -0,0 +1,115 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 February 2004 + + + + apt-config + 8 + + + + + apt-config + APT Configuration Query program + + + + + + apt-config + + + + + shell + dump + + + + + Description + apt-config is an internal program used by various + portions of the APT suite to provide consistent configurability. It accesses + the main configuration file /etc/apt/apt.conf in a + manner that is easy to use by scripted applications. + + Unless the , or option is + given one of the commands below must be present. + + + + shell + + shell is used to access the configuration information from a shell + script. It is given pairs of arguments, the first being a shell + variable and the second the configuration value to query. As output + it lists a series of shell assignments commands for each present value. + In a shell script it should be used like: + + + +OPTS="-f" +RES=`apt-config shell OPTS MyApp::options` +eval $RES + + + This will set the shell environment variable $OPTS to the value of + MyApp::options with a default of . + + + The configuration item may be postfixed with a /[fdbi]. f returns + file names, d returns directories, b returns true or false and i returns + an integer. Each of the returns is normalized and verified + internally. + + + + dump + + Just show the contents of the configuration space. + + + + + + + options + &apt-cmdblurb; + + + + &apt-commonoptions; + + + + + See Also + &apt-conf; + + + + Diagnostics + apt-config returns zero on normal operation, decimal 100 on error. + + + + &manbugs; + + + diff --git a/doc/apt-extracttemplates.1 b/doc/apt-extracttemplates.1 new file mode 100644 index 0000000..c13daa8 --- /dev/null +++ b/doc/apt-extracttemplates.1 @@ -0,0 +1,92 @@ +.\" Title: apt\-extracttemplates +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-EXTRACTTEMPLATES" "1" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-extracttemplates \- Utility to extract DebConf config and templates from Debian packages +.SH "SYNOPSIS" +.HP 21 +\fBapt\-extracttemplates\fR [\fB\-hv\fR] [\fB\-t=\fR\fB\fItemporary\ directory\fR\fR] \fIfile\fR... +.SH "DESCRIPTION" +.PP +\fBapt\-extracttemplates\fR +will take one or more Debian package files as input and write out (to a temporary directory) all associated config scripts and template files. For each passed in package that contains config scripts and templates, one line of output will be generated in the format: +.PP +package version template\-file config\-script +.PP +template\-file and config\-script are written to the temporary directory specified by the \-t or \-\-tempdir (APT::ExtractTemplates::TempDir) directory, with filenames of the form +\fIpackage.template.XXXX\fR +and +\fIpackage.config.XXXX\fR +.SH "OPTIONS" +.PP +All command line options may be set using the configuration file, the descriptions indicate the configuration option to set. For boolean options you can override the config file by using something like +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +or several other variations. +.PP +\fB\-t\fR, \fB\-\-tempdir\fR +.RS 3n +Temporary directory in which to write extracted debconf template files and config scripts Configuration Item: +APT::ExtractTemplates::TempDir +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +Show a short usage summary. +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +Show the program version. +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +Configuration File; Specify a configuration file to use. The program will read the default configuration file and then this configuration file. See +\fBapt.conf\fR(5) +for syntax information. +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +Set a Configuration Option; This will set an arbitary configuration option. The syntax is +\fB\-o Foo::Bar=bar\fR. +.RE +.SH "SEE ALSO" +.PP +\fBapt.conf\fR(5) +.SH "DIAGNOSTICS" +.PP +\fBapt\-extracttemplates\fR +returns zero on normal operation, decimal 100 on error. +.SH "BUGS" +.PP +[1]\&\fIAPT bug page\fR. If you wish to report a bug in APT, please see +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +or the +\fBreportbug\fR(1) +command. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT bug page +\%http://bugs.debian.org/src:apt diff --git a/doc/apt-extracttemplates.1.xml b/doc/apt-extracttemplates.1.xml new file mode 100644 index 0000000..0f4ac04 --- /dev/null +++ b/doc/apt-extracttemplates.1.xml @@ -0,0 +1,83 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 February 2004 + + + + apt-extracttemplates + 1 + + + + + apt-extracttemplates + Utility to extract DebConf config and templates from Debian packages + + + + + + apt-extracttemplates + + + file + + + + Description + apt-extracttemplates will take one or more Debian package files + as input and write out (to a temporary directory) all associated config + scripts and template files. For each passed in package that contains + config scripts and templates, one line of output will be generated + in the format: + package version template-file config-script + template-file and config-script are written to the temporary directory + specified by the -t or --tempdir (APT::ExtractTemplates::TempDir) + directory, with filenames of the form package.template.XXXX and + package.config.XXXX + + + options + &apt-cmdblurb; + + + + + Temporary directory in which to write extracted debconf template files + and config scripts + Configuration Item: APT::ExtractTemplates::TempDir + + + &apt-commonoptions; + + + + + + + See Also + &apt-conf; + + + Diagnostics + apt-extracttemplates returns zero on normal operation, decimal 100 on error. + + + &manbugs; + + diff --git a/doc/apt-ftparchive.1 b/doc/apt-ftparchive.1 new file mode 100644 index 0000000..ee9f76b --- /dev/null +++ b/doc/apt-ftparchive.1 @@ -0,0 +1,534 @@ +.\" Title: apt\-ftparchive +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-FTPARCHIVE" "1" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-ftparchive \- Utility to generate index files +.SH "SYNOPSIS" +.HP 15 +\fBapt\-ftparchive\fR [\fB\-hvdsq\fR] [\fB\-\-md5\fR] [\fB\-\-delink\fR] [\fB\-\-readonly\fR] [\fB\-\-contents\fR] [\fB\-o=\fR\fB\fIconfig\ string\fR\fR] [\fB\-c=\fR\fB\fIfile\fR\fR] {[packages\ \fIpath\fR...\ [\fIoverride\fR\ [\fIpathprefix\fR]]] | [sources\ \fIpath\fR...\ [\fIoverride\fR\ [\fIpathprefix\fR]]] | [contents\ \fIpath\fR] | [release\ \fIpath\fR] | [generate\ \fIconfig\-file\fR\ \fIsection\fR...] | [clean\ \fIconfig\-file\fR]} +.SH "DESCRIPTION" +.PP +\fBapt\-ftparchive\fR +is the command line tool that generates the index files that APT uses to access a distribution source. The index files should be generated on the origin site based on the content of that site. +.PP +\fBapt\-ftparchive\fR +is a superset of the +\fBdpkg\-scanpackages\fR(8) +program, incorporating its entire functionality via the +packages +command. It also contains a contents file generator, +contents, and an elaborate means to 'script' the generation process for a complete archive. +.PP +Internally +\fBapt\-ftparchive\fR +can make use of binary databases to cache the contents of a .deb file and it does not rely on any external programs aside from +\fBgzip\fR(1). When doing a full generate it automatically performs file\-change checks and builds the desired compressed output files. +.PP +Unless the +\fB\-h\fR, or +\fB\-\-help\fR +option is given one of the commands below must be present. +.PP +packages +.RS 3n +The packages command generates a package file from a directory tree. It takes the given directory and recursively searches it for .deb files, emitting a package record to stdout for each. This command is approximately equivalent to +\fBdpkg\-scanpackages\fR(8). +.sp +The option +\fB\-\-db\fR +can be used to specify a binary caching DB. +.RE +.PP +sources +.RS 3n +The +sources +command generates a source index file from a directory tree. It takes the given directory and recursively searches it for .dsc files, emitting a source record to stdout for each. This command is approximately equivalent to +\fBdpkg\-scansources\fR(8). +.sp +If an override file is specified then a source override file will be looked for with an extension of .src. The \-\-source\-override option can be used to change the source override file that will be used. +.RE +.PP +contents +.RS 3n +The +contents +command generates a contents file from a directory tree. It takes the given directory and recursively searches it for .deb files, and reads the file list from each file. It then sorts and writes to stdout the list of files matched to packages. Directories are not written to the output. If multiple packages own the same file then each package is separated by a comma in the output. +.sp +The option +\fB\-\-db\fR +can be used to specify a binary caching DB. +.RE +.PP +release +.RS 3n +The +release +command generates a Release file from a directory tree. It recursively searches the given directory for Packages, Packages.gz, Packages.bz2, Sources, Sources.gz, Sources.bz2, Release and md5sum.txt files. It then writes to stdout a Release file containing an MD5 digest and SHA1 digest for each file. +.sp +Values for the additional metadata fields in the Release file are taken from the corresponding variables under +APT::FTPArchive::Release, e.g. +APT::FTPArchive::Release::Origin. The supported fields are: +Origin, +Label, +Suite, +Version, +Codename, +Date, +Architectures, +Components, +Description. +.RE +.PP +generate +.RS 3n +The +generate +command is designed to be runnable from a cron script and builds indexes according to the given config file. The config language provides a flexible means of specifying which index files are built from which directories, as well as providing a simple means of maintaining the required settings. +.RE +.PP +clean +.RS 3n +The +clean +command tidies the databases used by the given configuration file by removing any records that are no longer necessary. +.RE +.SH "THE GENERATE CONFIGURATION" +.PP +The +generate +command uses a configuration file to describe the archives that are going to be generated. It follows the typical ISC configuration format as seen in ISC tools like bind 8 and dhcpd. +\fBapt.conf\fR(5) +contains a description of the syntax. Note that the generate configuration is parsed in sectional manner, but +\fBapt.conf\fR(5) +is parsed in a tree manner. This only effects how the scope tag is handled. +.PP +The generate configuration has 4 separate sections, each described below. +.SS "Dir Section" +.PP +The +Dir +section defines the standard directories needed to locate the files required during the generation process. These directories are prepended to certain relative paths defined in later sections to produce a complete an absolute path. +.PP +ArchiveDir +.RS 3n +Specifies the root of the FTP archive, in a standard Debian configuration this is the directory that contains the +\fIls\-LR\fR +and dist nodes. +.RE +.PP +OverrideDir +.RS 3n +Specifies the location of the override files. +.RE +.PP +CacheDir +.RS 3n +Specifies the location of the cache files +.RE +.PP +FileListDir +.RS 3n +Specifies the location of the file list files, if the +FileList +setting is used below. +.RE +.SS "Default Section" +.PP +The +Default +section specifies default values, and settings that control the operation of the generator. Other sections may override these defaults with a per\-section setting. +.PP +Packages::Compress +.RS 3n +Sets the default compression schemes to use for the Package index files. It is a string that contains a space separated list of at least one of: '.' (no compression), 'gzip' and 'bzip2'. The default for all compression schemes is '. gzip'. +.RE +.PP +Packages::Extensions +.RS 3n +Sets the default list of file extensions that are package files. This defaults to '.deb'. +.RE +.PP +Sources::Compress +.RS 3n +This is similar to +Packages::Compress +except that it controls the compression for the Sources files. +.RE +.PP +Sources::Extensions +.RS 3n +Sets the default list of file extensions that are source files. This defaults to '.dsc'. +.RE +.PP +Contents::Compress +.RS 3n +This is similar to +Packages::Compress +except that it controls the compression for the Contents files. +.RE +.PP +DeLinkLimit +.RS 3n +Specifies the number of kilobytes to delink (and replace with hard links) per run. This is used in conjunction with the per\-section +External\-Links +setting. +.RE +.PP +FileMode +.RS 3n +Specifies the mode of all created index files. It defaults to 0644. All index files are set to this mode with no regard to the umask. +.RE +.SS "TreeDefault Section" +.PP +Sets defaults specific to +Tree +sections. All of these variables are substitution variables and have the strings $(DIST), $(SECTION) and $(ARCH) replaced with their respective values. +.PP +MaxContentsChange +.RS 3n +Sets the number of kilobytes of contents files that are generated each day. The contents files are round\-robined so that over several days they will all be rebuilt. +.RE +.PP +ContentsAge +.RS 3n +Controls the number of days a contents file is allowed to be checked without changing. If this limit is passed the mtime of the contents file is updated. This case can occur if the package file is changed in such a way that does not result in a new contents file [override edit for instance]. A hold off is allowed in hopes that new .debs will be installed, requiring a new file anyhow. The default is 10, the units are in days. +.RE +.PP +Directory +.RS 3n +Sets the top of the .deb directory tree. Defaults to +\fI$(DIST)/$(SECTION)/binary\-$(ARCH)/\fR +.RE +.PP +SrcDirectory +.RS 3n +Sets the top of the source package directory tree. Defaults to +\fI$(DIST)/$(SECTION)/source/\fR +.RE +.PP +Packages +.RS 3n +Sets the output Packages file. Defaults to +\fI$(DIST)/$(SECTION)/binary\-$(ARCH)/Packages\fR +.RE +.PP +Sources +.RS 3n +Sets the output Packages file. Defaults to +\fI$(DIST)/$(SECTION)/source/Sources\fR +.RE +.PP +InternalPrefix +.RS 3n +Sets the path prefix that causes a symlink to be considered an internal link instead of an external link. Defaults to +\fI$(DIST)/$(SECTION)/\fR +.RE +.PP +Contents +.RS 3n +Sets the output Contents file. Defaults to +\fI$(DIST)/Contents\-$(ARCH)\fR. If this setting causes multiple Packages files to map onto a single Contents file (such as the default) then +\fBapt\-ftparchive\fR +will integrate those package files together automatically. +.RE +.PP +Contents::Header +.RS 3n +Sets header file to prepend to the contents output. +.RE +.PP +BinCacheDB +.RS 3n +Sets the binary cache database to use for this section. Multiple sections can share the same database. +.RE +.PP +FileList +.RS 3n +Specifies that instead of walking the directory tree, +\fBapt\-ftparchive\fR +should read the list of files from the given file. Relative files names are prefixed with the archive directory. +.RE +.PP +SourceFileList +.RS 3n +Specifies that instead of walking the directory tree, +\fBapt\-ftparchive\fR +should read the list of files from the given file. Relative files names are prefixed with the archive directory. This is used when processing source indexs. +.RE +.SS "Tree Section" +.PP +The +Tree +section defines a standard Debian file tree which consists of a base directory, then multiple sections in that base directory and finally multiple Architectures in each section. The exact pathing used is defined by the +Directory +substitution variable. +.PP +The +Tree +section takes a scope tag which sets the +$(DIST) +variable and defines the root of the tree (the path is prefixed by +ArchiveDir). Typically this is a setting such as +\fIdists/woody\fR. +.PP +All of the settings defined in the +TreeDefault +section can be use in a +Tree +section as well as three new variables. +.PP +When processing a +Tree +section +\fBapt\-ftparchive\fR +performs an operation similar to: +.sp .RS 3n .nf for i in Sections do for j in Architectures do Generate for DIST=scope SECTION=i ARCH=j .fi .RE +.PP +Sections +.RS 3n +This is a space separated list of sections which appear under the distribution, typically this is something like +main contrib non\-free +.RE +.PP +Architectures +.RS 3n +This is a space separated list of all the architectures that appear under search section. The special architecture 'source' is used to indicate that this tree has a source archive. +.RE +.PP +BinOverride +.RS 3n +Sets the binary override file. The override file contains section, priority and maintainer address information. +.RE +.PP +SrcOverride +.RS 3n +Sets the source override file. The override file contains section information. +.RE +.PP +ExtraOverride +.RS 3n +Sets the binary extra override file. +.RE +.PP +SrcExtraOverride +.RS 3n +Sets the source extra override file. +.RE +.SS "BinDirectory Section" +.PP +The +bindirectory +section defines a binary directory tree with no special structure. The scope tag specifies the location of the binary directory and the settings are similar to the +Tree +section with no substitution variables or +SectionArchitecture +settings. +.PP +Packages +.RS 3n +Sets the Packages file output. +.RE +.PP +Sources +.RS 3n +Sets the Sources file output. At least one of +Packages +or +Sources +is required. +.RE +.PP +Contents +.RS 3n +Sets the Contents file output. (optional) +.RE +.PP +BinOverride +.RS 3n +Sets the binary override file. +.RE +.PP +SrcOverride +.RS 3n +Sets the source override file. +.RE +.PP +ExtraOverride +.RS 3n +Sets the binary extra override file. +.RE +.PP +SrcExtraOverride +.RS 3n +Sets the source extra override file. +.RE +.PP +BinCacheDB +.RS 3n +Sets the cache DB. +.RE +.PP +PathPrefix +.RS 3n +Appends a path to all the output paths. +.RE +.PP +FileList, SourceFileList +.RS 3n +Specifies the file list file. +.RE +.SH "THE BINARY OVERRIDE FILE" +.PP +The binary override file is fully compatible with +\fBdpkg\-scanpackages\fR(8). It contains 4 fields separated by spaces. The first field is the package name, the second is the priority to force that package to, the third is the the section to force that package to and the final field is the maintainer permutation field. +.PP +The general form of the maintainer field is: +.sp +.RS 3n +.nf +old [// oldn]* => new +.fi +.RE +.sp +or simply, +.sp +.RS 3n +.nf +new +.fi +.RE +.sp +The first form allows a double\-slash separated list of old email addresses to be specified. If any of those are found then new is substituted for the maintainer field. The second form unconditionally substitutes the maintainer field. +.SH "THE SOURCE OVERRIDE FILE" +.PP +The source override file is fully compatible with +\fBdpkg\-scansources\fR(8). It contains 2 fields separated by spaces. The first fields is the source package name, the second is the section to assign it. +.SH "THE EXTRA OVERRIDE FILE" +.PP +The extra override file allows any arbitrary tag to be added or replaced in the output. It has 3 columns, the first is the package, the second is the tag and the remainder of the line is the new value. +.SH "OPTIONS" +.PP +All command line options may be set using the configuration file, the descriptions indicate the configuration option to set. For boolean options you can override the config file by using something like +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +or several other variations. +.PP +\fB\-\-md5\fR +.RS 3n +Generate MD5 sums. This defaults to on, when turned off the generated index files will not have MD5Sum fields where possible. Configuration Item: +APT::FTPArchive::MD5 +.RE +.PP +\fB\-d\fR, \fB\-\-db\fR +.RS 3n +Use a binary caching DB. This has no effect on the generate command. Configuration Item: +APT::FTPArchive::DB. +.RE +.PP +\fB\-q\fR, \fB\-\-quiet\fR +.RS 3n +Quiet; produces output suitable for logging, omitting progress indicators. More q's will produce more quiet up to a maximum of 2. You can also use +\fB\-q=#\fR +to set the quiet level, overriding the configuration file. Configuration Item: +quiet. +.RE +.PP +\fB\-\-delink\fR +.RS 3n +Perform Delinking. If the +External\-Links +setting is used then this option actually enables delinking of the files. It defaults to on and can be turned off with +\fB\-\-no\-delink\fR. Configuration Item: +APT::FTPArchive::DeLinkAct. +.RE +.PP +\fB\-\-contents\fR +.RS 3n +Perform contents generation. When this option is set and package indexes are being generated with a cache DB then the file listing will also be extracted and stored in the DB for later use. When using the generate command this option also allows the creation of any Contents files. The default is on. Configuration Item: +APT::FTPArchive::Contents. +.RE +.PP +\fB\-s\fR, \fB\-\-source\-override\fR +.RS 3n +Select the source override file to use with the +sources +command. Configuration Item: +APT::FTPArchive::SourceOverride. +.RE +.PP +\fB\-\-readonly\fR +.RS 3n +Make the caching databases read only. Configuration Item: +APT::FTPArchive::ReadOnlyDB. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +Show a short usage summary. +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +Show the program version. +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +Configuration File; Specify a configuration file to use. The program will read the default configuration file and then this configuration file. See +\fBapt.conf\fR(5) +for syntax information. +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +Set a Configuration Option; This will set an arbitary configuration option. The syntax is +\fB\-o Foo::Bar=bar\fR. +.RE +.SH "EXAMPLES" +.PP +To create a compressed Packages file for a directory containing binary packages (.deb): +.sp +.RS 3n +.nf +\fBapt\-ftparchive\fR packages \fIdirectory\fR | \fBgzip\fR > \fIPackages.gz\fR +.fi +.RE +.SH "SEE ALSO" +.PP +\fBapt.conf\fR(5) +.SH "DIAGNOSTICS" +.PP +\fBapt\-ftparchive\fR +returns zero on normal operation, decimal 100 on error. +.SH "BUGS" +.PP +[1]\&\fIAPT bug page\fR. If you wish to report a bug in APT, please see +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +or the +\fBreportbug\fR(1) +command. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT bug page +\%http://bugs.debian.org/src:apt diff --git a/doc/apt-ftparchive.1.xml b/doc/apt-ftparchive.1.xml new file mode 100644 index 0000000..8cfbc72 --- /dev/null +++ b/doc/apt-ftparchive.1.xml @@ -0,0 +1,572 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 February 2004 + + + + apt-ftparchive + 1 + + + + + apt-ftparchive + Utility to generate index files + + + + + + apt-ftparchive + + + + + + + + + packagespathoverridepathprefix + sourcespathoverridepathprefix + contents path + release path + generate config-file section + clean config-file + + + + + Description + apt-ftparchive is the command line tool that generates the index + files that APT uses to access a distribution source. The index files should + be generated on the origin site based on the content of that site. + + apt-ftparchive is a superset of the &dpkg-scanpackages; program, + incorporating its entire functionality via the packages command. + It also contains a contents file generator, contents, and an + elaborate means to 'script' the generation process for a complete + archive. + + Internally apt-ftparchive can make use of binary databases to + cache the contents of a .deb file and it does not rely on any external + programs aside from &gzip;. When doing a full generate it automatically + performs file-change checks and builds the desired compressed output files. + + Unless the , or option is given one of the + commands below must be present. + + + packages + + The packages command generates a package file from a directory tree. It + takes the given directory and recursively searches it for .deb files, + emitting a package record to stdout for each. This command is + approximately equivalent to &dpkg-scanpackages;. + + The option can be used to specify a binary caching DB. + + + sources + + The sources command generates a source index file from a directory tree. + It takes the given directory and recursively searches it for .dsc files, + emitting a source record to stdout for each. This command is approximately + equivalent to &dpkg-scansources;. + + If an override file is specified then a source override file will be + looked for with an extension of .src. The --source-override option can be + used to change the source override file that will be used. + + + contents + + The contents command generates a contents file from a directory tree. It + takes the given directory and recursively searches it for .deb files, + and reads the file list from each file. It then sorts and writes to stdout + the list of files matched to packages. Directories are not written to + the output. If multiple packages own the same file then each package is + separated by a comma in the output. + + The option can be used to specify a binary caching DB. + + + release + + The release command generates a Release file from a + directory tree. It recursively searches the given directory for + Packages, Packages.gz, Packages.bz2, Sources, Sources.gz, + Sources.bz2, Release and md5sum.txt files. It then writes to + stdout a Release file containing an MD5 digest and SHA1 digest + for each file. + + Values for the additional metadata fields in the Release file are + taken from the corresponding variables under + APT::FTPArchive::Release, + e.g. APT::FTPArchive::Release::Origin. The supported fields + are: Origin, Label, Suite, + Version, Codename, Date, + Architectures, Components, Description. + + + + generate + + The generate command is designed to be runnable from a cron script and + builds indexes according to the given config file. The config language + provides a flexible means of specifying which index files are built from + which directories, as well as providing a simple means of maintaining the + required settings. + + + clean + + The clean command tidies the databases used by the given + configuration file by removing any records that are no longer necessary. + + + + + The Generate Configuration + + The generate command uses a configuration file to describe the + archives that are going to be generated. It follows the typical ISC + configuration format as seen in ISC tools like bind 8 and dhcpd. + &apt-conf; contains a description of the syntax. Note that the generate + configuration is parsed in sectional manner, but &apt-conf; is parsed in a + tree manner. This only effects how the scope tag is handled. + + + The generate configuration has 4 separate sections, each described below. + + Dir Section + + The Dir section defines the standard directories needed to + locate the files required during the generation process. These + directories are prepended to certain relative paths defined in later + sections to produce a complete an absolute path. + + ArchiveDir + + Specifies the root of the FTP archive, in a standard + Debian configuration this is the directory that contains the + ls-LR and dist nodes. + + + OverrideDir + + Specifies the location of the override files. + + + CacheDir + + Specifies the location of the cache files + + + FileListDir + + Specifies the location of the file list files, + if the FileList setting is used below. + + + + + Default Section + + The Default section specifies default values, and settings + that control the operation of the generator. Other sections may override + these defaults with a per-section setting. + + Packages::Compress + + Sets the default compression schemes to use + for the Package index files. It is a string that contains a space + separated list of at least one of: '.' (no compression), 'gzip' and + 'bzip2'. The default for all compression schemes is '. gzip'. + + + Packages::Extensions + + Sets the default list of file extensions that are package files. + This defaults to '.deb'. + + + Sources::Compress + + This is similar to Packages::Compress + except that it controls the compression for the Sources files. + + + Sources::Extensions + + Sets the default list of file extensions that are source files. + This defaults to '.dsc'. + + + Contents::Compress + + This is similar to Packages::Compress + except that it controls the compression for the Contents files. + + + DeLinkLimit + + Specifies the number of kilobytes to delink (and + replace with hard links) per run. This is used in conjunction with the + per-section External-Links setting. + + + FileMode + + Specifies the mode of all created index files. It + defaults to 0644. All index files are set to this mode with no regard + to the umask. + + + + + TreeDefault Section + + Sets defaults specific to Tree sections. All of these + variables are substitution variables and have the strings $(DIST), + $(SECTION) and $(ARCH) replaced with their respective values. + + + MaxContentsChange + + Sets the number of kilobytes of contents + files that are generated each day. The contents files are round-robined + so that over several days they will all be rebuilt. + + + ContentsAge + + Controls the number of days a contents file is allowed + to be checked without changing. If this limit is passed the mtime of the + contents file is updated. This case can occur if the package file is + changed in such a way that does not result in a new contents file + [override edit for instance]. A hold off is allowed in hopes that new + .debs will be installed, requiring a new file anyhow. The default is 10, + the units are in days. + + + Directory + + Sets the top of the .deb directory tree. Defaults to + $(DIST)/$(SECTION)/binary-$(ARCH)/ + + + SrcDirectory + + Sets the top of the source package directory tree. Defaults to + $(DIST)/$(SECTION)/source/ + + + Packages + + Sets the output Packages file. Defaults to + $(DIST)/$(SECTION)/binary-$(ARCH)/Packages + + + Sources + + Sets the output Packages file. Defaults to + $(DIST)/$(SECTION)/source/Sources + + + InternalPrefix + + Sets the path prefix that causes a symlink to be + considered an internal link instead of an external link. Defaults to + $(DIST)/$(SECTION)/ + + + Contents + + Sets the output Contents file. Defaults to + $(DIST)/Contents-$(ARCH). If this setting causes multiple + Packages files to map onto a single Contents file (such as the default) + then apt-ftparchive will integrate those package files + together automatically. + + + Contents::Header + + Sets header file to prepend to the contents output. + + + BinCacheDB + + Sets the binary cache database to use for this + section. Multiple sections can share the same database. + + + FileList + + Specifies that instead of walking the directory tree, + apt-ftparchive should read the list of files from the given + file. Relative files names are prefixed with the archive directory. + + + SourceFileList + + Specifies that instead of walking the directory tree, + apt-ftparchive should read the list of files from the given + file. Relative files names are prefixed with the archive directory. + This is used when processing source indexs. + + + + + Tree Section + + The Tree section defines a standard Debian file tree which + consists of a base directory, then multiple sections in that base + directory and finally multiple Architectures in each section. The exact + pathing used is defined by the Directory substitution variable. + + The Tree section takes a scope tag which sets the + $(DIST) variable and defines the root of the tree + (the path is prefixed by ArchiveDir). + Typically this is a setting such as dists/woody. + + All of the settings defined in the TreeDefault section can be + use in a Tree section as well as three new variables. + + When processing a Tree section apt-ftparchive + performs an operation similar to: + +for i in Sections do + for j in Architectures do + Generate for DIST=scope SECTION=i ARCH=j + + + + Sections + + This is a space separated list of sections which appear + under the distribution, typically this is something like + main contrib non-free + + + Architectures + + This is a space separated list of all the + architectures that appear under search section. The special architecture + 'source' is used to indicate that this tree has a source archive. + + + BinOverride + + Sets the binary override file. The override file + contains section, priority and maintainer address information. + + + SrcOverride + + Sets the source override file. The override file + contains section information. + + + ExtraOverride + + Sets the binary extra override file. + + + SrcExtraOverride + + Sets the source extra override file. + + + + + BinDirectory Section + + The bindirectory section defines a binary directory tree + with no special structure. The scope tag specifies the location of + the binary directory and the settings are similar to the Tree + section with no substitution variables or + SectionArchitecture settings. + + Packages + + Sets the Packages file output. + + + Sources + + Sets the Sources file output. At least one of + Packages or Sources is required. + + + Contents + + Sets the Contents file output. (optional) + + + BinOverride + + Sets the binary override file. + + + SrcOverride + + Sets the source override file. + + + ExtraOverride + + Sets the binary extra override file. + + + SrcExtraOverride + + Sets the source extra override file. + + + BinCacheDB + + Sets the cache DB. + + + PathPrefix + + Appends a path to all the output paths. + + + FileList, SourceFileList + + Specifies the file list file. + + + + + + + The Binary Override File + The binary override file is fully compatible with &dpkg-scanpackages;. It + contains 4 fields separated by spaces. The first field is the package name, + the second is the priority to force that package to, the third is the + the section to force that package to and the final field is the maintainer + permutation field. + The general form of the maintainer field is: + old [// oldn]* => new + or simply, + new + The first form allows a double-slash separated list of old email addresses + to be specified. If any of those are found then new is substituted for the + maintainer field. The second form unconditionally substitutes the + maintainer field. + + + + The Source Override File + + The source override file is fully compatible with &dpkg-scansources;. It + contains 2 fields separated by spaces. The first fields is the source + package name, the second is the section to assign it. + + + The Extra Override File + + The extra override file allows any arbitrary tag to be added or replaced + in the output. It has 3 columns, the first is the package, the second is + the tag and the remainder of the line is the new value. + + + options + &apt-cmdblurb; + + + + + Generate MD5 sums. This defaults to on, when turned off the generated + index files will not have MD5Sum fields where possible. + Configuration Item: APT::FTPArchive::MD5 + + + + + Use a binary caching DB. This has no effect on the generate command. + Configuration Item: APT::FTPArchive::DB. + + + + + Quiet; produces output suitable for logging, omitting progress indicators. + More q's will produce more quiet up to a maximum of 2. You can also use + to set the quiet level, overriding the configuration file. + Configuration Item: quiet. + + + + + Perform Delinking. If the External-Links setting is used then + this option actually enables delinking of the files. It defaults to on and + can be turned off with . + Configuration Item: APT::FTPArchive::DeLinkAct. + + + + + Perform contents generation. When this option is set and package indexes + are being generated with a cache DB then the file listing will also be + extracted and stored in the DB for later use. When using the generate + command this option also allows the creation of any Contents files. The + default is on. + Configuration Item: APT::FTPArchive::Contents. + + + + + Select the source override file to use with the sources command. + Configuration Item: APT::FTPArchive::SourceOverride. + + + + + Make the caching databases read only. + Configuration Item: APT::FTPArchive::ReadOnlyDB. + + + &apt-commonoptions; + + + + +Examples + +To create a compressed Packages file for a directory containing +binary packages (.deb): + + +apt-ftparchive packages directory | gzip > Packages.gz + + + + + See Also + &apt-conf; + + + Diagnostics + apt-ftparchive returns zero on normal operation, decimal 100 on error. + + + &manbugs; + + diff --git a/doc/apt-get.8 b/doc/apt-get.8 new file mode 100644 index 0000000..74d5738 --- /dev/null +++ b/doc/apt-get.8 @@ -0,0 +1,476 @@ +.\" Title: apt\-get +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-GET" "8" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-get \- APT package handling utility \-\- command\-line interface +.SH "SYNOPSIS" +.HP 8 +\fBapt\-get\fR [\fB\-hvs\fR] [\fB\-o=\fR\fB\fIconfig\ string\fR\fR] [\fB\-c=\fR\fB\fIfile\fR\fR] {[update] | [upgrade] | [dselect\-upgrade] | [install\ \fIpkg\fR...] | [remove\ \fIpkg\fR...] | [source\ \fIpkg\fR...] | [build\-dep\ \fIpkg\fR...] | [check] | [clean] | [autoclean]} +.SH "DESCRIPTION" +.PP +\fBapt\-get\fR +is the command\-line tool for handling packages, and may be considered the user's "back\-end" to other tools using the APT library. Several "front\-end" interfaces exist, such as dselect(8), aptitude, synaptic, gnome\-apt and wajig. +.PP +Unless the +\fB\-h\fR, or +\fB\-\-help\fR +option is given, one of the commands below must be present. +.PP +update +.RS 3n +update +is used to resynchronize the package index files from their sources. The indexes of available packages are fetched from the location(s) specified in +\fI/etc/apt/sources.list\fR. For example, when using a Debian archive, this command retrieves and scans the +\fIPackages.gz\fR +files, so that information about new and updated packages is available. An +update +should always be performed before an +upgrade +or +dist\-upgrade. Please be aware that the overall progress meter will be incorrect as the size of the package files cannot be known in advance. +.RE +.PP +upgrade +.RS 3n +upgrade +is used to install the newest versions of all packages currently installed on the system from the sources enumerated in +\fI/etc/apt/sources.list\fR. Packages currently installed with new versions available are retrieved and upgraded; under no circumstances are currently installed packages removed, or packages not already installed retrieved and installed. New versions of currently installed packages that cannot be upgraded without changing the install status of another package will be left at their current version. An +update +must be performed first so that +\fBapt\-get\fR +knows that new versions of packages are available. +.RE +.PP +dselect\-upgrade +.RS 3n +dselect\-upgrade +is used in conjunction with the traditional Debian packaging front\-end, +\fBdselect\fR(8). +dselect\-upgrade +follows the changes made by +\fBdselect\fR(8) +to the +Status +field of available packages, and performs the actions necessary to realize that state (for instance, the removal of old and the installation of new packages). +.RE +.PP +dist\-upgrade +.RS 3n +dist\-upgrade +in addition to performing the function of +upgrade, also intelligently handles changing dependencies with new versions of packages; +\fBapt\-get\fR +has a "smart" conflict resolution system, and it will attempt to upgrade the most important packages at the expense of less important ones if necessary. The +\fI/etc/apt/sources.list\fR +file contains a list of locations from which to retrieve desired package files. See also +\fBapt_preferences\fR(5) +for a mechanism for overriding the general settings for individual packages. +.RE +.PP +install +.RS 3n +install +is followed by one or more packages desired for installation. Each package is a package name, not a fully qualified filename (for instance, in a Debian GNU/Linux system, libc6 would be the argument provided, not +libc6_1.9.6\-2.deb) All packages required by the package(s) specified for installation will also be retrieved and installed. The +\fI/etc/apt/sources.list\fR +file is used to locate the desired packages. If a hyphen is appended to the package name (with no intervening space), the identified package will be removed if it is installed. Similarly a plus sign can be used to designate a package to install. These latter features may be used to override decisions made by apt\-get's conflict resolution system. +.sp +A specific version of a package can be selected for installation by following the package name with an equals and the version of the package to select. This will cause that version to be located and selected for install. Alternatively a specific distribution can be selected by following the package name with a slash and the version of the distribution or the Archive name (stable, testing, unstable). +.sp +Both of the version selection mechanisms can downgrade packages and must be used with care. +.sp +Finally, the +\fBapt_preferences\fR(5) +mechanism allows you to create an alternative installation policy for individual packages. +.sp +If no package matches the given expression and the expression contains one of '.', '?' or '*' then it is assumed to be a POSIX regular expression, and it is applied to all package names in the database. Any matches are then installed (or removed). Note that matching is done by substring so 'lo.*' matches 'how\-lo' and 'lowest'. If this is undesired, anchor the regular expression with a '^' or '$' character, or create a more specific regular expression. +.RE +.PP +remove +.RS 3n +remove +is identical to +install +except that packages are removed instead of installed. If a plus sign is appended to the package name (with no intervening space), the identified package will be installed instead of removed. +.RE +.PP +source +.RS 3n +source +causes +\fBapt\-get\fR +to fetch source packages. APT will examine the available packages to decide which source package to fetch. It will then find and download into the current directory the newest available version of that source package. Source packages are tracked separately from binary packages via +deb\-src +type lines in the +\fBsources.list\fR(5) +file. This probably will mean that you will not get the same source as the package you have installed or as you could install. If the \-\-compile options is specified then the package will be compiled to a binary .deb using dpkg\-buildpackage, if \-\-download\-only is specified then the source package will not be unpacked. +.sp +A specific source version can be retrieved by postfixing the source name with an equals and then the version to fetch, similar to the mechanism used for the package files. This enables exact matching of the source package name and version, implicitly enabling the +APT::Get::Only\-Source +option. +.sp +Note that source packages are not tracked like binary packages, they exist only in the current directory and are similar to downloading source tar balls. +.RE +.PP +build\-dep +.RS 3n +build\-dep +causes apt\-get to install/remove packages in an attempt to satisfy the build dependencies for a source package. +.RE +.PP +check +.RS 3n +check +is a diagnostic tool; it updates the package cache and checks for broken dependencies. +.RE +.PP +clean +.RS 3n +clean +clears out the local repository of retrieved package files. It removes everything but the lock file from +\fI/var/cache/apt/archives/\fR +and +\fI/var/cache/apt/archives/partial/\fR. When APT is used as a +\fBdselect\fR(8) +method, +clean +is run automatically. Those who do not use dselect will likely want to run +apt\-get clean +from time to time to free up disk space. +.RE +.PP +autoclean +.RS 3n +Like +clean, +autoclean +clears out the local repository of retrieved package files. The difference is that it only removes package files that can no longer be downloaded, and are largely useless. This allows a cache to be maintained over a long period without it growing out of control. The configuration option +APT::Clean\-Installed +will prevent installed packages from being erased if it is set to off. +.RE +.SH "OPTIONS" +.PP +All command line options may be set using the configuration file, the descriptions indicate the configuration option to set. For boolean options you can override the config file by using something like +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +or several other variations. +.PP +\fB\-d\fR, \fB\-\-download\-only\fR +.RS 3n +Download only; package files are only retrieved, not unpacked or installed. Configuration Item: +APT::Get::Download\-Only. +.RE +.PP +\fB\-f\fR, \fB\-\-fix\-broken\fR +.RS 3n +Fix; attempt to correct a system with broken dependencies in place. This option, when used with install/remove, can omit any packages to permit APT to deduce a likely solution. Any Package that are specified must completely correct the problem. The option is sometimes necessary when running APT for the first time; APT itself does not allow broken package dependencies to exist on a system. It is possible that a system's dependency structure can be so corrupt as to require manual intervention (which usually means using +\fBdselect\fR(8) +or +\fBdpkg \-\-remove\fR +to eliminate some of the offending packages). Use of this option together with +\fB\-m\fR +may produce an error in some situations. Configuration Item: +APT::Get::Fix\-Broken. +.RE +.PP +\fB\-m\fR, \fB\-\-ignore\-missing\fR, \fB\-\-fix\-missing\fR +.RS 3n +Ignore missing packages; If packages cannot be retrieved or fail the integrity check after retrieval (corrupted package files), hold back those packages and handle the result. Use of this option together with +\fB\-f\fR +may produce an error in some situations. If a package is selected for installation (particularly if it is mentioned on the command line) and it could not be downloaded then it will be silently held back. Configuration Item: +APT::Get::Fix\-Missing. +.RE +.PP +\fB\-\-no\-download\fR +.RS 3n +Disables downloading of packages. This is best used with +\fB\-\-ignore\-missing\fR +to force APT to use only the .debs it has already downloaded. Configuration Item: +APT::Get::Download. +.RE +.PP +\fB\-q\fR, \fB\-\-quiet\fR +.RS 3n +Quiet; produces output suitable for logging, omitting progress indicators. More q's will produce more quiet up to a maximum of 2. You can also use +\fB\-q=#\fR +to set the quiet level, overriding the configuration file. Note that quiet level 2 implies +\fB\-y\fR, you should never use \-qq without a no\-action modifier such as \-d, \-\-print\-uris or \-s as APT may decided to do something you did not expect. Configuration Item: +quiet. +.RE +.PP +\fB\-s\fR, \fB\-\-simulate\fR, \fB\-\-just\-print\fR, \fB\-\-dry\-run\fR, \fB\-\-recon\fR, \fB\-\-no\-act\fR +.RS 3n +No action; perform a simulation of events that would occur but do not actually change the system. Configuration Item: +APT::Get::Simulate. +.sp +Simulate prints out a series of lines each one representing a dpkg operation, Configure (Conf), Remove (Remv), Unpack (Inst). Square brackets indicate broken packages with and empty set of square brackets meaning breaks that are of no consequence (rare). +.RE +.PP +\fB\-y\fR, \fB\-\-yes\fR, \fB\-\-assume\-yes\fR +.RS 3n +Automatic yes to prompts; assume "yes" as answer to all prompts and run non\-interactively. If an undesirable situation, such as changing a held package, trying to install a unauthenticated package or removing an essential package occurs then +apt\-get +will abort. Configuration Item: +APT::Get::Assume\-Yes. +.RE +.PP +\fB\-u\fR, \fB\-\-show\-upgraded\fR +.RS 3n +Show upgraded packages; Print out a list of all packages that are to be upgraded. Configuration Item: +APT::Get::Show\-Upgraded. +.RE +.PP +\fB\-V\fR, \fB\-\-verbose\-versions\fR +.RS 3n +Show full versions for upgraded and installed packages. Configuration Item: +APT::Get::Show\-Versions. +.RE +.PP +\fB\-b\fR, \fB\-\-compile\fR, \fB\-\-build\fR +.RS 3n +Compile source packages after downloading them. Configuration Item: +APT::Get::Compile. +.RE +.PP +\fB\-\-ignore\-hold\fR +.RS 3n +Ignore package Holds; This causes +\fBapt\-get\fR +to ignore a hold placed on a package. This may be useful in conjunction with +dist\-upgrade +to override a large number of undesired holds. Configuration Item: +APT::Ignore\-Hold. +.RE +.PP +\fB\-\-no\-upgrade\fR +.RS 3n +Do not upgrade packages; When used in conjunction with +install, +no\-upgrade +will prevent packages on the command line from being upgraded if they are already installed. Configuration Item: +APT::Get::Upgrade. +.RE +.PP +\fB\-\-force\-yes\fR +.RS 3n +Force yes; This is a dangerous option that will cause apt to continue without prompting if it is doing something potentially harmful. It should not be used except in very special situations. Using +force\-yes +can potentially destroy your system! Configuration Item: +APT::Get::force\-yes. +.RE +.PP +\fB\-\-print\-uris\fR +.RS 3n +Instead of fetching the files to install their URIs are printed. Each URI will have the path, the destination file name, the size and the expected md5 hash. Note that the file name to write to will not always match the file name on the remote site! This also works with the +source +and +update +commands. When used with the +update +command the MD5 and size are not included, and it is up to the user to decompress any compressed files. Configuration Item: +APT::Get::Print\-URIs. +.RE +.PP +\fB\-\-purge\fR +.RS 3n +Use purge instead of remove for anything that would be removed. An asterisk ("*") will be displayed next to packages which are scheduled to be purged. Configuration Item: +APT::Get::Purge. +.RE +.PP +\fB\-\-reinstall\fR +.RS 3n +Re\-Install packages that are already installed and at the newest version. Configuration Item: +APT::Get::ReInstall. +.RE +.PP +\fB\-\-list\-cleanup\fR +.RS 3n +This option defaults to on, use +\-\-no\-list\-cleanup +to turn it off. When on +\fBapt\-get\fR +will automatically manage the contents of +\fI/var/lib/apt/lists\fR +to ensure that obsolete files are erased. The only reason to turn it off is if you frequently change your source list. Configuration Item: +APT::Get::List\-Cleanup. +.RE +.PP +\fB\-t\fR, \fB\-\-target\-release\fR, \fB\-\-default\-release\fR +.RS 3n +This option controls the default input to the policy engine, it creates a default pin at priority 990 using the specified release string. The preferences file may further override this setting. In short, this option lets you have simple control over which distribution packages will be retrieved from. Some common examples might be +\fB\-t '2.1*'\fR +or +\fB\-t unstable\fR. Configuration Item: +APT::Default\-Release; see also the +\fBapt_preferences\fR(5) +manual page. +.RE +.PP +\fB\-\-trivial\-only\fR +.RS 3n +Only perform operations that are 'trivial'. Logically this can be considered related to +\fB\-\-assume\-yes\fR, where +\fB\-\-assume\-yes\fR +will answer yes to any prompt, +\fB\-\-trivial\-only\fR +will answer no. Configuration Item: +APT::Get::Trivial\-Only. +.RE +.PP +\fB\-\-no\-remove\fR +.RS 3n +If any packages are to be removed apt\-get immediately aborts without prompting. Configuration Item: +APT::Get::Remove. +.RE +.PP +\fB\-\-only\-source\fR +.RS 3n +Only has meaning for the +source +and +build\-dep +commands. Indicates that the given source names are not to be mapped through the binary table. This means that if this option is specified, these commands will only accept source package names as arguments, rather than accepting binary package names and looking up the corresponding source package. Configuration Item: +APT::Get::Only\-Source. +.RE +.PP +\fB\-\-diff\-only\fR, \fB\-\-tar\-only\fR +.RS 3n +Download only the diff or tar file of a source archive. Configuration Item: +APT::Get::Diff\-Only +and +APT::Get::Tar\-Only. +.RE +.PP +\fB\-\-arch\-only\fR +.RS 3n +Only process architecture\-dependent build\-dependencies. Configuration Item: +APT::Get::Arch\-Only. +.RE +.PP +\fB\-\-allow\-unauthenticated\fR +.RS 3n +Ignore if packages can't be authenticated and don't prompt about it. This is usefull for tools like pbuilder. Configuration Item: +APT::Get::AllowUnauthenticated. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +Show a short usage summary. +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +Show the program version. +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +Configuration File; Specify a configuration file to use. The program will read the default configuration file and then this configuration file. See +\fBapt.conf\fR(5) +for syntax information. +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +Set a Configuration Option; This will set an arbitary configuration option. The syntax is +\fB\-o Foo::Bar=bar\fR. +.RE +.SH "FILES" +.PP +\fI/etc/apt/sources.list\fR +.RS 3n +Locations to fetch packages from. Configuration Item: +Dir::Etc::SourceList. +.RE +.PP +\fI/etc/apt/apt.conf\fR +.RS 3n +APT configuration file. Configuration Item: +Dir::Etc::Main. +.RE +.PP +\fI/etc/apt/apt.conf.d/\fR +.RS 3n +APT configuration file fragments Configuration Item: +Dir::Etc::Parts. +.RE +.PP +\fI/etc/apt/preferences\fR +.RS 3n +Version preferences file. This is where you would specify "pinning", i.e. a preference to get certain packages from a separate source or from a different version of a distribution. Configuration Item: +Dir::Etc::Preferences. +.RE +.PP +\fI/var/cache/apt/archives/\fR +.RS 3n +Storage area for retrieved package files. Configuration Item: +Dir::Cache::Archives. +.RE +.PP +\fI/var/cache/apt/archives/partial/\fR +.RS 3n +Storage area for package files in transit. Configuration Item: +Dir::Cache::Archives +(implicit partial). +.RE +.PP +\fI/var/lib/apt/lists/\fR +.RS 3n +Storage area for state information for each package resource specified in +\fBsources.list\fR(5) +Configuration Item: +Dir::State::Lists. +.RE +.PP +\fI/var/lib/apt/lists/partial/\fR +.RS 3n +Storage area for state information in transit. Configuration Item: +Dir::State::Lists +(implicit partial). +.RE +.SH "SEE ALSO" +.PP +\fBapt\-cache\fR(8), +\fBapt\-cdrom\fR(8), +\fBdpkg\fR(8), +\fBdselect\fR(8), +\fBsources.list\fR(5), +\fBapt.conf\fR(5), +\fBapt\-config\fR(8), +\fBapt\-secure\fR(8), The APT User's guide in /usr/share/doc/apt\-doc/, +\fBapt_preferences\fR(5), the APT Howto. +.SH "DIAGNOSTICS" +.PP +\fBapt\-get\fR +returns zero on normal operation, decimal 100 on error. +.SH "BUGS" +.PP +[1]\&\fIAPT bug page\fR. If you wish to report a bug in APT, please see +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +or the +\fBreportbug\fR(1) +command. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT bug page +\%http://bugs.debian.org/src:apt diff --git a/doc/apt-get.8.xml b/doc/apt-get.8.xml new file mode 100644 index 0000000..17f663a --- /dev/null +++ b/doc/apt-get.8.xml @@ -0,0 +1,480 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 February 2004 + + + + apt-get + 8 + + + + + apt-get + APT package handling utility -- command-line interface + + + + + + apt-get + + + + + update + upgrade + dselect-upgrade + install pkg + remove pkg + source pkg + build-dep pkg + check + clean + autoclean + + + + + Description + apt-get is the command-line tool for handling packages, and may be + considered the user's "back-end" to other tools using the APT + library. Several "front-end" interfaces exist, such as dselect(8), + aptitude, synaptic, gnome-apt and wajig. + + Unless the , or option is given, one of the + commands below must be present. + + + update + update is used to resynchronize the package index files from + their sources. The indexes of available packages are fetched from the + location(s) specified in /etc/apt/sources.list. + For example, when using a Debian archive, this command retrieves and + scans the Packages.gz files, so that information about new + and updated packages is available. An update should always be + performed before an upgrade or dist-upgrade. Please + be aware that the overall progress meter will be incorrect as the size + of the package files cannot be known in advance. + + + upgrade + upgrade is used to install the newest versions of all packages + currently installed on the system from the sources enumerated in + /etc/apt/sources.list. Packages currently installed with + new versions available are retrieved and upgraded; under no circumstances + are currently installed packages removed, or packages not already installed + retrieved and installed. New versions of currently installed packages that + cannot be upgraded without changing the install status of another package + will be left at their current version. An update must be + performed first so that apt-get knows that new versions of packages are + available. + + + dselect-upgrade + dselect-upgrade + is used in conjunction with the traditional Debian packaging + front-end, &dselect;. dselect-upgrade + follows the changes made by &dselect; to the Status + field of available packages, and performs the actions necessary to realize + that state (for instance, the removal of old and the installation of new + packages). + + + dist-upgrade + dist-upgrade in addition to performing the function of + upgrade, also intelligently handles changing dependencies + with new versions of packages; apt-get has a "smart" conflict + resolution system, and it will attempt to upgrade the most important + packages at the expense of less important ones if necessary. + The /etc/apt/sources.list file contains a list of locations + from which to retrieve desired package files. + See also &apt-preferences; for a mechanism for + overriding the general settings for individual packages. + + + install + install is followed by one or more packages desired for + installation. Each package is a package name, not a fully qualified + filename (for instance, in a Debian GNU/Linux system, libc6 would be the + argument provided, not libc6_1.9.6-2.deb) All packages required + by the package(s) specified for installation will also be retrieved and + installed. The /etc/apt/sources.list file is used to locate + the desired packages. If a hyphen is appended to the package name (with + no intervening space), the identified package will be removed if it is + installed. Similarly a plus sign can be used to designate a package to + install. These latter features may be used to override decisions made by + apt-get's conflict resolution system. + + A specific version of a package can be selected for installation by + following the package name with an equals and the version of the package + to select. This will cause that version to be located and selected for + install. Alternatively a specific distribution can be selected by + following the package name with a slash and the version of the + distribution or the Archive name (stable, testing, unstable). + + Both of the version selection mechanisms can downgrade packages and must + be used with care. + + Finally, the &apt-preferences; mechanism allows you to + create an alternative installation policy for + individual packages. + + If no package matches the given expression and the expression contains one + of '.', '?' or '*' then it is assumed to be a POSIX regular expression, + and it is applied + to all package names in the database. Any matches are then installed (or + removed). Note that matching is done by substring so 'lo.*' matches 'how-lo' + and 'lowest'. If this is undesired, anchor the regular expression + with a '^' or '$' character, or create a more specific regular expression. + + + remove + remove is identical to install except that packages are + removed instead of installed. If a plus sign is appended to the package + name (with no intervening space), the identified package will be + installed instead of removed. + + + source + source causes apt-get to fetch source packages. APT + will examine the available packages to decide which source package to + fetch. It will then find and download into the current directory the + newest available version of that source package. Source packages are + tracked separately from binary packages via deb-src type lines + in the &sources-list; file. This probably will mean that you will not + get the same source as the package you have installed or as you could + install. If the --compile options is specified then the package will be + compiled to a binary .deb using dpkg-buildpackage, if --download-only is + specified then the source package will not be unpacked. + + A specific source version can be retrieved by postfixing the source name + with an equals and then the version to fetch, similar to the mechanism + used for the package files. This enables exact matching of the source + package name and version, implicitly enabling the + APT::Get::Only-Source option. + + Note that source packages are not tracked like binary packages, they + exist only in the current directory and are similar to downloading source + tar balls. + + + build-dep + build-dep causes apt-get to install/remove packages in an + attempt to satisfy the build dependencies for a source package. + + + check + check is a diagnostic tool; it updates the package cache and checks + for broken dependencies. + + + clean + clean clears out the local repository of retrieved package + files. It removes everything but the lock file from + &cachedir;/archives/ and + &cachedir;/archives/partial/. When APT is used as a + &dselect; method, clean is run automatically. + Those who do not use dselect will likely want to run apt-get clean + from time to time to free up disk space. + + + autoclean + Like clean, autoclean clears out the local + repository of retrieved package files. The difference is that it only + removes package files that can no longer be downloaded, and are largely + useless. This allows a cache to be maintained over a long period without + it growing out of control. The configuration option + APT::Clean-Installed will prevent installed packages from being + erased if it is set to off. + + + + + options + &apt-cmdblurb; + + + + Download only; package files are only retrieved, not unpacked or installed. + Configuration Item: APT::Get::Download-Only. + + + + Fix; attempt to correct a system with broken dependencies in + place. This option, when used with install/remove, can omit any packages + to permit APT to deduce a likely solution. Any Package that are specified + must completely correct the problem. The option is sometimes necessary when + running APT for the first time; APT itself does not allow broken package + dependencies to exist on a system. It is possible that a system's + dependency structure can be so corrupt as to require manual intervention + (which usually means using &dselect; or dpkg --remove to eliminate some of + the offending packages). Use of this option together with may produce an + error in some situations. + Configuration Item: APT::Get::Fix-Broken. + + + + + Ignore missing packages; If packages cannot be retrieved or fail the + integrity check after retrieval (corrupted package files), hold back + those packages and handle the result. Use of this option together with + may produce an error in some situations. If a package is + selected for installation (particularly if it is mentioned on the + command line) and it could not be downloaded then it will be silently + held back. + Configuration Item: APT::Get::Fix-Missing. + + + + Disables downloading of packages. This is best used with + to force APT to use only the .debs it has + already downloaded. + Configuration Item: APT::Get::Download. + + + + Quiet; produces output suitable for logging, omitting progress indicators. + More q's will produce more quiet up to a maximum of 2. You can also use + to set the quiet level, overriding the configuration file. + Note that quiet level 2 implies , you should never use -qq + without a no-action modifier such as -d, --print-uris or -s as APT may + decided to do something you did not expect. + Configuration Item: quiet. + + + + + + + + + No action; perform a simulation of events that would occur but do not + actually change the system. + Configuration Item: APT::Get::Simulate. + + Simulate prints out + a series of lines each one representing a dpkg operation, Configure (Conf), + Remove (Remv), Unpack (Inst). Square brackets indicate broken packages with + and empty set of square brackets meaning breaks that are of no consequence + (rare). + + + + + Automatic yes to prompts; assume "yes" as answer to all prompts and run + non-interactively. If an undesirable situation, such as changing a held + package, trying to install a unauthenticated package or removing an essential package + occurs then apt-get will abort. + Configuration Item: APT::Get::Assume-Yes. + + + + Show upgraded packages; Print out a list of all packages that are to be + upgraded. + Configuration Item: APT::Get::Show-Upgraded. + + + + Show full versions for upgraded and installed packages. + Configuration Item: APT::Get::Show-Versions. + + + + + Compile source packages after downloading them. + Configuration Item: APT::Get::Compile. + + + + Ignore package Holds; This causes apt-get to ignore a hold + placed on a package. This may be useful in conjunction with + dist-upgrade to override a large number of undesired holds. + Configuration Item: APT::Ignore-Hold. + + + + Do not upgrade packages; When used in conjunction with install, + no-upgrade will prevent packages on the command line + from being upgraded if they are already installed. + Configuration Item: APT::Get::Upgrade. + + + + Force yes; This is a dangerous option that will cause apt to continue + without prompting if it is doing something potentially harmful. It + should not be used except in very special situations. Using + force-yes can potentially destroy your system! + Configuration Item: APT::Get::force-yes. + + + + Instead of fetching the files to install their URIs are printed. Each + URI will have the path, the destination file name, the size and the expected + md5 hash. Note that the file name to write to will not always match + the file name on the remote site! This also works with the + source and update commands. When used with the + update command the MD5 and size are not included, and it is + up to the user to decompress any compressed files. + Configuration Item: APT::Get::Print-URIs. + + + + Use purge instead of remove for anything that would be removed. + An asterisk ("*") will be displayed next to packages which are + scheduled to be purged. + Configuration Item: APT::Get::Purge. + + + + Re-Install packages that are already installed and at the newest version. + Configuration Item: APT::Get::ReInstall. + + + + This option defaults to on, use --no-list-cleanup to turn it + off. When on apt-get will automatically manage the contents of + &statedir;/lists to ensure that obsolete files are erased. + The only reason to turn it off is if you frequently change your source + list. + Configuration Item: APT::Get::List-Cleanup. + + + + + + This option controls the default input to the policy engine, it creates + a default pin at priority 990 using the specified release string. The + preferences file may further override this setting. In short, this option + lets you have simple control over which distribution packages will be + retrieved from. Some common examples might be + or . + Configuration Item: APT::Default-Release; + see also the &apt-preferences; manual page. + + + + + Only perform operations that are 'trivial'. Logically this can be considered + related to , where will answer + yes to any prompt, will answer no. + Configuration Item: APT::Get::Trivial-Only. + + + + If any packages are to be removed apt-get immediately aborts without + prompting. + Configuration Item: APT::Get::Remove. + + + + Only has meaning for the + source and build-dep + commands. Indicates that the given source names are not to be + mapped through the binary table. This means that if this option + is specified, these commands will only accept source package + names as arguments, rather than accepting binary package names + and looking up the corresponding source package. Configuration + Item: APT::Get::Only-Source. + + + + Download only the diff or tar file of a source archive. + Configuration Item: APT::Get::Diff-Only and + APT::Get::Tar-Only. + + + + Only process architecture-dependent build-dependencies. + Configuration Item: APT::Get::Arch-Only. + + + + Ignore if packages can't be authenticated and don't prompt about it. + This is usefull for tools like pbuilder. + Configuration Item: APT::Get::AllowUnauthenticated. + + + + &apt-commonoptions; + + + + + Files + + /etc/apt/sources.list + Locations to fetch packages from. + Configuration Item: Dir::Etc::SourceList. + + + /etc/apt/apt.conf + APT configuration file. + Configuration Item: Dir::Etc::Main. + + + /etc/apt/apt.conf.d/ + APT configuration file fragments + Configuration Item: Dir::Etc::Parts. + + + /etc/apt/preferences + Version preferences file. + This is where you would specify "pinning", + i.e. a preference to get certain packages + from a separate source + or from a different version of a distribution. + Configuration Item: Dir::Etc::Preferences. + + + &cachedir;/archives/ + Storage area for retrieved package files. + Configuration Item: Dir::Cache::Archives. + + + &cachedir;/archives/partial/ + Storage area for package files in transit. + Configuration Item: Dir::Cache::Archives (implicit partial). + + + &statedir;/lists/ + Storage area for state information for each package resource specified in + &sources-list; + Configuration Item: Dir::State::Lists. + + + &statedir;/lists/partial/ + Storage area for state information in transit. + Configuration Item: Dir::State::Lists (implicit partial). + + + + + See Also + &apt-cache;, &apt-cdrom;, &dpkg;, &dselect;, &sources-list;, + &apt-conf;, &apt-config;, &apt-secure;, + The APT User's guide in &guidesdir;, &apt-preferences;, the APT Howto. + + + Diagnostics + apt-get returns zero on normal operation, decimal 100 on error. + + + &manbugs; + + diff --git a/doc/apt-key.8 b/doc/apt-key.8 new file mode 100644 index 0000000..70d37df --- /dev/null +++ b/doc/apt-key.8 @@ -0,0 +1,97 @@ +.\" Title: apt\-key +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 14 December 2003 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-KEY" "8" "14 December 2003" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-key \- APT key management utility +.SH "SYNOPSIS" +.HP 8 +\fBapt\-key\fR [\fIcommand\fR/] [\fB\fIarguments\fR\fR...] +.SH "DESCRIPTION" +.PP + +\fBapt\-key\fR +is used to manage the list of keys used by apt to authenticate packages. Packages which have been authenticated using these keys will be considered trusted. +.SH "COMMANDS" +.PP +add \fIfilename\fR +.RS 3n +Add a new key to the list of trusted keys. The key is read from +\fIfilename\fR, or standard input if +\fIfilename\fR +is +\-. +.RE +.PP +del \fIkeyid\fR +.RS 3n +Remove a key from the list of trusted keys. +.RE +.PP +list +.RS 3n +List trusted keys. +.RE +.PP +update +.RS 3n +Update the local keyring with the keyring of Debian archive keys and removes from the keyring the archive keys which are no longer valid. +.RE +.SH "FILES" +.PP +\fI/etc/apt/trusted.gpg\fR +.RS 3n +Keyring of local trusted keys, new keys will be added here. +.RE +.PP +\fI/etc/apt/trustdb.gpg\fR +.RS 3n +Local trust database of archive keys. +.RE +.PP +\fI/usr/share/keyrings/debian\-archive\-keyring.gpg\fR +.RS 3n +Keyring of Debian archive trusted keys. +.RE +.PP +\fI/usr/share/keyrings/debian\-archive\-removed\-keys.gpg\fR +.RS 3n +Keyring of Debian archive removed trusted keys. +.RE +.SH "SEE ALSO" +.PP + +\fBapt\-get\fR(8), +\fBapt\-secure\fR(8) +.SH "BUGS" +.PP +[1]\&\fIAPT bug page\fR. If you wish to report a bug in APT, please see +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +or the +\fBreportbug\fR(1) +command. +.SH "AUTHOR" +.PP +APT was written by the APT team +. +.SH "AUTHOR" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.SH "COPYRIGHT" +Copyright \(co 1998\-2001 Jason Gunthorpe +.br +.SH "REFERENCES" +.TP 3 +1.\ APT bug page +\%http://bugs.debian.org/src:apt diff --git a/doc/apt-key.8.xml b/doc/apt-key.8.xml new file mode 100644 index 0000000..eac6130 --- /dev/null +++ b/doc/apt-key.8.xml @@ -0,0 +1,126 @@ + + +%aptent; + +]> + + + &apt-docinfo; + + + apt-key + 8 + + + + + apt-key + APT key management utility + + + + + + apt-key + command/ + + + + + Description + + apt-key is used to manage the list of keys used + by apt to authenticate packages. Packages which have been + authenticated using these keys will be considered trusted. + + + +Commands + + add filename + + + + Add a new key to the list of trusted keys. The key is read + from filename, or standard input if + filename is -. + + + + + + del keyid + + + + Remove a key from the list of trusted keys. + + + + + + + list + + + + List trusted keys. + + + + + + + update + + + + Update the local keyring with the keyring of Debian archive + keys and removes from the keyring the archive keys which are no + longer valid. + + + + + + + + + Files + + /etc/apt/trusted.gpg + Keyring of local trusted keys, new keys will be added here. + + + /etc/apt/trustdb.gpg + Local trust database of archive keys. + + + /usr/share/keyrings/debian-archive-keyring.gpg + Keyring of Debian archive trusted keys. + + + /usr/share/keyrings/debian-archive-removed-keys.gpg + Keyring of Debian archive removed trusted keys. + + + + + + + + +See Also + +&apt-get;, &apt-secure; + + + + &manbugs; + &manauthor; + + + diff --git a/doc/apt-secure.8 b/doc/apt-secure.8 new file mode 100644 index 0000000..9b7c448 --- /dev/null +++ b/doc/apt-secure.8 @@ -0,0 +1,137 @@ +.\" Title: apt\-secure +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 14 December 2003 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-SECURE" "8" "14 December 2003" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-secure \- Archive authentication support for APT +.SH "DESCRIPTION" +.PP +Starting with version 0.6, +\fBapt\fR +contains code that does signature checking of the Release file for all archives. This ensures that packages in the archive can't be modified by people who have no access to the Release file signing key. +.PP +If a package comes from a archive without a signature or with a signature that apt does not have a key for that package is considered untrusted and installing it will result in a big warning. +\fBapt\-get\fR +will currently only warn for unsigned archives, future releases might force all sources to be verified before downloading packages from them. +.PP +The package frontends +\fBapt\-get\fR(8), +\fBaptitude\fR(8) +and +\fBsynaptic\fR(8) +support this new authentication feature. +.SH "TRUSTED ARCHIVES" +.PP +The chain of trust from an apt archive to the end user is made up of different steps. +\fBapt\-secure\fR +is the last step in this chain, trusting an archive does not mean that the packages that you trust it do not contain malicious code but means that you trust the archive maintainer. Its the archive maintainer responsibility to ensure that the archive integrity is correct. +.PP +apt\-secure does not review signatures at a package level. If you require tools to do this you should look at +\fBdebsig\-verify\fR +and +\fBdebsign\fR +(provided in the debsig\-verify and devscripts packages respectively). +.PP +The chain of trust in Debian starts when a maintainer uploads a new package or a new version of a package to the Debian archive. This upload in order to become effective needs to be signed by a key of a maintainer within the Debian maintainer's keyring (available in the debian\-keyring package). Maintainer's keys are signed by other maintainers following pre\-established procedures to ensure the identity of the key holder. +.PP +Once the uploaded package is verified and included in the archive, the maintainer signature is stripped off, an MD5 sum of the package is computed and put in the Packages file. The MD5 sum of all of the packages files are then computed and put into the Release file. The Release file is then signed by the archive key (which is created once a year and distributed through the FTP server. This key is also on the Debian keyring. +.PP +Any end user can check the signature of the Release file, extract the MD5 sum of a package from it and compare it with the MD5 sum of the package he downloaded. Prior to version 0.6 only the MD5 sum of the downloaded Debian package was checked. Now both the MD5 sum and the signature of the Release file are checked. +.PP +Notice that this is distinct from checking signatures on a per package basis. It is designed to prevent two possible attacks: +.TP 3n +\(bu +Network "man in the middle" attacks. Without signature checking, a malicious agent can introduce himself in the package download process and provide malicious software either by controlling a network element (router, switch, etc.) or by redirecting traffic to a rogue server (through arp or DNS spoofing attacks). +.TP 3n +\(bu +Mirror network compromise. Without signature checking, a malicious agent can compromise a mirror host and modify the files in it to propagate malicious software to all users downloading packages from that host. +.PP +However, it does not defend against a compromise of the Debian master server itself (which signs the packages) or against a compromise of the key used to sign the Release files. In any case, this mechanism can complement a per\-package signature. +.SH "USER CONFIGURATION" +.PP + +\fBapt\-key\fR +is the program that manages the list of keys used by apt. It can be used to add or remove keys although an installation of this release will automatically provide the default Debian archive signing keys used in the Debian package repositories. +.PP +In order to add a new key you need to first download it (you should make sure you are using a trusted communication channel when retrieving it), add it with +\fBapt\-key\fR +and then run +\fBapt\-get update\fR +so that apt can download and verify the +\fIRelease.gpg\fR +files from the archives you have configured. +.SH "ARCHIVE CONFIGURATION" +.PP +If you want to provide archive signatures in an archive under your maintenance you have to: +.TP 3n +\(bu +Create a toplevel Release file. if it does not exist already. You can do this by running +\fBapt\-ftparchive release\fR +(provided inftp apt\-utils). +.TP 3n +\(bu +Sign it. You can do this by running +\fBgpg \-abs \-o Release.gpg Release\fR. +.TP 3n +\(bu +Publish the key fingerprint, that way your users will know what key they need to import in order to authenticate the files in the archive. +.PP +Whenever the contents of the archive changes (new packages are added or removed) the archive maintainer has to follow the first two steps previously outlined. +.SH "SEE ALSO" +.PP + +\fBapt.conf\fR(5), +\fBapt\-get\fR(8), +\fBsources.list\fR(5), +\fBapt\-key\fR(8), +\fBapt\-archive\fR(1), +\fBdebsign\fR(1) +\fBdebsig\-verify\fR(1), +\fBgpg\fR(1) +.PP +For more backgound information you might want to review the +[1]\&\fIDebian Security Infrastructure\fR +chapter of the Securing Debian Manual (available also in the harden\-doc package) and the +[2]\&\fIStrong Distribution HOWTO\fR +by V. Alex Brennen. +.SH "BUGS" +.PP +[3]\&\fIAPT bug page\fR. If you wish to report a bug in APT, please see +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +or the +\fBreportbug\fR(1) +command. +.SH "AUTHOR" +.PP +APT was written by the APT team +. +.SH "MANPAGE AUTHORS" +.PP +This man\-page is based on the work of Javier Fernández\-Sanguino Peña, Isaac Jones, Colin Walters, Florian Weimer and Michael Vogt. +.SH "AUTHOR" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.SH "COPYRIGHT" +Copyright \(co 1998\-2001 Jason Gunthorpe +.br +.SH "REFERENCES" +.TP 3 +1.\ Debian Security Infrastructure +\%http://www.debian.org/doc/manuals/securing\-debian\-howto/ch7.en.html +.TP 3 +2.\ Strong Distribution HOWTO +\%http://www.cryptnet.net/fdp/crypto/strong_distro.html +.TP 3 +3.\ APT bug page +\%http://bugs.debian.org/src:apt diff --git a/doc/apt-secure.8.xml b/doc/apt-secure.8.xml new file mode 100644 index 0000000..fa13ddc --- /dev/null +++ b/doc/apt-secure.8.xml @@ -0,0 +1,209 @@ + + +%aptent; + +]> + + + &apt-docinfo; + + + apt-secure + 8 + + + + + + + + + apt-secure + Archive authentication support for APT + + + Description + + Starting with version 0.6, apt contains code + that does signature checking of the Release file for all + archives. This ensures that packages in the archive can't be + modified by people who have no access to the Release file signing + key. + + + + If a package comes from a archive without a signature or with a + signature that apt does not have a key for that package is + considered untrusted and installing it will result in a big + warning. apt-get will currently only warn + for unsigned archives, future releases might force all sources + to be verified before downloading packages from them. + + + + The package frontends &apt-get;, &aptitude; and &synaptic; support this new + authentication feature. + + + + Trusted archives + + + The chain of trust from an apt archive to the end user is made up of + different steps. apt-secure is the last step in + this chain, trusting an archive does not mean that the packages + that you trust it do not contain malicious code but means that you + trust the archive maintainer. Its the archive maintainer + responsibility to ensure that the archive integrity is correct. + + + apt-secure does not review signatures at a + package level. If you require tools to do this you should look at + debsig-verify and + debsign (provided in the debsig-verify and + devscripts packages respectively). + + + The chain of trust in Debian starts when a maintainer uploads a new + package or a new version of a package to the Debian archive. This + upload in order to become effective needs to be signed by a key of + a maintainer within the Debian maintainer's keyring (available in + the debian-keyring package). Maintainer's keys are signed by + other maintainers following pre-established procedures to + ensure the identity of the key holder. + + + + Once the uploaded package is verified and included in the archive, + the maintainer signature is stripped off, an MD5 sum of the package + is computed and put in the Packages file. The MD5 sum of all of the + packages files are then computed and put into the Release file. The + Release file is then signed by the archive key (which is created + once a year and distributed through the FTP server. This key is + also on the Debian keyring. + + + + Any end user can check the signature of the Release file, extract the MD5 + sum of a package from it and compare it with the MD5 sum of the + package he downloaded. Prior to version 0.6 only the MD5 sum of the + downloaded Debian package was checked. Now both the MD5 sum and the + signature of the Release file are checked. + + + Notice that this is distinct from checking signatures on a + per package basis. It is designed to prevent two possible attacks: + + + + Network "man in the middle" + attacks. Without signature checking, a malicious + agent can introduce himself in the package download process and + provide malicious software either by controlling a network + element (router, switch, etc.) or by redirecting traffic to a + rogue server (through arp or DNS spoofing + attacks). + + Mirror network compromise. + Without signature checking, a malicious agent can compromise a + mirror host and modify the files in it to propagate malicious + software to all users downloading packages from that + host. + + + However, it does not defend against a compromise of the + Debian master server itself (which signs the packages) or against a + compromise of the key used to sign the Release files. In any case, + this mechanism can complement a per-package signature. + + + User configuration + + apt-key is the program that manages the list + of keys used by apt. It can be used to add or remove keys although + an installation of this release will automatically provide the + default Debian archive signing keys used in the Debian package + repositories. + + + In order to add a new key you need to first download it + (you should make sure you are using a trusted communication channel + when retrieving it), add it with apt-key and + then run apt-get update so that apt can download + and verify the Release.gpg files from the archives you + have configured. + + + +Archive configuration + + If you want to provide archive signatures in an archive under your + maintenance you have to: + + + + Create a toplevel Release + file. if it does not exist already. You can do this + by running apt-ftparchive release + (provided inftp apt-utils). + + Sign it. You can do this by running + gpg -abs -o Release.gpg Release. + + Publish the key fingerprint, + that way your users will know what key they need to import in + order to authenticate the files in the + archive. + + + + Whenever the contents of the archive changes (new packages + are added or removed) the archive maintainer has to follow the + first two steps previously outlined. + + + +See Also + +&apt-conf;, &apt-get;, &sources-list;, &apt-key;, &apt-archive;, +&debsign; &debsig-verify;, &gpg; + + +For more backgound information you might want to review the +Debian +Security Infrastructure chapter of the Securing Debian Manual +(available also in the harden-doc package) and the +Strong Distribution HOWTO by V. Alex Brennen. + + + + &manbugs; + &manauthor; + +Manpage Authors + +This man-page is based on the work of Javier Fernández-Sanguino +Peña, Isaac Jones, Colin Walters, Florian Weimer and Michael Vogt. + + + + + + + diff --git a/doc/apt-sortpkgs.1 b/doc/apt-sortpkgs.1 new file mode 100644 index 0000000..e6d80b9 --- /dev/null +++ b/doc/apt-sortpkgs.1 @@ -0,0 +1,87 @@ +.\" Title: apt\-sortpkgs +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-SORTPKGS" "1" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-sortpkgs \- Utility to sort package index files +.SH "SYNOPSIS" +.HP 13 +\fBapt\-sortpkgs\fR [\fB\-hvs\fR] [\fB\-o=\fR\fB\fIconfig\ string\fR\fR] [\fB\-c=\fR\fB\fIfile\fR\fR] \fIfile\fR... +.SH "DESCRIPTION" +.PP +\fBapt\-sortpkgs\fR +will take an index file (Source index or Package index) and sort the records so that they are ordered by the package name. It will also sort the internal fields of each record according to the internal sorting rules. +.PP +All output is sent to stdout, the input must be a seekable file. +.SH "OPTIONS" +.PP +All command line options may be set using the configuration file, the descriptions indicate the configuration option to set. For boolean options you can override the config file by using something like +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +or several other variations. +.PP +\fB\-s\fR, \fB\-\-source\fR +.RS 3n +Use Source index field ordering. Configuration Item: +APT::SortPkgs::Source. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +Show a short usage summary. +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +Show the program version. +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +Configuration File; Specify a configuration file to use. The program will read the default configuration file and then this configuration file. See +\fBapt.conf\fR(5) +for syntax information. +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +Set a Configuration Option; This will set an arbitary configuration option. The syntax is +\fB\-o Foo::Bar=bar\fR. +.RE +.SH "SEE ALSO" +.PP +\fBapt.conf\fR(5) +.SH "DIAGNOSTICS" +.PP +\fBapt\-sortpkgs\fR +returns zero on normal operation, decimal 100 on error. +.SH "BUGS" +.PP +[1]\&\fIAPT bug page\fR. If you wish to report a bug in APT, please see +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +or the +\fBreportbug\fR(1) +command. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT bug page +\%http://bugs.debian.org/src:apt diff --git a/doc/apt-sortpkgs.1.xml b/doc/apt-sortpkgs.1.xml new file mode 100644 index 0000000..ba64e11 --- /dev/null +++ b/doc/apt-sortpkgs.1.xml @@ -0,0 +1,78 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 February 2004 + + + + apt-sortpkgs + 1 + + + + + apt-sortpkgs + Utility to sort package index files + + + + + + apt-sortpkgs + + + + file + + + + Description + apt-sortpkgs will take an index file (Source index or Package + index) and sort the records so that they are ordered by the package name. + It will also sort the internal fields of each record according to the + internal sorting rules. + + + All output is sent to stdout, the input must be a seekable file. + + + options + &apt-cmdblurb; + + + + + Use Source index field ordering. + Configuration Item: APT::SortPkgs::Source. + + + &apt-commonoptions; + + + + + See Also + &apt-conf; + + + Diagnostics + apt-sortpkgs returns zero on normal operation, decimal 100 on error. + + + &manbugs; + + diff --git a/doc/apt.8 b/doc/apt.8 new file mode 100644 index 0000000..6f39c53 --- /dev/null +++ b/doc/apt.8 @@ -0,0 +1,51 @@ +.\" This manpage is copyright (C) 1998 Branden Robinson . +.\" +.\" This is free software; you may redistribute it and/or modify +.\" it under the terms of the GNU General Public License as +.\" published by the Free Software Foundation; either version 2, +.\" or (at your option) any later version. +.\" +.\" This is distributed in the hope that it will be useful, but +.\" WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public +.\" License along with APT; if not, write to the Free Software +.\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +.\" 02111-1307 USA +.TH apt 8 "16 June 1998" "Debian GNU/Linux" +.SH NAME +apt \- Advanced Package Tool +.SH SYNOPSIS +.B apt +.SH DESCRIPTION +APT is a management system for software packages. It is still +under development; the snazzy front ends are not yet available. In the +meantime, please see +.BR apt-get (8). +.SH OPTIONS +None. +.SH FILES +None. +.SH SEE ALSO +.BR apt-cache (8), +.BR apt-get (8), +.BR apt.conf (5), +.BR sources.list (5), +.BR apt-secure (8) +.SH DIAGNOSTICS +apt returns zero on normal operation, decimal 100 on error. +.SH BUGS +This manpage isn't even started. +.PP +See . If you wish to report a +bug in +.BR apt , +please see +.I /usr/share/doc/debian/bug-reporting.txt +or the +.BR reportbug (1) +command. +.SH AUTHOR +apt was written by the APT team . diff --git a/doc/apt.conf.5 b/doc/apt.conf.5 new file mode 100644 index 0000000..dc9adc8 --- /dev/null +++ b/doc/apt.conf.5 @@ -0,0 +1,434 @@ +.\" Title: apt.conf +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT.CONF" "5" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt.conf \- Configuration file for APT +.SH "DESCRIPTION" +.PP +\fIapt.conf\fR +is the main configuration file for the APT suite of tools, all tools make use of the configuration file and a common command line parser to provide a uniform environment. When an APT tool starts up it will read the configuration specified by the +\fBAPT_CONFIG\fR +environment variable (if any) and then read the files in +Dir::Etc::Parts +then read the main configuration file specified by +Dir::Etc::main +then finally apply the command line options to override the configuration directives, possibly loading even more config files. +.PP +The configuration file is organized in a tree with options organized into functional groups. option specification is given with a double colon notation, for instance +APT::Get::Assume\-Yes +is an option within the APT tool group, for the Get tool. options do not inherit from their parent groups. +.PP +Syntacticly the configuration language is modeled after what the ISC tools such as bind and dhcp use. Lines starting with +// +are treated as comments (ignored). Each line is of the form +APT::Get::Assume\-Yes "true"; +The trailing semicolon is required and the quotes are optional. A new scope can be opened with curly braces, like: +.sp +.RS 3n +.nf + +APT { + Get { + Assume\-Yes "true"; + Fix\-Broken "true"; + }; +}; +.fi +.RE +.PP +with newlines placed to make it more readable. Lists can be created by opening a scope and including a single word enclosed in quotes followed by a semicolon. Multiple entries can be included, each separated by a semicolon. +.sp +.RS 3n +.nf + +DPkg::Pre\-Install\-Pkgs {"/usr/sbin/dpkg\-preconfigure \-\-apt";}; +.fi +.RE +.PP +In general the sample configuration file in +\fI/usr/share/doc/apt/examples/apt.conf\fR +\fI/usr/share/doc/apt/examples/configure\-index.gz\fR +is a good guide for how it should look. +.PP +Two specials are allowed, +#include +and +#clear +#include +will include the given file, unless the filename ends in a slash, then the whole directory is included. +#clear +is used to erase a list of names. +.PP +All of the APT tools take a \-o option which allows an arbitrary configuration directive to be specified on the command line. The syntax is a full option name (APT::Get::Assume\-Yes +for instance) followed by an equals sign then the new value of the option. Lists can be appended too by adding a trailing :: to the list name. +.SH "THE APT GROUP" +.PP +This group of options controls general APT behavior as well as holding the options for all of the tools. +.PP +Architecture +.RS 3n +System Architecture; sets the architecture to use when fetching files and parsing package lists. The internal default is the architecture apt was compiled for. +.RE +.PP +Ignore\-Hold +.RS 3n +Ignore Held packages; This global option causes the problem resolver to ignore held packages in its decision making. +.RE +.PP +Clean\-Installed +.RS 3n +Defaults to on. When turned on the autoclean feature will remove any packages which can no longer be downloaded from the cache. If turned off then packages that are locally installed are also excluded from cleaning \- but note that APT provides no direct means to reinstall them. +.RE +.PP +Immediate\-Configure +.RS 3n +Disable Immediate Configuration; This dangerous option disables some of APT's ordering code to cause it to make fewer dpkg calls. Doing so may be necessary on some extremely slow single user systems but is very dangerous and may cause package install scripts to fail or worse. Use at your own risk. +.RE +.PP +Force\-LoopBreak +.RS 3n +Never Enable this option unless you \-really\- know what you are doing. It permits APT to temporarily remove an essential package to break a Conflicts/Conflicts or Conflicts/Pre\-Depend loop between two essential packages. SUCH A LOOP SHOULD NEVER EXIST AND IS A GRAVE BUG. This option will work if the essential packages are not tar, gzip, libc, dpkg, bash or anything that those packages depend on. +.RE +.PP +Cache\-Limit +.RS 3n +APT uses a fixed size memory mapped cache file to store the 'available' information. This sets the size of that cache (in bytes). +.RE +.PP +Build\-Essential +.RS 3n +Defines which package(s) are considered essential build dependencies. +.RE +.PP +Get +.RS 3n +The Get subsection controls the +\fBapt\-get\fR(8) +tool, please see its documentation for more information about the options here. +.RE +.PP +Cache +.RS 3n +The Cache subsection controls the +\fBapt\-cache\fR(8) +tool, please see its documentation for more information about the options here. +.RE +.PP +CDROM +.RS 3n +The CDROM subsection controls the +\fBapt\-cdrom\fR(8) +tool, please see its documentation for more information about the options here. +.RE +.SH "THE ACQUIRE GROUP" +.PP +The +Acquire +group of options controls the download of packages and the URI handlers. +.PP +Queue\-Mode +.RS 3n +Queuing mode; +Queue\-Mode +can be one of +host +or +access +which determines how APT parallelizes outgoing connections. +host +means that one connection per target host will be opened, +access +means that one connection per URI type will be opened. +.RE +.PP +Retries +.RS 3n +Number of retries to perform. If this is non\-zero APT will retry failed files the given number of times. +.RE +.PP +Source\-Symlinks +.RS 3n +Use symlinks for source archives. If set to true then source archives will be symlinked when possible instead of copying. True is the default. +.RE +.PP +http +.RS 3n +HTTP URIs; http::Proxy is the default http proxy to use. It is in the standard form of +http://[[user][:pass]@]host[:port]/. Per host proxies can also be specified by using the form +http::Proxy:: +with the special keyword +DIRECT +meaning to use no proxies. The +\fBhttp_proxy\fR +environment variable will override all settings. +.sp +Three settings are provided for cache control with HTTP/1.1 compliant proxy caches. +No\-Cache +tells the proxy to not use its cached response under any circumstances, +Max\-Age +is sent only for index files and tells the cache to refresh its object if it is older than the given number of seconds. Debian updates its index files daily so the default is 1 day. +No\-Store +specifies that the cache should never store this request, it is only set for archive files. This may be useful to prevent polluting a proxy cache with very large .deb files. Note: Squid 2.0.2 does not support any of these options. +.sp +The option +timeout +sets the timeout timer used by the method, this applies to all things including connection timeout and data timeout. +.sp +One setting is provided to control the pipeline depth in cases where the remote server is not RFC conforming or buggy (such as Squid 2.0.2) +Acquire::http::Pipeline\-Depth +can be a value from 0 to 5 indicating how many outstanding requests APT should send. A value of zero MUST be specified if the remote host does not properly linger on TCP connections \- otherwise data corruption will occur. Hosts which require this are in violation of RFC 2068. +.RE +.PP +ftp +.RS 3n +FTP URIs; ftp::Proxy is the default proxy server to use. It is in the standard form of +ftp://[[user][:pass]@]host[:port]/ +and is overridden by the +\fBftp_proxy\fR +environment variable. To use a ftp proxy you will have to set the +ftp::ProxyLogin +script in the configuration file. This entry specifies the commands to send to tell the proxy server what to connect to. Please see +\fI/usr/share/doc/apt/examples/configure\-index.gz\fR +for an example of how to do this. The subsitution variables available are +$(PROXY_USER) +$(PROXY_PASS) +$(SITE_USER) +$(SITE_PASS) +$(SITE) +and +$(SITE_PORT) +Each is taken from it's respective URI component. +.sp +The option +timeout +sets the timeout timer used by the method, this applies to all things including connection timeout and data timeout. +.sp +Several settings are provided to control passive mode. Generally it is safe to leave passive mode on, it works in nearly every environment. However some situations require that passive mode be disabled and port mode ftp used instead. This can be done globally, for connections that go through a proxy or for a specific host (See the sample config file for examples). +.sp +It is possible to proxy FTP over HTTP by setting the +\fBftp_proxy\fR +environment variable to a http url \- see the discussion of the http method above for syntax. You cannot set this in the configuration file and it is not recommended to use FTP over HTTP due to its low efficiency. +.sp +The setting +ForceExtended +controls the use of RFC2428 +EPSV +and +EPRT +commands. The defaut is false, which means these commands are only used if the control connection is IPv6. Setting this to true forces their use even on IPv4 connections. Note that most FTP servers do not support RFC2428. +.RE +.PP +cdrom +.RS 3n +CDROM URIs; the only setting for CDROM URIs is the mount point, +cdrom::Mount +which must be the mount point for the CDROM drive as specified in +\fI/etc/fstab\fR. It is possible to provide alternate mount and unmount commands if your mount point cannot be listed in the fstab (such as an SMB mount and old mount packages). The syntax is to put +.sp +.RS 3n +.nf +"/cdrom/"::Mount "foo"; +.fi +.RE +.sp +within the cdrom block. It is important to have the trailing slash. Unmount commands can be specified using UMount. +.RE +.PP +gpgv +.RS 3n +GPGV URIs; the only option for GPGV URIs is the option to pass additional parameters to gpgv. +gpgv::Options +Additional options passed to gpgv. +.RE +.SH "DIRECTORIES" +.PP +The +Dir::State +section has directories that pertain to local state information. +lists +is the directory to place downloaded package lists in and +status +is the name of the dpkg status file. +preferences +is the name of the APT preferences file. +Dir::State +contains the default directory to prefix on all sub items if they do not start with +\fI/\fR +or +\fI./\fR. +.PP +Dir::Cache +contains locations pertaining to local cache information, such as the two package caches +srcpkgcache +and +pkgcache +as well as the location to place downloaded archives, +Dir::Cache::archives. Generation of caches can be turned off by setting their names to be blank. This will slow down startup but save disk space. It is probably prefered to turn off the pkgcache rather than the srcpkgcache. Like +Dir::State +the default directory is contained in +Dir::Cache +.PP +Dir::Etc +contains the location of configuration files, +sourcelist +gives the location of the sourcelist and +main +is the default configuration file (setting has no effect, unless it is done from the config file specified by +\fBAPT_CONFIG\fR). +.PP +The +Dir::Parts +setting reads in all the config fragments in lexical order from the directory specified. After this is done then the main config file is loaded. +.PP +Binary programs are pointed to by +Dir::Bin. +Dir::Bin::Methods +specifies the location of the method handlers and +gzip, +dpkg, +apt\-get +dpkg\-source +dpkg\-buildpackage +and +apt\-cache +specify the location of the respective programs. +.SH "APT IN DSELECT" +.PP +When APT is used as a +\fBdselect\fR(8) +method several configuration directives control the default behaviour. These are in the +DSelect +section. +.PP +Clean +.RS 3n +Cache Clean mode; this value may be one of always, prompt, auto, pre\-auto and never. always and prompt will remove all packages from the cache after upgrading, prompt (the default) does so conditionally. auto removes only those packages which are no longer downloadable (replaced with a new version for instance). pre\-auto performs this action before downloading new packages. +.RE +.PP +options +.RS 3n +The contents of this variable is passed to +\fBapt\-get\fR(8) +as command line options when it is run for the install phase. +.RE +.PP +Updateoptions +.RS 3n +The contents of this variable is passed to +\fBapt\-get\fR(8) +as command line options when it is run for the update phase. +.RE +.PP +PromptAfterUpdate +.RS 3n +If true the [U]pdate operation in +\fBdselect\fR(8) +will always prompt to continue. The default is to prompt only on error. +.RE +.SH "HOW APT CALLS DPKG" +.PP +Several configuration directives control how APT invokes +\fBdpkg\fR(8). These are in the +DPkg +section. +.PP +options +.RS 3n +This is a list of options to pass to dpkg. The options must be specified using the list notation and each list item is passed as a single argument to +\fBdpkg\fR(8). +.RE +.PP +Pre\-Invoke, Post\-Invoke +.RS 3n +This is a list of shell commands to run before/after invoking +\fBdpkg\fR(8). Like +options +this must be specified in list notation. The commands are invoked in order using +\fI/bin/sh\fR, should any fail APT will abort. +.RE +.PP +Pre\-Install\-Pkgs +.RS 3n +This is a list of shell commands to run before invoking dpkg. Like +options +this must be specified in list notation. The commands are invoked in order using +\fI/bin/sh\fR, should any fail APT will abort. APT will pass to the commands on standard input the filenames of all .deb files it is going to install, one per line. +.sp +Version 2 of this protocol dumps more information, including the protocol version, the APT configuration space and the packages, files and versions being changed. Version 2 is enabled by setting +DPkg::Tools::options::cmd::Version +to 2. +cmd +is a command given to +Pre\-Install\-Pkgs. +.RE +.PP +Run\-Directory +.RS 3n +APT chdirs to this directory before invoking dpkg, the default is +\fI/\fR. +.RE +.PP +Build\-options +.RS 3n +These options are passed to +\fBdpkg\-buildpackage\fR(1) +when compiling packages, the default is to disable signing and produce all binaries. +.RE +.SH "DEBUG OPTIONS" +.PP +Most of the options in the +debug +section are not interesting to the normal user, however +Debug::pkgProblemResolver +shows interesting output about the decisions dist\-upgrade makes. +Debug::NoLocking +disables file locking so APT can do some operations as non\-root and +Debug::pkgDPkgPM +will print out the command line for each dpkg invokation. +Debug::IdentCdrom +will disable the inclusion of statfs data in CDROM IDs. +Debug::Acquire::gpgv +Debugging of the gpgv method. +.SH "EXAMPLES" +.PP +\fI/usr/share/doc/apt/examples/configure\-index.gz\fR +is a configuration file showing example values for all possible options. +.SH "FILES" +.PP +\fI/etc/apt/apt.conf\fR +.SH "SEE ALSO" +.PP +\fBapt\-cache\fR(8), +\fBapt\-config\fR(8), +\fBapt_preferences\fR(5). +.SH "BUGS" +.PP +[1]\&\fIAPT bug page\fR. If you wish to report a bug in APT, please see +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +or the +\fBreportbug\fR(1) +command. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT bug page +\%http://bugs.debian.org/src:apt diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml new file mode 100644 index 0000000..43f3368 --- /dev/null +++ b/doc/apt.conf.5.xml @@ -0,0 +1,405 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 February 2004 + + + + apt.conf + 5 + + + + + apt.conf + Configuration file for APT + + + Description + apt.conf is the main configuration file for the APT suite of + tools, all tools make use of the configuration file and a common command line + parser to provide a uniform environment. When an APT tool starts up it will + read the configuration specified by the APT_CONFIG environment + variable (if any) and then read the files in Dir::Etc::Parts + then read the main configuration file specified by + Dir::Etc::main then finally apply the + command line options to override the configuration directives, possibly + loading even more config files. + + The configuration file is organized in a tree with options organized into + functional groups. option specification is given with a double colon + notation, for instance APT::Get::Assume-Yes is an option within + the APT tool group, for the Get tool. options do not inherit from their + parent groups. + + Syntacticly the configuration language is modeled after what the ISC tools + such as bind and dhcp use. Lines starting with + // are treated as comments (ignored). + Each line is of the form + APT::Get::Assume-Yes "true"; The trailing + semicolon is required and the quotes are optional. A new scope can be + opened with curly braces, like: + + +APT { + Get { + Assume-Yes "true"; + Fix-Broken "true"; + }; +}; + + + with newlines placed to make it more readable. Lists can be created by + opening a scope and including a single word enclosed in quotes followed by a + semicolon. Multiple entries can be included, each separated by a semicolon. + + +DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; + + + In general the sample configuration file in + &docdir;examples/apt.conf &configureindex; + is a good guide for how it should look. + + Two specials are allowed, #include and #clear + #include will include the given file, unless the filename + ends in a slash, then the whole directory is included. + #clear is used to erase a list of names. + + All of the APT tools take a -o option which allows an arbitrary configuration + directive to be specified on the command line. The syntax is a full option + name (APT::Get::Assume-Yes for instance) followed by an equals + sign then the new value of the option. Lists can be appended too by adding + a trailing :: to the list name. + + + The APT Group + This group of options controls general APT behavior as well as holding the + options for all of the tools. + + + Architecture + System Architecture; sets the architecture to use when fetching files and + parsing package lists. The internal default is the architecture apt was + compiled for. + + + Ignore-Hold + Ignore Held packages; This global option causes the problem resolver to + ignore held packages in its decision making. + + + Clean-Installed + Defaults to on. When turned on the autoclean feature will remove any packages + which can no longer be downloaded from the cache. If turned off then + packages that are locally installed are also excluded from cleaning - but + note that APT provides no direct means to reinstall them. + + + Immediate-Configure + Disable Immediate Configuration; This dangerous option disables some + of APT's ordering code to cause it to make fewer dpkg calls. Doing + so may be necessary on some extremely slow single user systems but + is very dangerous and may cause package install scripts to fail or worse. + Use at your own risk. + + + Force-LoopBreak + Never Enable this option unless you -really- know what you are doing. It + permits APT to temporarily remove an essential package to break a + Conflicts/Conflicts or Conflicts/Pre-Depend loop between two essential + packages. SUCH A LOOP SHOULD NEVER EXIST AND IS A GRAVE BUG. This option + will work if the essential packages are not tar, gzip, libc, dpkg, bash or + anything that those packages depend on. + + + Cache-Limit + APT uses a fixed size memory mapped cache file to store the 'available' + information. This sets the size of that cache (in bytes). + + + Build-Essential + Defines which package(s) are considered essential build dependencies. + + + Get + The Get subsection controls the &apt-get; tool, please see its + documentation for more information about the options here. + + + Cache + The Cache subsection controls the &apt-cache; tool, please see its + documentation for more information about the options here. + + + CDROM + The CDROM subsection controls the &apt-cdrom; tool, please see its + documentation for more information about the options here. + + + + + The Acquire Group + The Acquire group of options controls the download of packages + and the URI handlers. + + + Queue-Mode + Queuing mode; Queue-Mode can be one of host or + access which determines how APT parallelizes outgoing + connections. host means that one connection per target host + will be opened, access means that one connection per URI type + will be opened. + + + Retries + Number of retries to perform. If this is non-zero APT will retry failed + files the given number of times. + + + Source-Symlinks + Use symlinks for source archives. If set to true then source archives will + be symlinked when possible instead of copying. True is the default. + + + http + HTTP URIs; http::Proxy is the default http proxy to use. It is in the + standard form of http://[[user][:pass]@]host[:port]/. Per + host proxies can also be specified by using the form + http::Proxy::<host> with the special keyword DIRECT + meaning to use no proxies. The http_proxy environment variable + will override all settings. + + Three settings are provided for cache control with HTTP/1.1 compliant + proxy caches. No-Cache tells the proxy to not use its cached + response under any circumstances, Max-Age is sent only for + index files and tells the cache to refresh its object if it is older than + the given number of seconds. Debian updates its index files daily so the + default is 1 day. No-Store specifies that the cache should never + store this request, it is only set for archive files. This may be useful + to prevent polluting a proxy cache with very large .deb files. Note: + Squid 2.0.2 does not support any of these options. + + The option timeout sets the timeout timer used by the method, + this applies to all things including connection timeout and data timeout. + + One setting is provided to control the pipeline depth in cases where the + remote server is not RFC conforming or buggy (such as Squid 2.0.2) + Acquire::http::Pipeline-Depth can be a value from 0 to 5 + indicating how many outstanding requests APT should send. A value of + zero MUST be specified if the remote host does not properly linger + on TCP connections - otherwise data corruption will occur. Hosts which + require this are in violation of RFC 2068. + + + ftp + FTP URIs; ftp::Proxy is the default proxy server to use. It is in the + standard form of ftp://[[user][:pass]@]host[:port]/ and is + overridden by the ftp_proxy environment variable. To use a ftp + proxy you will have to set the ftp::ProxyLogin script in the + configuration file. This entry specifies the commands to send to tell + the proxy server what to connect to. Please see + &configureindex; for an example of + how to do this. The subsitution variables available are + $(PROXY_USER) $(PROXY_PASS) $(SITE_USER) + $(SITE_PASS) $(SITE) and $(SITE_PORT) + Each is taken from it's respective URI component. + + The option timeout sets the timeout timer used by the method, + this applies to all things including connection timeout and data timeout. + + Several settings are provided to control passive mode. Generally it is + safe to leave passive mode on, it works in nearly every environment. + However some situations require that passive mode be disabled and port + mode ftp used instead. This can be done globally, for connections that + go through a proxy or for a specific host (See the sample config file + for examples). + + It is possible to proxy FTP over HTTP by setting the ftp_proxy + environment variable to a http url - see the discussion of the http method + above for syntax. You cannot set this in the configuration file and it is + not recommended to use FTP over HTTP due to its low efficiency. + + The setting ForceExtended controls the use of RFC2428 + EPSV and EPRT commands. The defaut is false, which means + these commands are only used if the control connection is IPv6. Setting this + to true forces their use even on IPv4 connections. Note that most FTP servers + do not support RFC2428. + + + cdrom + CDROM URIs; the only setting for CDROM URIs is the mount point, + cdrom::Mount which must be the mount point for the CDROM drive + as specified in /etc/fstab. It is possible to provide + alternate mount and unmount commands if your mount point cannot be listed + in the fstab (such as an SMB mount and old mount packages). The syntax + is to put "/cdrom/"::Mount "foo"; within + the cdrom block. It is important to have the trailing slash. Unmount + commands can be specified using UMount. + + + gpgv + GPGV URIs; the only option for GPGV URIs is the option to pass additional parameters to gpgv. + gpgv::Options Additional options passed to gpgv. + + + + + + + + Directories + + The Dir::State section has directories that pertain to local + state information. lists is the directory to place downloaded + package lists in and status is the name of the dpkg status file. + preferences is the name of the APT preferences file. + Dir::State contains the default directory to prefix on all sub + items if they do not start with / or ./. + + Dir::Cache contains locations pertaining to local cache + information, such as the two package caches srcpkgcache and + pkgcache as well as the location to place downloaded archives, + Dir::Cache::archives. Generation of caches can be turned off + by setting their names to be blank. This will slow down startup but + save disk space. It is probably prefered to turn off the pkgcache rather + than the srcpkgcache. Like Dir::State the default + directory is contained in Dir::Cache + + Dir::Etc contains the location of configuration files, + sourcelist gives the location of the sourcelist and + main is the default configuration file (setting has no effect, + unless it is done from the config file specified by + APT_CONFIG). + + The Dir::Parts setting reads in all the config fragments in + lexical order from the directory specified. After this is done then the + main config file is loaded. + + Binary programs are pointed to by Dir::Bin. Dir::Bin::Methods + specifies the location of the method handlers and gzip, + dpkg, apt-get dpkg-source + dpkg-buildpackage and apt-cache specify the location + of the respective programs. + + + APT in DSelect + + When APT is used as a &dselect; method several configuration directives + control the default behaviour. These are in the DSelect section. + + + Clean + Cache Clean mode; this value may be one of always, prompt, auto, + pre-auto and never. always and prompt will remove all packages from + the cache after upgrading, prompt (the default) does so conditionally. + auto removes only those packages which are no longer downloadable + (replaced with a new version for instance). pre-auto performs this + action before downloading new packages. + + + options + The contents of this variable is passed to &apt-get; as command line + options when it is run for the install phase. + + + Updateoptions + The contents of this variable is passed to &apt-get; as command line + options when it is run for the update phase. + + + PromptAfterUpdate + If true the [U]pdate operation in &dselect; will always prompt to continue. + The default is to prompt only on error. + + + + + How APT calls dpkg + Several configuration directives control how APT invokes &dpkg;. These are + in the DPkg section. + + + options + This is a list of options to pass to dpkg. The options must be specified + using the list notation and each list item is passed as a single argument + to &dpkg;. + + + Pre-InvokePost-Invoke + This is a list of shell commands to run before/after invoking &dpkg;. + Like options this must be specified in list notation. The + commands are invoked in order using /bin/sh, should any + fail APT will abort. + + + Pre-Install-Pkgs + This is a list of shell commands to run before invoking dpkg. Like + options this must be specified in list notation. The commands + are invoked in order using /bin/sh, should any fail APT + will abort. APT will pass to the commands on standard input the + filenames of all .deb files it is going to install, one per line. + + Version 2 of this protocol dumps more information, including the + protocol version, the APT configuration space and the packages, files + and versions being changed. Version 2 is enabled by setting + DPkg::Tools::options::cmd::Version to 2. cmd is a + command given to Pre-Install-Pkgs. + + + Run-Directory + APT chdirs to this directory before invoking dpkg, the default is + /. + + + Build-options + These options are passed to &dpkg-buildpackage; when compiling packages, + the default is to disable signing and produce all binaries. + + + + + Debug options + Most of the options in the debug section are not interesting to + the normal user, however Debug::pkgProblemResolver shows + interesting output about the decisions dist-upgrade makes. + Debug::NoLocking disables file locking so APT can do some + operations as non-root and Debug::pkgDPkgPM will print out the + command line for each dpkg invokation. Debug::IdentCdrom will + disable the inclusion of statfs data in CDROM IDs. + Debug::Acquire::gpgv Debugging of the gpgv method. + + + + Examples + &configureindex; is a + configuration file showing example values for all possible + options. + + + Files + /etc/apt/apt.conf + + + See Also + &apt-cache;, &apt-config;, &apt-preferences;. + + + &manbugs; + + + diff --git a/doc/apt.ent b/doc/apt.ent new file mode 100644 index 0000000..99fe443 --- /dev/null +++ b/doc/apt.ent @@ -0,0 +1,277 @@ + + + + + +&docdir;examples/configure-index.gz"> +/etc/apt.conf"> + + + + + + apt.conf + 5 + " +> + + + apt-get + 8 + " +> + + + apt-config + 8 + " +> + + + apt-cdrom + 8 + " +> + + + apt-cache + 8 + " +> + + + apt_preferences + 5 + " +> + + + apt-key + 8 + " +> + + + apt-secure + 8 + " +> + + + apt-archive + 1 + " +> + + + + sources.list + 5 + " +> + + + reportbug + 1 + " +> + + + dpkg + 8 + " +> + + + dpkg-buildpackage + 1 + " +> + + + gzip + 1 + " +> + + + dpkg-scanpackages + 8 + " +> + + + dpkg-scansources + 8 + " +> + + + dselect + 8 + " +> + + + aptitude + 8 + " +> + + + synaptic + 8 + " +> + + + debsign + 1 + " +> + + + debsig-verify + 1 + " +> + + + gpg + 1 + " +> + + + +
apt@packages.debian.org
+ Jason Gunthorpe + 1998-2001 Jason Gunthorpe + 14 December 2003 + Linux + + +"> + + + apt@packages.debian.org + +"> + + + Jason + Gunthorpe + +"> + + + APT team + +"> + +Linux +"> + + + apt@packages.debian.org + +"> + + + Jason + Gunthorpe + +"> + + + APT team + +"> + + + Jason Gunthorpe + 1998-2001 + +"> + +Linux +"> + + +Bugs + APT bug page. + If you wish to report a bug in APT, please see + /usr/share/doc/debian/bug-reporting.txt or the + &reportbug; command. + + +"> + + +Author + APT was written by the APT team apt@packages.debian.org. + + +"> + + + + + Show a short usage summary. + + + + + + + + Show the program version. + + + + + + + + Configuration File; Specify a configuration file to use. + The program will read the default configuration file and then this + configuration file. See &apt-conf; for syntax information. + + + + + + + + Set a Configuration Option; This will set an arbitary + configuration option. The syntax is . + + + +"> + + +All command line options may be set using the configuration file, the + descriptions indicate the configuration option to set. For boolean + options you can override the config file by using something like + ,, + or several other variations. + +"> + diff --git a/doc/apt_preferences.5 b/doc/apt_preferences.5 new file mode 100644 index 0000000..afad729 --- /dev/null +++ b/doc/apt_preferences.5 @@ -0,0 +1,532 @@ +.\" Title: apt_preferences +.\" Author: APT team +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT_PREFERENCES" "5" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt_preferences \- Preference control file for APT +.SH "DESCRIPTION" +.PP +The APT preferences file +\fI/etc/apt/preferences\fR +can be used to control which versions of packages will be selected for installation. +.PP +Several versions of a package may be available for installation when the +\fBsources.list\fR(5) +file contains references to more than one distribution (for example, +stable +and +testing). APT assigns a priority to each version that is available. Subject to dependency constraints, +\fBapt\-get\fR +selects the version with the highest priority for installation. The APT preferences file overrides the priorities that APT assigns to package versions by default, thus giving the user control over which one is selected for installation. +.PP +Several instances of the same version of a package may be available when the +\fBsources.list\fR(5) +file contains references to more than one source. In this case +\fBapt\-get\fR +downloads the instance listed earliest in the +\fBsources.list\fR(5) +file. The APT preferences file does not affect the choice of instance, only the choice of version. +.SS "APT's Default Priority Assignments" +.PP +If there is no preferences file or if there is no entry in the file that applies to a particular version then the priority assigned to that version is the priority of the distribution to which that version belongs. It is possible to single out a distribution, "the target release", which receives a higher priority than other distributions do by default. The target release can be set on the +\fBapt\-get\fR +command line or in the APT configuration file +\fI/etc/apt/apt.conf\fR. For example, +.sp +.RS 3n +.nf +\fBapt\-get install \-t testing \fR\fB\fIsome\-package\fR\fR +.fi +.RE +.sp + +.sp +.RS 3n +.nf +APT::Default\-Release "stable"; +.fi +.RE +.sp +.PP +If the target release has been specified then APT uses the following algorithm to set the priorities of the versions of a package. Assign: +.PP +priority 100 +.RS 3n +to the version that is already installed (if any). +.RE +.PP +priority 500 +.RS 3n +to the versions that are not installed and do not belong to the target release. +.RE +.PP +priority 990 +.RS 3n +to the versions that are not installed and belong to the target release. +.RE +.PP +If the target release has not been specified then APT simply assigns priority 100 to all installed package versions and priority 500 to all uninstalled package versions. +.PP +APT then applies the following rules, listed in order of precedence, to determine which version of a package to install. +.TP 3n +\(bu +Never downgrade unless the priority of an available version exceeds 1000. ("Downgrading" is installing a less recent version of a package in place of a more recent version. Note that none of APT's default priorities exceeds 1000; such high priorities can only be set in the preferences file. Note also that downgrading a package can be risky.) +.TP 3n +\(bu +Install the highest priority version. +.TP 3n +\(bu +If two or more versions have the same priority, install the most recent one (that is, the one with the higher version number). +.TP 3n +\(bu +If two or more versions have the same priority and version number but either the packages differ in some of their metadata or the +\-\-reinstall +option is given, install the uninstalled one. +.sp +.RE +.PP +In a typical situation, the installed version of a package (priority 100) is not as recent as one of the versions available from the sources listed in the +\fBsources.list\fR(5) +file (priority 500 or 990). Then the package will be upgraded when +\fBapt\-get install \fR\fB\fIsome\-package\fR\fR +or +\fBapt\-get upgrade\fR +is executed. +.PP +More rarely, the installed version of a package is +\fImore\fR +recent than any of the other available versions. The package will not be downgraded when +\fBapt\-get install \fR\fB\fIsome\-package\fR\fR +or +\fBapt\-get upgrade\fR +is executed. +.PP +Sometimes the installed version of a package is more recent than the version belonging to the target release, but not as recent as a version belonging to some other distribution. Such a package will indeed be upgraded when +\fBapt\-get install \fR\fB\fIsome\-package\fR\fR +or +\fBapt\-get upgrade\fR +is executed, because at least +\fIone\fR +of the available versions has a higher priority than the installed version. +.SS "The Effect of APT Preferences" +.PP +The APT preferences file allows the system administrator to control the assignment of priorities. The file consists of one or more multi\-line records separated by blank lines. Records can have one of two forms, a specific form and a general form. +.TP 3n +\(bu +The specific form assigns a priority (a "Pin\-Priority") to a specified package and specified version or version range. For example, the following record assigns a high priority to all versions of the +\fIperl\fR +package whose version number begins with "5.8". +.sp +.RS 3n +.nf +Package: perl +Pin: version 5.8* +Pin\-Priority: 1001 +.fi +.RE +.TP 3n +\(bu +The general form assigns a priority to all of the package versions in a given distribution (that is, to all the versions of packages that are listed in a certain +\fIRelease\fR +file) or to all of the package versions coming from a particular Internet site, as identified by the site's fully qualified domain name. +.sp +This general\-form entry in the APT preferences file applies only to groups of packages. For example, the following record assigns a high priority to all package versions available from the local site. +.sp +.RS 3n +.nf +Package: * +Pin: origin "" +Pin\-Priority: 999 +.fi +.RE +A note of caution: the keyword used here is "origin". This should not be confused with the Origin of a distribution as specified in a +\fIRelease\fR +file. What follows the "Origin:" tag in a +\fIRelease\fR +file is not an Internet address but an author or vendor name, such as "Debian" or "Ximian". +.sp +The following record assigns a low priority to all package versions belonging to any distribution whose Archive name is "unstable". +.sp +.RS 3n +.nf +Package: * +Pin: release a=unstable +Pin\-Priority: 50 +.fi +.RE +The following record assigns a high priority to all package versions belonging to any release whose Archive name is "stable" and whose release Version number is "3.0". +.sp +.RS 3n +.nf +Package: * +Pin: release a=stable, v=3.0 +Pin\-Priority: 500 +.fi +.RE +.sp +.RE +.SS "How APT Interprets Priorities" +.PP +Priorities (P) assigned in the APT preferences file must be positive or negative integers. They are interpreted as follows (roughly speaking): +.PP +P > 1000 +.RS 3n +causes a version to be installed even if this constitutes a downgrade of the package +.RE +.PP +990 < P <=1000 +.RS 3n +causes a version to be installed even if it does not come from the target release, unless the installed version is more recent +.RE +.PP +500 < P <=990 +.RS 3n +causes a version to be installed unless there is a version available belonging to the target release or the installed version is more recent +.RE +.PP +100 < P <=500 +.RS 3n +causes a version to be installed unless there is a version available belonging to some other distribution or the installed version is more recent +.RE +.PP +0 < P <=100 +.RS 3n +causes a version to be installed only if there is no installed version of the package +.RE +.PP +P < 0 +.RS 3n +prevents the version from being installed +.RE +.PP +If any specific\-form records match an available package version then the first such record determines the priority of the package version. Failing that, if any general\-form records match an available package version then the first such record determines the priority of the package version. +.PP +For example, suppose the APT preferences file contains the three records presented earlier: +.sp +.RS 3n +.nf +Package: perl +Pin: version 5.8* +Pin\-Priority: 1001 + +Package: * +Pin: origin "" +Pin\-Priority: 999 + +Package: * +Pin: release unstable +Pin\-Priority: 50 +.fi +.RE +.PP +Then: +.TP 3n +\(bu +The most recent available version of the +perl +package will be installed, so long as that version's version number begins with "5.8". If +\fIany\fR +5.8* version of +perl +is available and the installed version is 5.9*, then +perl +will be downgraded. +.TP 3n +\(bu +A version of any package other than +perl +that is available from the local system has priority over other versions, even versions belonging to the target release. +.TP 3n +\(bu +A version of a package whose origin is not the local system but some other site listed in +\fBsources.list\fR(5) +and which belongs to an +unstable +distribution is only installed if it is selected for installation and no version of the package is already installed. +.sp +.RE +.SS "Determination of Package Version and Distribution Properties" +.PP +The locations listed in the +\fBsources.list\fR(5) +file should provide +\fIPackages\fR +and +\fIRelease\fR +files to describe the packages available at that location. +.PP +The +\fIPackages\fR +file is normally found in the directory +\fI.../dists/\fR\fI\fIdist\-name\fR\fR\fI/\fR\fI\fIcomponent\fR\fR\fI/\fR\fI\fIarch\fR\fR: for example, +\fI.../dists/stable/main/binary\-i386/Packages\fR. It consists of a series of multi\-line records, one for each package available in that directory. Only two lines in each record are relevant for setting APT priorities: +.PP +the Package: line +.RS 3n +gives the package name +.RE +.PP +the Version: line +.RS 3n +gives the version number for the named package +.RE +.PP +The +\fIRelease\fR +file is normally found in the directory +\fI.../dists/\fR\fI\fIdist\-name\fR\fR: for example, +\fI.../dists/stable/Release\fR, or +\fI.../dists/woody/Release\fR. It consists of a single multi\-line record which applies to +\fIall\fR +of the packages in the directory tree below its parent. Unlike the +\fIPackages\fR +file, nearly all of the lines in a +\fIRelease\fR +file are relevant for setting APT priorities: +.PP +the Archive: line +.RS 3n +names the archive to which all the packages in the directory tree belong. For example, the line "Archive: stable" specifies that all of the packages in the directory tree below the parent of the +\fIRelease\fR +file are in a +stable +archive. Specifying this value in the APT preferences file would require the line: +.sp +.RS 3n +.nf +Pin: release a=stable +.fi +.RE +.RE +.PP +the Version: line +.RS 3n +names the release version. For example, the packages in the tree might belong to Debian GNU/Linux release version 3.0. Note that there is normally no version number for the +testing +and +unstable +distributions because they have not been released yet. Specifying this in the APT preferences file would require one of the following lines. +.sp +.RS 3n +.nf +Pin: release v=3.0 +Pin: release a=stable, v=3.0 +Pin: release 3.0 +.fi +.RE +.RE +.PP +the Component: line +.RS 3n +names the licensing component associated with the packages in the directory tree of the +\fIRelease\fR +file. For example, the line "Component: main" specifies that all the packages in the directory tree are from the +main +component, which entails that they are licensed under terms listed in the Debian Free Software Guidelines. Specifying this component in the APT preferences file would require the line: +.sp +.RS 3n +.nf +Pin: release c=main +.fi +.RE +.RE +.PP +the Origin: line +.RS 3n +names the originator of the packages in the directory tree of the +\fIRelease\fR +file. Most commonly, this is +Debian. Specifying this origin in the APT preferences file would require the line: +.sp +.RS 3n +.nf +Pin: release o=Debian +.fi +.RE +.RE +.PP +the Label: line +.RS 3n +names the label of the packages in the directory tree of the +\fIRelease\fR +file. Most commonly, this is +Debian. Specifying this label in the APT preferences file would require the line: +.sp +.RS 3n +.nf +Pin: release l=Debian +.fi +.RE +.RE +.PP +All of the +\fIPackages\fR +and +\fIRelease\fR +files retrieved from locations listed in the +\fBsources.list\fR(5) +file are stored in the directory +\fI/var/lib/apt/lists\fR, or in the file named by the variable +Dir::State::Lists +in the +\fIapt.conf\fR +file. For example, the file +\fIdebian.lcs.mit.edu_debian_dists_unstable_contrib_binary\-i386_Release\fR +contains the +\fIRelease\fR +file retrieved from the site +debian.lcs.mit.edu +for +binary\-i386 +architecture files from the +contrib +component of the +unstable +distribution. +.SS "Optional Lines in an APT Preferences Record" +.PP +Each record in the APT preferences file can optionally begin with one or more lines beginning with the word +Explanation:. This provides a place for comments. +.PP +The +Pin\-Priority: +line in each APT preferences record is optional. If omitted, APT assigs a priority of 1 less than the last value specified on a line beginning with +Pin\-Priority: release .... +.SH "EXAMPLES" +.SS "Tracking Stable" +.PP +The following APT preferences file will cause APT to assign a priority higher than the default (500) to all package versions belonging to a +stable +distribution and a prohibitively low priority to package versions belonging to other +Debian +distributions. +.sp +.RS 3n +.nf +Explanation: Uninstall or do not install any Debian\-originated +Explanation: package versions other than those in the stable distro +Package: * +Pin: release a=stable +Pin\-Priority: 900 + +Package: * +Pin: release o=Debian +Pin\-Priority: \-10 +.fi +.RE +.sp +.PP +With a suitable +\fBsources.list\fR(5) +file and the above preferences file, any of the following commands will cause APT to upgrade to the latest +stable +version(s). +.sp +.RS 3n +.nf +apt\-get install \fIpackage\-name\fR +apt\-get upgrade +apt\-get dist\-upgrade +.fi +.RE +.sp +.PP +The following command will cause APT to upgrade the specified package to the latest version from the +testing +distribution; the package will not be upgraded again unless this command is given again. +.sp +.RS 3n +.nf +apt\-get install \fIpackage\fR/testing +.fi +.RE +.sp +.SS "Tracking Testing or Unstable" +.PP +The following APT preferences file will cause APT to assign a high priority to package versions from the +testing +distribution, a lower priority to package versions from the +unstable +distribution, and a prohibitively low priority to package versions from other +Debian +distributions. +.sp +.RS 3n +.nf +Package: * +Pin: release a=testing +Pin\-Priority: 900 + +Package: * +Pin: release a=unstable +Pin\-Priority: 800 + +Package: * +Pin: release o=Debian +Pin\-Priority: \-10 +.fi +.RE +.sp +.PP +With a suitable +\fBsources.list\fR(5) +file and the above preferences file, any of the following commands will cause APT to upgrade to the latest +testing +version(s). +.sp +.RS 3n +.nf +apt\-get install \fIpackage\-name\fR +apt\-get upgrade +apt\-get dist\-upgrade +.fi +.RE +.sp +.PP +The following command will cause APT to upgrade the specified package to the latest version from the +unstable +distribution. Thereafter, +\fBapt\-get upgrade\fR +will upgrade the package to the most recent +testing +version if that is more recent than the installed version, otherwise, to the most recent +unstable +version if that is more recent than the installed version. +.sp +.RS 3n +.nf +apt\-get install \fIpackage\fR/unstable +.fi +.RE +.sp +.SH "SEE ALSO" +.PP +\fBapt\-get\fR(8) +\fBapt\-cache\fR(8) +\fBapt.conf\fR(5) +\fBsources.list\fR(5) +.SH "BUGS" +.PP +[1]\&\fIAPT bug page\fR. If you wish to report a bug in APT, please see +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +or the +\fBreportbug\fR(1) +command. +.SH "AUTHOR" +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT bug page +\%http://bugs.debian.org/src:apt diff --git a/doc/apt_preferences.5.xml b/doc/apt_preferences.5.xml new file mode 100644 index 0000000..3e50bef --- /dev/null +++ b/doc/apt_preferences.5.xml @@ -0,0 +1,534 @@ + + +%aptent; + +]> + + + + + &apt-author.team; + &apt-email; + &apt-product; + + 29 February 2004 + + + + apt_preferences + 5 + + + + + apt_preferences + Preference control file for APT + + + +Description +The APT preferences file /etc/apt/preferences +can be used to control which versions of packages will be selected +for installation. + +Several versions of a package may be available for installation when +the &sources-list; file contains references to more than one distribution +(for example, stable and testing). +APT assigns a priority to each version that is available. +Subject to dependency constraints, apt-get selects the +version with the highest priority for installation. +The APT preferences file overrides the priorities that APT assigns to +package versions by default, thus giving the user control over which +one is selected for installation. + +Several instances of the same version of a package may be available when +the &sources-list; file contains references to more than one source. +In this case apt-get downloads the instance listed +earliest in the &sources-list; file. +The APT preferences file does not affect the choice of instance, only +the choice of version. + +APT's Default Priority Assignments + +If there is no preferences file or if there is no entry in the file +that applies to a particular version then the priority assigned to that +version is the priority of the distribution to which that version +belongs. It is possible to single out a distribution, "the target release", +which receives a higher priority than other distributions do by default. +The target release can be set on the apt-get command +line or in the APT configuration file /etc/apt/apt.conf. +For example, + + +apt-get install -t testing some-package + + +APT::Default-Release "stable"; + + + +If the target release has been specified then APT uses the following +algorithm to set the priorities of the versions of a package. Assign: + + + +priority 100 +to the version that is already installed (if any). + + + +priority 500 +to the versions that are not installed and do not belong to the target release. + + + +priority 990 +to the versions that are not installed and belong to the target release. + + + + +If the target release has not been specified then APT simply assigns +priority 100 to all installed package versions and priority 500 to all +uninstalled package versions. + +APT then applies the following rules, listed in order of precedence, +to determine which version of a package to install. + +Never downgrade unless the priority of an available +version exceeds 1000. ("Downgrading" is installing a less recent version +of a package in place of a more recent version. Note that none of APT's +default priorities exceeds 1000; such high priorities can only be set in +the preferences file. Note also that downgrading a package +can be risky.) +Install the highest priority version. +If two or more versions have the same priority, +install the most recent one (that is, the one with the higher version +number). +If two or more versions have the same priority and +version number but either the packages differ in some of their metadata or the +--reinstall option is given, install the uninstalled one. + + + +In a typical situation, the installed version of a package (priority 100) +is not as recent as one of the versions available from the sources listed in +the &sources-list; file (priority 500 or 990). Then the package will be upgraded +when apt-get install some-package +or apt-get upgrade is executed. + + +More rarely, the installed version of a package is more recent +than any of the other available versions. The package will not be downgraded +when apt-get install some-package +or apt-get upgrade is executed. + +Sometimes the installed version of a package is more recent than the +version belonging to the target release, but not as recent as a version +belonging to some other distribution. Such a package will indeed be upgraded +when apt-get install some-package +or apt-get upgrade is executed, +because at least one of the available versions has a higher +priority than the installed version. + + +The Effect of APT Preferences + +The APT preferences file allows the system administrator to control the +assignment of priorities. The file consists of one or more multi-line records +separated by blank lines. Records can have one of two forms, a specific form +and a general form. + + +The specific form assigns a priority (a "Pin-Priority") to a +specified package and specified version or version range. For example, +the following record assigns a high priority to all versions of +the perl package whose version number begins with "5.8". + + +Package: perl +Pin: version 5.8* +Pin-Priority: 1001 + + + +The general form assigns a priority to all of the package versions in a +given distribution (that is, to all the versions of packages that are +listed in a certain Release file) or to all of the package +versions coming from a particular Internet site, as identified by the +site's fully qualified domain name. + +This general-form entry in the APT preferences file applies only +to groups of packages. For example, the following record assigns a high +priority to all package versions available from the local site. + + +Package: * +Pin: origin "" +Pin-Priority: 999 + + +A note of caution: the keyword used here is "origin". +This should not be confused with the Origin of a distribution as +specified in a Release file. What follows the "Origin:" tag +in a Release file is not an Internet address +but an author or vendor name, such as "Debian" or "Ximian". + +The following record assigns a low priority to all package versions +belonging to any distribution whose Archive name is "unstable". + + +Package: * +Pin: release a=unstable +Pin-Priority: 50 + + +The following record assigns a high priority to all package versions +belonging to any release whose Archive name is "stable" +and whose release Version number is "3.0". + + +Package: * +Pin: release a=stable, v=3.0 +Pin-Priority: 500 + + + + + + + + +How APT Interprets Priorities + + +Priorities (P) assigned in the APT preferences file must be positive +or negative integers. They are interpreted as follows (roughly speaking): + + + +P > 1000 +causes a version to be installed even if this +constitutes a downgrade of the package + + +990 < P <=1000 +causes a version to be installed +even if it does not come from the target release, +unless the installed version is more recent + + +500 < P <=990 +causes a version to be installed +unless there is a version available belonging to the target release +or the installed version is more recent + + +100 < P <=500 +causes a version to be installed +unless there is a version available belonging to some other +distribution or the installed version is more recent + + +0 < P <=100 +causes a version to be installed +only if there is no installed version of the package + + +P < 0 +prevents the version from being installed + + + + +If any specific-form records match an available package version then the +first such record determines the priority of the package version. +Failing that, +if any general-form records match an available package version then the +first such record determines the priority of the package version. + +For example, suppose the APT preferences file contains the three +records presented earlier: + + +Package: perl +Pin: version 5.8* +Pin-Priority: 1001 + +Package: * +Pin: origin "" +Pin-Priority: 999 + +Package: * +Pin: release unstable +Pin-Priority: 50 + + +Then: + +The most recent available version of the perl +package will be installed, so long as that version's version number begins +with "5.8". If any 5.8* version of perl is +available and the installed version is 5.9*, then perl will be +downgraded. +A version of any package other than perl +that is available from the local system has priority over other versions, +even versions belonging to the target release. + +A version of a package whose origin is not the local +system but some other site listed in &sources-list; and which belongs to +an unstable distribution is only installed if it is selected +for installation and no version of the package is already installed. + + + + + + +Determination of Package Version and Distribution Properties + +The locations listed in the &sources-list; file should provide +Packages and Release files +to describe the packages available at that location. + +The Packages file is normally found in the directory +.../dists/dist-name/component/arch: +for example, .../dists/stable/main/binary-i386/Packages. +It consists of a series of multi-line records, one for each package available +in that directory. Only two lines in each record are relevant for setting +APT priorities: + + +the Package: line +gives the package name + + +the Version: line +gives the version number for the named package + + + + +The Release file is normally found in the directory +.../dists/dist-name: +for example, .../dists/stable/Release, +or .../dists/woody/Release. +It consists of a single multi-line record which applies to all of +the packages in the directory tree below its parent. Unlike the +Packages file, nearly all of the lines in a Release +file are relevant for setting APT priorities: + + + +the Archive: line +names the archive to which all the packages +in the directory tree belong. For example, the line +"Archive: stable" +specifies that all of the packages in the directory +tree below the parent of the Release file are in a +stable archive. Specifying this value in the APT preferences file +would require the line: + + +Pin: release a=stable + + + + + +the Version: line +names the release version. For example, the +packages in the tree might belong to Debian GNU/Linux release +version 3.0. Note that there is normally no version number for the +testing and unstable distributions because they +have not been released yet. Specifying this in the APT preferences +file would require one of the following lines. + + + +Pin: release v=3.0 +Pin: release a=stable, v=3.0 +Pin: release 3.0 + + + + + + +the Component: line +names the licensing component associated with the +packages in the directory tree of the Release file. +For example, the line "Component: main" specifies that +all the packages in the directory tree are from the main +component, which entails that they are licensed under terms listed +in the Debian Free Software Guidelines. Specifying this component +in the APT preferences file would require the line: + + +Pin: release c=main + + + + + +the Origin: line +names the originator of the packages in the +directory tree of the Release file. Most commonly, this is +Debian. Specifying this origin in the APT preferences file +would require the line: + + +Pin: release o=Debian + + + + + +the Label: line +names the label of the packages in the directory tree +of the Release file. Most commonly, this is +Debian. Specifying this label in the APT preferences file +would require the line: + + +Pin: release l=Debian + + + + + + +All of the Packages and Release +files retrieved from locations listed in the &sources-list; file are stored +in the directory /var/lib/apt/lists, or in the file named +by the variable Dir::State::Lists in the apt.conf file. +For example, the file +debian.lcs.mit.edu_debian_dists_unstable_contrib_binary-i386_Release +contains the Release file retrieved from the site +debian.lcs.mit.edu for binary-i386 architecture +files from the contrib component of the unstable +distribution. + + + +Optional Lines in an APT Preferences Record + +Each record in the APT preferences file can optionally begin with +one or more lines beginning with the word Explanation:. +This provides a place for comments. + +The Pin-Priority: line in each APT preferences record is +optional. If omitted, APT assigs a priority of 1 less than the last value +specified on a line beginning with Pin-Priority: release .... + + + + +Examples + +Tracking Stable + +The following APT preferences file will cause APT to assign a +priority higher than the default (500) to all package versions belonging +to a stable distribution and a prohibitively low priority to +package versions belonging to other Debian distributions. + + +Explanation: Uninstall or do not install any Debian-originated +Explanation: package versions other than those in the stable distro +Package: * +Pin: release a=stable +Pin-Priority: 900 + +Package: * +Pin: release o=Debian +Pin-Priority: -10 + + + +With a suitable &sources-list; file and the above preferences file, +any of the following commands will cause APT to upgrade to the +latest stable version(s). + + +apt-get install package-name +apt-get upgrade +apt-get dist-upgrade + + + +The following command will cause APT to upgrade the specified +package to the latest version from the testing distribution; +the package will not be upgraded again unless this command is given +again. + + +apt-get install package/testing + + + + + + Tracking Testing or Unstable + +The following APT preferences file will cause APT to assign +a high priority to package versions from the testing +distribution, a lower priority to package versions from the +unstable distribution, and a prohibitively low priority +to package versions from other Debian distributions. + + +Package: * +Pin: release a=testing +Pin-Priority: 900 + +Package: * +Pin: release a=unstable +Pin-Priority: 800 + +Package: * +Pin: release o=Debian +Pin-Priority: -10 + + + +With a suitable &sources-list; file and the above preferences file, +any of the following commands will cause APT to upgrade to the latest +testing version(s). + + +apt-get install package-name +apt-get upgrade +apt-get dist-upgrade + + + +The following command will cause APT to upgrade the specified +package to the latest version from the unstable distribution. +Thereafter, apt-get upgrade will upgrade +the package to the most recent testing version if that is +more recent than the installed version, otherwise, to the most recent +unstable version if that is more recent than the installed +version. + + +apt-get install package/unstable + + + + + + + +See Also +&apt-get; &apt-cache; &apt-conf; &sources-list; + + + + &manbugs; + + + diff --git a/doc/cache.sgml b/doc/cache.sgml new file mode 100644 index 0000000..aa87db9 --- /dev/null +++ b/doc/cache.sgml @@ -0,0 +1,821 @@ + + + +APT Cache File Format + +Jason Gunthorpe jgg@debian.org +$Id: cache.sgml,v 1.11 2003/02/12 15:05:44 doogie Exp $ + + +This document describes the complete implementation and format of the APT +Cache file. The APT Cache file is a way for APT to parse and store a +large number of package files for display in the UI. It's primary design +goal is to make display of a single package in the tree very fast by +pre-linking important things like dependencies and provides. + +The specification doubles as documentation for one of the in-memory +structures used by the package library and the APT GUI. + + + + +Copyright © Jason Gunthorpe, 1997-1998. +

+APT and this document are free software; you can redistribute them and/or +modify them under the terms of the GNU General Public License as published +by the Free Software Foundation; either version 2 of the License, or (at your +option) any later version. + +

+For more details, on Debian GNU/Linux systems, see the file +/usr/share/common-licenses/GPL for the full license. + + + + +Introduction + + +Purpose + +

+This document describes the implementation of an architecture +dependent binary cache file. The goal of this cache file is two fold, +firstly to speed loading and processing of the package file array and +secondly to reduce memory consumption of the package file array. + +

+The implementation is aimed at an environment with many primary package +files, for instance someone that has a Package file for their CD-ROM, a +Package file for the latest version of the distribution on the CD-ROM and a +package file for the development version. Always present is the information +contained in the status file which might be considered a separate package +file. + +

+Please understand, this is designed as a -CACHE FILE- it is not meant to be +used on any system other than the one it was created for. It is not meant to +be authoritative either, i.e. if a system crash or software failure occurs it +must be perfectly acceptable for the cache file to be in an inconsistent +state. Furthermore at any time the cache file may be erased without losing +any information. + +

+Also the structures and storage layout is optimized for use by the APT +GUI and may not be suitable for all purposes. However it should be possible +to extend it with associate cache files that contain other information. + +

+To keep memory use down the cache file only contains often used fields and +fields that are inexpensive to store, the Package file has a full list of +fields. Also the client may assume that all items are perfectly valid and +need not perform checks against their correctness. Removal of information +from the cache is possible, but blanks will be left in the file, and +unused strings will also be present. The recommended implementation is to +simply rebuild the cache each time any of the data files change. It is +possible to add a new package file to the cache without any negative side +effects. + +Note on Pointer access +

+Every item in every structure is stored as the index to that structure. +What this means is that once the files is mmaped every data access has to +go through a fixup stage to get a real memory pointer. This is done +by taking the index, multiplying it by the type size and then adding +it to the start address of the memory block. This sounds complex, but +in C it is a single array dereference. Because all items are aligned to +their size and indexes are stored as multiples of the size of the structure +the format is immediately portable to all possible architectures - BUT the +generated files are -NOT-. + +

+This scheme allows code like this to be written: + + void *Map = mmap(...); + Package *PkgList = (Package *)Map; + Header *Head = (Header *)Map; + char *Strings = (char *)Map; + cout << (Strings + PkgList[Head->HashTable[0]]->Name) << endl; + +

+Notice the lack of casting or multiplication. The net result is to return +the name of the first package in the first hash bucket, without error +checks. + +

+The generator uses allocation pools to group similarly sized structures in +large blocks to eliminate any alignment overhead. The generator also +assures that no structures overlap and all indexes are unique. Although +at first glance it may seem like there is the potential for two structures +to exist at the same point the generator never allows this to happen. +(See the discussion of free space pools) + + +Structures + + +Header +

+This is the first item in the file. + + struct Header + { + // Signature information + unsigned long Signature; + short MajorVersion; + short MinorVersion; + bool Dirty; + + // Size of structure values + unsigned short HeaderSz; + unsigned short PackageSz; + unsigned short PackageFileSz; + unsigned short VersionSz; + unsigned short DependencySz; + unsigned short ProvidesSz; + unsigned short VerFileSz; + + // Structure counts + unsigned long PackageCount; + unsigned long VersionCount; + unsigned long DependsCount; + unsigned long PackageFileCount; + + // Offsets + unsigned long FileList; // PackageFile + unsigned long StringList; // StringItem + unsigned long VerSysName; // StringTable + unsigned long Architecture; // StringTable + unsigned long MaxVerFileSize; + + // Allocation pools + struct + { + unsigned long ItemSize; + unsigned long Start; + unsigned long Count; + } Pools[7]; + + // Package name lookup + unsigned long HashTable[2*1024]; // Package + }; + + +Signature +This must contain the hex value 0x98FE76DC which is designed to verify +that the system loading the image has the same byte order and byte size as +the system saving the image + +MajorVersion +MinorVersion +These contain the version of the cache file, currently 0.2. + +Dirty +Dirty is true if the cache file was opened for reading, the client expects +to have written things to it and have not fully synced it. The file should +be erased and rebuilt if it is true. + +HeaderSz +PackageSz +PackageFileSz +VersionSz +DependencySz +VerFileSz +ProvidesSz +*Sz contains the sizeof() that particular structure. It is used as an +extra consistency check on the structure of the file. + +If any of the size values do not exactly match what the client expects then +the client should refuse the load the file. + +PackageCount +VersionCount +DependsCount +PackageFileCount +These indicate the number of each structure contained in the cache. +PackageCount is especially useful for generating user state structures. +See Package::Id for more info. + +VerSysName +String representing the version system used for this cache + +Architecture +Architecture the cache was built against. + +MaxVerFileSize +The maximum size of a raw entry from the original Package file +(i.e. VerFile::Size) is stored here. + +FileList +This contains the index of the first PackageFile structure. The PackageFile +structures are singly linked lists that represent all package files that +have been merged into the cache. + +StringList +This contains a list of all the unique strings (string item type strings) in +the cache. The parser reads this list into memory so it can match strings +against it. + +Pools +The Pool structures manage the allocation pools that the generator uses. +Start indicates the first byte of the pool, Count is the number of objects +remaining in the pool and ItemSize is the structure size (alignment factor) +of the pool. An ItemSize of 0 indicates the pool is empty. There should be +the same number of pools as there are structure types. The generator +stores this information so future additions can make use of any unused pool +blocks. + +HashTable +HashTable is a hash table that provides indexing for all of the packages. +Each package name is inserted into the hash table using the following has +function: + + unsigned long Hash(string Str) + { + unsigned long Hash = 0; + for (const char *I = Str.begin(); I != Str.end(); I++) + Hash += *I * ((Str.end() - I + 1)); + return Hash % _count(Head.HashTable); + } + +

+By iterating over each entry in the hash table it is possible to iterate over +the entire list of packages. Hash Collisions are handled with a singly linked +list of packages based at the hash item. The linked list contains only +packages that match the hashing function. + + + + + +Package +

+This contains information for a single unique package. There can be any +number of versions of a given package. Package exists in a singly +linked list of package records starting at the hash index of the name in +the Header->HashTable. + + struct Pacakge + { + // Pointers + unsigned long Name; // Stringtable + unsigned long VersionList; // Version + unsigned long CurrentVer; // Version + unsigned long Section; // StringTable (StringItem) + + // Linked lists + unsigned long NextPackage; // Package + unsigned long RevDepends; // Dependency + unsigned long ProvidesList; // Provides + + // Install/Remove/Purge etc + unsigned char SelectedState; // What + unsigned char InstState; // Flags + unsigned char CurrentState; // State + + // Unique ID for this pkg + unsigned short ID; + unsigned long Flags; + }; + + + +Name +Name of the package. + +VersionList +Base of a singly linked list of version structures. Each structure +represents a unique version of the package. The version structures +contain links into PackageFile and the original text file as well as +detailed information about the size and dependencies of the specific +package. In this way multiple versions of a package can be cleanly handled +by the system. Furthermore, this linked list is guaranteed to be sorted +from Highest version to lowest version with no duplicate entries. + +CurrentVer +CurrentVer is an index to the installed version, either can be +0. + +Section +This indicates the deduced section. It should be "Unknown" or the section +of the last parsed item. + +NextPackage +Next link in this hash item. This linked list is based at Header.HashTable +and contains only packages with the same hash value. + +RevDepends +Reverse Depends is a linked list of all dependencies linked to this package. + +ProvidesList +This is a linked list of all provides for this package name. + +SelectedState +InstState +CurrentState +These correspond to the 3 items in the Status field found in the status +file. See the section on defines for the possible values. +

+SelectedState is the state that the user wishes the package to be +in. +

+InstState is the installation state of the package. This normally +should be OK, but if the installation had an accident it may be otherwise. +

+CurrentState indicates if the package is installed, partially installed or +not installed. + +ID +ID is a value from 0 to Header->PackageCount. It is a unique value assigned +by the generator. This allows clients to create an array of size PackageCount +and use it to store state information for the package map. For instance the +status file emitter uses this to track which packages have been emitted +already. + +Flags +Flags are some useful indicators of the package's state. + + + + + + +PackageFile +

+This contains information for a single package file. Package files are +referenced by Version structures. This is a singly linked list based from +Header.FileList + + struct PackageFile + { + // Names + unsigned long FileName; // Stringtable + unsigned long Archive; // Stringtable + unsigned long Component; // Stringtable + unsigned long Version; // Stringtable + unsigned long Origin; // Stringtable + unsigned long Label; // Stringtable + unsigned long Architecture; // Stringtable + unsigned long Site; // Stringtable + unsigned long IndexType; // Stringtable + unsigned long Size; + + // Linked list + unsigned long NextFile; // PackageFile + unsigned short ID; + unsigned long Flags; + time_t mtime; // Modification time + }; + + + +FileName +Refers the the physical disk file that this PacakgeFile represents. + +Archive +Component +Version +Origin +Label +Architecture +NotAutomatic +This is the release information. Please see the files document for a +description of what the release information means. + +Site +The site the index file was fetched from. + +IndexType +A string indicating what sort of index file this is. + +Size +Size is provided as a simple check to ensure that the package file has not +been altered. + +ID +See Package::ID. + +Flags +Provides some flags for the PackageFile, see the section on defines. + +mtime +Modification time for the file at time of cache generation. + + + + + + +Version +

+This contains the information for a single version of a package. This is a +single linked list based from Package.Versionlist. + +

+The version list is always sorted from highest version to lowest version by +the generator. Also there may not be any duplicate entries in the list (same +VerStr). + + + struct Version + { + unsigned long VerStr; // Stringtable + unsigned long Section; // StringTable (StringItem) + unsigned long Arch; // StringTable + + // Lists + unsigned long FileList; // VerFile + unsigned long NextVer; // Version + unsigned long DependsList; // Dependency + unsigned long ParentPkg; // Package + unsigned long ProvidesList; // Provides + + unsigned long Size; + unsigned long InstalledSize; + unsigned long Hash; + unsigned short ID; + unsigned char Priority; + }; + + + +VerStr +This is the complete version string. + +FileList +References the all the PackageFile's that this version came out of. FileList +can be used to determine what distribution(s) the Version applies to. If +FileList is 0 then this is a blank version. The structure should also have +a 0 in all other fields excluding VerStr and Possibly NextVer. + +Section +This string indicates which section it is part of. The string should be +contained in the StringItem list. + +Arch +Architecture the package was compiled for. + +NextVer +Next step in the linked list. + +DependsList +This is the base of the dependency list. + +ParentPkg +This links the version to the owning package, allowing reverse dependencies +to determine the package. + +ProvidesList +Head of the linked list of Provides::NextPkgProv, forward provides. + +Size +InstalledSize +The archive size for this version. For Debian this is the size of the .deb +file. Installed size is the uncompressed size for this version + +Hash +This is a characteristic value representing this package. No two packages +in existence should have the same VerStr and Hash with different contents. + +ID +See Package::ID. + +Priority +This is the parsed priority value of the package. + + + + + +Dependency +

+Dependency contains the information for a single dependency record. The records +are split up like this to ease processing by the client. The base of list +linked list is Version.DependsList. All forms of dependencies are recorded +here including Conflicts, Suggests and Recommends. + +

+Multiple depends on the same package must be grouped together in +the Dependency lists. Clients should assume this is always true. + + + struct Dependency + { + unsigned long Version; // Stringtable + unsigned long Package; // Package + unsigned long NextDepends; // Dependency + unsigned long NextRevDepends; // Reverse dependency linking + unsigned long ParentVer; // Upwards parent version link + + // Specific types of depends + unsigned char Type; + unsigned char CompareOp; + unsigned short ID; + }; + + +Version +The string form of the version that the dependency is applied against. + +Package +The index of the package file this depends applies to. If the package file +does not already exist when the dependency is inserted a blank one (no +version records) should be created. + +NextDepends +Linked list based off a Version structure of all the dependencies in that +version. + +NextRevDepends +Reverse dependency linking, based off a Package structure. This linked list +is a list of all packages that have a depends line for a given package. + +ParentVer +Parent version linking, allows the reverse dependency list to link +back to the version and package that the dependency are for. + +Type +Describes weather it is depends, predepends, recommends, suggests, etc. + +CompareOp +Describes the comparison operator specified on the depends line. If the high +bit is set then it is a logical or with the previous record. + +ID +See Package::ID. + + + + + + +Provides +

+Provides handles virtual packages. When a Provides: line is encountered +a new provides record is added associating the package with a virtual +package name. The provides structures are linked off the package structures. +This simplifies the analysis of dependencies and other aspects A provides +refers to a specific version of a specific package, not all versions need to +provide that provides. + +

+There is a linked list of provided package names started from each +version that provides packages. This is the forwards provides mechanism. + + struct Provides + { + unsigned long ParentPkg; // Package + unsigned long Version; // Version + unsigned long ProvideVersion; // Stringtable + unsigned long NextProvides; // Provides + unsigned long NextPkgProv; // Provides + }; + + +ParentPkg +The index of the package that head of this linked list is in. ParentPkg->Name +is the name of the provides. + +Version +The index of the version this provide line applies to. + +ProvideVersion +Each provides can specify a version in the provides line. This version allows +dependencies to depend on specific versions of a Provides, as well as allowing +Provides to override existing packages. This is experimental. + +NextProvides +Next link in the singly linked list of provides (based off package) + +NextPkgProv +Next link in the singly linked list of provides for 'Version'. + + + + + + +VerFile +

+VerFile associates a version with a PackageFile, this allows a full +description of all Versions in all files (and hence all sources) under +consideration. + + + struct pkgCache::VerFile + { + unsigned long File; // PackageFile + unsigned long NextFile; // PkgVerFile + unsigned long Offset; + unsigned short Size; + } + + +File +The index of the package file that this version was found in. + +NextFile +The next step in the linked list. + +Offset +Size +These describe the exact position in the package file for the section from +this version. + + + + + +StringItem +

+StringItem is used for generating single instances of strings. Some things +like Section Name are are useful to have as unique tags. It is part of +a linked list based at Header::StringList. + + struct StringItem + { + unsigned long String; // Stringtable + unsigned long NextItem; // StringItem + }; + + +String +The string this refers to. + +NextItem +Next link in the chain. + + + + +StringTable +

+All strings are simply inlined any place in the file that is natural for the +writer. The client should make no assumptions about the positioning of +strings. All stringtable values point to a byte offset from the start of the +file that a null terminated string will begin. + + + +Defines +

+Several structures use variables to indicate things. Here is a list of all +of them. + +Definitions for Dependency::Type +

+ +#define pkgDEP_Depends 1 +#define pkgDEP_PreDepends 2 +#define pkgDEP_Suggests 3 +#define pkgDEP_Recommends 4 +#define pkgDEP_Conflicts 5 +#define pkgDEP_Replaces 6 + + + +Definitions for Dependency::CompareOp +

+ +#define pkgOP_OR 0x10 +#define pkgOP_LESSEQ 0x1 +#define pkgOP_GREATEREQ 0x2 +#define pkgOP_LESS 0x3 +#define pkgOP_GREATER 0x4 +#define pkgOP_EQUALS 0x5 + +The lower 4 bits are used to indicate what operator is being specified and +the upper 4 bits are flags. pkgOP_OR indicates that the next package is +or'd with the current package. + + +Definitions for Package::SelectedState +

+ +#define pkgSTATE_Unkown 0 +#define pkgSTATE_Install 1 +#define pkgSTATE_Hold 2 +#define pkgSTATE_DeInstall 3 +#define pkgSTATE_Purge 4 + + + +Definitions for Package::InstState +

+ +#define pkgSTATE_Ok 0 +#define pkgSTATE_ReInstReq 1 +#define pkgSTATE_Hold 2 +#define pkgSTATE_HoldReInstReq 3 + + + +Definitions for Package::CurrentState +

+ +#define pkgSTATE_NotInstalled 0 +#define pkgSTATE_UnPacked 1 +#define pkgSTATE_HalfConfigured 2 +#define pkgSTATE_UnInstalled 3 +#define pkgSTATE_HalfInstalled 4 +#define pkgSTATE_ConfigFiles 5 +#define pkgSTATE_Installed 6 + + + +Definitions for Package::Flags +

+ +#define pkgFLAG_Auto (1 << 0) +#define pkgFLAG_New (1 << 1) +#define pkgFLAG_Obsolete (1 << 2) +#define pkgFLAG_Essential (1 << 3) +#define pkgFLAG_ImmediateConf (1 << 4) + + + +Definitions for Version::Priority +

+Zero is used for unparsable or absent Priority fields. + +#define pkgPRIO_Important 1 +#define pkgPRIO_Required 2 +#define pkgPRIO_Standard 3 +#define pkgPRIO_Optional 4 +#define pkgPRIO_Extra 5 + + + +Definitions for PackageFile::Flags +

+ +#define pkgFLAG_NotSource (1 << 0) +#define pkgFLAG_NotAutomatic (1 << 1) + + + + + +Notes on the Generator + + +

+The pkgCache::MergePackageFile function is currently the only generator of +the cache file. It implements a conversion from the normal textual package +file into the cache file. + +

+The generator assumes any package declaration with a +Status: line is a 'Status of the package' type of package declaration. +A Package with a Target-Version field should also really have a status field. +The processing of a Target-Version field can create a place-holder Version +structure that is empty to refer to the specified version (See Version +for info on what a empty Version looks like). The Target-Version syntax +allows the specification of a specific version and a target distribution. + +

+Different section names on different versions is supported, but I +do not expect to use it. To simplify the GUI it will merely use the section +in the Package structure. This should be okay as I hope sections do not change +much. + +

+The generator goes through a number of post processing steps after producing +a disk file. It sorts all of the version lists to be in descending order +and then generates the reverse dependency lists for all of the packages. +ID numbers and count values are also generated in the post processing step. + +

+It is possible to extend many of the structures in the cache with extra data. +This is done by using the ID member. ID will be a unique number from 0 to +Header->??Count. For example + +struct MyPkgData; +MyPkgData *Data = new MyPkgData[Header->PackageCount]; +Data[Package->ID]->Item = 0; + +This provides a one way reference between package structures and user data. To +get a two way reference would require a member inside the MyPkgData structure. + +

+The generators use of free space pools tend to make the package file quite +large, and quite full of blank space. This could be fixed with sparse files. + + + +Future Directions + + +

+Some good directions to take the cache file is into a cache directory that +contains many associated caches that cache other important bits of +information. (/var/cache/apt, FHS2) + +

+Caching of the info/*.list is an excellent place to start, by generating all +the list files into a tree structure and reverse linking them to the package +structures in the main cache file major speed gains in dpkg might be achieved. + + + + diff --git a/doc/de/apt.de.8 b/doc/de/apt.de.8 new file mode 100644 index 0000000..5d49144 --- /dev/null +++ b/doc/de/apt.de.8 @@ -0,0 +1,51 @@ +.\" This manpage is copyright (C) 1998 Branden Robinson . +.\" +.\" This is free software; you may redistribute it and/or modify +.\" it under the terms of the GNU General Public License as +.\" published by the Free Software Foundation; either version 2, +.\" or (at your option) any later version. +.\" +.\" This is distributed in the hope that it will be useful, but +.\" WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public +.\" License along with APT; if not, write to the Free Software +.\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +.\" 02111-1307 USA +.TH apt 8 "14 April 2004" "Debian GNU/Linux" +.\" +.\" Translated into german by Helge Kreutzmann +.SH NAME +apt \- Fortschrittliches Paketverwaltungswerkzeug +.SH ZUSAMMENFASSUNG +.B apt +.SH BESCHREIBUNG +APT ist eine Verwaltungssystem für Software-Pakete. Es befindet +sich noch in der Entwicklung; die todschicken Oberflächen sind noch nicht +verfügbar. In der Zwischenzeit lesen Sie bitte +.BR apt-get (8). +.SH OPTIONEN +Keine. +.SH DATEIEN +Keine. +.SH SIEHE AUCH +.BR apt-cache (8), +.BR apt-get (8), +.BR apt.conf (5), +.BR sources.list (5) +.SH DIAGNOSTIK +apt liefert Null bei normaler Funktion, dezimal 100 im Fehlerfall. +.SH FEHLER +Diese Handbuchseite wurde noch nicht mal begonnen. +.PP +Siehe . Falls Sie einen Fehler in +.BR apt +melden wollen, lesen Sie bitte +.I /usr/share/doc/debian/bug-reporting.txt +oder verwenden Sie das +.BR reportbug (1) +Kommando. +.SH AUTOR +apt wurde vom APT-Team geschrieben. diff --git a/doc/design.sgml b/doc/design.sgml new file mode 100644 index 0000000..0fd7081 --- /dev/null +++ b/doc/design.sgml @@ -0,0 +1,411 @@ + + + + + The APT project design document + + Manoj Srivastava + srivasta@debian.org + + $Id: design.sgml,v 1.4 2003/02/12 15:05:45 doogie Exp $ + + This document is an overview of the specifications and design + goals of the APT project. It also attempts to give a broad + description of the implementation as well. + + + Copyright ©1997 Manoj Srivastava + +

+ APT, including this document, is free software; you may + redistribute it and/or modify it under the terms of the GNU + General Public License as published by the Free Software + Foundation; either version 2, or (at your option) any later + version.

+

+ This is distributed in the hope that it will be useful, but + without any warranty; without even the implied + warranty of merchantability or fitness for a particular + purpose. See the GNU General Public License for more + details.

+ +

+ You should have received a copy of the GNU General Public + License with your Debian GNU/Linux system, in + /usr/share/common-licenses/GPL, or with the + COPYING. If not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, + USA.

+
+ + + Introduction +

APT is supposed to be a replacement for dselect, and not a + replacement for dpkg. However, since addition functionality + has been required for APT, and given the fact that this is + very closely related to dpkg, it is not unreasonable to expect + that additional functionality in the underlying dpkg would + also be requested.

+ +

Diety/dselect are the first introduction that people have to + Debian, and unfortunately this first impression contributes + greatly to the public perception of the distribution. It is + imperative that this be a showcase for Debian, rather than + frighten novices away (which has been an accusation often + levelled at the current system)

+
+ + Requirements +

+ + +

+ APT should be a replacement for dselect. Therefore it + should have all the functionality that dselect has + currently. This is the primary means of interaction + between the user and the package management system, and + it should be able to handle all tasks involved in + installing, upgrading, and routine management without + having the users take recourse to the underlying + management system.

+
+ +

+ It should be easier to use and less confusing for novice + users. The primary stimulus for the creation of APT + was the perceived intractability, complexity, and + non-intuitive behavior of the existing user interface, + and as such, human factors must be a primary mandate of + APT.

+
+ +

+ It should be able to group packages more flexibly, and + possibly allow operations based on a group. One should + be able to select, or deselect, a coherent group of + related packages simultaneously, allowing one to add, + remove, or upgrade functionality to a machine as one + step. +

+
+ +

+ This would allow APT to handle standard + installations, namely, one could then install a + set of packages to enable a machine to fulfill specific + tasks. Define a few standard installations, and which + packages are included therein. The packages should be + internally consistent.

+
+ +

+ Make use of a keywords field in package headers; provide + a standard list of keywords for people to use. This + could be the underpinning to allow the previous two + requirements to work (though the developers are not + constrained to implement the previous requirements using + keywords) +

+
+ +

+ Use dependencies, conflicts, and reverse dependencies to + properly order packages for installation and + removal. This has been a complaint in the past that the + installation methods do not really understand + dependencies, causing the upgrade process to break, or + allowing the removal of packages that left the system in + an untenable state by breaking the dependencies on + packages that were dependent on the package being + removed. A special emphasis is placed on handling + pre-dependencies correctly; the target of a + predependency has to be fully configured before + attempting to install the pre-dependent package. Also, + configure immediately requests mentioned below + should be handled.

+
+ +

+ Handle replacement of a package providing a virtual + package with another (for example, it has been very + difficult replacing sendmail with + smail, or vice versa), making sure that the + dependencies are still satisfied.

+
+ +

+ Handle source lists for updates from multiple + sources. APT should also be able to handle diverse + methods of acquiring new packages; local filesystem, + mountable CD-ROM drives, FTP accessible repositories are + some of the methods that come to mind. Also, the source + lists can be separated into categories, such as main, + contrib, non-us, non-local, non-free, my-very-own, + etc. APT should be set up to retrieve the Packages + files from these multiple source lists, as well as + retrieving the packages themselves.

+
+ +

+ Handle base of source and acquire all Packages files + underneath. (possibly select based on architecture), + this should be a simple extension of the previous + requirement.

+
+ +

+ Handle remote installation (to be implemented maybe in a + future version, it still needs to be designed). This + would ease the burden of maintaining multiple Debian + machines on a site. In the authors opinion this is a + killer difference for the distribution, though it may be + too hard a problem to be implemented with the initial + version of APT. However, some thought must be given to + this to enable APT to retain hooks for future + functionality, or at least to refrain from methods that + may preclude remote activity. It is desirable that + adding remote installation not require a redesign of + APT from the ground up.

+
+ +

+ Be scalable. Dselect worked a lot better with 400 + packages, but at last count the number of packages was + around twelve hundred and climbing. This also requires + APT to pay attention to the needs of small machines + which are low on memory (though this requirement shall + diminish as we move towards bigger machines, it would + still be nice if Debian worked on all old machines where + Linux itself would work).

+
+ +

+ Handle install immediately requests. Some packages, like + watchdog, are required to be working for the stability + of the machine itself. There are others which may be + required for the correct functioning of a production + machine, or which are mission critical + applications. APT should, in these cases, upgrade the + packages with minimal downtime; allowing these packages + to be one of potentially hundreds of packages being + upgraded concurrently may not satisfy the requirements + of the package or the site. (Watchdog, for example, if + not restarted quickly, may cause the machine to reboot + in the midst of installation, which may cause havoc on + the machine)

+
+ +

+ + + Procedural description +

+ Set Options + +

+ This process handles setting of user or + site options, and configuration of all aspects of + APT. It allows the user to set the location and order + of package sources, allowing them to set up source list + details, like ftp site locations, passwords, + etc. Display options may also be set.

+
+ Updates + +

+ Build a list of available packages, using + source lists or a base location and trawling for + Packages files (needs to be aware of architecture). This + may involve finding and retrieving Packages files, + storing them locally for efficiency, and parsing the + data for later use. This would entail contacting various + underlying access modules (ftp, cdrom mounts, etc) Use a + backing store for speed. This may also require + downloading the actual package files locally for + speed.

+
+ Local status + +

+ Build up a list of packages already + installed. This requires reading and writing the local?? + status file. For remote installation, this should + probably use similar mechanisms as the Packages file + retrieval does. Use the backing store for speed. One + should consider multiple backing stores, one for each + machine. +

+
+ Relationship determination + +

+ Determine forward and reverse dependencies. All known + dependency fields should be acted upon, since it is + fairly cheap to do so. Update the backing store with + this information.

+
+ Selection + +

+ Present the data to the user. Look at Behan Webster's + documentation for the user interface procedures. (Note: + In the authors opinion deletions and reverse + dependencies should also be presented to the user, in a + strictly symmetric fashion; this may make it easier to + prevent a package being removed that breaks + dependencies) +

+
+ Ordering of package installations and configuration + +

+ Build a list of events. Simple topological sorting gives + order of packages in dependency order. At certain points + in this ordering, predependencies/immediate configure + directives cause an break in normal ordering. We need to + insert the uninstall/purge directive in the stream + (default: as early as possible).

+
+ Action + +

+ Take the order of installations and removals and build + up a stream of events to send to the packaging system + (dpkg). Execute the list of events if successful. Do not + partially install packages and leave system in broken + state. Go to The Selection step as needed.

+
+ + +

+ + + Modules and interfaces +

+ The user interface module + +

Look at Behan Webster's documentation.

+
+ Widget set + +

+ Related closely to above Could some one present design + decisions of the widget set here?

+
+ pdate Module + +

+ Distinct versions of the same package are recorded + separately, but if multiple Packages files contain the + same version of a package, then only the first one is + recorded. For this reason, the least expensive update + source should be listed first (local file system is + better than a remote ftp site)

+

+ This module should interact with the user interface + module to set and change configuration parameters for + the modules listed below. It needs to record that + information in an on disk data file, to be read on + future invocations.

+

+ +

FTP methods

+
+ +

mount and file traversal module(s)?

+
+ +

Other methods ???

+
+ +

+
+ Status file parser/generator + +

+ The status file records the current state of the system, + listing the packages installed, etc. The status file is + also one method of communicating with dpkg, since it is + perfectly permissible for the user to use APT to + request packages be updated, put others on hold, mark + other for removal, etc, and then run dpkg + -BORGiE on a file system.

+
+ Package file parser/generator + +

+ Related to above. Handle multiple Packages files, from + different sources. Each package contains a link back to + the packages file structure that contains details about + the origin of the data.

+
+ Dependency module + +

+ +

dependency/conflict determination and linking

+
+ +

reverse dependency generator. Maybe merged with above

+
+ +

+
+ Package ordering Module + +

Create an ordering of the actions to be taken.

+
+ Event generator + +

module to interact with dpkg

+
+ + + + Data flow and conversions analysis. +

+ + ____________ + __\|ftp modules| + / /|___________| + _ ____________ / ________________ + | update | / |mount/local file| + |==========================>| module |/_____\| traversals | + | |_____________| /|________________| + | ^ ^ + | | | ______________ + ______|_______ _ _____ ______ | _____v________ \| | + |Configuration | |configuration| | |Packages Files| ===|Status file | + | module |<=>| data | | |______________| / /|____________| + |______________| |_____________| | ^ / + ^ | | / + | | _______v_______|/_ + | | | | ________________ + | | | |/_\| Dependency | + | | |backing store |\ /| Module | + | | |______________| _|_______________| + | \ ^ /| ^ + | \ | / | + | _\|____v_______|/__ ____v_______ + |_____________________________\| User interaction| | dpkg | + /|_________________|<==>| Invoker | + |___________| + + +

dpkg also interacts with status and available files.

+ + +

+ The backing store and the associated data structures are the + core of APT. All modules essentially revolve around the + backing store, feeding it data, adding and manipulating links + and relationships between data in the backing store, allowing + the user to interact with and modify the data in the backing + store, and finally writing it out as the status file and + possibly issuing directives to dpkg.

+ +

The other focal point for APT is the user interface.

+
+ + diff --git a/doc/dpkg-tech.sgml b/doc/dpkg-tech.sgml new file mode 100644 index 0000000..23372d7 --- /dev/null +++ b/doc/dpkg-tech.sgml @@ -0,0 +1,509 @@ + + +dpkg technical manual + +Tom Lees tom@lpsg.demon.co.uk +$Id: dpkg-tech.sgml,v 1.3 2003/02/12 15:05:45 doogie Exp $ + + +This document describes the minimum necessary workings for the APT dselect +replacement. It gives an overall specification of what its external interface +must look like for compatibility, and also gives details of some internal +quirks. + + + +Copyright © Tom Lees, 1997. +

+APT and this document are free software; you can redistribute them and/or +modify them under the terms of the GNU General Public License as published +by the Free Software Foundation; either version 2 of the License, or (at your +option) any later version. + +

+For more details, on Debian GNU/Linux systems, see the file +/usr/share/common-licenses/GPL for the full license. + + + + +Quick summary of dpkg's external interface +Control files + +

+The basic dpkg package control file supports the following major features:- + + +5 types of dependencies:- + + Pre-Depends, which must be satisfied before a package may be + unpacked + Depends, which must be satisfied before a package may be + configured + Recommends, to specify a package which if not installed may + severely limit the usefulness of the package + Suggests, to specify a package which may increase the + productivity of the package + Conflicts, to specify a package which must NOT be installed + in order for the package to be configured + +Each of these dependencies can specify a version and a depedency on that +version, for example "<= 0.5-1", "== 2.7.2-1", etc. The comparators available +are:- + + "<<" - less than + "<=" - less than or equal to + ">>" - greater than + ">=" - greater than or equal to + "==" - equal to + +The concept of "virtual packages", which many other packages may provide, +using the Provides mechanism. An example of this is the "httpd" virtual package, +which all web servers should provide. Virtual package names may be used in +dependency headers. However, current policy is that virtual packages do not +support version numbers, so dependencies on virtual packages with versions +will always fail. +Several other control fields, such as Package, Version, Description, +Section, Priority, etc., which are mainly for classification purposes. The +package name must consist entirely of lowercase characters, plus the characters +'+', '-', and '.'. Fields can extend across multiple lines - on the second +and subsequent lines, there is a space at the beginning instead of a field +name and a ':'. Empty lines must consist of the text " .", which will be +ignored, as will the initial space for other continuation lines. This feature +is usually only used in the Description field. + + +The dpkg status area + +

+The "dpkg status area" is the term used to refer to the directory where dpkg +keeps its various status files (GNU would have you call it the dpkg shared +state directory). This is always, on Debian systems, /var/lib/dpkg. However, +the default directory name should not be hard-coded, but #define'd, so that +alteration is possible (it is available via configure in dpkg 1.4.0.9 and +above). Of course, in a library, code should be allowed to override the +default directory, but the default should be part of the library (so that +the user may change the dpkg admin dir simply by replacing the library). + +

+Dpkg keeps a variety of files in its status area. These are discussed later +on in this document, but a quick summary of the files is here:- + + +available - this file contains a concatenation of control information +from all the packages which dpkg knows about. This is updated using the dpkg +commands "--update-avail <file>", "--merge-avail <file>", and +"--clear-avail". +status - this file contains information on the following things for +every package:- + + Whether it is installed, not installed, unpacked, removed, + failed configuration, or half-installed (deconfigured in + favour of another package). + Whether it is selected as install, hold, remove, or purge. + If it is "ok" (no installation problems), or "not-ok". + It usually also contains the section and priority (so that + dselect may classify packages not in available) + For packages which did not initially appear in the "available" + file when they were installed, the other control information + for them. + +

+ The exact format for the "Status:" field is: + + Status: Want Flag Status + + Where Want may be one of unknown, install, + hold, deinstall, purge. Flag + may be one of ok, reinstreq, hold, + hold-reinstreq. + Status may be one of not-installed, unpacked, + half-configured, installed, half-installed + config-files, post-inst-failed, removal-failed. + The states are as follows:- + + not-installed + No files are installed from the package, it has no config files + left, it uninstalled cleanly if it ever was installed. + unpacked + The basic files have been unpacked (and are listed in + /var/lib/dpkg/info/[package].list. There are config files present, + but the postinst script has _NOT_ been run. + half-configured + The package was installed and unpacked, but the postinst script + failed in some way. + installed + All files for the package are installed, and the configuration + was also successful. + half-installed + An attempt was made to remove the packagem but there was a failure + in the prerm script. + config-files + The package was "removed", not "purged". The config files are left, + but nothing else. + post-inst-failed + Old name for half-configured. Do not use. + removal-failed + Old name for half-installed. Do not use. + + The two last items are only left in dpkg for compatibility - they are + understood by it, but never written out in this form. + +

+ Please see the dpkg source code, lib/parshelp.c, + statusinfos, eflaginfos and wantinfos for more + details. + +info - this directory contains files from the control archive of every +package currently installed. They are installed with a prefix of "<packagename>.". +In addition to this, it also contains a file called <package>.list for every +package, which contains a list of files. Note also that the control file is +not copied into here; it is instead found as part of status or available. +methods - this directory is reserved for "method"-specific files - each +"method" has a subdirectory underneath this directory (or at least, it can +have). In addition, there is another subdirectory "mnt", where misc. +filesystems (floppies, CDROMs, etc.) are mounted. +alternatives - directory used by the "update-alternatives" program. It +contains one file for each "alternatives" interface, which contains information +about all the needed symlinked files for each alternative. +diversions - file used by the "dpkg-divert" program. Each diversion takes +three lines. The first is the package name (or ":" for user diversion), the +second the original filename, and the third the diverted filename. +updates - directory used internally by dpkg. This is discussed later, +in the section . +parts - temporary directory used by dpkg-split + + +The dpkg library files + +

+These files are installed under /usr/lib/dpkg (usually), but +/usr/local/lib/dpkg is also a possibility (as Debian policy dictates). Under +this directory, there is a "methods" subdirectory. The methods subdirectory +in turn contains any number of subdirectories for each general method +processor (note that one set of method scripts can, and is, used for more than +one of the methods listed under dselect). + +

+The following files may be found in each of these subdirectories:- + + +names - One line per method, two-digit priority to appear on menu +at beginning, followed by a space, the name, and then another space and the +short description. +desc.<name> - Contains the long description displayed by dselect +when the cursor is put over the <name> method. +setup - Script or program which sets up the initial values to be used +by this method. Called with first argument as the status area directory +(/var/lib/dpkg), second argument as the name of the method (as in the directory +name), and the third argument as the option (as in the names file). +install - Script/program called when the "install" option of dselect is +run with this method. Same arguments as for setup. +update - Script/program called when the "update" option of dselect is +run. Same arguments as for setup/install. + + +The "dpkg" command-line utility + +"Documented" command-line interfaces + +

+As yet unwritten. You can refer to the other manuals for now. See +. + +Environment variables which dpkg responds to + +

+ +DPKG_NO_TSTP - if set to a non-null value, this variable causes dpkg to +run a child shell process instead of sending itself a SIGTSTP, when the user +selects to background the dpkg process when it asks about conffiles. +SHELL - used to determine which shell to run in the case when +DPKG_NO_TSTP is set. +CC - used as the C compiler to call to determine the target architecture. +The default is "gcc". +PATH - dpkg checks that it can find at least the following files in the +path when it wants to run package installation scripts, and gives an error if +it cannot find all of them:- + + ldconfig + start-stop-daemon + install-info + update-rc.d + + + +Assertions + +

+The dpkg utility itself is required for quite a number of packages, even if +they have been installed with a tool totally separate from dpkg. The reason for +this is that some packages, in their pre-installation scripts, check that your +version of dpkg supports certain features. This was broken from the start, and +it should have actually been a control file header "Dpkg-requires", or similar. +What happens is that the configuration scripts will abort or continue according +to the exit code of a call to dpkg, which will stop them from being wrongly +configured. + +

+These special command-line options, which simply return as true or false are +all prefixed with "--assert-". Here is a list of them (without the prefix):- + + +support-predepends - Returns success or failure according to whether +a version of dpkg which supports predepends properly (1.1.0 or above) is +installed, according to the database. +working-epoch - Return success or failure according to whether a version +of dpkg which supports epochs in version properly (1.4.0.7 or above) is +installed, according to the database. + + +

+Both these options check the status database to see what version of the "dpkg" +package is installed, and check it against a known working version. + +--predep-package + +

+This strange option is described as follows in the source code: + + +/* Print a single package which: + * (a) is the target of one or more relevant predependencies. + * (b) has itself no unsatisfied pre-dependencies. + * If such a package is present output is the Packages file entry, + * which can be massaged as appropriate. + * Exit status: + * 0 = a package printed, OK + * 1 = no suitable package available + * 2 = error + */ + + +

+On further inspection of the source code, it appears that what is does is +this:- + + +Looks at the packages in the database which are selected as "install", +and are installed. +It then looks at the Pre-Depends information for each of these packages +from the available file. When it find a package for which any of the +pre-dependencies are not satisfied, it breaks from the loop through the packages. +It then looks through the unsatisfied pre-dependencies, and looks for +packages which would satisfy this pre-dependency, stopping on the first it +finds. If it finds none, it bombs out with an error. +It then continues this for every dependency of the initial package. + + +Eventually, it writes out the record of all the packages to satisfy the +pre-dependencies. This is used by the disk method to make sure that its +dependency ordering is correct. What happens is that all pre-depending +packages are first installed, then it runs dpkg -iGROEB on the directory, +which installs in the order package files are found. Since pre-dependencies +mean that a package may not even be unpacked unless they are satisfied, it is +necessary to do this (usually, since all the package files are unpacked in one +phase, the configured in another, this is not needed). + +dpkg-deb and .deb file internals + +

+This chapter describes the internals to the "dpkg-deb" tool, which is used +by "dpkg" as a back-end. dpkg-deb has its own tar extraction functions, which +is the source of many problems, as it does not support long filenames, using +extension blocks. + +The .deb archive format + +

+The main principal of the new-format Debian archive (I won't describe the old +format - for that have a look at deb-old.5), is that the archive really is +an archive - as used by "ar" and friends. However, dpkg-deb uses this format +internally, rather than calling "ar". Inside this archive, there are usually +the folowing members:- + + +debian-binary +control.tar.gz +data.tar.gz + + +

+The debian-binary member consists simply of the string "2.0", indicating the +format version. control.tar.gz contains the control files (and scripts), and +the data.tar.gz contains the actual files to populate the filesystem with. +Both tarfiles extract straight into the current directory. Information on the +tar formats can be found in the GNU tar info page. Since dpkg-deb calls +"tar -cf" to build packages, the Debian packages use the GNU extensions. + +The dpkg-deb command-line + +

+dpkg-deb documents itself thoroughly with its '--help' command-line option. +However, I am including a reference to these for completeness. dpkg-deb +supports the following options:- + + +--build (-b) <dir> - builds a .deb archive, takes a directory which +contains all the files as an argument. Note that the directory +<dir>/DEBIAN will be packed separately into the control archive. +--contents (-c) <debfile> - Lists the contents of ther "data.tar.gz" +member. +--control (-e) <debfile> - Extracts the control archive into a +directory called DEBIAN. Alternatively, with another argument, it will extract +it into a different directory. +--info (-I) <debfile> - Prints the contents of the "control" file +in the control archive to stdout. Alternatively, giving it other arguments will +cause it to print the contents of those files instead. +--field (-f) <debfile> <field> ... - Prints any number of +fields from the "control" file. Giving it extra arguments limits the fields it +prints to only those specified. With no command-line arguments other than a +filename, it is equivalent to -I and just the .deb filename. +--extract (-x) <debfile> <dir> - Extracts the data archive +of a debian package under the directory <dir>. +--vextract (-X) <debfile> <dir> - Same as --extract, except +it is equivalent of giving tar the '-v' option - it prints the filenames as +it extracts them. +--fsys-tarfile <debfile> - This option outputs a gunzip'd version +of data.tar.gz to stdout. +--new - sets the archive format to be used to the new Debian format +--old - sets the archive format to be used to the old Debian format +--debug - Tells dpkg-deb to produce debugging output +--nocheck - Tells dpkg-deb not to check the sanity of the control file +--help (-h) - Gives a help message +--version - Shows the version number +--licence/--license (UK/US spellings) - Shows a brief outline of the GPL + + +Internal checks used by dpkg-deb when building packages + +

+Here is a list of the internal checks used by dpkg-deb when building packages. +It is in the order they are done. + + +First, the output Debian archive argument, if it is given, is checked +using stat. If it is a directory, an internal flag is set. This check is only +made if the archive name is specified explicitly on the command-line. If the +argument was not given, the default is the directory name, with ".deb" +appended. +Next, the control file is checked, unless the --nocheck flag was +specified on the command-line. dpkg-deb will bomb out if the second argument +to --build was a directory, and --nocheck was specified. Note that dpkg-deb +will not be able to determine the name of the package in this case. In the +control file, the following things are checked:- + + The package name is checked to see if it contains any invalid + characters (see for this). + The priority field is checked to see if it uses standard values, + and user-defined values are warned against. However, note that this + check is now redundant, since the control file no longer contains + the priority - the changes file now does this. + The control file fields are then checked against the standard + list of fields which appear in control files, and any "user-defined" + fields are reported as warnings. + dpkg-deb then checks that the control file contains a valid + version number. + +After this, in the case where a directory was specified to build the +.deb file in, the filename is created as "directory/pkg_ver.deb" or +"directory/pkg_ver_arch.deb", depending on whether the control file contains +an architecture field. +Next, dpkg-deb checks for the <dir>/DEBIAN directory. It complains +if it doesn't exist, or if it has permissions < 0755, or > 0775. +It then checks that all the files in this subdir are either symlinks +or plain files, and have permissions between 0555 and 0775. +The conffiles file is then checked to see if the filenames are too +long. Warnings are produced for each that is. After this, it checks that +the package provides initial copies of each of these conffiles, and that +they are all plain files. + + +dpkg internals + +

+This chapter describes the internals of dpkg itself. Although the low-level +formats are quite simple, what dpkg does in certain cases often does not +make sense. + +Updates + +

+This describes the /var/lib/dpkg/updates directory. The function of this +directory is somewhat strange, and seems only to be used internally. A function +called cleanupdates is called whenever the database is scanned. This function +in turn uses , to sort the files in this +directory. Files who names do not consist entirely of digits are discarded. +dpkg also causes a fatal error if any of the filenames are different lengths. + +

+After having scanned the directory, dpkg in turn parses each file the same way +it parses the status file (they are sorted by the scandir to be in numerical +order). After having done this, it then writes the status information back +to the "status" file, and removes all the "updates" files. + +

+These files are created internally by dpkg's "checkpoint" function, and are +cleaned up when dpkg exits cleanly. + +

+Juding by the use of the updates directory I would call it a Journal. Inorder +to effeciently ensure the complete integrity of the status file dpkg will +"checkpoint" or journal all of it's activities in the updates directory. By +merging the contents of the updates directory (in order!!) against the +original status file it can get the precise current state of the system, +even in the event of a system failure while dpkg is running. + +

+The other option would be to sync-rewrite the status file after each +operation, which would kill performance. + +

+It is very important that any program that uses the status file abort if +the updates directory is not empty! The user should be informed to run dpkg +manually (what options though??) to correct the situation. + +What happens when dpkg reads the database + +

+First, the status file is read. This gives dpkg an initial idea of the packages +that are there. Next, the updates files are read in, overriding the status +file, and if necessary, the status file is re-written, and updates files are +removed. Finally, the available file is read. The available file is read +with flags which preclude dpkg from updating any status information from it, +though - installed version, etc., and is also told to record that the packages +it reads this time are available, not installed. + +

+More information on updates is given above. + +How dpkg compares version numbers + +

+Version numbers consist of three parts: the epoch, the upstream version, and +the Debian revision. Dpkg compares these parts in that order. If the epochs +are different, it returns immediately, and so on. + +

+However, the important part is how it compares the versions which are +essentially stored as just strings. These are compared in two distinct parts: +those consisting of numerical characters (which are evaluated, and then +compared), and those consisting of other characters. When comparing +non-numerical parts, they are compared as the character values (ASCII), but +non-alphabetical characters are considered "greater than" alphabetical ones. +Also note that longer strings (after excluding differences where numerical +values are equal) are considered "greater than" shorter ones. + +

+Here are a few examples of how these rules apply:- + + +15 > 10 +0010 == 10 + +d.r > dsr +32.d.r == 0032.d.r +d.rnr < d.rnrn + + + diff --git a/doc/es/.cvsignore b/doc/es/.cvsignore new file mode 100644 index 0000000..ce36346 --- /dev/null +++ b/doc/es/.cvsignore @@ -0,0 +1,14 @@ +apt-cache.es.8 +apt-get.es.8 +apt-cdrom.es.8 +apt.conf.es.5 +sources.list.es.5 +apt-config.es.8 +apt-sortpkgs.es.1 +apt-ftparchive.es.1 +manpage.links +manpage.refs +manpage.log +apt_preferences.es.5 +apt-extracttemplates.es.1 +vendors.list.es.5 diff --git a/doc/es/apt-cache.es.8 b/doc/es/apt-cache.es.8 new file mode 100644 index 0000000..05a1f4b --- /dev/null +++ b/doc/es/apt-cache.es.8 @@ -0,0 +1,352 @@ +.\" This manpage has been automatically generated by docbook2man +.\" from a DocBook document. This tool can be found at: +.\" +.\" Please send any bug reports, improvements, comments, patches, +.\" etc. to Steve Cheng . +.TH "APT-CACHE" "8" "04 December 2006" "" "" + +.SH NAME +apt-cache \- utilidad de manejo de paquetes APT -- manipulador de caché +.SH SYNOPSIS + +\fBapt-cache\fR [ \fB-hvsn\fR ] [ \fB-o=\fIcadena de configuración\fB\fR ] [ \fB-c=\fIfichero\fB\fR ] { \fBadd \fIfichero\fB\fI ...\fB\fR | \fBgencaches\fR | \fBshowpkg \fIpaquete\fB\fI ...\fB\fR | \fBshowsrc \fIpaquete\fB\fI ...\fB\fR | \fBstats\fR | \fBdump\fR | \fBdumpavail\fR | \fBunmet\fR | \fBsearch \fIexpresión regular\fB\fR | \fBshow \fIpaquete\fB\fI ...\fB\fR | \fBdepends \fIpaquete\fB\fI ...\fB\fR | \fBrdepends \fIpkg\fB\fI ...\fB\fR | \fBpkgnames \fIprefijo\fB\fR | \fBdotty \fIpaquete\fB\fI ...\fB\fR | \fBpolicy \fIpaquetes\fB\fI ...\fB\fR | \fBmadison \fIpaquetes\fB\fI ...\fB\fR } + +.SH "DESCRIPCIóN" +.PP +\fBapt-cache\fR realiza una serie de operaciones sobre la caché de +paquetes de APT. \fBapt-cache\fR no modifica el estado del sistema +pero proporciona operaciones de búsqueda en la información de los +paquetes, de las cuales se puede obtener información muy útil. +.PP +A menos que se proporcionen las opciones \fB-h\fR, o \fB--help\fR, se +debe de proporcionar una de las siguientes órdenes: +.TP +\fBadd \fIfichero(s)\fB\fR +add añade el nombre del paquete a los ficheros de +índices de la caché de paquetes. Sólo para depuración. +.TP +\fBgencaches\fR +gencaches realiza la misma operación que +\fBapt-get check\fR\&. Construye las cachés de paquetes fuente y de +paquetes binarios, usando la lista de recursos en \fB\fIsources.list\fB\fR(5) +junto con la información en \fI/var/lib/dpkg/status\fR\&. +.TP +\fBshowpkg \fIpaquete(s)\fB\fR +showpkg muestra información acerca de los paquetes +listados en la línea de órdenes. Los argumentos restantes se +consideran nombres de paquetes. Por cada paquete se mostrarán las +versiones disponibles y los paquetes que dependen de él (reverse +dependencies), así como los paquetes de que depende (forward dependencies), +(los cuales deben de ser instalados para instalar el paquete). +Por ejemplo, \fBapt-cache showpkg libreadline2\fR mostrará algo +similar a lo siguiente: +.PP + +.nf +Package: libreadline2 +Versions: 2.1-12(/var/state/apt/lists/foo_Packages), +Reverse Depends: + libreadlineg2,libreadline2 + libreadline2-altdev,libreadline2 +Dependencies: +2.1-12 - libc5 (2 5.4.0-0) ncurses3.0 (0 (null)) +Provides: +2.1-12 - +Reverse Provides: +.fi + +Esta información nos indica que la versión 2.1-12 de libreadline2, +depende de libc5 y ncurses3.0, ambos programas deben instalarse para +que libreadline2 pueda funcionar. Además, libreadlineg2 y +libreadline2-altdev dependen de libreadline2. Es decir, si se instala +libreadline2, también se instalarán libc5 y ncurses3.0 (y ldso), pero +libreadlineg2 y libreadline2-altdev no tienen que instalarse. +Para una información más especifica acerca del significado de la salida +consulte el código fuente de apt. +.TP +\fBstats\fR +stats muestra algunas estadísticas acerca de la caché. +No necesita ningún argumento adicional. Las estadísticas que +muestra son: +.RS +.TP 0.2i +\(bu +Total package names es el número de paquetes encontrados +en la caché. +.TP 0.2i +\(bu +Normal packages es el número de paquetes normales. Estos +paquetes tienen una correspondencia unívoca entre sus nombres y +los nombres que usan otros paquetes al listarlos en sus +dependencias. La mayoría de los paquetes pertenecen a este grupo. +.TP 0.2i +\(bu +Pure virtual packages es el número de paquetes que +existen sólo como nombre de paquete virtual, esto es, paquetes +que sólo "proporcionan" el nombre del paquete virtual, y no hay +ningún paquete más que use realmente el nombre. Por ejemplo, +"mail-transport-agent" en un sistema Debian GNU/Linux es un +paquete virtual puro, varios paquetes proporcionan +"mail-transport-agent", pero no hay ningún paquete que se llame +"mail-transport-agent". +.TP 0.2i +\(bu +Single virtual packages es el número de paquetes que +sólo tiene un paquete real que los proporcione. Por ejemplo, en +un sistema Debian GNU/Linux, "X11-text-viewer" es un paquete +virtual, pero sólo un paquete, xless, proporciona "X11-text-viewer". +.TP 0.2i +\(bu +Mixed virtual packages es el número de paquetes que o +bien proporcionan un determinado paquete virtual o tienen el +mismo nombre como paquete virtual y como paquete real, en un +sistema Debian GNU/Linux, "debconf" es a la vez un paquete real, +y es proporcionado por el paquete debconf-tiny. +.TP 0.2i +\(bu +Missing es el número de nombres de paquetes a los que se hace +referencia como dependencia pero que no son proporcionado por ningún +paquete. Estos paquetes probablemente signifiquen que no se tiene +acceso al total de la distribución, o bien que algún paquete (real o +virtual) ha sido eliminado de la distribución. Normalmente se hace +referencia a ellos desde los campos de conflictos de la descripción +de los paquetes. +.TP 0.2i +\(bu +Total distinct versions es el número de versiones de paquetes +encontrados en la caché, por lo tanto el número es al menos igual al +número total de paquetes. Si más de una distribución ("estable" +e "inestable", por ejemplo), se encuentra en la caché al mismo +tiempo, este valor puede ser considerablemente mayor que el +número total de paquetes. +.TP 0.2i +\(bu +Total dependencies es el número total de relaciones de +dependencia necesitadas por todos los paquetes de la caché. +.RE +.TP +\fBshowsrc \fIpaquete(s)\fB\fR +showsrc muestra todos los campos de los paquetes fuente que +coinciden con los nombres de los paquetes suministrados. Se muestran +todas las versiones, así como los paquetes que son binarios. +.TP +\fBdump\fR +dump muestra una pequeña lista de todos los paquetes en la +caché. Fundamentalmente para depuración. +.TP +\fBdumpavail\fR +dumpavail envía a la salida estándar una lista de los paquetes +disponibles. Esta lista es apropiada para su uso con \fBdpkg\fR(8) y es +usada por el método \fBdselect\fR(8)\&. +.TP +\fBunmet\fR +unmet muestra un resumen de todas las dependencias no +satisfechas en la caché de paquetes. +.TP +\fBshow \fIpaquete(s)\fB\fR +show realiza una función similar a \fBdpkg +--print-avail\fR, muestra los datos de los paquetes listados. +.TP +\fBsearch \fIregex [regex ...]\fB\fR +search realiza una búsqueda de la expresión regular +dada en todo el texto de todos los paquetes disponibles. Busca la +expresión regular tanto en el nombre de los paquetes como en +su descripción y muestra el nombre del paquete y una pequeña +descripción de este. Si se proporciona el argumento \fB--full\fR el +resultado es el igual al que produce show para cada paquete en +concreto, pero si se proporciona el argumento \fB--names-only\fR +entonces sólo se busca en el nombre de los paquetes. + +Se pueden especificar argumentos separados para buscar una cadena de +caracteres que los contenga todos al mismo tiempo. +.TP +\fBdepends \fIpaquete(s)\fB\fR +depends muestra una lista de todas la dependencias de +un paquete y de todos los paquetes que la pueden satisfacer. +.TP +\fBrdepends \fIpaquetes(s)\fB\fR +rdepends muestrade las dependencias inversas de un paquete. +.TP +\fBpkgnames \fI[ prefijo ]\fB\fR +Esta orden muestra el nombre de todos los paquetes instalados en +el sistema. El argumento opcional es un prefijo por el cual se +filtraría la lista de nombres. La salida es apropiada para uso +junto con la función de auto-completado mediante tabulador en un +intérprete de órdenes y se genera de forma extremadamente +rápida. Su mejor uso es con la opción \fB--generate\fR\&. +.TP +\fBdotty \fIpaquete(s)\fB\fR +dotty toma una lista de paquetes de la línea de ordenes +y genera una salida apropiada para dotty, del paquete +GraphViz \&. +El resultado será una serie de nodos y uniones representando las +relaciones entre paquetes. Por omisión los paquetes dados +mostrarán todas sus dependencias, lo que puede producir una +salida muy grande. Esto puede ser deshabilitado activando la +opción APT::Cache::GivenOnly\&. + +Los nodos resultantes tendrán varias formas, los paquetes normales son +cajas, pure provides son triángulos, mixed provides son +diamantes, los paquetes no encontrados son hexágonos. Las cajas naranjas +significan recursion was stopped [leaf packages], líneas azules +son predependencias, líneas verdes son conflictos. + +Tenga cuidado, dotty no puede dibujar una gran cantidad de paquetes. +.TP +\fBpolicy \fI[ paquete(s) ]\fB\fR +policy está pensada para ayudar a depurar +asuntos relacionado con el archivo de preferencias. Sin +argumentos mostrará la prioridad de cada fuente. De lo +contrario muestra una información detallada acerca de la +prioridad de selección de cada nombre de paquete. +.TP +\fBmadison \fI[ paquete(s) ]\fB\fR +La orden madison de apt-cache intenta imitar el formato +de salida y parte de la funcionalidad de la herramienta para el manejo del +archivo de Debian, madison\&. Muestra las versiones disponibles de +un determinado paquete en un formato tabular. A diferencia del +madison original, sólo puede mostrar información para la +arquitectura para la que APT obtuvo las listas de paquetes +(APT::Architecture). +.SH "OPCIONES" +.PP +Todas las opciones de línea de órdenes pueden ser especificadas +mediante el fichero de configuración, en la descripción de cada opción +se indica la opción de configuración que hay que modificar. Para +opciones booleanas puedes modificar el fichero de configuración usando +cosas parecidas a \fB-f-\fR,\fB--no-f\fR, \fB-f=no\fR y alguna que +otra variante. +.TP +\fB-p\fR +.TP +\fB--pkg-cache\fR +Selecciona el fichero para guardar la caché de paquetes. La caché de +paquetes es la caché primaria usada para todas las operaciones. +Opción de configuración: Dir::Cache::pkgcache\&. +.TP +\fB-s\fR +.TP +\fB--src-cache\fR +Selecciona el fichero para guardar la caché de fuente. Sólo +gencaches usa esta caché y guarda una versión meticulosamente +analizada de la información de cada paquete de las fuentes +remotas. Cuando se construye la caché de paquetes la caché +fuente se usa para evitar analizar todos los ficheros de paquetes. +Opción de configuración: Dir::Cache::srcpkgcache\&. +.TP +\fB-q\fR +.TP +\fB--quiet\fR +Silencioso, produce una salida adecuada para su almacenamiento, omitiendo los +indicadores de progreso. Más q's producirán una salida más silenciosa, +hasta un máximo de 2. Además es posible usar \fB-q=#\fR para +ajustar el nivel de silenciosidad, ignorando el fichero de +configuración. Opción de configuración: quiet\&. +.TP +\fB-i\fR +.TP +\fB--important\fR +Muestra sólo las dependencias importantes, se usa junto con +unmet\&. Hace que sólo se muestren las dependencias y predependencias. +Opción de configuración: APT::Cache::Important\&. +.TP +\fB-f\fR +.TP +\fB--full\fR +Muestra todos los campos de información cuando se busque. Opción de +configuración: APT::Cache::ShowFull\&. +.TP +\fB-a\fR +.TP +\fB--all-versions\fR +Muestra la descripción completa de todos las versiones disponibles. Es el +comportamiento predeterminado, para desactivarlo use +\fB--no-all-versions\fR\&. Si se especifica \fB--no-all-versions\fR, +sólo se muestra la versión candidata (la que se seleccionaría para +instalar). Esta opción sólo es aplicable a la orden show\&. Opción +de configuración: APT::Cache::AllVersions\&. +.TP +\fB-g\fR +.TP +\fB--generate\fR +Realiza una regeneración completa de la caché de paquetes en vez de +usarla tal y como está. Esta es la opción por omisión, para +desactivarlo use \fB--no-generate\fR\&. Opción de +configuración: APT::Cache::Generate\&. +.TP +\fB--names-only\fR +.TP +\fB-n\fR +Sólo busca en los nombres de paquetes, no en las descripciones largas. +Opción de configuración: APT::Cache::NamesOnly\&. +.TP +\fB--all-names\fR +Hace que pkgnames muestre todos los nombres, +incluyendo los paquetes virtuales y las dependencias insatisfechas. +Opción de configuración: APT::Cache::AllNames\&. +.TP +\fB--recurse\fR +Hace depends y rdepends recursivos de modo que todos +los paquetes mencionados se muestran sólo una vez. Opción de configuración +APT::Cache::RecurseDepends\&. +.TP +\fB--installed\fR +Limita la salida de depends y rdepends a paquetes +instalados. Opción de configuración: APT::Cache::Installed\&. +.TP +\fB-h\fR +.TP +\fB--help\fR +Muestra un breve resumen del modo de uso. +.TP +\fB-v\fR +.TP +\fB--version\fR +Muestra la versión del programa. +.TP +\fB-c\fR +.TP +\fB--config-file\fR +Especifica el fichero de configuración a usar. +El programa leerá el fichero de configuración por omisión y luego +este otro. Lea \fB\fIapt.conf\fB\fR(5) para más información acerca de la sintaxis. +.TP +\fB-o\fR +.TP +\fB--option\fR +Establece una opción de configuración. La sintaxis es \fB-o +Foo::Bar=bar\fR\&. +.SH "FICHEROS" +.TP +\fB\fI/etc/apt/sources.list\fB\fR +Fichero que contiene los sitios de donde se obtienen los paquetes. +Opción de configuración: Dir::Etc::SourceList\&. +.TP +\fB\fI/var/lib/apt/lists/\fB\fR +Directorio donde se almacena la información del estado de cada paquete +fuente por cada sitio especificado \fB\fIsources.list\fB\fR(5) +Opción de configuración: Dir::State::Lists\&. +.TP +\fB\fI/var/lib/apt/lists/partial/\fB\fR +Directorio de almacenamiento para la información de estado en +tránsito. Opción de Configuración: Dir::State::Lists +(lo que implica que no estarán completos). +.SH "VEA ADEMáS" +.PP +\fB\fIapt.conf\fB\fR(5), \fB\fIsources.list\fB\fR(5), \fBapt-get\fR(8) +.SH "DIAGNóSTICOS" +.PP +\fBapt-cache\fR devuelve cero en operaciones satisfactorias, 100 en caso +de error. +.SH "FALLOS" +.PP +Vea la página de fallos de APT \&. +Si desea avisar de un fallo en APT, vea +\fI/usr/share/doc/debian/bug-reporting.txt\fR o la orden \fBreportbug\fR(1)\&. +.SH "AUTOR" +.PP +APT fue escrito por el equipo de APT \&. +.SH "TRADUCIóN" +.PP +Página del manual traducida por Rubén Porras , +revisada por Gustavo Saldumbide \&. diff --git a/doc/es/apt-cache.es.8.sgml b/doc/es/apt-cache.es.8.sgml new file mode 100644 index 0000000..3ed0d27 --- /dev/null +++ b/doc/es/apt-cache.es.8.sgml @@ -0,0 +1,454 @@ + + +%aptent; + +]> + + + + + &apt-docinfo; + + + apt-cache + 8 + + + + + apt-cache + utilidad de manejo de paquetes APT -- manipulador de caché + + + + + + apt-cache + + + + + add fichero + gencaches + showpkg paquete + showsrc paquete + stats + dump + dumpavail + unmet + search expresión regular + show paquete + depends paquete + rdepends pkg + pkgnames prefijo + dotty paquete + policy paquetes + madison paquetes + + + + + Descripción</> + <para> + <command/apt-cache/ realiza una serie de operaciones sobre la caché de + paquetes de APT. <command/apt-cache/ no modifica el estado del sistema + pero proporciona operaciones de búsqueda en la información de los + paquetes, de las cuales se puede obtener información muy útil. + + <para> + A menos que se proporcionen las opciones <option/-h/, o <option/--help/, se + debe de proporcionar una de las siguientes órdenes: + + <VariableList> + <VarListEntry><Term>add <replaceable/fichero(s)/</Term> + <ListItem><Para> + <literal/add/ añade el nombre del paquete a los ficheros de + índices de la caché de paquetes. Sólo para depuración. + </VarListEntry> + + <VarListEntry><Term>gencaches</Term> + <ListItem><Para> + <literal/gencaches/ realiza la misma operación que + <command/apt-get check/. Construye las cachés de paquetes fuente y de + paquetes binarios, usando la lista de recursos en &sources-list; + junto con la información en <filename>/var/lib/dpkg/status</>. + </VarListEntry> + + <VarListEntry><Term>showpkg <replaceable/paquete(s)/</Term> + <ListItem><Para> + <literal/showpkg/ muestra información acerca de los paquetes + listados en la línea de órdenes. Los argumentos restantes se + consideran nombres de paquetes. Por cada paquete se mostrarán las + versiones disponibles y los paquetes que dependen de él (reverse + dependencies), así como los paquetes de que depende (forward dependencies), + (los cuales deben de ser instalados para instalar el paquete). + Por ejemplo, <command>apt-cache showpkg libreadline2</> mostrará algo + similar a lo siguiente: + +<informalexample><programlisting> +Package: libreadline2 +Versions: 2.1-12(/var/state/apt/lists/foo_Packages), +Reverse Depends: + libreadlineg2,libreadline2 + libreadline2-altdev,libreadline2 +Dependencies: +2.1-12 - libc5 (2 5.4.0-0) ncurses3.0 (0 (null)) +Provides: +2.1-12 - +Reverse Provides: +</programlisting></informalexample> + + <para> + Esta información nos indica que la versión 2.1-12 de libreadline2, + depende de libc5 y ncurses3.0, ambos programas deben instalarse para + que libreadline2 pueda funcionar. Además, libreadlineg2 y + libreadline2-altdev dependen de libreadline2. Es decir, si se instala + libreadline2, también se instalarán libc5 y ncurses3.0 (y ldso), pero + libreadlineg2 y libreadline2-altdev no tienen que instalarse. + Para una información más especifica acerca del significado de la salida + consulte el código fuente de apt. + </VarListEntry> + + <VarListEntry><Term>stats</Term> + <ListItem><Para> + <literal/stats/ muestra algunas estadísticas acerca de la caché. + No necesita ningún argumento adicional. Las estadísticas que + muestra son: + <itemizedlist> + <listitem><para> + <literal/Total package names/ es el número de paquetes encontrados + en la caché. + </listitem> + + <listitem><para> + <literal/Normal packages/ es el número de paquetes normales. Estos + paquetes tienen una correspondencia unívoca entre sus nombres y + los nombres que usan otros paquetes al listarlos en sus + dependencias. La mayoría de los paquetes pertenecen a este grupo. + </listitem> + + <listitem><para> + <literal/Pure virtual packages/ es el número de paquetes que + existen sólo como nombre de paquete virtual, esto es, paquetes + que sólo "proporcionan" el nombre del paquete virtual, y no hay + ningún paquete más que use realmente el nombre. Por ejemplo, + "mail-transport-agent" en un sistema Debian GNU/Linux es un + paquete virtual puro, varios paquetes proporcionan + "mail-transport-agent", pero no hay ningún paquete que se llame + "mail-transport-agent". + </listitem> + + <listitem><para> + <literal/Single virtual packages/ es el número de paquetes que + sólo tiene un paquete real que los proporcione. Por ejemplo, en + un sistema Debian GNU/Linux, "X11-text-viewer" es un paquete + virtual, pero sólo un paquete, xless, proporciona "X11-text-viewer". + </listitem> + + <listitem><para> + <literal/Mixed virtual packages/ es el número de paquetes que o + bien proporcionan un determinado paquete virtual o tienen el + mismo nombre como paquete virtual y como paquete real, en un + sistema Debian GNU/Linux, "debconf" es a la vez un paquete real, + y es proporcionado por el paquete debconf-tiny. + </listitem> + + <listitem><para> + <literal/Missing/ es el número de nombres de paquetes a los que se hace + referencia como dependencia pero que no son proporcionado por ningún + paquete. Estos paquetes probablemente signifiquen que no se tiene + acceso al total de la distribución, o bien que algún paquete (real o + virtual) ha sido eliminado de la distribución. Normalmente se hace + referencia a ellos desde los campos de conflictos de la descripción + de los paquetes. + </listitem> + + <listitem><para> + <literal/Total distinct versions/ es el número de versiones de paquetes + encontrados en la caché, por lo tanto el número es al menos igual al + número total de paquetes. Si más de una distribución ("estable" + e "inestable", por ejemplo), se encuentra en la caché al mismo + tiempo, este valor puede ser considerablemente mayor que el + número total de paquetes. + </listitem> + + <listitem><para> + <literal/Total dependencies/ es el número total de relaciones de + dependencia necesitadas por todos los paquetes de la caché. + </listitem> + </itemizedlist> + </VarListEntry> + + <VarListEntry><Term>showsrc <replaceable/paquete(s)/</Term> + <ListItem><Para> + <literal/showsrc/ muestra todos los campos de los paquetes fuente que + coinciden con los nombres de los paquetes suministrados. Se muestran + todas las versiones, así como los paquetes que son binarios. + </VarListEntry> + + <VarListEntry><Term>dump</Term> + <ListItem><Para> + <literal/dump/ muestra una pequeña lista de todos los paquetes en la + caché. Fundamentalmente para depuración. + </VarListEntry> + + <VarListEntry><Term>dumpavail</Term> + <ListItem><Para> + <literal/dumpavail/ envía a la salida estándar una lista de los paquetes + disponibles. Esta lista es apropiada para su uso con &dpkg; y es + usada por el método &dselect;. + </VarListEntry> + + <VarListEntry><Term>unmet</Term> + <ListItem><Para> + <literal/unmet/ muestra un resumen de todas las dependencias no + satisfechas en la caché de paquetes. + </VarListEntry> + + <VarListEntry><Term>show <replaceable/paquete(s)/</Term> + <ListItem><Para> + <literal/show/ realiza una función similar a <command>dpkg + --print-avail</>, muestra los datos de los paquetes listados. + </VarListEntry> + + <VarListEntry><Term>search <replaceable/regex [regex ...]/</Term> + <ListItem><Para> + <literal/search/ realiza una búsqueda de la expresión regular + dada en todo el texto de todos los paquetes disponibles. Busca la + expresión regular tanto en el nombre de los paquetes como en + su descripción y muestra el nombre del paquete y una pequeña + descripción de este. Si se proporciona el argumento <option/--full/ el + resultado es el igual al que produce <literal/show/ para cada paquete en + concreto, pero si se proporciona el argumento <option/--names-only/ + entonces sólo se busca en el nombre de los paquetes. + <para> + + Se pueden especificar argumentos separados para buscar una cadena de + caracteres que los contenga todos al mismo tiempo. + </VarListEntry> + + <VarListEntry><Term>depends <replaceable/paquete(s)/</Term> + <ListItem><Para> + <literal/depends/ muestra una lista de todas la dependencias de + un paquete y de todos los paquetes que la pueden satisfacer. + </VarListEntry> + + <VarListEntry><Term>rdepends <replaceable/paquetes(s)/</Term> + <ListItem><Para> + <literal/rdepends/ muestrade las dependencias inversas de un paquete. + </VarListEntry> + + <VarListEntry><Term>pkgnames <replaceable/[ prefijo ]/</Term> + <ListItem><Para> + Esta orden muestra el nombre de todos los paquetes instalados en + el sistema. El argumento opcional es un prefijo por el cual se + filtraría la lista de nombres. La salida es apropiada para uso + junto con la función de auto-completado mediante tabulador en un + intérprete de órdenes y se genera de forma extremadamente + rápida. Su mejor uso es con la opción <option/--generate/. + </VarListEntry> + + <VarListEntry><Term>dotty <replaceable/paquete(s)/</Term> + <ListItem><Para> + <literal/dotty/ toma una lista de paquetes de la línea de ordenes + y genera una salida apropiada para dotty, del paquete + <ulink url="http://www.research.att.com/sw/tools/graphviz/">GraphViz</>. + El resultado será una serie de nodos y uniones representando las + relaciones entre paquetes. Por omisión los paquetes dados + mostrarán todas sus dependencias, lo que puede producir una + salida muy grande. Esto puede ser deshabilitado activando la + opción <literal>APT::Cache::GivenOnly</>. + + <para> + Los nodos resultantes tendrán varias formas, los paquetes normales son + cajas, pure provides son triángulos, mixed provides son + diamantes, los paquetes no encontrados son hexágonos. Las cajas naranjas + significan recursion was stopped [leaf packages], líneas azules + son predependencias, líneas verdes son conflictos. + + <para> + Tenga cuidado, dotty no puede dibujar una gran cantidad de paquetes. + + <VarListEntry><Term>policy <replaceable/[ paquete(s) ]/</Term> + <ListItem><Para> + <literal/policy/ está pensada para ayudar a depurar + asuntos relacionado con el archivo de preferencias. Sin + argumentos mostrará la prioridad de cada fuente. De lo + contrario muestra una información detallada acerca de la + prioridad de selección de cada nombre de paquete. + </VarListEntry> + + <VarListEntry><Term>madison <replaceable/[ paquete(s) ]/</Term> + <ListItem><Para> + La orden <literal/madison/ de <literal/apt-cache/ intenta imitar el formato + de salida y parte de la funcionalidad de la herramienta para el manejo del + archivo de Debian, <literal/madison/. Muestra las versiones disponibles de + un determinado paquete en un formato tabular. A diferencia del + <literal/madison/ original, sólo puede mostrar información para la + arquitectura para la que APT obtuvo las listas de paquetes + (<literal/APT::Architecture/). + </VarListEntry> + </VariableList> + </RefSect1> + + <RefSect1><Title>Opciones</> + &apt-cmdblurb; + + <VariableList> + <VarListEntry><term><option/-p/</><term><option/--pkg-cache/</> + <ListItem><Para> + Selecciona el fichero para guardar la caché de paquetes. La caché de + paquetes es la caché primaria usada para todas las operaciones. + Opción de configuración: <literal/Dir::Cache::pkgcache/. + </VarListEntry> + + <VarListEntry><term><option/-s/</><term><option/--src-cache/</> + <ListItem><Para> + Selecciona el fichero para guardar la caché de fuente. Sólo + <literal/gencaches/ usa esta caché y guarda una versión meticulosamente + analizada de la información de cada paquete de las fuentes + remotas. Cuando se construye la caché de paquetes la caché + fuente se usa para evitar analizar todos los ficheros de paquetes. + Opción de configuración: <literal/Dir::Cache::srcpkgcache/. + </VarListEntry> + + <VarListEntry><term><option/-q/</><term><option/--quiet/</> + <ListItem><Para> + Silencioso, produce una salida adecuada para su almacenamiento, omitiendo los + indicadores de progreso. Más q's producirán una salida más silenciosa, + hasta un máximo de 2. Además es posible usar <option/-q=#/ para + ajustar el nivel de silenciosidad, ignorando el fichero de + configuración. Opción de configuración: <literal/quiet/. + </VarListEntry> + + <VarListEntry><term><option/-i/</><term><option/--important/</> + <ListItem><Para> + Muestra sólo las dependencias importantes, se usa junto con + <literal/unmet/. Hace que sólo se muestren las dependencias y predependencias. + Opción de configuración: <literal/APT::Cache::Important/. + </VarListEntry> + + <VarListEntry><term><option/-f/</><term><option/--full/</> + <ListItem><Para> + Muestra todos los campos de información cuando se busque. Opción de + configuración: <literal/APT::Cache::ShowFull/. + </VarListEntry> + + <VarListEntry><term><option/-a/</><term><option/--all-versions/</> + <ListItem><Para> + Muestra la descripción completa de todos las versiones disponibles. Es el + comportamiento predeterminado, para desactivarlo use + <option/--no-all-versions/. Si se especifica <option/--no-all-versions/, + sólo se muestra la versión candidata (la que se seleccionaría para + instalar). Esta opción sólo es aplicable a la orden <literal/show/. Opción + de configuración: <literal/APT::Cache::AllVersions/. + </VarListEntry> + + <VarListEntry><term><option/-g/</><term><option/--generate/</> + <ListItem><Para> + Realiza una regeneración completa de la caché de paquetes en vez de + usarla tal y como está. Esta es la opción por omisión, para + desactivarlo use <option/--no-generate/. Opción de + configuración: <literal/APT::Cache::Generate/. + </VarListEntry> + + <VarListEntry><term><option/--names-only/</><term><option/-n/</> + <ListItem><Para> + Sólo busca en los nombres de paquetes, no en las descripciones largas. + Opción de configuración: <literal/APT::Cache::NamesOnly/. + </VarListEntry> + + <VarListEntry><term><option/--all-names/</> + <ListItem><Para> + Hace que <literal/pkgnames/ muestre todos los nombres, + incluyendo los paquetes virtuales y las dependencias insatisfechas. + Opción de configuración: <literal/APT::Cache::AllNames/. + </VarListEntry> + + <VarListEntry><term><option/--recurse/</> + <ListItem><Para> + Hace <literal/depends/ y <literal/rdepends/ recursivos de modo que todos + los paquetes mencionados se muestran sólo una vez. Opción de configuración + <literal/APT::Cache::RecurseDepends/. + </VarListEntry> + + <VarListEntry><term><option/--installed/</> + <ListItem><Para> + Limita la salida de <literal/depends/ y <literal/rdepends/ a paquetes + instalados. Opción de configuración: <literal/APT::Cache::Installed/. + </VarListEntry> + + + &apt-commonoptions; + + </VariableList> + </RefSect1> + + <RefSect1><Title>Ficheros</> + <variablelist> + <VarListEntry><term><filename>/etc/apt/sources.list</></term> + <ListItem><Para> + Fichero que contiene los sitios de donde se obtienen los paquetes. + Opción de configuración: <literal/Dir::Etc::SourceList/. + </VarListEntry> + + <VarListEntry><term><filename>&statedir;/lists/</></term> + <ListItem><Para> + Directorio donde se almacena la información del estado de cada paquete + fuente por cada sitio especificado &sources-list; + Opción de configuración: <literal/Dir::State::Lists/. + </VarListEntry> + + <VarListEntry><term><filename>&statedir;/lists/partial/</></term> + <ListItem><Para> + Directorio de almacenamiento para la información de estado en + tránsito. Opción de Configuración: <literal/Dir::State::Lists/ + (lo que implica que no estarán completos). + </VarListEntry> + </variablelist> + </RefSect1> + + <RefSect1><Title>Vea además</> + <para> + &apt-conf;, &sources-list;, &apt-get; + </RefSect1> + + <RefSect1><Title>Diagnósticos</> + <para> + <command/apt-cache/ devuelve cero en operaciones satisfactorias, 100 en caso + de error. + </RefSect1> + + &manbugs; + &manauthor; + <RefSect1><Title>Tradución</> + <para> + Página del manual traducida por Rubén Porras <email>nahoo@inicia.es</>, + revisada por Gustavo Saldumbide <email>gsal@adinet.com.uy</>. + </RefSect1> +</refentry> +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:nil +sgml-shorttag:t +sgml-namecase-general:t +sgml-general-insert-case:lower +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +sgml-parent-document:nil +sgml-exposed-tags:nil +sgml-local-catalogs:("/usr/lib/sgml/catalog") +sgml-local-ecat-files:nil +End: +--> diff --git a/doc/es/apt-cdrom.es.8 b/doc/es/apt-cdrom.es.8 new file mode 100644 index 0000000..dbf7b68 --- /dev/null +++ b/doc/es/apt-cdrom.es.8 @@ -0,0 +1,143 @@ +.\" This manpage has been automatically generated by docbook2man +.\" from a DocBook document. This tool can be found at: +.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/> +.\" Please send any bug reports, improvements, comments, patches, +.\" etc. to Steve Cheng <steve@ggi-project.org>. +.TH "APT-CDROM" "8" "04 December 2006" "" "" + +.SH NAME +apt-cdrom \- utilidad APT para administración del CDROM +.SH SYNOPSIS + +\fBapt-cdrom\fR [ \fB-hvrmfan\fR ] [ \fB-d=\fIcdrom punto_de_montaje\fB\fR ] [ \fB-o=\fIcadena de configuración\fB\fR ] [ \fB-c=\fIfichero\fB\fR ] { \fBadd\fR | \fBident\fR } + +.SH "DESCRIPCIóN" +.PP +\fBapt-cdrom\fR se usa para añadir un CDROM nuevo a la lista de recursos +disponibles de APT. \fBapt-cdrom\fR determina la estructura del disco, +corrige varios errores de grabación posibles y verifica los ficheros con +los índices. +.PP +Es necesario usar \fBapt-cdrom\fR para añadir CDs al sistema APT, +no puede hacerse manualmente. Además cada unidad de un conjunto de discos +debe de ser analizada por separado para detectar los posibles errores de +grabación. +.PP +A menos que se de una de las opciones \fB-h\fR, o \fB--help\fR +una de las siguientes órdenes deben de estar presentes. +.TP +\fBadd\fR +add para añadir un disco nuevo a la lista de recursos. +Desmontará el dispositivo de CDROM, pedirá que se inserte un disco y +procederá a analizar y copiar los ficheros de índices. Si el disco +no contiene el directorio apropiado \fI\&.disk/\fR se mostrará un +mensaje descriptivo. + +APT usa un identificador de CDROM para reconocer que disco está actualmente +en la unidad lectora y mantiene una lista de estos identificadores en +\fI/var/lib/apt/cdroms.list\fR +.TP +\fBident\fR +Una herramienta de depuración para informar de identidad del disco actual +así como del nombre guardado. +.SH "OPCIONES" +.PP +Todas las opciones de línea de órdenes pueden ser especificadas +mediante el fichero de configuración, en la descripción de cada opción +se indica la opción de configuración que hay que modificar. Para +opciones booleanas puedes modificar el fichero de configuración usando +cosas parecidas a \fB-f-\fR,\fB--no-f\fR, \fB-f=no\fR y alguna que +otra variante. +.TP +\fB-d\fR +.TP +\fB--cdrom\fR +Punto de montaje. Especifica el lugar donde se debe montar el cdrom. +Este punto de montaje debe estar listado en \fI/etc/fstab\fR y +configurado correctamente. +Opción de Configuración: Acquire::cdrom::mount\&. +.TP +\fB-r\fR +.TP +\fB--rename\fR +Renombrar un disco. Cambia la etiqueta de un disco. Esta opción hará que +\fBapt-cdrom\fR pregunte una nueva etiqueta. +Opción de Configuración: APT::CDROM::Rename\&. +.TP +\fB-m\fR +.TP +\fB--no-mount\fR +No montar. Evita que \fBapt-cdrom\fR monte y desmonte el punto de +montaje. +Opción de Configuración: APT::CDROM::NoMount\&. +.TP +\fB-f\fR +.TP +\fB--fast\fR +Rápido. Asumir que los ficheros con los paquetes son válidos y no +comprobar todos los paquetes. Esta opción sólo se debe de usar si +\fBapt-cdrom\fR comprobó el disco con anterioridad y no detectó +ningún error. +Opción de Configuración: APT::CDROM::Fast\&. +.TP +\fB-a\fR +.TP +\fB--thorough\fR +Comprobación meticulosa de los paquetes. Esta opción puede ser necesaria +con algunos discos viejos de Debian 1.1/1.2 que tienen los ficheros de +los paquetes en lugares extraños. Tardará mucho más en analizar el CD, +pero encontrará todos los paquetes. +.TP +\fB-n\fR +.TP +\fB--just-print\fR +.TP +\fB--recon\fR +.TP +\fB--no-act\fR +No cambiar nada. No cambiar el fichero \fB\fIsources.list\fB\fR(5) y no escribir +los ficheros de índices. Sin embargo sigue haciendo todas las +comprobaciones. +Opción de Configuración: APT::CDROM::NoAct\&. +.TP +\fB-h\fR +.TP +\fB--help\fR +Muestra un breve resumen del modo de uso. +.TP +\fB-v\fR +.TP +\fB--version\fR +Muestra la versión del programa. +.TP +\fB-c\fR +.TP +\fB--config-file\fR +Especifica el fichero de configuración a usar. +El programa leerá el fichero de configuración por omisión y luego +este otro. Lea \fB\fIapt.conf\fB\fR(5) para más información acerca de la sintaxis. +.TP +\fB-o\fR +.TP +\fB--option\fR +Establece una opción de configuración. La sintaxis es \fB-o +Foo::Bar=bar\fR\&. +.SH "VéASE TAMBIéN" +.PP +\fB\fIapt.conf\fB\fR(5), \fBapt-get\fR(8), \fB\fIsources.list\fB\fR(5) +.SH "DIAGNóSTICOS" +.PP +\fBapt-cdrom\fR devuelve cero en una operaciones satisfactorias, +el decimal 100 en caso de error. +.SH "FALLOS" +.PP +Vea la página de fallos de APT <URL:http://bugs.debian.org/src:apt>\&. +Si desea avisar de un fallo en APT, vea +\fI/usr/share/doc/debian/bug-reporting.txt\fR o la orden \fBreportbug\fR(1)\&. +.SH "AUTOR" +.PP +APT fue escrito por el equipo de APT <apt@packages.debian.org>\&. +.SH "TRADUCTOR" +.PP +Traducción de Rubén Porras Campo +<debian-l10n-spanish@lists.debian.org> diff --git a/doc/es/apt-cdrom.es.8.sgml b/doc/es/apt-cdrom.es.8.sgml new file mode 100644 index 0000000..2664238 --- /dev/null +++ b/doc/es/apt-cdrom.es.8.sgml @@ -0,0 +1,167 @@ +<!-- -*- mode: sgml; mode: fold -*- --> +<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [ + +<!ENTITY % aptent SYSTEM "apt.ent.es"> +%aptent; + +]> + +<!-- +(c) 2003 Software in the Public Interest +Esta traducción ha sido realizada por Rubén Porras Campo <nahoo@inicia.es> +Está basada en la página de manual original: +versión 1.2 del CVS de +/cvs/debian-doc/manpages/english/apt/apt-cdrom.8.sgml +--> + +<refentry lang=es> + &apt-docinfo; + + <refmeta> + <refentrytitle>apt-cdrom</> + <manvolnum>8</> + </refmeta> + + <!-- Man page title --> + <refnamediv> + <refname>apt-cdrom</> + <refpurpose>utilidad APT para administración del CDROM</> + </refnamediv> + + <!-- Arguments --> + <refsynopsisdiv> + <cmdsynopsis> + <command>apt-cdrom</> + <arg><option>-hvrmfan</></arg> + <arg><option>-d=<replaceable/cdrom punto_de_montaje/</></arg> + <arg><option>-o=<replaceable/cadena de configuración/</></arg> + <arg><option>-c=<replaceable/fichero/</></arg> + <group choice=req> + <arg>add</> + <arg>ident</> + </group> + </cmdsynopsis> + </refsynopsisdiv> + +<RefSect1><Title>Descripción</> + <para> + <command/apt-cdrom/ se usa para añadir un CDROM nuevo a la lista de recursos + disponibles de APT. <command/apt-cdrom/ determina la estructura del disco, + corrige varios errores de grabación posibles y verifica los ficheros con + los índices. + <para> + Es necesario usar <command/apt-cdrom/ para añadir CDs al sistema APT, + no puede hacerse manualmente. Además cada unidad de un conjunto de discos + debe de ser analizada por separado para detectar los posibles errores de + grabación. + + <para> + A menos que se de una de las opciones <option/-h/, o <option/--help/ + una de las siguientes órdenes deben de estar presentes. + + <VariableList> + <VarListEntry><Term>add</Term> + <ListItem><Para> + <literal/add/ para añadir un disco nuevo a la lista de recursos. + Desmontará el dispositivo de CDROM, pedirá que se inserte un disco y + procederá a analizar y copiar los ficheros de índices. Si el disco + no contiene el directorio apropiado <filename>.disk/</> se mostrará un + mensaje descriptivo. + + <para> + APT usa un identificador de CDROM para reconocer que disco está actualmente + en la unidad lectora y mantiene una lista de estos identificadores en + <filename>&statedir;/cdroms.list</> + </VarListEntry> + + <VarListEntry><Term>ident</Term> + <ListItem><Para> + Una herramienta de depuración para informar de identidad del disco actual + así como del nombre guardado. + </VarListEntry> + </VariableList> + </RefSect1> + + <RefSect1><Title>Opciones</> + &apt-cmdblurb; + + <VariableList> + <VarListEntry><term><option/-d/</><term><option/--cdrom/</> + <ListItem><Para> + Punto de montaje. Especifica el lugar donde se debe montar el cdrom. + Este punto de montaje debe estar listado en <filename>/etc/fstab</> y + configurado correctamente. + Opción de Configuración: <literal/Acquire::cdrom::mount/. + </VarListEntry> + + <VarListEntry><term><option/-r/</><term><option/--rename/</> + <ListItem><Para> + Renombrar un disco. Cambia la etiqueta de un disco. Esta opción hará que + <command/apt-cdrom/ pregunte una nueva etiqueta. + Opción de Configuración: <literal/APT::CDROM::Rename/. + </VarListEntry> + + <VarListEntry><term><option/-m/</><term><option/--no-mount/</> + <ListItem><Para> + No montar. Evita que <command/apt-cdrom/ monte y desmonte el punto de + montaje. + Opción de Configuración: <literal/APT::CDROM::NoMount/. + </VarListEntry> + + <VarListEntry><term><option/-f/</><term><option/--fast/</> + <ListItem><Para> + Rápido. Asumir que los ficheros con los paquetes son válidos y no + comprobar todos los paquetes. Esta opción sólo se debe de usar si + <command/apt-cdrom/ comprobó el disco con anterioridad y no detectó + ningún error. + Opción de Configuración: <literal/APT::CDROM::Fast/. + </VarListEntry> + + <VarListEntry><term><option/-a/</><term><option/--thorough/</> + <ListItem><Para> + Comprobación meticulosa de los paquetes. Esta opción puede ser necesaria + con algunos discos viejos de Debian 1.1/1.2 que tienen los ficheros de + los paquetes en lugares extraños. Tardará mucho más en analizar el CD, + pero encontrará todos los paquetes. + </VarListEntry> + + <VarListEntry><term><option/-n/</> + <term><option/--just-print/</> + <term><option/--recon/</> + <term><option/--no-act/</> + <ListItem><Para> + No cambiar nada. No cambiar el fichero &sources-list; y no escribir + los ficheros de índices. Sin embargo sigue haciendo todas las + comprobaciones. + Opción de Configuración: <literal/APT::CDROM::NoAct/. + </VarListEntry> + + &apt-commonoptions; + + </VariableList> + </RefSect1> + + <RefSect1><Title>Véase también</> + <para> + &apt-conf;, &apt-get;, &sources-list; + </RefSect1> + + <RefSect1><Title>Diagnósticos</> + <para> + <command/apt-cdrom/ devuelve cero en una operaciones satisfactorias, + el decimal 100 en caso de error. + </RefSect1> + + &manbugs; + &manauthor; + + <refsect1> + <title>TRADUCTOR + + Traducción de Rubén Porras Campo + <debian-l10n-spanish@lists.debian.org> + + + + + diff --git a/doc/es/apt-config.es.8 b/doc/es/apt-config.es.8 new file mode 100644 index 0000000..4979c03 --- /dev/null +++ b/doc/es/apt-config.es.8 @@ -0,0 +1,97 @@ +.\" This manpage has been automatically generated by docbook2man +.\" from a DocBook document. This tool can be found at: +.\" +.\" Please send any bug reports, improvements, comments, patches, +.\" etc. to Steve Cheng . +.TH "APT-CONFIG" "8" "04 December 2006" "" "" + +.SH NAME +apt-config \- Programa para la consulta de configuración de APT +.SH SYNOPSIS + +\fBapt-config\fR [ \fB-hv\fR ] [ \fB-o=\fIcadena de configuración\fB\fR ] [ \fB-c=\fIfichero\fB\fR ] { \fBshell\fR | \fBdump\fR } + +.SH "DESCRIPCIóN" +.PP +\fBapt-config\fR es un programa interno usado por varios programas del +conjunto de herramientas APT para proporcionar una configurabilidad +coherente.Este accede al archivo principal de configuración +\fI/etc/apt/apt.conf\fR de forma que sea fácil de usar por scripts. +.PP +A menos que se incluya la opción \fB-h\fR o \fB--help\fR, una de de +los siguientes órdenes debe estar presente. +.TP +\fBshell\fR +shell se usa para acceder a la información de configuración de un fichero +de órdenes (shell script). Este proporciona 2 argumentos, el primero es +una variable del intérprete de órdenes, y el segundo el valor de +configuración para la petición. Como salida muestra una serie de listas +de órdenes asignados al intérprete de órdenes por cada valor presente. En +un fichero de órdenes, este debería usarse como: + + +.nf +OPTS="-f" +RES=`apt-config shell OPTS MyApp::Options` +eval $RES +.fi + +Esto debería fijar la variable de entorno del intérprete de órdenes $OPTS +al valor deMyApp::Opciones, con un valor por omisión de \fB-f\fR\&. + +El elemento de configuración podría ser corregido después con /[fdbi]. f +devuelve nombres de ficheros, d devuelve los directorios, b devuelve +verdadero o falso e i devuelve un número entero. Cada uno de los valores +devueltos es normalizado y verificado internamente. +.TP +\fBdump\fR +Sólo muestra el contenido del espacio de configuración. +.SH "OPCIONES" +.PP +Todas las opciones de línea de órdenes pueden ser especificadas +mediante el fichero de configuración, en la descripción de cada opción +se indica la opción de configuración que hay que modificar. Para +opciones booleanas puedes modificar el fichero de configuración usando +cosas parecidas a \fB-f-\fR,\fB--no-f\fR, \fB-f=no\fR y alguna que +otra variante. +.TP +\fB-h\fR +.TP +\fB--help\fR +Muestra un breve resumen del modo de uso. +.TP +\fB-v\fR +.TP +\fB--version\fR +Muestra la versión del programa. +.TP +\fB-c\fR +.TP +\fB--config-file\fR +Especifica el fichero de configuración a usar. +El programa leerá el fichero de configuración por omisión y luego +este otro. Lea \fB\fIapt.conf\fB\fR(5) para más información acerca de la sintaxis. +.TP +\fB-o\fR +.TP +\fB--option\fR +Establece una opción de configuración. La sintaxis es \fB-o +Foo::Bar=bar\fR\&. +.SH "VEA ADEMáS" +.PP +\fB\fIapt.conf\fB\fR(5) +.SH "DIAGNóSTICOS" +.PP +\fBapt-config\fR devuelve el valor cero en una operación normal, 100 si ocurre un error. +.SH "FALLOS" +.PP +Vea la página de fallos de APT \&. +Si desea avisar de un fallo en APT, vea +\fI/usr/share/doc/debian/bug-reporting.txt\fR o la orden \fBreportbug\fR(1)\&. +.SH "AUTOR" +.PP +APT fue escrito por el equipo de APT \&. +.SH "TRADUCTOR" +.PP +Traducción de Carlos Mestre + diff --git a/doc/es/apt-config.es.8.sgml b/doc/es/apt-config.es.8.sgml new file mode 100644 index 0000000..33b8539 --- /dev/null +++ b/doc/es/apt-config.es.8.sgml @@ -0,0 +1,123 @@ + + +%aptent; + +]> + + + + + &apt-docinfo; + + + apt-config + 8 + + + + + apt-config + Programa para la consulta de configuración de APT + + + + + + apt-config + + + + + shell + dump + + + + + Descripción</> + <para> + <command/apt-config/ es un programa interno usado por varios programas del + conjunto de herramientas APT para proporcionar una configurabilidad + coherente.Este accede al archivo principal de configuración + <filename>/etc/apt/apt.conf</> de forma que sea fácil de usar por scripts. + <para> + A menos que se incluya la opción <option/-h/ o <option/--help/, una de de + los siguientes órdenes debe estar presente. + </para> + + <VariableList> + <VarListEntry><Term>shell</Term> + <ListItem><Para> + shell se usa para acceder a la información de configuración de un fichero + de órdenes (shell script). Este proporciona 2 argumentos, el primero es + una variable del intérprete de órdenes, y el segundo el valor de + configuración para la petición. Como salida muestra una serie de listas + de órdenes asignados al intérprete de órdenes por cada valor presente. En + un fichero de órdenes, este debería usarse como: + </para> + +<informalexample><programlisting> +OPTS="-f" +RES=`apt-config shell OPTS MyApp::Options` +eval $RES +</programlisting></informalexample> + + <para> + Esto debería fijar la variable de entorno del intérprete de órdenes $OPTS + al valor deMyApp::Opciones, con un valor por omisión de <option/-f/. + + <para> + El elemento de configuración podría ser corregido después con /[fdbi]. f + devuelve nombres de ficheros, d devuelve los directorios, b devuelve + verdadero o falso e i devuelve un número entero. Cada uno de los valores + devueltos es normalizado y verificado internamente. + </VarListEntry> + + <VarListEntry><Term>dump</Term> + <ListItem><Para> + Sólo muestra el contenido del espacio de configuración. + </VarListEntry> + + </VariableList> + </RefSect1> + + <RefSect1><Title>Opciones</> + &apt-cmdblurb; + + <VariableList> + + &apt-commonoptions; + + </VariableList> + </RefSect1> + + <RefSect1><Title>Vea además</> + <para> + &apt-conf; + </RefSect1> + + <RefSect1><Title>Diagnósticos</> + <para> + <command/apt-config/ devuelve el valor cero en una operación normal, 100 si ocurre un error. + </RefSect1> + + &manbugs; + &manauthor; + + <refsect1> + <title>TRADUCTOR + + Traducción de Carlos Mestre + <debian-l10n-spanish@lists.debian.org> + + + + diff --git a/doc/es/apt-get.es.8 b/doc/es/apt-get.es.8 new file mode 100644 index 0000000..3c859ce --- /dev/null +++ b/doc/es/apt-get.es.8 @@ -0,0 +1,472 @@ +.\" This manpage has been automatically generated by docbook2man +.\" from a DocBook document. This tool can be found at: +.\" +.\" Please send any bug reports, improvements, comments, patches, +.\" etc. to Steve Cheng . +.TH "APT-GET" "8" "04 December 2006" "" "" + +.SH NAME +apt-get \- utilidad de manejo de paquetes APT -- interfaz en línea de ordenes. +.SH SYNOPSIS + +\fBapt-get\fR [ \fB-hvs\fR ] [ \fB-o=\fIcadena de configuración\fB\fR ] [ \fB-c=\fIfichero\fB\fR ] { \fBupdate\fR | \fBupgrade\fR | \fBdselect-upgrade\fR | \fBinstall \fIpaquete\fB\fI ...\fB\fR | \fBremove \fIpaquete\fB\fI ...\fB\fR | \fBsource \fIpaquete\fB\fI ...\fB\fR | \fBbuild-dep \fIpaquete\fB\fI ...\fB\fR | \fBcheck\fR | \fBclean\fR | \fBautoclean\fR } + +.SH "DESCRIPCIóN" +.PP +\fBapt-get\fR es la herramienta en línea de órdenes usada para +el manejo de paquetes, también es la herramienta usada por otras +que dependen de la biblioteca APT. Hay varias interfaces disponibles, como +dselect(8), aptitude, synaptic, gnome-apt and wajig. +.PP +Se debe proporcionar una de las siguientes órdenes a menos que se +den las opciones \fB-h\fR, o \fB--help\fR\&. +.TP +\fBupdate\fR +update se usa para sincronizar el índice de +paquetes respecto a sus fuentes. Los índices de paquetes +disponibles se obtienen de los lugares especificados en +\fI/etc/apt/sources.list\fR\&. Por ejemplo, cuando se usa +un archivo de Debian, esta orden descarga y analiza los +ficheros \fIPackages.gz\fR, de tal forma que la +información acerca de nuevos paquetes pasa a estar +disponible. Siempre se debe realizar un update +antes de un upgrade o un dist-upgrade\&. Se +debe tener en cuenta que el indicador de progreso será +incorrecto, ya que el tamaño de los próximos ficheros con +información sobre paquetes es desconocido hasta el momento de +su descarga. +.TP +\fBupgrade\fR +upgrade se usa para instalar la versión más +nueva de todos los paquetes instalados en el sistema +provenientes de alguna de las fuentes listadas en +\fI/etc/apt/sources.list\fR\&. Los paquetes +instalados con una nueva versión disponible son descargados y +actualizados, bajo ninguna circunstancia se desinstalarán paquetes, o +se instalarán paquetes nuevos. Las nuevas versiones de programas +instalados que no puedan ser actualizados sin cambiar el estado de +instalación de otros paquetes no se instalarán, manteniéndose la +versión actual. Debe realizarse un update antes para +que \fBapt-get\fR sepa cuales son las versiones disponibles +de los paquetes. +.TP +\fBdselect-upgrade\fR +dselect-upgrade +se usa junto con el tradicional administrador de paquetes de Debian +GNU/Linux, \fBdselect\fR(8)\&. dselect-upgrade recoge los +cambios hechos al campo de Status de los paquetes +disponibles por \fBdselect\fR(8), y realiza las acciones necesarias +para que los cambios se lleven a cabo (por ejemplo, borrar +paquetes antiguos e instalar las nuevas versiones). +.TP +\fBdist-upgrade\fR +dist-upgrade, además de realizar las acciones de +upgrade, maneja inteligentemente los cambios de +dependencias debidos a nuevas versiones de paquetes, +\fBapt-get\fR tiene un sofisticado sistema de resolución de +conflictos, si es necesario tratará de actualizar los paquetes +más importantes a costa de los menos importantes. El fichero +\fI/etc/apt/sources.list\fR contiene la lista de sitios +de los cuales se descargan los ficheros. +También puede consultar \fBapt_preferences\fR(5) si quiere modificar este +comportamiento para paquetes individuales. +.TP +\fBinstall\fR +install instala los paquetes que siguen a la palabra +install. Cada nombre de paquete no es el nombre completo del +paquete junto con la versión de Debian, sino sólo el nombre del +paquete (por ejemplo, en un sistema Debian GNU/Linux, el +argumento sería libc6, no libc6_1.9.6-2.deb). Se obtendrán e +instalarán todos los paquetes especificados para la +instalación, así como los requeridos por estos. El fichero +\fI/etc/apt/sources.list\fR se usa para localizar los +paquetes. Si al nombre del paquete se le antepone un guión (sin +ningún espacio), el paquete será desinstalado en vez de +instalado. Similarmente el signo del la suma se puede usar para +especificar que un paquete debe de ser instalado. Esta últimas +características se pueden usar para modificar decisiones +tomadas por el sistema de resolución de conflictos de apt-get. + +Se puede seleccionar una versión especifica de un paquete +poniendo a continuación del paquete un igual ('=') seguido de +la versión deseada. Alternativamente se puede seleccionar una +distribución especifica poniendo a continuación del nombre del +paquete una barra ('/') seguido de la versión de la +distribución o su nombre en el archivo de Debian (stable, +testing, unstable). + +Cualquiera de estos dos métodos de selección puede instalar una +versión anterior de los paquetes y debe ser usada con cuidado. + +Finalmente, \fBapt_preferences\fR(5) permite modificar las normas de selección +para paquetes individuales. + +Si ningún paquete coincide con la expresión que se ha dado y la +expresión contiene un '.', '?' o un '*', entonces se asume que es una +expresión regular de acuerdo con el estándar POSIX, y es aplicada a +todos los nombres de paquetes de la base de datos. Cualquier +coincidencia se instala (o desinstala). Tenga en cuenta que la +comparación se hace en subcadenas, de manera que 'lo.*' es válido +para 'how-lo' y para 'lowest'. Si este no es el comportamiento deseado +se debe anclar la expresión regular con un '^' o un '$', o bien crear una +expresión regular más específica. +.TP +\fBremove\fR +remove se comporta del mismo modo que install +con la diferencia de que desinstala los paquetes en vez de +instalarlos. Si un signo más precede al nombre del paquete (sin +ningún espacio en blanco entre los dos), el paquete en cuestión +será instalado en vez de eliminado. +.TP +\fBsource\fR +source hace que \fBapt-get\fR descargue paquetes +fuente. APT examinará los paquetes disponibles para decidir que +paquete fuente cogerá. Entones descargará en el directorio +actual la versión más reciente del paquete fuente. Los paquetes +fuente se obtienen de sitios distintos a los binarios, estos +sitios se especifican mediante líneas del tipo +deb-src en el fichero \fB\fIsources.list\fB\fR(5)\&. Esto puede +provocar que la versión que descargará del paquete fuente no +coincida con la del paquete binario que tenga instalado o +pueda instalar. Si se especifica el argumento --compile +entonces el paquete se compilará usando dpkg-buildpackage para +producir un .deb binario, si se especifica el argumento +--download-only entonces el paquete fuente no se desempaquetará. + +Una versión especifica de un paquete fuente puede requerirse +poniendo un signo igual ('=') seguido de la versión a descargar +después del nombre del paquete. Es un mecanismo similar al que +se usa con los paquetes binarios. Esto permite seleccionar +exactamente el nombre y versión del paquete fuente, activando +implícitamente la opción APT::Get::Only-Source\&. + +Dese cuenta que los paquetes fuentes no se tratan como los binarios, sólo +existen en el directorio actual, es parecido a descargar los paquetes tar +comprimidos con las fuentes. +.TP +\fBbuild-dep\fR +build-dep hace que apt-get instale/desinstale paquetes +en un intento de satisfacer las dependencias de compilación de +un paquete fuente. Por el momento si hay varios paquetes que +satisfacen la misma dependencia, apt-get elige uno aleatoriamente. +.TP +\fBcheck\fR +check es una herramienta de diagnóstico. Actualiza la +caché de paquetes (/var/cache/apt/pkgcache.bin), vuelve a crear +un nuevo árbol de dependencias y busca dependencias imposibles +de resolver. +.TP +\fBclean\fR +clean borra totalmente el repositorio local que +contiene los ficheros .deb descargados. Borra todo excepto el +fichero de bloqueo de los directorios +\fI/var/cache/apt/archives/\fR y +\fI/var/cache/apt/archives/partial/\fR\&. Cuando APT se usa como +un método de \fBdselect\fR(8), clean se ejecuta +automáticamente. Si usted no usa dselect es probable que desee +ejecutar apt-get clean de vez en cuando para liberar +algo de espacio en disco. +.TP +\fBautoclean\fR +Al igual que clean, autoclean borra el +repositorio local de paquetes descargados. La diferencia reside +en que sólo borrará aquellos paquetes que ya no pueden ser +descargados, o son claramente inservibles. Esto permite +mantener la caché durante largos periodos de tiempo sin que +aumente su tamaño sin control. Si la opción de configuración +APT::Clean-Installed está desactivada impedirá que se +borren paquetes instalados. +.SH "OPCIONES" +.PP +Todas las opciones de línea de órdenes pueden ser especificadas +mediante el fichero de configuración, en la descripción de cada opción +se indica la opción de configuración que hay que modificar. Para +opciones booleanas puedes modificar el fichero de configuración usando +cosas parecidas a \fB-f-\fR,\fB--no-f\fR, \fB-f=no\fR y alguna que +otra variante. +.TP +\fB-d\fR +.TP +\fB--download-only\fR +Sólo descarga los ficheros con los paquetes, no los desempaqueta +ni los instala. Opción de Configuración: +APT::Get::Download-Only\&. +.TP +\fB-f\fR +.TP +\fB--fix-broken\fR +Intenta arreglar un sistema con dependencias actualmente rotas. Esta +opción usada conjuntamente con install/remove, puede omitir cualquier +paquete para permitir a APT deducir una posible solución. Cualquier paquete +especificado debe de corregir totalmente el problema. La opción es a +veces necesaria cuando se ejecuta apt por primera vez. APT no permite +que existan dependencias de paquetes rotas en un sistema. Es posible +que la estructura de dependencias de un sistema esté tan deteriorada +que requiera una intervención manual (usualmente ejecutar +\fBdselect\fR(8) o \fBdpkg --remove\fR para desinstalar alguno de +los paquetes que crean el conflicto). El uso de esta opción +junto con \fB-m\fR puede producir un error en algunas +situaciones. Opción de Configuración: APT::Get::Fix-Broken\&. +.TP +\fB-m\fR +.TP +\fB--ignore-missing\fR +.TP +\fB--fix-missing\fR +No tiene en cuenta los paquetes que no se hayan podido descargar o que +después de la descarga se encuentren dañados, estos paquetes se tratan +como no modificables y se continúa con el resto. Usar esta opción junto +con \fB-f\fR puede producir un error en algunas situaciones. Si un +paquete se selecciona para su normal instalación (particularmente si +se hace mediante la línea de órdenes) y no puede ser descargado, +será tratado como no modificable. Opción de Configuración: +APT::Get::Fix-Missing\&. +.TP +\fB--no-download\fR +Deshabilita la descarga de paquetes. Usada junto con +\fB--ignore-missing\fR es la mejor manera de forzar a APT a usar +solo los .debs que ya se han descargado con anterioridad. +Opción de Configuración: APT::Get::Download\&. +.TP +\fB-q\fR +.TP +\fB--quiet\fR +Silencioso. Produce una salida adecuada para un registro, +omitiendo los indicadores de progreso. Si se especifican más q's +(hasta un máximo de 2) se conseguirá una salida más +silenciosa. También es posible usar \fB-q=#\fR para +seleccionar el nivel de silenciosidad, no teniendo en cuenta el +fichero de configuración. Dese cuenta que un nivel silencioso de +2 implica \fB-y\fR, por lo tanto nunca se deberá usar -qq sin +añadir un modificador para que no realice ninguna acción como +-d, --print-uris o -s para evitar que APT realice algo que usted +no espera. Opción de Configuración: quiet\&. +.TP +\fB-s\fR +.TP +\fB--simulate\fR +.TP +\fB--just-print\fR +.TP +\fB--dry-run\fR +.TP +\fB--recon\fR +.TP +\fB--no-act\fR +No realiza ninguna acción; simula lo que hubiese ocurrido, pero sin +hacer cambios reales en el sistema. Opción de Configuración: +APT::Get::Simulate\&. + +La simulación muestra por pantalla una serie de líneas, cada una de +las cuales representa una operación de dpkg, configurar (Conf), +desinstalar (Remv), o desempaquetar (Inst). Un par de corchetes +indican paquetes con dependencias rotas, si no hay nada entre ellos +significa que no hay ningún problema (poco probable). +.TP +\fB-y\fR +.TP +\fB--yes\fR +.TP +\fB--assume-yes\fR +Asume una respuesta afirmativa a todas las preguntas, de esta forma +apt-get se ejecuta sin necesidad de intervención posterior para tomar +decisiones. apt-get terminará sin hacer nada si se +produjese una situación no deseada, como cambiar un paquete +puesto en hold (un paquete puesto en hold es un paquete que no +debe de ser modificado) o desinstalar un paquete esencial. +Opción de Configuración: APT::Get::Assume-Yes\&. +.TP +\fB-u\fR +.TP +\fB--show-upgraded\fR +Muestra los paquetes que se van a actualizar. Opción de Configuración: +APT::Get::Show-Upgraded\&. +.TP +\fB-V\fR +.TP +\fB--verbose-versions\fR +Muestra la versión completa para los paquetes actualizados e instalados. +Opción de configuración: APT::Get::Show-Versions\&. +.TP +\fB-b\fR +.TP +\fB--compile\fR +.TP +\fB--build\fR +Descarga las fuentes y luego las compila. +Opción de Configuración: APT::Get::Compile\&. +.TP +\fB--ignore-hold\fR +No respeta los paquetes retenidos. Esto puede ser interesante junto con +dist-upgrade para no tener en cuenta un gran número de +paquetes en hold. Opción de Configuración: APT::Ignore-Hold\&. +.TP +\fB--no-upgrade\fR +No actualiza los paquetes. Cuando se usa juntamente con +install, no-upgrade evita que se actualicen los +paquetes listados en la línea de órdenes si ya están previamente +instalados. Opción de Configuración: APT::Get::Upgrade\&. +.TP +\fB--force-yes\fR +Supone una respuesta afirmativa a todas las preguntas. Ésta es una +opción peligrosa que hará que apt-get continúe incluso si va a +realizar algo potencialmente peligros. No se debe usar excepto +en situaciones muy especiales. ¡force-yes puede +destruir su sistema! Opción de Configuración: +APT::Get::force-yes\&. +.TP +\fB--print-uris\fR +Muestra las URIs de los ficheros a instalar en vez de +descargarlos. Cada URI tiene la dirección de donde se obtendrá +el paquete, el fichero de destino, su tamaño y la suma de +control md5 esperada. Dese cuenta que el nombre de fichero no +siempre coincide con el nombre de fichero en el sitio +remoto. Esto también funciona con las ordenes source y +update\&. Cuando se usa con la orden update, +no se incluyen ni la suma de control MD5 ni el tamaño, y es +tarea del usuario descomprimir cualquier fichero comprimido. +Opción de Configuración: APT::Get::Print-URIs\&. +.TP +\fB--purge\fR +Borra los archivos de configuración de todos los paquetes que sean +desinstalados. Se mostrará un asterisco '*' a continuación de los paquetes +que se encuentren en esta situación. Opción de Configuración: +APT::Get::Purge\&. +.TP +\fB--reinstall\fR +Reinstala los paquetes ya instalados, incluso si son la última versión +disponible del paquete. Opción de Configuración: +APT::Get::ReInstall\&. +.TP +\fB--list-cleanup\fR +Esta opción está activada por omisión, si quiere desactivarla use +--no-list-cleanup\&. Cuando está activada +\fBapt-get\fR administra automáticamente los contenidos de +\fI/var/lib/apt/lists\fR para asegurarse de que se borran +los ficheros obsoletos. La única razón para desactivarla es un +cambio frecuente en la lista de repositorios que usa +apt-get. Opción de Configuración: APT::Get::List-Cleanup\&. +.TP +\fB-t\fR +.TP +\fB--target-release\fR +.TP +\fB--default-release\fR +Esta opción permite tener un control sobre la versión de la +distribución desde la cual se instalan los paquetes de manera +sencilla, creando un pin de 990 usando la cadena de caracteres +proporcionada que hace referencia a la distribución. Algunos ejemplos +comunes pueden ser \fB-t '2.1*'\fR o \fB-t unstable\fR\&. +Opción de configuración: APT::Default-Release\&. +Vea además la página del manual de \fBapt_preferences\fR(5)\&. +.TP +\fB--trivial-only\fR +Sólo realiza acciones consideradas triviales. Esta opción está +relacionada con \fB--assume-yes\fR, donde \fB--assume-yes\fR +responderá afirmativamente a cualquier pregunta, +\fB--trivial-only\fR responderá negativamente. +Opción de configuración: APT::Get::Trivial-Only\&. +.TP +\fB--no-remove\fR +Si algún paquete va a ser desinstalado apt-get termina inmediatamente. +Opción de Configuración: APT::Get::Remove +.TP +\fB--only-source\fR +Sólo tiene sentido para la orden source\&. Indica que los +nombres de paquetes fuente dados no deben ser tratados a +través de la tabla de binarios. Esto significa que si se especifica esta +opción, la orden source sólo aceptará como argumentos nombres de +paquetes fuente, en vez de aceptar nombres de paquetes binarios y luego +buscar el nombre del paquete fuente correspondiente. +Opción de Configuración: APT::Get::Only-Source +.TP +\fB--diff-only\fR +.TP +\fB--tar-only\fR +Descarga sólo el fichero diff o tar del archivo fuente. +Opciones de Configuración: APT::Get::Diff-Only y +APT::Get::Tar-Only +.TP +\fB--arch-only\fR +Procesa sólo las dependencias de construcción dependientes de la +arquitectura. Opción de configuración: APT::Get::Arch-Only +.TP +\fB-h\fR +.TP +\fB--help\fR +Muestra un breve resumen del modo de uso. +.TP +\fB-v\fR +.TP +\fB--version\fR +Muestra la versión del programa. +.TP +\fB-c\fR +.TP +\fB--config-file\fR +Especifica el fichero de configuración a usar. +El programa leerá el fichero de configuración por omisión y luego +este otro. Lea \fB\fIapt.conf\fB\fR(5) para más información acerca de la sintaxis. +.TP +\fB-o\fR +.TP +\fB--option\fR +Establece una opción de configuración. La sintaxis es \fB-o +Foo::Bar=bar\fR\&. +.SH "FICHEROS" +.TP +\fB\fI/etc/apt/sources.list\fB\fR +Fichero que contiene los sitios de donde se obtienen los paquetes. +Opción de Configuración: Dir::Etc::SourceList\&. +.TP +\fB\fI/etc/apt/apt.conf\fB\fR +Fichero de configuración de APT. +Opción de Configuración: Dir::Etc::Main\&. +.TP +\fB\fI/etc/apt/apt.conf.d/\fB\fR +Directorio con fragmentos de ficheros de configuración APT. +Opción de Configuración: Dir::Etc::Parts\&. +.TP +\fB\fI/etc/apt/preferences\fB\fR +Fichero de configuración que contiene preferencias sobre versiones de +paquetes, por ejemplo, puede especificar que un cierto paquete se descargue +de un sitio diferente, o de una distribución con una versión diferente. +Opción de Configuración: Dir::Etc::Preferences\&. +.TP +\fB\fI/var/cache/apt/archives/\fB\fR +Directorio donde se guardan los paquetes obtenidos. +Opción de Configuración: Dir::Cache::Archives\&. +.TP +\fB\fI/var/cache/apt/archives/partial/\fB\fR +Directorio donde se guardan los ficheros en tránsito. +Opción de Configuración: Dir::Cache::Archives (Implica partial). +.TP +\fB\fI/var/lib/apt/lists/\fB\fR +Directorio donde se almacena información de estado por cada +sitio especificado en \fB\fIsources.list\fB\fR(5) +Opción de Configuración: Dir::State::Lists\&. +.TP +\fB\fI/var/lib/apt/lists/partial/\fB\fR +Directorio de almacenamiento para la información de estado en tránsito. +Opción de Configuración: Dir::State::Lists (Implica partial). +.SH "VEA ADEMáS" +.PP +\fBapt-cache\fR(8), \fBapt-cdrom\fR(8), \fBdpkg\fR(8), \fBdselect\fR(8), \fB\fIsources.list\fB\fR(5), \fB\fIapt.conf\fB\fR(5), +\fBapt-config\fR(8), la guía de usuario de APT en /usr/share/doc/apt/, \fBapt_preferences\fR(5), el +Cómo de APT. +.SH "DIAGNóSTICOS" +.PP +\fBapt-get\fR devuelve cero en operaciones satisfactorias, 100 en caso +de error. +.SH "FALLOS" +.PP +Vea la página de fallos de APT \&. +Si desea avisar de un fallo en APT, vea +\fI/usr/share/doc/debian/bug-reporting.txt\fR o la orden \fBreportbug\fR(1)\&. +.SH "AUTOR" +.PP +APT fue escrito por el equipo de APT \&. +.SH "TRADUCTOR" +.PP +Traducción de Rubén Porras Campo + diff --git a/doc/es/apt-get.es.8.sgml b/doc/es/apt-get.es.8.sgml new file mode 100644 index 0000000..33ccc1f --- /dev/null +++ b/doc/es/apt-get.es.8.sgml @@ -0,0 +1,558 @@ + + +%aptent; + +]> + + + + + &apt-docinfo; + + + apt-get + 8 + + + + + apt-get + utilidad de manejo de paquetes APT -- interfaz en + línea de ordenes. + + + + + + apt-get + + + + + update + upgrade + dselect-upgrade + install paquete + remove paquete + source paquete + build-dep paquete + check + clean + autoclean + + + + + Descripción</> + <para> + <command/apt-get/ es la herramienta en línea de órdenes usada para + el manejo de paquetes, también es la herramienta usada por otras + que dependen de la biblioteca APT. Hay varias interfaces disponibles, como + dselect(8), aptitude, synaptic, gnome-apt and wajig. + <para> + Se debe proporcionar una de las siguientes órdenes a menos que se + den las opciones <option/-h/, o <option/--help/. + + <VariableList> + <VarListEntry><Term>update</Term> + <ListItem><Para> + <literal/update/ se usa para sincronizar el índice de + paquetes respecto a sus fuentes. Los índices de paquetes + disponibles se obtienen de los lugares especificados en + <filename>/etc/apt/sources.list</>. Por ejemplo, cuando se usa + un archivo de Debian, esta orden descarga y analiza los + ficheros <filename>Packages.gz</>, de tal forma que la + información acerca de nuevos paquetes pasa a estar + disponible. Siempre se debe realizar un <literal/update/ + antes de un <literal/upgrade/ o un <literal/dist-upgrade/. Se + debe tener en cuenta que el indicador de progreso será + incorrecto, ya que el tamaño de los próximos ficheros con + información sobre paquetes es desconocido hasta el momento de + su descarga. + </VarListEntry> + + <VarListEntry><Term>upgrade</Term> + <ListItem><Para> + <literal/upgrade/ se usa para instalar la versión más + nueva de todos los paquetes instalados en el sistema + provenientes de alguna de las fuentes listadas en + <filename>/etc/apt/sources.list</>. Los paquetes + instalados con una nueva versión disponible son descargados y + actualizados, bajo ninguna circunstancia se desinstalarán paquetes, o + se instalarán paquetes nuevos. Las nuevas versiones de programas + instalados que no puedan ser actualizados sin cambiar el estado de + instalación de otros paquetes no se instalarán, manteniéndose la + versión actual. Debe realizarse un <literal/update/ antes para + que <command/apt-get/ sepa cuales son las versiones disponibles + de los paquetes. + </VarListEntry> + + <VarListEntry><Term>dselect-upgrade</Term> + <ListItem><Para> + <literal/dselect-upgrade/ + se usa junto con el tradicional administrador de paquetes de Debian + GNU/Linux, &dselect;. <literal/dselect-upgrade/ recoge los + cambios hechos al campo de <literal/Status/ de los paquetes + disponibles por &dselect;, y realiza las acciones necesarias + para que los cambios se lleven a cabo (por ejemplo, borrar + paquetes antiguos e instalar las nuevas versiones). + </VarListEntry> + + <VarListEntry><Term>dist-upgrade</Term> + <ListItem><Para> + <literal/dist-upgrade/, además de realizar las acciones de + <literal/upgrade/, maneja inteligentemente los cambios de + dependencias debidos a nuevas versiones de paquetes, + <command/apt-get/ tiene un sofisticado sistema de resolución de + conflictos, si es necesario tratará de actualizar los paquetes + más importantes a costa de los menos importantes. El fichero + <filename>/etc/apt/sources.list</> contiene la lista de sitios + de los cuales se descargan los ficheros. + También puede consultar &apt-preferences; si quiere modificar este + comportamiento para paquetes individuales. + </VarListEntry> + + <VarListEntry><Term>install</Term> + <ListItem><Para> + <literal/install/ instala los paquetes que siguen a la palabra + install. Cada nombre de paquete no es el nombre completo del + paquete junto con la versión de Debian, sino sólo el nombre del + paquete (por ejemplo, en un sistema Debian GNU/Linux, el + argumento sería libc6, no <literal/libc6_1.9.6-2.deb/). Se obtendrán e + instalarán todos los paquetes especificados para la + instalación, así como los requeridos por estos. El fichero + <filename>/etc/apt/sources.list</> se usa para localizar los + paquetes. Si al nombre del paquete se le antepone un guión (sin + ningún espacio), el paquete será desinstalado en vez de + instalado. Similarmente el signo del la suma se puede usar para + especificar que un paquete debe de ser instalado. Esta últimas + características se pueden usar para modificar decisiones + tomadas por el sistema de resolución de conflictos de apt-get. + <para> + Se puede seleccionar una versión especifica de un paquete + poniendo a continuación del paquete un igual ('=') seguido de + la versión deseada. Alternativamente se puede seleccionar una + distribución especifica poniendo a continuación del nombre del + paquete una barra ('/') seguido de la versión de la + distribución o su nombre en el archivo de Debian (stable, + testing, unstable). + <para> + Cualquiera de estos dos métodos de selección puede instalar una + versión anterior de los paquetes y debe ser usada con cuidado. + <para> + Finalmente, &apt-preferences; permite modificar las normas de selección + para paquetes individuales. + <para> + Si ningún paquete coincide con la expresión que se ha dado y la + expresión contiene un '.', '?' o un '*', entonces se asume que es una + expresión regular de acuerdo con el estándar POSIX, y es aplicada a + todos los nombres de paquetes de la base de datos. Cualquier + coincidencia se instala (o desinstala). Tenga en cuenta que la + comparación se hace en subcadenas, de manera que 'lo.*' es válido + para 'how-lo' y para 'lowest'. Si este no es el comportamiento deseado + se debe anclar la expresión regular con un '^' o un '$', o bien crear una + expresión regular más específica. + </VarListEntry> + + <VarListEntry><Term>remove</Term> + <ListItem><Para> + <literal/remove/ se comporta del mismo modo que <literal/install/ + con la diferencia de que desinstala los paquetes en vez de + instalarlos. Si un signo más precede al nombre del paquete (sin + ningún espacio en blanco entre los dos), el paquete en cuestión + será instalado en vez de eliminado. + </VarListEntry> + + <VarListEntry><Term>source</Term> + <ListItem><Para> + <literal/source/ hace que <command/apt-get/ descargue paquetes + fuente. APT examinará los paquetes disponibles para decidir que + paquete fuente cogerá. Entones descargará en el directorio + actual la versión más reciente del paquete fuente. Los paquetes + fuente se obtienen de sitios distintos a los binarios, estos + sitios se especifican mediante líneas del tipo + <literal/deb-src/ en el fichero &sources-list;. Esto puede + provocar que la versión que descargará del paquete fuente no + coincida con la del paquete binario que tenga instalado o + pueda instalar. Si se especifica el argumento --compile + entonces el paquete se compilará usando dpkg-buildpackage para + producir un .deb binario, si se especifica el argumento + --download-only entonces el paquete fuente no se desempaquetará. + <para> + Una versión especifica de un paquete fuente puede requerirse + poniendo un signo igual ('=') seguido de la versión a descargar + después del nombre del paquete. Es un mecanismo similar al que + se usa con los paquetes binarios. Esto permite seleccionar + exactamente el nombre y versión del paquete fuente, activando + implícitamente la opción <literal/APT::Get::Only-Source/. + + <para> + Dese cuenta que los paquetes fuentes no se tratan como los binarios, sólo + existen en el directorio actual, es parecido a descargar los paquetes tar + comprimidos con las fuentes. + </VarListEntry> + + <VarListEntry><Term>build-dep</Term> + <ListItem><Para> + <literal/build-dep/ hace que apt-get instale/desinstale paquetes + en un intento de satisfacer las dependencias de compilación de + un paquete fuente. Por el momento si hay varios paquetes que + satisfacen la misma dependencia, apt-get elige uno aleatoriamente. + </VarListEntry> + + <VarListEntry><Term>check</Term> + <ListItem><Para> + <literal/check/ es una herramienta de diagnóstico. Actualiza la + caché de paquetes (/var/cache/apt/pkgcache.bin), vuelve a crear + un nuevo árbol de dependencias y busca dependencias imposibles + de resolver. + </VarListEntry> + + <VarListEntry><Term>clean</Term> + <ListItem><Para> + <literal/clean/ borra totalmente el repositorio local que + contiene los ficheros .deb descargados. Borra todo excepto el + fichero de bloqueo de los directorios + <filename>&cachedir;/archives/</> y + <filename>&cachedir;/archives/partial/</>. Cuando APT se usa como + un método de &dselect;, <literal/clean/ se ejecuta + automáticamente. Si usted no usa dselect es probable que desee + ejecutar <literal/apt-get clean/ de vez en cuando para liberar + algo de espacio en disco. + </VarListEntry> + + <VarListEntry><Term>autoclean</Term> + <ListItem><Para> + Al igual que <literal/clean/, <literal/autoclean/ borra el + repositorio local de paquetes descargados. La diferencia reside + en que sólo borrará aquellos paquetes que ya no pueden ser + descargados, o son claramente inservibles. Esto permite + mantener la caché durante largos periodos de tiempo sin que + aumente su tamaño sin control. Si la opción de configuración + <literal/APT::Clean-Installed/ está desactivada impedirá que se + borren paquetes instalados. + </VarListEntry> + </VariableList> + </RefSect1> + + <RefSect1><Title>Opciones</> + &apt-cmdblurb; + + <VariableList> + <VarListEntry><term><option/-d/</><term><option/--download-only/</> + <ListItem><Para> + Sólo descarga los ficheros con los paquetes, no los desempaqueta + ni los instala. Opción de Configuración: + <literal/APT::Get::Download-Only/. + </VarListEntry> + + <VarListEntry><term><option/-f/</><term><option/--fix-broken/</> + <ListItem><Para> + Intenta arreglar un sistema con dependencias actualmente rotas. Esta + opción usada conjuntamente con install/remove, puede omitir cualquier + paquete para permitir a APT deducir una posible solución. Cualquier paquete + especificado debe de corregir totalmente el problema. La opción es a + veces necesaria cuando se ejecuta apt por primera vez. APT no permite + que existan dependencias de paquetes rotas en un sistema. Es posible + que la estructura de dependencias de un sistema esté tan deteriorada + que requiera una intervención manual (usualmente ejecutar + &dselect; o <command/dpkg --remove/ para desinstalar alguno de + los paquetes que crean el conflicto). El uso de esta opción + junto con <option/-m/ puede producir un error en algunas + situaciones. Opción de Configuración: <literal/APT::Get::Fix-Broken/. + </VarListEntry> + + <VarListEntry><term><option/-m/</><term><option/--ignore-missing/</> + <term><option/--fix-missing/</> + <ListItem><Para> + No tiene en cuenta los paquetes que no se hayan podido descargar o que + después de la descarga se encuentren dañados, estos paquetes se tratan + como no modificables y se continúa con el resto. Usar esta opción junto + con <option/-f/ puede producir un error en algunas situaciones. Si un + paquete se selecciona para su normal instalación (particularmente si + se hace mediante la línea de órdenes) y no puede ser descargado, + será tratado como no modificable. Opción de Configuración: + <literal/APT::Get::Fix-Missing/. + </VarListEntry> + + <VarListEntry><term><option/--no-download/</> + <ListItem><Para> + Deshabilita la descarga de paquetes. Usada junto con + <option/--ignore-missing/ es la mejor manera de forzar a APT a usar + solo los .debs que ya se han descargado con anterioridad. + Opción de Configuración: <literal/APT::Get::Download/. + </VarListEntry> + + <VarListEntry><term><option/-q/</><term><option/--quiet/</> + <ListItem><Para> + Silencioso. Produce una salida adecuada para un registro, + omitiendo los indicadores de progreso. Si se especifican más q's + (hasta un máximo de 2) se conseguirá una salida más + silenciosa. También es posible usar <option/-q=#/ para + seleccionar el nivel de silenciosidad, no teniendo en cuenta el + fichero de configuración. Dese cuenta que un nivel silencioso de + 2 implica <option/-y/, por lo tanto nunca se deberá usar -qq sin + añadir un modificador para que no realice ninguna acción como + -d, --print-uris o -s para evitar que APT realice algo que usted + no espera. Opción de Configuración: <literal/quiet/. + </VarListEntry> + + <VarListEntry><term><option/-s/</> + <term><option/--simulate/</> + <term><option/--just-print/</> + <term><option/--dry-run/</> + <term><option/--recon/</> + <term><option/--no-act/</> + <ListItem><Para> + No realiza ninguna acción; simula lo que hubiese ocurrido, pero sin + hacer cambios reales en el sistema. Opción de Configuración: + <literal/APT::Get::Simulate/. + <para> + La simulación muestra por pantalla una serie de líneas, cada una de + las cuales representa una operación de dpkg, configurar (Conf), + desinstalar (Remv), o desempaquetar (Inst). Un par de corchetes + indican paquetes con dependencias rotas, si no hay nada entre ellos + significa que no hay ningún problema (poco probable). + </VarListEntry> + + <VarListEntry><term><option/-y/</><term><option/--yes/</> + <term><option/--assume-yes/</> + <ListItem><Para> + Asume una respuesta afirmativa a todas las preguntas, de esta forma + apt-get se ejecuta sin necesidad de intervención posterior para tomar + decisiones. <literal/apt-get/ terminará sin hacer nada si se + produjese una situación no deseada, como cambiar un paquete + puesto en hold (un paquete puesto en hold es un paquete que no + debe de ser modificado) o desinstalar un paquete esencial. + Opción de Configuración: <literal/APT::Get::Assume-Yes/. + </VarListEntry> + + <VarListEntry><term><option/-u/</><term><option/--show-upgraded/</> + <ListItem><Para> + Muestra los paquetes que se van a actualizar. Opción de Configuración: + <literal/APT::Get::Show-Upgraded/. + </VarListEntry> + + <VarListEntry><term><option/-V/</><term><option/--verbose-versions/</> + <ListItem><Para> + Muestra la versión completa para los paquetes actualizados e instalados. + Opción de configuración: <literal/APT::Get::Show-Versions/. + </VarListEntry> + + <VarListEntry><term><option/-b/</><term><option/--compile/</> + <term><option/--build/</> + <ListItem><Para> + Descarga las fuentes y luego las compila. + Opción de Configuración: <literal/APT::Get::Compile/. + </VarListEntry> + + <VarListEntry><term><option/--ignore-hold/</> + <ListItem><Para> + No respeta los paquetes retenidos. Esto puede ser interesante junto con + <literal/dist-upgrade/ para no tener en cuenta un gran número de + paquetes en hold. Opción de Configuración: <literal/APT::Ignore-Hold/. + </VarListEntry> + + <VarListEntry><term><option/--no-upgrade/</> + <ListItem><Para> + No actualiza los paquetes. Cuando se usa juntamente con + <literal/install/, <literal/no-upgrade/ evita que se actualicen los + paquetes listados en la línea de órdenes si ya están previamente + instalados. Opción de Configuración: <literal/APT::Get::Upgrade/. + </VarListEntry> + + <VarListEntry><term><option/--force-yes/</> + <ListItem><Para> + Supone una respuesta afirmativa a todas las preguntas. Ésta es una + opción peligrosa que hará que apt-get continúe incluso si va a + realizar algo potencialmente peligros. No se debe usar excepto + en situaciones muy especiales. ¡<literal/force-yes/ puede + destruir su sistema! Opción de Configuración: + <literal/APT::Get::force-yes/. + </VarListEntry> + + <VarListEntry><term><option/--print-uris/</> + <ListItem><Para> + Muestra las URIs de los ficheros a instalar en vez de + descargarlos. Cada URI tiene la dirección de donde se obtendrá + el paquete, el fichero de destino, su tamaño y la suma de + control md5 esperada. Dese cuenta que el nombre de fichero no + siempre coincide con el nombre de fichero en el sitio + remoto. Esto también funciona con las ordenes <literal/source/ y + <literal/update/. Cuando se usa con la orden <literal/update/, + no se incluyen ni la suma de control MD5 ni el tamaño, y es + tarea del usuario descomprimir cualquier fichero comprimido. + Opción de Configuración: <literal/APT::Get::Print-URIs/. + </VarListEntry> + + <VarListEntry><term><option/--purge/</> + <ListItem><Para> + Borra los archivos de configuración de todos los paquetes que sean + desinstalados. Se mostrará un asterisco '*' a continuación de los paquetes + que se encuentren en esta situación. Opción de Configuración: + <literal/APT::Get::Purge/. + </VarListEntry> + + <VarListEntry><term><option/--reinstall/</> + <ListItem><Para> + Reinstala los paquetes ya instalados, incluso si son la última versión + disponible del paquete. Opción de Configuración: + <literal/APT::Get::ReInstall/. + </VarListEntry> + + <VarListEntry><term><option/--list-cleanup/</> + <ListItem><Para> + Esta opción está activada por omisión, si quiere desactivarla use + <literal/--no-list-cleanup/. Cuando está activada + <command/apt-get/ administra automáticamente los contenidos de + <filename>&statedir;/lists</> para asegurarse de que se borran + los ficheros obsoletos. La única razón para desactivarla es un + cambio frecuente en la lista de repositorios que usa + apt-get. Opción de Configuración: <literal/APT::Get::List-Cleanup/. + </VarListEntry> + + <VarListEntry><term><option/-t/</> + <term><option/--target-release/</> + <term><option/--default-release/</> + <ListItem><Para> + Esta opción permite tener un control sobre la versión de la + distribución desde la cual se instalan los paquetes de manera + sencilla, creando un pin de 990 usando la cadena de caracteres + proporcionada que hace referencia a la distribución. Algunos ejemplos + comunes pueden ser <option>-t '2.1*'</> o <option>-t unstable</>. + Opción de configuración: <literal/APT::Default-Release/. + Vea además la página del manual de &apt-preferences;. + </VarListEntry> + + <VarListEntry><term><option/--trivial-only/</> + <ListItem><Para> + Sólo realiza acciones consideradas triviales. Esta opción está + relacionada con <option/--assume-yes/, donde <option/--assume-yes/ + responderá afirmativamente a cualquier pregunta, + <option/--trivial-only/ responderá negativamente. + Opción de configuración: <literal/APT::Get::Trivial-Only/. + </VarListEntry> + + <VarListEntry><term><option/--no-remove/</> + <ListItem><Para> + Si algún paquete va a ser desinstalado apt-get termina inmediatamente. + Opción de Configuración: <literal/APT::Get::Remove/ + </VarListEntry> + + <VarListEntry><term><option/--only-source/</> + <ListItem><Para> + Sólo tiene sentido para la orden <literal/source/. Indica que los + nombres de paquetes fuente dados no deben ser tratados a + través de la tabla de binarios. Esto significa que si se especifica esta + opción, la orden <literal/source/ sólo aceptará como argumentos nombres de + paquetes fuente, en vez de aceptar nombres de paquetes binarios y luego + buscar el nombre del paquete fuente correspondiente. + Opción de Configuración: <literal/APT::Get::Only-Source/ + </VarListEntry> + + <VarListEntry><term><option/--diff-only/</><term><option/--tar-only/</> + <ListItem><Para> + Descarga sólo el fichero diff o tar del archivo fuente. + Opciones de Configuración: <literal/APT::Get::Diff-Only/ y + <literal/APT::Get::Tar-Only/ + </VarListEntry> + + <VarListEntry><term><option/--arch-only/</> + <ListItem><Para> + Procesa sólo las dependencias de construcción dependientes de la + arquitectura. Opción de configuración: <literal/APT::Get::Arch-Only/ + </VarListEntry> + + &apt-commonoptions; + + </VariableList> + </RefSect1> + + <RefSect1><Title>Ficheros</> + <variablelist> + <VarListEntry><term><filename>/etc/apt/sources.list</></term> + <ListItem><Para> + Fichero que contiene los sitios de donde se obtienen los paquetes. + Opción de Configuración: <literal/Dir::Etc::SourceList/. + </VarListEntry> + + <VarListEntry><term><filename>/etc/apt/apt.conf</></term> + <ListItem><Para> + Fichero de configuración de APT. + Opción de Configuración: <literal/Dir::Etc::Main/. + </VarListEntry> + + <VarListEntry><term><filename>/etc/apt/apt.conf.d/</></term> + <ListItem><Para> + Directorio con fragmentos de ficheros de configuración APT. + Opción de Configuración: <literal/Dir::Etc::Parts/. + </VarListEntry> + + <VarListEntry><term><filename>/etc/apt/preferences</></term> + <ListItem><Para> + Fichero de configuración que contiene preferencias sobre versiones de + paquetes, por ejemplo, puede especificar que un cierto paquete se descargue + de un sitio diferente, o de una distribución con una versión diferente. + Opción de Configuración: <literal/Dir::Etc::Preferences/. + </VarListEntry> + + <VarListEntry><term><filename>&cachedir;/archives/</></term> + <ListItem><Para> + Directorio donde se guardan los paquetes obtenidos. + Opción de Configuración: <literal/Dir::Cache::Archives/. + </VarListEntry> + + <VarListEntry><term><filename>&cachedir;/archives/partial/</></term> + <ListItem><Para> + Directorio donde se guardan los ficheros en tránsito. + Opción de Configuración: <literal/Dir::Cache::Archives/ (Implica partial). + </VarListEntry> + + <VarListEntry><term><filename>&statedir;/lists/</></term> + <ListItem><Para> + Directorio donde se almacena información de estado por cada + sitio especificado en &sources-list; + Opción de Configuración: <literal/Dir::State::Lists/. + </VarListEntry> + + <VarListEntry><term><filename>&statedir;/lists/partial/</></term> + <ListItem><Para> + Directorio de almacenamiento para la información de estado en tránsito. + Opción de Configuración: <literal/Dir::State::Lists/ (Implica partial). + </VarListEntry> + </variablelist> + </RefSect1> + + <RefSect1><Title>Vea además</> + <para> + &apt-cache;, &apt-cdrom;, &dpkg;, &dselect;, &sources-list;, &apt-conf;, + &apt-config;, la guía de usuario de APT en &docdir;, &apt-preferences;, el + Cómo de APT. + </RefSect1> + + <RefSect1><Title>Diagnósticos</> + <para> + <command/apt-get/ devuelve cero en operaciones satisfactorias, 100 en caso + de error. + </RefSect1> + + &manbugs; + &manauthor; + + <refsect1> + <title>TRADUCTOR + + Traducción de Rubén Porras Campo + <debian-l10n-spanish@lists.debian.org> + + + + diff --git a/doc/es/apt.conf.es.5 b/doc/es/apt.conf.es.5 new file mode 100644 index 0000000..f73b4c7 --- /dev/null +++ b/doc/es/apt.conf.es.5 @@ -0,0 +1,365 @@ +.\" This manpage has been automatically generated by docbook2man +.\" from a DocBook document. This tool can be found at: +.\" +.\" Please send any bug reports, improvements, comments, patches, +.\" etc. to Steve Cheng . +.TH "APT.CONF" "5" "04 December 2006" "" "" + +.SH NAME +apt.conf \- Archivo de configuración de APT +.SH "DESCRIPCIóN" +.PP +\fIapt.conf\fR es el fichero principal de configuración del conjunto de +herramientas APT, todas las herramientas hacen uso del fichero de +configuración y un analizador común de sintaxis de la línea de órdenes +para proporcionar un entorno uniforme. Cuando se inicia una utilidad APT, +este leerá la configuración especificada en la variable de entorno +\fBAPT_CONFIG\fR (si existe), luego leerá los ficheos en +Dir::Etc::Parts, entonces leerá el fichero de configuración +principal especificado por Dir::Etc::main, finalmente aplicará +las opciones de la línea de órdenes para reescribir la directrices de la +configuración, posiblemente cargando incluso más ficheros de configuración. +.PP +El fichero de configuración está organizado en forma de árbol con las +opciones organizadas en grupos funcionales. Las opciones especificadas son +dadas con dobles dos puntos, por ejemplo APT::Get::Assume-Yes es +un opción de la función GET del conjunto de herramientas APT. +Las opciones no son heredadas de sus grupos padres. +.PP +Sintácticamente, el lenguaje de configuración es modelado como en utilidades +ISC, como bind y dhcp. Las líneas que comienzan con // se +tratan como comentarios (se ignoran). Cada línea es de la forma + +.nf +APT::Get::Assume-Yes "true"; +.fi +Los +espacios entre los dos puntos son obligatorios, y las comillas son +opcionales. Un nuevo ámbito puede abrirse con llaves, por ejemplo: +.PP + +.nf + +APT { + Get { + Assume-Yes "true"; + Fix-Broken "true"; + }; +}; +.fi +con nuevas líneas en cada lugar para hacerlo más legible. Las listas pueden +crearse abriendo un nuevo ámbito e incluyendo una única palabra acotada +entre comillas seguido de un punto y coma. Pueden ser incluidas múltiples +entradas, cada una separada por un punto y coma. +.PP + +.nf + +DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; +.fi +.PP +En general, el fichero de configuración de ejemplo +\fI/usr/share/doc/apt/examples/apt.conf\fR \fI/usr/share/doc/apt/examples/configure-index.gz\fR es una buena guía +para entender su aspecto. +.PP +Se permiten dos valores especiales, #include y #clear\&. +#include incluirá el fichero dado, a menos que el final del nombre +del fichero acabe en una barra, entonces se incluye el directorio entero. +#clear se usa para suprimir la lista de nombres. +.PP +Todas las utilidades APT permiten la opción -o como una directriz +arbitraria de configuración que es especificada en la línea de órdenes. La +sintaxis es un nombre de opción completo (APT::Get::Assume-Yes +por ejemplo) seguido por signos de igualdad y el nuevo valor de la +opción. Las listas también pueden ser añadidas incluyendo :: al final del +nombre de la lista. +.SH "EL GRUPO APT" +.PP +Este grupo de opciones controlan la conducta general de APT así como el +mantenimiento de las opciones para todas las utilidades. +.TP +\fBArquitectura\fR +Arquitectura del sistema; ajusta la arquitectura a usar cuando se obtengan +los ficheros y se analicen las listas de paquetes. El valor por defecto es +la arquitectura para la que ha sido compilado apt. +.TP +\fBIgnore-Hold\fR +Ignorar paquetes retenidos: Esta opción global causa que el solucionador de +problemas ignore paquetes retenidos cuando tome decisiones. +.TP +\fBClean-Installed\fR +Activo por defecto. Cuando se activa la función de auto-limpieza, ésta +eliminará cualquier paquete de la caché que ya no pueda descargarse. Si se +desactiva, entonces los paquetes que están localmente instalados son +excluidos de la limpieza - nótese que APT no provee ningún medio directo +para reinstalarlos. +.TP +\fBImmediate-Configure\fR +Deshabilita la configuración inmediata: Esta peligrosa opción +deshabilita algunas partes del código de ordenación de APT para inducir a éste +a hacer pocas llamadas a dpkg. Hacer esto podría ser necesario en algún +sistema de usuario extremadamente lento, pero sería muy peligroso y +podría causar que los scripts de instalación del paquete fallaran o algo +peor. Úselo a su cuenta y riesgo. +.TP +\fBForce-LoopBreak\fR +Nunca habilite esta opción a menos que usted -realmente- conozca lo que +está haciendo. Esto permite a APT eliminar temporalmente un paquete +esencial para romper conflictos o bucles conflictos/pre-dependencias +entre dos paquetes esenciales. EL BUCLE NO DEBERÍA EXISTIR NUNCA COMO TAL +Y ES UN ERROR GRAVE. Esta opción trabajará si el paquete esencial no es +tar, gzip, libc, dpkg, bash o cualquier otro del que dependan estos +paquetes. +.TP +\fBCache-Limit\fR +APT usa un fichero de caché de memoria mapeada de tamaño fijo para +almacenar la información disponible. Esto fija el tamaño de esa caché. +.TP +\fBBuild-Essential\fR +Define que paquete(s) son considerados dependencias de construcción +esenciales. +.TP +\fBGet\fR +La subsección Get controla la herramienta \fBapt-get\fR(8), por favor, mire su +documentación para más información sobre esta opción. +.TP +\fBCache\fR +La subsección Cache controla la herramienta \fBapt-cache\fR(8), por favor, mire +su documentación para más información sobre esta opción. +.TP +\fBCDROM\fR +La subsección CDROM controla la herramienta \fBapt-cdrom\fR(8), por favor, mire +la documentación para más información sobre esta opción. +.SH "EL GRUPO ACQUIRE" +.PP +El grupo de opciones Acquire controla la descarga de paquetes y los +manejadores de URI. +.TP +\fBQueue-Mode\fR +Modo de cola; Queue-Mode puede ser host o +access que determina como paralelizar las conexiones salientes +de APT. host significa que se abrirá una conexión +por puesto de destino, access significa que será abierta una +conexión por cada tipo de URI. +.TP +\fBRetries\fR +Número de reintentos. Si es distinto de cero APT volverá a intentar obtener +los ficheros fallidos el número de veces dado. +.TP +\fBSource-Symlinks\fR +Usar enlaces simbólicos para los archivos fuente. Si es true los archivos +fuente se enlazarán a ser posible, en vez de copiarse. Por omisión es true. +.TP +\fBhttp\fR +HTTP URIs; http::Proxy es el proxy http predeterminado a usar. Usa el +formato general http://[[usuario][:clave]@]puesto[:puerto]/\&. +También se puede especificar un proxy por cada puesto usando la forma +http::Proxy:: con la palabra especial DIRECT +queriendo decir que no se use proxy. La variable de entorno +\fBhttp_proxy\fR modifica todas las preferencias. + +Para los proxies que cumplen con HTTP/1.1 se proporcionan tres opciones de +configuración. No-Cache dice al proxy que no use su caché bajo +ninguna circunstancia, Max-Age sólo se envía para los ficheros de +índice y le pide a la caché que refresque su copia si es más antigua que +un determinado número de segundos. Debian actualiza sus ficheros de índices +diariamente, debido a esto el valor predeterminado es 1 día. +No-Store especifica que la caché nunca deberá almacenar la +petición, sólo está habilitada para los ficheros de archivo. Puede ser +útil para prevenir que un proxy se contamine con ficheros .deb muy +grandes. Nota: Squid 2.0.2 no soporta ninguna de estas opciones. + +La opción timeout establece el tiempo máximo de espera del +método, esto se aplica a todo, incluyendo el tiempo de espera para realizar +la conexión y para recibir datos. + +Se proporciona una opción para controlar la profundidad de la tubería en +casos en que el servidor no cumpla con RFC o tenga fallos (como pasa con +Squid 2.0.2). +Acquire::http::Pipeline-Depth puede ser un valor entre 0 y 5 +indicando cuantas peticiones sin resolver puede envíar APT. DEBE +especificarse si el puesto remoto no demora apropiadamente las conexiones +TCP - de otro modo los datos se corromperán. Los puesto que necesiten esto +violan el RFC 2068. +.TP +\fBftp\fR +FTP URIs; ftp::Proxy es el servidor proxy a usar de forma +predeterminada. Se encuentra en el formato estándar +ftp://[[usuario][:clave]@]puesto[:puerto]/ y se modifica mediante +la variable de entorno \fBftp_proxy\fR\&. Para usar un proxy ftp es +necesario establecer el script ftp::ProxyLogin en el fichero de +configuración. Esta entrada especifica órdenes que se mandan al servidor +proxy para decirle a donde debe conectarse. Consulte \fI/usr/share/doc/apt/examples/configure-index.gz\fR para +ver un ejemplo de como hacerlo. Las variables de substitución disponibles +son $(PROXY_USER), $(PROXY_PASS), +$(SITE_USER), $(SITE_PASS), $(SITE), y +$(SITE_PORT)\&. Cada una se toma del componete de la URI +correspondiente. + +La opción timeout establece el tiempo máximo de espera del +método, esto se aplica a todo, incluyendo el tiempo de espera para realizar +la conexión y para recibir datos. + +Se proporcionan varias opciones para controlar el modo pasivo. Generalmente +es seguro dejar activado el modo pasivo, funciona en casi todos los +entornos. Sin embargo algunas situaciones requieren desactivar el modo +pasivo y usar el modo puerto e su lugar. Esto se puede hacer globalmente, +para conexiones a través de proxy o para un puesto específico (Consulte el +fichero de configuración de muestra para ver ejemplos). + +Es posible usar proxy FTP a través de HTTP estableciendo la variable de +entorno \fBftp_proxy\fR a una dirección http - mire la discusión del +método http de arriba para la sintaxis. No se puede habilitar en el fichero +de configuración y no se recomienda su uso debido a su poca eficiencia. + +La opción ForceExtended controla el uso de las órdenes de RFC2428 +EPSV y EPRT\&. Por omisión es false, que quiere decir que +sólo se usan si el control de conexión es IPv6. Poniéndolo a true fuerza su +uso incluso en conexiones IPv4. Dese cuenta que la mayoría de los +servidores FTP no soportan RFC2428. +.TP +\fBcdrom\fR +CDROM URIs; la única opción de configuración para los CDROM es el punto de +montaje, cdrom::Mount debe ser el punto de montaje de la unidad +de CDROM tal y como se especifica en \fI/etc/fstab\fR\&. Es posible +proporcionar órdenes mount y unmount alternativas si el punto de montaje no +puede especificarse en fstab (como con SMB y versiones de mount +antiguas). Respecto a la sintaxis se pone + +.nf +"/cdrom/"::Mount + "tal"; +.fi +dentro del bloque cdrom. Es importante no tener una +barra final. Las órdenes de unmount pueden especificarse usando UMount. +.SH "DIRECTORIOS" +.PP +La sección Dir::State contiene directorios que pertenecen a +información del estado local. lists es el directorio donde se +almacenan las listas de paquetes descargados y status es el nombre +del fichero de estado de dpkg. +preferences es el nombre del fichero de preferencias de APT. +Dir::State contiene el directorio que se usará como prefijo por +omisión en todas las opciones restantes en caso de que no empiezen con +\fI/\fR o \fI\&./\fR\&. +.PP +Dir::Cache contiene lugares pertenecientes a información de la +caché local, como las dos cachés de paquetes srcpkgcache y +pkgcache o como el lugar donde se guardan los ficheros descargados, +Dir::Cache::archives\&. La generación de cachés puede desactivarse +dejando sus nombres en blanco. Ésto enlentecerá el arranque pero ahorrará +espacio. Normalmente se prefiere deshabilitar pkgcache en vez de +srcpkgcache. Al igual que con Dir::State el directorio +predeterminado está en Dir::Cache +.PP +Dir::Etc contiene el lugar de los ficheros de configuración, +sourcelist contiene el lugar de sourcelist y main es el +fichero de configuración predeterminado (esta opción de configuración no +tiene ningún efecto a menos que se realice desde el fichero de configuración +especificado por \fBAPT_CONFIG\fR). +.PP +La opción Dir::Parts lee en todos los fragementos de configuración +en orden léxico desde el directorio +especificado. Después de esto se carga el fichero principal de configuración. +.PP +Dir::Bin apunta a los programas +binarios. Dir::Bin::Methods especifica la localización de los +manejadores de los métodos y gzip, dpkg, +apt-get, dpkg-source, dpkg-buildpackage y +apt-cache especifican la localización de los respectivos programas. +.SH "APT CON DSELECT" +.PP +Cuando APT se usa como método de \fBdselect\fR(8) varias directivas de configuración +controlan el comportamiento predeterminado. Se encuentran en la sección +DSelect\&. +.TP +\fBClean\fR +Modo de borrado de caché; este valor puede ser always, prompt, auto, +pre-auto y never. always y prompt borrarán todos los paquetes de la caché +después de actualizar, prompt (predeterminado) pregunta primero. +auto borra sólo aquellos paquetes que ya no se pueden descargar (han sido +reemplazados por otra versión, por ejemplo). pre-auto realiza esta última +acción antes de descargar los paquetes nuevos. +.TP +\fBOptions\fR +El contenido de esta variable se pasa a \fBapt-get\fR(8) como opciones de línea de +ordenes cuando se ejecuta en la fase de instalación. +.TP +\fBUpdateOptions\fR +El contenido de esta variable se pasa a \fBapt-get\fR(8) como opciones de línea de +ordenes cuando se ejecuta en la fase de actualización. +.TP +\fBPromptAfterUpdate\fR +Si es true la operación de [U]pdate en \fBdselect\fR(8) preguntará siempre antes +de continuar. Por omisión sólo pregunta en caso de error. +.SH "COMO APT LLAMA A DPKG" +.PP +Varias directivas de configuración controlan como APT llama a \fBdpkg\fR(8)\&. Se +encuentran en la sección DPkg\&. +.TP +\fBOptions\fR +Lista de opciones que se pasan a dpkg. Las opciones deben especificarse +usando la notación de lista y cada elemento de la lista se pasa a \fBdpkg\fR(8) +como un sólo argumento. +.TP +\fBPre-Invoke\fR +.TP +\fBPost-Invoke\fR +Es una lista de órdenes de shell que se ejecutarán antes de llamar a +\fBdpkg\fR(8)\&. Como Options, debe de especificarse con notación de +lista. Las órdenes se ejecutan en orden usando \fI/bin/sh\fR, si +alguna falla APT abortará. +.TP +\fBPre-Install-Pkgs\fR +Lista de órdenes de shell que se ejecutarán antes de llamar a +\fBdpkg\fR(8)\&. Como Options, debe de especificarse con notación de +lista. Las órdenes se ejecutan en orden usando \fI/bin/sh\fR, si +alguna falla APT abortará. APT pasará a los programas los nombres de +fichero de todos los .deb que va ha instalar por la entrada estándar, uno +por línea. + +La versión 2 de este protocolo vuelca más información, incluyendo la +versión del protocolo, el espacio de configuración de APT , los ficheros y versiones que cambian. La versión 2 se habilita +estableciendo DPkg::Tools::Options::cmd::Version a +2. cmd es una orden dada a Pre-Install-Pkgs\&. +.TP +\fBRun-Directory\fR +APT hace que éste sea su directorio de trabajo antes de llamar a dpkg, por +omisión es \fI/\fR\&. +.TP +\fBBuild-Options\fR +Éstas opciones se pasan a \fBdpkg-buildpackage\fR(1) cuando compila paquetes, +por omisión se limita a deshabilitar el firmado de paquetes y producir +todos los binarios. +.SH "OPCIONES DE DEPURACIóN" +.PP +La mayoría de las opciones de la sección debug no son interesantes +para el usuario normal, sin embargo Debug::pkgProblemResolver +muestra una salida interesante acerca de las decisiones que realiza +dist-upgrade. Debug::NoLocking deshabilita el bloqueo de fichero de +forma que APT puede realizar algunas operaciones sin permisos de superusuario +y Debug::pkgDPkgPM mostrará la línea de órdenes para cada llamada a +dpkg. Debug::IdentCdrom deshabilitará la inclusión de datos de +statfs en los ID's de los CDROM. +.SH "EJEMPLOS" +.PP +\fI/usr/share/doc/apt/examples/configure-index.gz\fR contiene un fichero de configuración de ejemplo mostrando +los valores predeterminados para todas las opciones posibles. +.SH "FICHEROS" +.PP +\fI/etc/apt/apt.conf\fR +.SH "VéASE TAMBIéN" +.PP +\fBapt-cache\fR(8), \fBapt-config\fR(8), \fBapt_preferences\fR(5)\&. +.SH "FALLOS" +.PP +Vea la página de fallos de APT \&. +Si desea avisar de un fallo en APT, vea +\fI/usr/share/doc/debian/bug-reporting.txt\fR o la orden \fBreportbug\fR(1)\&. +.SH "AUTOR" +.PP +APT fue escrito por el equipo de APT \&. +.SH "TRADUCTOR" +.PP +Traducción de Rubén Porras Campo + diff --git a/doc/es/apt.conf.es.5.sgml b/doc/es/apt.conf.es.5.sgml new file mode 100644 index 0000000..53ff58a --- /dev/null +++ b/doc/es/apt.conf.es.5.sgml @@ -0,0 +1,447 @@ + + +%aptent; + +]> + + + + + &apt-docinfo; + + + apt.conf + 5 + + + + + apt.conf + Archivo de configuración de APT + + + Descripción</> + <para> + <filename/apt.conf/ es el fichero principal de configuración del conjunto de + herramientas APT, todas las herramientas hacen uso del fichero de + configuración y un analizador común de sintaxis de la línea de órdenes + para proporcionar un entorno uniforme. Cuando se inicia una utilidad APT, + este leerá la configuración especificada en la variable de entorno + <envar/APT_CONFIG/ (si existe), luego leerá los ficheos en + <literal/Dir::Etc::Parts/, entonces leerá el fichero de configuración + principal especificado por <literal/Dir::Etc::main/, finalmente aplicará + las opciones de la línea de órdenes para reescribir la directrices de la + configuración, posiblemente cargando incluso más ficheros de configuración. + <para> + El fichero de configuración está organizado en forma de árbol con las + opciones organizadas en grupos funcionales. Las opciones especificadas son + dadas con dobles dos puntos, por ejemplo <literal/APT::Get::Assume-Yes/ es + un opción de la función GET del conjunto de herramientas APT. + Las opciones no son heredadas de sus grupos padres. + <para> + Sintácticamente, el lenguaje de configuración es modelado como en utilidades + ISC, como bind y dhcp. Las líneas que comienzan con <literal>//</literal> se + tratan como comentarios (se ignoran). Cada línea es de la forma + <literallayout>APT::Get::Assume-Yes "true";</literallayout> Los + espacios entre los dos puntos son obligatorios, y las comillas son + opcionales. Un nuevo ámbito puede abrirse con llaves, por ejemplo: +<informalexample><programlisting> +APT { + Get { + Assume-Yes "true"; + Fix-Broken "true"; + }; +}; +</programlisting></informalexample> + con nuevas líneas en cada lugar para hacerlo más legible. Las listas pueden + crearse abriendo un nuevo ámbito e incluyendo una única palabra acotada + entre comillas seguido de un punto y coma. Pueden ser incluidas múltiples + entradas, cada una separada por un punto y coma. +<informalexample><programlisting> +DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; +</programlisting></informalexample> + <para> + En general, el fichero de configuración de ejemplo + <filename>&docdir;examples/apt.conf</> &configureindex; es una buena guía + para entender su aspecto. + <para> + Se permiten dos valores especiales, <literal/#include/ y <literal/#clear/. + <literal/#include/ incluirá el fichero dado, a menos que el final del nombre + del fichero acabe en una barra, entonces se incluye el directorio entero. + <literal/#clear/ se usa para suprimir la lista de nombres. + <para> + Todas las utilidades APT permiten la opción -o como una directriz + arbitraria de configuración que es especificada en la línea de órdenes. La + sintaxis es un nombre de opción completo (<literal/APT::Get::Assume-Yes/ + por ejemplo) seguido por signos de igualdad y el nuevo valor de la + opción. Las listas también pueden ser añadidas incluyendo :: al final del + nombre de la lista. + </RefSect1> + + <RefSect1><Title>El grupo APT</> + <para> + Este grupo de opciones controlan la conducta general de APT así como el + mantenimiento de las opciones para todas las utilidades. + <VariableList> + <VarListEntry><Term>Arquitectura</Term> + <ListItem><Para> + Arquitectura del sistema; ajusta la arquitectura a usar cuando se obtengan + los ficheros y se analicen las listas de paquetes. El valor por defecto es + la arquitectura para la que ha sido compilado apt. + </VarListEntry> + + <VarListEntry><Term>Ignore-Hold</Term> + <ListItem><Para> + Ignorar paquetes retenidos: Esta opción global causa que el solucionador de + problemas ignore paquetes retenidos cuando tome decisiones. + </VarListEntry> + + <VarListEntry><Term>Clean-Installed</Term> + <ListItem><Para> + Activo por defecto. Cuando se activa la función de auto-limpieza, ésta + eliminará cualquier paquete de la caché que ya no pueda descargarse. Si se + desactiva, entonces los paquetes que están localmente instalados son + excluidos de la limpieza - nótese que APT no provee ningún medio directo + para reinstalarlos. + </VarListEntry> + + <VarListEntry><Term>Immediate-Configure</Term> + <ListItem><Para> + Deshabilita la configuración inmediata: Esta peligrosa opción + deshabilita algunas partes del código de ordenación de APT para inducir a éste + a hacer pocas llamadas a dpkg. Hacer esto podría ser necesario en algún + sistema de usuario extremadamente lento, pero sería muy peligroso y + podría causar que los scripts de instalación del paquete fallaran o algo + peor. Úselo a su cuenta y riesgo. + </VarListEntry> + + <VarListEntry><Term>Force-LoopBreak</Term> + <ListItem><Para> + Nunca habilite esta opción a menos que usted -realmente- conozca lo que + está haciendo. Esto permite a APT eliminar temporalmente un paquete + esencial para romper conflictos o bucles conflictos/pre-dependencias + entre dos paquetes esenciales. EL BUCLE NO DEBERÍA EXISTIR NUNCA COMO TAL + Y ES UN ERROR GRAVE. Esta opción trabajará si el paquete esencial no es + tar, gzip, libc, dpkg, bash o cualquier otro del que dependan estos + paquetes. + </VarListEntry> + + <VarListEntry><Term>Cache-Limit</Term> + <ListItem><Para> + APT usa un fichero de caché de memoria mapeada de tamaño fijo para + almacenar la información disponible. Esto fija el tamaño de esa caché. + </VarListEntry> + + <VarListEntry><Term>Build-Essential</Term> + <ListItem><Para> + Define que paquete(s) son considerados dependencias de construcción + esenciales. + </VarListEntry> + + <VarListEntry><Term>Get</Term> + <ListItem><Para> + La subsección Get controla la herramienta &apt-get;, por favor, mire su + documentación para más información sobre esta opción. + </VarListEntry> + + <VarListEntry><Term>Cache</Term> + <ListItem><Para> + La subsección Cache controla la herramienta &apt-cache;, por favor, mire + su documentación para más información sobre esta opción. + </VarListEntry> + + <VarListEntry><Term>CDROM</Term> + <ListItem><Para> + La subsección CDROM controla la herramienta &apt-cdrom;, por favor, mire + la documentación para más información sobre esta opción. + </VarListEntry> + </VariableList> + </RefSect1> + + <RefSect1><Title>El grupo Acquire</> + <para> + El grupo de opciones <literal/Acquire/ controla la descarga de paquetes y los + manejadores de URI. + <VariableList> + <VarListEntry><Term>Queue-Mode</Term> + <ListItem><Para> + Modo de cola; <literal/Queue-Mode/ puede ser <literal/host/ o + <literal/access/ que determina como paralelizar las conexiones salientes + de APT. <literal/host/ significa que se abrirá una conexión + por puesto de destino, <literal/access/ significa que será abierta una + conexión por cada tipo de URI. + </VarListEntry> + + <VarListEntry><Term>Retries</Term> + <ListItem><Para> + Número de reintentos. Si es distinto de cero APT volverá a intentar obtener + los ficheros fallidos el número de veces dado. + </VarListEntry> + + <VarListEntry><Term>Source-Symlinks</Term> + <ListItem><Para> + Usar enlaces simbólicos para los archivos fuente. Si es true los archivos + fuente se enlazarán a ser posible, en vez de copiarse. Por omisión es true. + </VarListEntry> + + <VarListEntry><Term>http</Term> + <ListItem><Para> + HTTP URIs; http::Proxy es el proxy http predeterminado a usar. Usa el + formato general <literal>http://[[usuario][:clave]@]puesto[:puerto]/</>. + También se puede especificar un proxy por cada puesto usando la forma + <literal/http::Proxy::<puesto>/ con la palabra especial <literal/DIRECT/ + queriendo decir que no se use proxy. La variable de entorno + <envar/http_proxy/ modifica todas las preferencias. + <para> + Para los proxies que cumplen con HTTP/1.1 se proporcionan tres opciones de + configuración. <literal/No-Cache/ dice al proxy que no use su caché bajo + ninguna circunstancia, <literal/Max-Age/ sólo se envía para los ficheros de + índice y le pide a la caché que refresque su copia si es más antigua que + un determinado número de segundos. Debian actualiza sus ficheros de índices + diariamente, debido a esto el valor predeterminado es 1 día. + <literal/No-Store/ especifica que la caché nunca deberá almacenar la + petición, sólo está habilitada para los ficheros de archivo. Puede ser + útil para prevenir que un proxy se contamine con ficheros .deb muy + grandes. Nota: Squid 2.0.2 no soporta ninguna de estas opciones. + <para> + La opción <literal/timeout/ establece el tiempo máximo de espera del + método, esto se aplica a todo, incluyendo el tiempo de espera para realizar + la conexión y para recibir datos. + <para> + Se proporciona una opción para controlar la profundidad de la tubería en + casos en que el servidor no cumpla con RFC o tenga fallos (como pasa con + Squid 2.0.2). + <literal/Acquire::http::Pipeline-Depth/ puede ser un valor entre 0 y 5 + indicando cuantas peticiones sin resolver puede envíar APT. DEBE + especificarse si el puesto remoto no demora apropiadamente las conexiones + TCP - de otro modo los datos se corromperán. Los puesto que necesiten esto + violan el RFC 2068. + </VarListEntry> + + <VarListEntry><Term>ftp</Term> + <ListItem><Para> + FTP URIs; ftp::Proxy es el servidor proxy a usar de forma + predeterminada. Se encuentra en el formato estándar + <literal>ftp://[[usuario][:clave]@]puesto[:puerto]/</> y se modifica mediante + la variable de entorno <envar/ftp_proxy/. Para usar un proxy ftp es + necesario establecer el script <literal/ftp::ProxyLogin/ en el fichero de + configuración. Esta entrada especifica órdenes que se mandan al servidor + proxy para decirle a donde debe conectarse. Consulte &configureindex; para + ver un ejemplo de como hacerlo. Las variables de substitución disponibles + son <literal/$(PROXY_USER)/, <literal/$(PROXY_PASS)/, + <literal/$(SITE_USER)/, <literal/$(SITE_PASS)/, <literal/$(SITE)/, y + <literal/$(SITE_PORT)/. Cada una se toma del componete de la URI + correspondiente. + <para> + La opción <literal/timeout/ establece el tiempo máximo de espera del + método, esto se aplica a todo, incluyendo el tiempo de espera para realizar + la conexión y para recibir datos. + <para> + Se proporcionan varias opciones para controlar el modo pasivo. Generalmente + es seguro dejar activado el modo pasivo, funciona en casi todos los + entornos. Sin embargo algunas situaciones requieren desactivar el modo + pasivo y usar el modo puerto e su lugar. Esto se puede hacer globalmente, + para conexiones a través de proxy o para un puesto específico (Consulte el + fichero de configuración de muestra para ver ejemplos). + <para> + Es posible usar proxy FTP a través de HTTP estableciendo la variable de + entorno <envar/ftp_proxy/ a una dirección http - mire la discusión del + método http de arriba para la sintaxis. No se puede habilitar en el fichero + de configuración y no se recomienda su uso debido a su poca eficiencia. + <para> + La opción <literal/ForceExtended/ controla el uso de las órdenes de RFC2428 + <literal/EPSV/ y <literal/EPRT/. Por omisión es false, que quiere decir que + sólo se usan si el control de conexión es IPv6. Poniéndolo a true fuerza su + uso incluso en conexiones IPv4. Dese cuenta que la mayoría de los + servidores FTP no soportan RFC2428. + </VarListEntry> + + <VarListEntry><Term>cdrom</Term> + <ListItem><Para> + CDROM URIs; la única opción de configuración para los CDROM es el punto de + montaje, <literal/cdrom::Mount/ debe ser el punto de montaje de la unidad + de CDROM tal y como se especifica en <filename>/etc/fstab</>. Es posible + proporcionar órdenes mount y unmount alternativas si el punto de montaje no + puede especificarse en fstab (como con SMB y versiones de mount + antiguas). Respecto a la sintaxis se pone <literallayout>"/cdrom/"::Mount + "tal";</literallayout> dentro del bloque cdrom. Es importante no tener una + barra final. Las órdenes de unmount pueden especificarse usando UMount. + </VarListEntry> + </VariableList> + </RefSect1> + + <RefSect1><Title>Directorios</> + <para> + La sección <literal/Dir::State/ contiene directorios que pertenecen a + información del estado local. <literal/lists/ es el directorio donde se + almacenan las listas de paquetes descargados y <literal/status/ es el nombre + del fichero de estado de dpkg. + <literal/preferences/ es el nombre del fichero de preferencias de APT. + <literal/Dir::State/ contiene el directorio que se usará como prefijo por + omisión en todas las opciones restantes en caso de que no empiezen con + <filename>/</> o <filename>./</>. + <para> + <literal/Dir::Cache/ contiene lugares pertenecientes a información de la + caché local, como las dos cachés de paquetes <literal/srcpkgcache/ y + <literal/pkgcache/ o como el lugar donde se guardan los ficheros descargados, + <literal/Dir::Cache::archives/. La generación de cachés puede desactivarse + dejando sus nombres en blanco. Ésto enlentecerá el arranque pero ahorrará + espacio. Normalmente se prefiere deshabilitar pkgcache en vez de + srcpkgcache. Al igual que con <literal/Dir::State/ el directorio + predeterminado está en <literal/Dir::Cache/ + <para> + <literal/Dir::Etc/ contiene el lugar de los ficheros de configuración, + <literal/sourcelist/ contiene el lugar de sourcelist y <literal/main/ es el + fichero de configuración predeterminado (esta opción de configuración no + tiene ningún efecto a menos que se realice desde el fichero de configuración + especificado por <envar/APT_CONFIG/). + <para> + La opción <literal/Dir::Parts/ lee en todos los fragementos de configuración + en orden léxico <!--¿Y esto qué es?--> desde el directorio + especificado. Después de esto se carga el fichero principal de configuración. + <para> + <literal/Dir::Bin/ apunta a los programas + binarios. <literal/Dir::Bin::Methods/ especifica la localización de los + manejadores de los métodos y <literal/gzip/, <literal/dpkg/, + <literal/apt-get/, <literal/dpkg-source/, <literal/dpkg-buildpackage/ y + <literal/apt-cache/ especifican la localización de los respectivos programas. + </RefSect1> + + <RefSect1><Title>APT con DSelect</> + <para> + Cuando APT se usa como método de &dselect; varias directivas de configuración + controlan el comportamiento predeterminado. Se encuentran en la sección + <literal/DSelect/. + + <VariableList> + <VarListEntry><Term>Clean</Term> + <ListItem><Para> + Modo de borrado de caché; este valor puede ser always, prompt, auto, + pre-auto y never. always y prompt borrarán todos los paquetes de la caché + después de actualizar, prompt (predeterminado) pregunta primero. + auto borra sólo aquellos paquetes que ya no se pueden descargar (han sido + reemplazados por otra versión, por ejemplo). pre-auto realiza esta última + acción antes de descargar los paquetes nuevos. + </VarListEntry> + + <VarListEntry><Term>Options</Term> + <ListItem><Para> + El contenido de esta variable se pasa a &apt-get; como opciones de línea de + ordenes cuando se ejecuta en la fase de instalación. + </VarListEntry> + + <VarListEntry><Term>UpdateOptions</Term> + <ListItem><Para> + El contenido de esta variable se pasa a &apt-get; como opciones de línea de + ordenes cuando se ejecuta en la fase de actualización. + </VarListEntry> + + <VarListEntry><Term>PromptAfterUpdate</Term> + <ListItem><Para> + Si es true la operación de [U]pdate en &dselect; preguntará siempre antes + de continuar. Por omisión sólo pregunta en caso de error. + </VarListEntry> + </VariableList> + </RefSect1> + + <RefSect1><Title>Como APT llama a dpkg</> + <para> + Varias directivas de configuración controlan como APT llama a &dpkg;. Se + encuentran en la sección <literal/DPkg/. + + <VariableList> + <VarListEntry><Term>Options</Term> + <ListItem><Para> + Lista de opciones que se pasan a dpkg. Las opciones deben especificarse + usando la notación de lista y cada elemento de la lista se pasa a &dpkg; + como un sólo argumento. + </VarListEntry> + + <VarListEntry><Term>Pre-Invoke</Term><Term>Post-Invoke</Term> + <ListItem><Para> + Es una lista de órdenes de shell que se ejecutarán antes de llamar a + &dpkg;. Como <literal/Options/, debe de especificarse con notación de + lista. Las órdenes se ejecutan en orden usando <filename>/bin/sh</>, si + alguna falla APT abortará. + </VarListEntry> + + <VarListEntry><Term>Pre-Install-Pkgs</Term> + <ListItem><Para> + Lista de órdenes de shell que se ejecutarán antes de llamar a + &dpkg;. Como <literal/Options/, debe de especificarse con notación de + lista. Las órdenes se ejecutan en orden usando <filename>/bin/sh</>, si + alguna falla APT abortará. APT pasará a los programas los nombres de + fichero de todos los .deb que va ha instalar por la entrada estándar, uno + por línea. + <para> + La versión 2 de este protocolo vuelca más información, incluyendo la + versión del protocolo, el espacio de configuración de APT <!--Esto suena + raro-->, los ficheros y versiones que cambian. La versión 2 se habilita + estableciendo <literal/DPkg::Tools::Options::cmd::Version/ a + 2. <literal/cmd/ es una orden dada a <literal/Pre-Install-Pkgs/. + </VarListEntry> + + <VarListEntry><Term>Run-Directory</Term> + <ListItem><Para> + APT hace que éste sea su directorio de trabajo antes de llamar a dpkg, por + omisión es <filename>/</>. + </VarListEntry> + + <VarListEntry><Term>Build-Options</Term> + <ListItem><Para> + Éstas opciones se pasan a &dpkg-buildpackage; cuando compila paquetes, + por omisión se limita a deshabilitar el firmado de paquetes y producir + todos los binarios. + </VarListEntry> + </VariableList> + </RefSect1> + + <RefSect1><Title>Opciones de depuración</> + <para> + La mayoría de las opciones de la sección <literal/debug/ no son interesantes + para el usuario normal, sin embargo <literal/Debug::pkgProblemResolver/ + muestra una salida interesante acerca de las decisiones que realiza + dist-upgrade. <literal/Debug::NoLocking/ deshabilita el bloqueo de fichero de + forma que APT puede realizar algunas operaciones sin permisos de superusuario + y <literal/Debug::pkgDPkgPM/ mostrará la línea de órdenes para cada llamada a + dpkg. <literal/Debug::IdentCdrom/ deshabilitará la inclusión de datos de + statfs <!--¿ésto es correcto-->en los ID's de los CDROM. + </RefSect1> + + <RefSect1><Title>Ejemplos</> + <para> + &configureindex; contiene un fichero de configuración de ejemplo mostrando + los valores predeterminados para todas las opciones posibles. + </RefSect1> + + <RefSect1><Title>Ficheros</> + <para> + <filename>/etc/apt/apt.conf</> + </RefSect1> + + <RefSect1><Title>Véase también</> + <para> + &apt-cache;, &apt-config;<!-- ? reading apt.conf -->, &apt-preferences;. + </RefSect1> + + &manbugs; + &manauthor; + + <refsect1> + <title>TRADUCTOR + + Traducción de Rubén Porras Campo + <debian-l10n-spanish@lists.debian.org> + + + + diff --git a/doc/es/apt.ent.es b/doc/es/apt.ent.es new file mode 100644 index 0000000..cd9c7de --- /dev/null +++ b/doc/es/apt.ent.es @@ -0,0 +1,155 @@ + + + + + + +&docdir;examples/configure-index.gz"> +/etc/apt.conf"> + + + + + + + "> + + + + "> + + + + "> + + + + "> + + + + "> + + + + "> + + + + "> + + + + "> + + + + "> + + + + "> + + + + "> + + + + "> + + + + "> + + + + "> + + + +

apt@packages.debian.org
+ Jason Gunthorpe + 1998-2001 Jason Gunthorpe + 12 March 2001 + +"> + + +Fallos</> + <para> + Vea la <ulink url='http://bugs.debian.org/src:apt'>página de fallos de APT</>. + Si desea avisar de un fallo en APT, vea + <filename>/usr/share/doc/debian/bug-reporting.txt</> o la orden &reportbug;. + </RefSect1> +"> + +<!-- Boiler plate Author section --> +<!ENTITY manauthor " + <RefSect1><Title>Autor</> + <para> + APT fue escrito por el equipo de APT <email>apt@packages.debian.org</>. + </RefSect1> +"> + +<!-- Should be used within the option section of the text to + put in the blurb about -h, -v, -c and -o --> +<!ENTITY apt-commonoptions " + <VarListEntry><term><option/-h/</><term><option/--help/</> + <ListItem><Para> + Muestra un breve resumen del modo de uso. + </VarListEntry> + + <VarListEntry><term><option/-v/</><term><option/--version/</> + <ListItem><Para> + Muestra la versión del programa. + </VarListEntry> + + <VarListEntry><term><option/-c/</><term><option/--config-file/</> + <ListItem><Para> + Especifica el fichero de configuración a usar. + El programa leerá el fichero de configuración por omisión y luego + este otro. Lea &apt-conf; para más información acerca de la sintaxis. + </VarListEntry> + + <VarListEntry><term><option/-o/</><term><option/--option/</> + <ListItem><Para> + Establece una opción de configuración. La sintaxis es <option>-o + Foo::Bar=bar</>. + </VarListEntry> +"> + +<!-- Should be used within the option section of the text to + put in the blurb about -h, -v, -c and -o --> +<!ENTITY apt-cmdblurb " + <para> + Todas las opciones de línea de órdenes pueden ser especificadas + mediante el fichero de configuración, en la descripción de cada opción + se indica la opción de configuración que hay que modificar. Para + opciones booleanas puedes modificar el fichero de configuración usando + cosas parecidas a <option/-f-/,<option/--no-f/, <option/-f=no/ y alguna que + otra variante. + </para> +"> diff --git a/doc/es/apt.es.8 b/doc/es/apt.es.8 new file mode 100644 index 0000000..a98bf6d --- /dev/null +++ b/doc/es/apt.es.8 @@ -0,0 +1,55 @@ +.\" This manpage is copyright (C) 1998 Branden Robinson <branden@debian.org>. +.\" This translation is copyright (C) 2003 The Spanish translation group +.\" <debian-l10n-spanish@lists.debian.org> +.\" +.\" This is free software; you may redistribute it and/or modify +.\" it under the terms of the GNU General Public License as +.\" published by the Free Software Foundation; either version 2, +.\" or (at your option) any later version. +.\" +.\" This is distributed in the hope that it will be useful, but +.\" WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public +.\" License along with APT; if not, write to the Free Software +.\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +.\" 02111-1307 USA +.TH apt 8 "16 Junio 1998" "Debian GNU/Linux" +.SH NOMBRE +apt \- Herramienta Avanzada de Paquetes +.SH SINOPSIS +.B apt +.SH DESCRIPCIÓN +APT es un sistema de gestión de paquetes de software. No hay aún interfaces +amigables para éste, ya que está aún en desarrollo. Consulte mientras +tanto, +.BR apt-get (8). +.SH OPCIONES +Ninguna. +.SH FICHEROS +Ninguno. +.SH LEA TAMBIEN +.BR apt-cache (8), +.BR apt-get (8), +.BR apt.conf (5), +.BR sources.list (5) +.SH DIAGNÓSTICO +apt devuelve cero cuando no ocurre ningún error. Si hay algún error +devuelve el valor 100. +.SH ERRATAS +Esta página de manual no está siquiera iniciada. +.PP +Consulte <http://bugs.debian.org/apt>. Si desea enviar un informe de error +en +.BR apt , +por favor lea +.I /usr/share/doc/debian/bug-reporting.txt +o el programa +.BR reportbug (1) +.SH AUTOR +El equipo APT <apt@packages.debian.org> escribió apt. +La traducción de esta página de manual fue iniciada por +Rudy Godoy <rudy@kernel-panik.org> y revisada posteriormente por +Ismael Fanlo, Rubén Porras y Javier Fernández-Sanguino. diff --git a/doc/es/apt_preferences.es.5 b/doc/es/apt_preferences.es.5 new file mode 100644 index 0000000..d8a9867 --- /dev/null +++ b/doc/es/apt_preferences.es.5 @@ -0,0 +1,443 @@ +.\" This manpage has been automatically generated by docbook2man +.\" from a DocBook document. This tool can be found at: +.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/> +.\" Please send any bug reports, improvements, comments, patches, +.\" etc. to Steve Cheng <steve@ggi-project.org>. +.TH "APT_PREFERENCES" "5" "04 December 2006" "" "" + +.SH NAME +apt_preferences \- Fichero de preferencias de APT +.SH "DESCRIPCIóN" +.PP +El fichero de preferencias de APT \fI/etc/apt/preferences\fR +se puede usar para controlar las versiones de los paquetes seleccionados. +.PP +Cuando el fichero \fB\fIsources.list\fB\fR(5) contiene referencias a más de una +distribución (por ejemplo, estable y pruebas). APT asigna una prioridad a cada versión disponible. +Limitado por las dependencias, \fBapt-get\fR selecciona la versión +con mayor prioridad. +.PP +El fichero de preferencias de APT modifica las prioridades asignadas por +APT, dando control al usuario sobre que ejemplar se seleccionará para la +instalación. +.PP +Puede estén disponibles varios ejemplares de la misma versión de un paquete +cuando el fichero \fB\fIsources.list\fB\fR(5) contenga referencias a más de una fuente. En +este caso \fBapt-get\fR descarga el ejemplar que aparezca listado +primero en el fichero \fB\fIsources.list\fB\fR(5)\&. El fichero de preferencias de APT no +modifica la elección del ejemplar, sólo la elección de la versión. +.SS "¿CóMO ASIGNA APT LAS PRIORIDADES?" +.PP +Si no existe el fichero de preferencias o no hay ninguna entrada en éste +que se pueda aplicar a una determinada versión, se asigna a la versión la +prioridad de la distribución a la que pertenece. Es posible seleccionar una +distribución, >>distribución objetivo<< +(n. t. del inglés \fBtarget release\fR), que recibe +una prioridad mayor que el resto. La distribución objetivo se puede definir +en la línea de órdenes al ejecutar \fBapt-get\fR o en el fichero +de configuración de APT (\fI/etc/apt/apt.conf\fR). +Por ejemplo, + +.nf +\fBapt-get install -t testing \fIpaquete\fB\fR +.fi + +.nf +APT::Default-Release "stable"; +.fi +.PP +Si se ha especificado una distribución objetivo, APT usa el siguiente +algoritmo para establecer las prioridades de cada versión de un paquete. +Asigna: +.TP +\fBprioridad 100\fR +a la versión instalada (si existe). +.TP +\fBprioridad 500\fR +a la versión que ni está instalada ni pertenece a la +distribución objetivo. +.TP +\fBprioridad 990\fR +a las versiones que no están instaladas pero que +pertenecen a la distribución objetivo. +.PP +Si no se especifica ninguna distribución objetivo APT asigna prioridad 100 a +todas las versiones de los paquetes instalados y 500 al resto. +.PP +APT aplica las siguientes normas, expuestas por orden de precedencia, +para determinar qué versión del paquete debe instalar. +.TP 0.2i +\(bu +Nunca instalar una versión anterior de un paquete en lugar +de la instalada a menos que la prioridad de la versión disponible supere 1000 +(Dese cuenta que ninguna de las prioridades que asigna APT por omisión superan +1000, éstas prioridades sólo se pueden establecer mediante el fichero de +preferencias. Tenga en consideración que instalar una versión anterior del +paquete puede ser peligroso). +.TP 0.2i +\(bu +Instalar la versión de mayor prioridad. +.TP 0.2i +\(bu +Si dos o más versiones tienen la misma prioridad, +instala la más reciente (esto es, la que tiene un número de versión mayor). +.TP 0.2i +\(bu +Si dos o más versiones tienen la misma prioridad y número de +versión, pero o bien difieren en su meta-información o se ha proporcionado la +opción --reinstall se instala la que no está instalada. +.PP +Típicamente, la versión instalada del paquete (prioridad 100) +no es tan reciente como la disponible a través de \fB\fIsources.list\fB\fR(5) +(prioridad 500 o 990). Entonces el paquete se actualizará cuando se ejecute +\fBapt-get install \fIalgún-paquete\fB\fR o +\fBapt-get upgrade\fR\&. +.PP +Rara vez la versión instalada de un paquete es \fBmás\fR reciente +que cualquiera de las versiones disponibles. En éste caso no se instalará la +versión anterior del paquete cuando se ejecute \fBapt-get install +\fIalgún-paquete\fB\fR o \fBapt-get +upgrade\fR\&. +.PP +A veces la versión instalada de un paquete es más reciente que la +versión perteneciente a la distribución objetivo, pero no tan reciente como la +versión de otra distribución. Este tipo de paquetes se actualizarán cuando se +ejecute \fBapt-get install +\fIalgún-paquete\fB\fR o \fBapt-get +upgrade\fR porque al menos \fBuno\fR de los ejemplares disponibles +tiene una prioridad mayor que la versión instalada. +.SS "EL EFECTO DE LAS PREFERENCIAS SOBRE APT" +.PP +El fichero de preferencias de APT permite al administrador del sistema controlar +las asignaciones de prioridades. El fichero consiste en uno o más registros de +varias líneas separados entre sí por espacios en blanco. Los registros pueden +tener una o dos formas: una específica y otra general. +.TP 0.2i +\(bu +La forma específica asigna una prioridad ("Pin-Priority") a un paquete +concreto y se aplica a una versión o rango de versiones. Por ejemplo, +el siguiente registro asigna una prioridad alta a todas las versiones del +paquete \fIperl\fR cuyo número de versión empiece con "5.8". + +.nf +Package: perl +Pin: version 5.8* +Pin-Priority: 1001 +.fi +.TP 0.2i +\(bu +La forma general asigna una prioridad a todas las versiones de los paquetes +en una distribución (esto es, a todas las versiones de paquetes provenientes +de un fichero \fIRelease\fR), o a todos las versiones de un paquete +que provienen de un sitio concreto en internet, identificado por su +nombre de dominio. + +Esta forma general del fichero de preferencias de APT sólo se aplica a grupos de +paquetes. Por ejemplo, el siguiente registro hace que asigne una prioridad alta +a todas las versiones disponibles desde un sitio local. + +.nf +Package: * +Pin: origin "" +Pin-Priority: 999 +.fi + +Un aviso acerca de la palabra clave usada en "origin": no debe de +confundirse con el origen ("Origin:") de una distribución tal y como se +especifica en el fichero \fIRelease\fR\&. Lo que sigue a "Origin:" en un +fichero \fIRelease\fR no es una dirección de un sitio de internet, sino el +autor o el nombre del proveedor, tales como "Debian" o "Ximian". + +El siguiente registro asigna una prioridad baja a todas las versiones de los +paquetes pertenecientes a cualquier distribución que tenga como nombre de +Archivo "unstable". + +.nf +Package: * +Pin: release a=unstable +Pin-Priority: 50 +.fi + +El siguiente registro asigna una prioridad alta a todas las versiones de los +paquetes pertenecientes a la distribución que tiene como nombre de Archivo +"stable" y como número de versión "3.0". + +.nf +Package: * +Pin: release a=unstable, v=3.0 +Pin-Priority: 50 +.fi +.SS "¿CóMO INTERPRETA APT LAS PRIORIDADES?" +.PP +Las prioridades (P) asignadas en el fichero de preferencias deben ser +números enteros. Se interpretan (en general) del siguiente modo: +.TP +\fBP > 1000\fR +la versión se instala incluso si es una versión +anterior a la instalada en el sistema. +.TP +\fB990 < P <=1000\fR +la versión se instala aunque no venga de la distribución +objetivo, a menos que la versión instalada sea más reciente. +.TP +\fB500 < P <=990\fR +la versión se instala a menos que exista otro ejemplar +disponible perteneciente a la distribución objetivo o bien la versión +instalada sea más reciente. +.TP +\fB100 < P <=500\fR +la versión se instala a menos que exista un ejemplar +perteneciente a otra distribución o la versión instalada sea más reciente. +.TP +\fB0 < P <=100\fR +la versión sólo se instala si no hay ninguna versión +del paquete instalado. +.TP +\fBP < 0\fR +la versión nunca se instala. +.PP +Si uno de los registros de forma específica descritos arriba coinciden con una +versión disponible de un paquete, el registro determina la prioridad de la +versión. En caso de que esto no sea así, si cualquier número de registros de +forma general coinciden con una versión, el primero determina la prioridad de la +versión del paquete. +.PP +Por ejemplo, suponga que el fichero de preferencias de APT +contiene los tres registros antes mencionados: + +.nf +Package: perl +Pin: version 5.8* +Pin-Priority: 1001 + +Package: * +Pin: origin "" +Pin-Priority: 999 + +Package: * +Pin: release unstable +Pin-Priority: 50 +.fi +Entonces: +.TP 0.2i +\(bu +La versión más reciente disponible del paquete +perl se instala mientras que el número de versión empieze +con "5.8". Si se encuentra disponible \fBcualquier\fR +versión 5.8* de perl y la versión instalada es 5.9*, entonces +se instala la versión5.8*. +.TP 0.2i +\(bu +Cualquier otra versión de un paquete +distinto de +perl disponible desde el sistema local tiene prioridad sobre el +resto de las versiones, incluso sobre los pertenecientes a la distribución +objetivo. +.TP 0.2i +\(bu +Otras versiones que tengan un origen distinto al sistema +local listadas en \fB\fIsources.list\fB\fR(5) y que pertenezcan a la distribución +inestable sólo se instalarán si se seleccionan para instalar y no hay +ninguna versión del paquete instalado. +.SS "DETERMINACIóN DE LA VERSIóN DEL PAQUETE Y DE LAS PROPIEDADES DE LA DISTRIBUCIóN" +.PP +Los recursos del fichero \fB\fIsources.list\fB\fR(5) deben proporcionar los ficheros +\fIPackages\fR y \fIRelease\fR\&. Éstos describen +los paquetes disponibles en cada uno de los sitios. +.PP +El fichero \fIPackages\fR se encuentra normalmente en +el directorio \fI\&.../dists/nombre-dist/ +componente/arquitectura\fR, +por ejemplo, \fI\&.../dists/stable/main/binary-i386/Packages\fR\&. +El fichero consiste en una serie de registros de varias líneas, uno por cada +paquete disponible en ese directorio. Para montar un repositorio de APT sólo +son significativas dos de las líneas de cada registro: +.TP +\fBLa línea Package: \fR +Indica el nombre del paquete +.TP +\fBLa línea Version: \fR +Indica el número de versión del paquete +.PP +El fichero \fIRelease\fR normalmente se encuentra en el +directorio +\fI\&.../dists/nombre-dist\fR, +por ejemplo, \fI\&.../dists/stable/Release\fR, +o \fI\&.../dists/woody/Release\fR\&. +El fichero consiste en registros de una sola línea que se aplican a +\fBtodos\fR los paquetes por debajo del directorio +padre. Al contrario que el fichero \fIPackages\fR, casi todas las +líneas del fichero \fIRelease\fR son relevantes para las prioridades de +APT: +.TP +\fBLa línea Archive: \fR +Indica el nombre del archivo al que pertenecen todos los +paquetes del árbol de directorios. Por ejemplo, la línea +"Archive: stable" especifica que todos los paquetes en el árbol de +directorios por debajo del directorio raíz marcado en el fichero +\fIRelease\fR están en un archivo de estable\&. Para +especificar una preferencia de acuerdo con este parámetro +tendrá que poner la siguiente línea en el fichero de preferencias de APT: + +.nf +Pin: release a=stable +.fi +.TP +\fBLa línea Version: \fR +Indica la versión de la distribución. Por ejemplo, los +paquetes en árbol pueden pertenecer a la versión 3.0 de Debian GNU/Linux. Dese +cuenta de que pruebas e inestable no tienen una versión +asignada porque no han sido liberadas. Para especificar una preferencia de +acuerdo con este parámetro tendrá que poner una de las siguientes línea en el +fichero de preferencias de APT: + +.nf +Pin: release v=3.0 +Pin: release a=stable, v=3.0 +Pin: release 3.0 +.fi +.TP +\fBLa línea Component: \fR +Indica la licencia asociada a los paquetes en el árbol +de directorios correspondiente al fichero \fIRelease\fR\&. Por ejemplo, +la línea Component: main especifica que todos los ejemplares son +de la sección main, ésto asegura que su licencia se ajusta a las +DFSG. Para especificar una preferencia de acuerdo con este parámetro tendrá +que poner la siguiente línea en el fichero de preferencias de APT: + +.nf +Pin: release c=main +.fi +.TP +\fBLa línea Origin: \fR +Indica la procedencia de los paquetes en el árbol de +directorios del fichero \fIRelease\fR\&. La procedencia más común es +Debian\&. Para especificar una preferencia de acuerdo con este +parámetro tendrá que poner la siguiente línea en el fichero de preferencias +de APT: + +.nf +Pin: release o=Debian +.fi +.TP +\fBLa línea Label: \fR +nombra la etiqueta de los paquetes en los árboles de +directorios del fichero \fIRelease\fR\&. Normalmente es +Debian\&. Para especificar una preferencia de acuerdo con este parámetro +tendrá que poner la siguiente línea en el fichero de preferencias de APT: + +.nf +Pin: release l=Debian +.fi +.PP +Todos los ficheros \fIPackages\fR y \fIRelease\fR +que se obtienen de los recursos de \fB\fIsources.list\fB\fR(5) se guardan en el directorio +\fI/var/lib/apt/lists\fR, o en el directorio definido por la +variable Dir::State::Lists, que puede estar definida en el fichero +\fIapt.conf\fR\&. Por ejemplo, el fichero +\fIdebian.lcs.mit.edu_debian_dists_unstable_contrib_binary-i386_Release\fR contiene los ficheros \fIRelease\fR obtenidos de +debian.lcs.mit.edu para la arquitectura binary-i386 de la +sección contrib de la distribución inestable\&. +.SS "LíNEAS OPCIONALES EN UN REGISTRO DE PREFERENCIAS DE APT" +.PP +Cada registro en el fichero de preferencias de APT puede comenzar +con una o más líneas que tengan como primera palabra +Explanation:\&. Útil para comentarios. +.PP +La línea Pin-Priority: es opcional. Si se omite, APT asigna +una prioridad un número menor que la última prioridad especificada en una línea +que empieze con Pin-Priority: release ...\&. +.SH "EJEMPLOS" +.SS "SIGUIENDO LA DISTRIBUCIóN ESTABLE" +.PP +El siguiente fichero de preferencias de APT provoca que APT asigne una +prioridad mayor de la que asigna por omisión (500) a todos los ejemplares de +la distribución estable y una prioridad más baja al resto de las +distribuciones Debian\&. + +.nf +Explanation: Desinstalar o no instalar los ejemplares que no +Explanation: pertenecen a la distribución estable +Package: * +Pin: release a=stable +Pin-Priority: 900 + +Package: * +Pin: release o=Debian +Pin-Priority: -10 +.fi +.PP +Con un fichero \fB\fIsources.list\fB\fR(5) apropiado y el fichero de preferencias mostrado +anteriormente, cualquiera de las siguientes órdenes de APT hace que o bien todo +el sistema o bien sólo algunos paquetes se actualicen a la última versión +estable\&. + +.nf +apt-get install \fIpaquete\fR +apt-get upgrade +apt-get dist-upgrade +.fi +.PP +La siguiente orden hace que APT actualice un paquete a la última versión +de la distribución de pruebas, el paquete no se actualizará de nuevo amenos que se ejecute de nuevo la orden. + +.nf +apt-get install \fIpaquete\fR/testing +.fi +.SS "SIGUIENDO LA DISTRIBUCIóN DE PRUEBAS O INESTABLE" +.PP +El siguiente fichero de preferencias de APT provocará que APT asigne +mayor prioridad a las versiones de la distribución de pruebas, +una prioridad menor a los paquetes de la distribución inestable, +y una prioridad prohibitiva a los paquetes de otras distribuciones de +Debian\&. + +.nf +Package: * +Pin: release a=testing +Pin-Priority: 900 + +Package: * +Pin: release a=unstable +Pin-Priority: 800 + +Package: * +Pin: release o=Debian +Pin-Priority: -10 +.fi +.PP +Con un fichero \fB\fIsources.list\fB\fR(5) adecuado y el fichero de preferencias anterior, +cualquiera de la órdenes siguientes hace que APT actualice los paquetes a la +última versión de la distribución de pruebas\&. + +.nf +apt-get install \fIpaquete\fR +apt-get upgrade +apt-get dist-upgrade +.fi +.PP +La siguiente orden hace que APT actualice un determinado paquete a la +última versión de la distribución inestable\&. Más tarde, +\fBapt-get upgrade\fR actualizarán el paquete a la última versión +de la distribución de pruebas si es más reciente que la versión +instalada, de otro modo, se instalará la versión más reciente de la +distribucióninestable si es más reciente que la versión instalada. + +.nf +apt-get install \fIpaquete\fR/unstable +.fi +.SH "VéASE ADEMáS" +.PP +\fBapt-get\fR(8) \fBapt-cache\fR(8) \fB\fIapt.conf\fB\fR(5) \fB\fIsources.list\fB\fR(5) +.SH "FALLOS" +.PP +Vea la página de fallos de APT <URL:http://bugs.debian.org/src:apt>\&. +Si desea avisar de un fallo en APT, vea +\fI/usr/share/doc/debian/bug-reporting.txt\fR o la orden \fBreportbug\fR(1)\&. +.SH "AUTOR" +.PP +APT fue escrito por el equipo de APT <apt@packages.debian.org>\&. +.SH "TRADUCTOR" +.PP +Traducción de Rubén Porras Campo +<debian-l10n-spanish@lists.debian.org> diff --git a/doc/es/apt_preferences.es.5.sgml b/doc/es/apt_preferences.es.5.sgml new file mode 100644 index 0000000..5506a45 --- /dev/null +++ b/doc/es/apt_preferences.es.5.sgml @@ -0,0 +1,587 @@ +<!-- -*- mode: sgml; mode: fold -*- --> +<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [ + +<!ENTITY % aptent SYSTEM "apt.ent.es"> +%aptent; + +]> + +<!-- +(c) 2003 Software in the Public Interest +Esta traducción ha sido realizada por Rubén Porras Campo <nahoo@inicia.es> +y revisada por Javier Fernández-Sanguino <jfs@computer.org> +Está basada en la página de manual original: +versión 1.5 del CVS de +/cvs/debian-doc/manpages/english/apt/apt_preferences.5.sgml + --> + +<refentry lang=es> + &apt-docinfo; + + <refmeta> + <refentrytitle>apt_preferences</> + <manvolnum>5</> + </refmeta> + + <!-- Man page title --> + <refnamediv> + <refname>apt_preferences</> + <refpurpose>Fichero de preferencias de APT</> + </refnamediv> + +<RefSect1> +<Title>Descripción + +El fichero de preferencias de APT /etc/apt/preferences +se puede usar para controlar las versiones de los paquetes seleccionados. + + +Cuando el fichero &sources-list; contiene referencias a más de una +distribución (por ejemplo, estable y pruebas +). APT asigna una prioridad a cada versión disponible. +Limitado por las dependencias, apt-get selecciona la versión +con mayor prioridad. + + +El fichero de preferencias de APT modifica las prioridades asignadas por +APT, dando control al usuario sobre que ejemplar se seleccionará para la +instalación. + + +Puede estén disponibles varios ejemplares de la misma versión de un paquete +cuando el fichero &sources-list; contenga referencias a más de una fuente. En +este caso apt-get descarga el ejemplar que aparezca listado +primero en el fichero &sources-list;. El fichero de preferencias de APT no +modifica la elección del ejemplar, sólo la elección de la versión. + +¿Cómo asigna APT las prioridades?</> + +<para>Si no existe el fichero de preferencias o no hay ninguna entrada en éste +que se pueda aplicar a una determinada versión, se asigna a la versión la +prioridad de la distribución a la que pertenece. Es posible seleccionar una +distribución, >>distribución objetivo<< +(n. t. del inglés <emphasis>target release</emphasis>), que recibe +una prioridad mayor que el resto. La distribución objetivo se puede definir +en la línea de órdenes al ejecutar <command>apt-get</command> o en el fichero +de configuración de APT (<filename>/etc/apt/apt.conf</filename>). +Por ejemplo, +<programlisting> +<command>apt-get install -t testing <replaceable>paquete</replaceable></command> +</programlisting> +<programlisting> +APT::Default-Release "stable"; +</programlisting> +</para> + +<para> +Si se ha especificado una distribución objetivo, APT usa el siguiente +algoritmo para establecer las prioridades de cada versión de un paquete. +Asigna: + +<variablelist> +<varlistentry> +<term>prioridad 100</term> +<listitem><simpara>a la versión instalada (si existe).</simpara></listitem> +</varlistentry> +<varlistentry> +<term>prioridad 500</term> +<listitem><simpara>a la versión que ni está instalada ni pertenece a la +distribución objetivo.</simpara></listitem> +</varlistentry> +<varlistentry> +<term>prioridad 990</term> +<listitem><simpara>a las versiones que no están instaladas pero que +pertenecen a la distribución objetivo.</simpara></listitem> +</varlistentry> +</variablelist> +</para> + +<para> +Si no se especifica ninguna distribución objetivo APT asigna prioridad 100 a +todas las versiones de los paquetes instalados y 500 al resto. +</para> + +<para> +APT aplica las siguientes normas, expuestas por orden de precedencia, +para determinar qué versión del paquete debe instalar. + +<itemizedlist> +<listitem><simpara>Nunca instalar una versión anterior de un paquete en lugar +de la instalada a menos que la prioridad de la versión disponible supere 1000 +(Dese cuenta que ninguna de las prioridades que asigna APT por omisión superan +1000, éstas prioridades sólo se pueden establecer mediante el fichero de +preferencias. Tenga en consideración que instalar una versión anterior del +paquete puede ser peligroso). +</simpara></listitem> +<listitem><simpara>Instalar la versión de mayor prioridad. +</simpara></listitem> +<listitem><simpara>Si dos o más versiones tienen la misma prioridad, +instala la más reciente (esto es, la que tiene un número de versión mayor). +</simpara></listitem> +<listitem><simpara>Si dos o más versiones tienen la misma prioridad y número de +versión, pero o bien difieren en su meta-información o se ha proporcionado la +opción <literal/--reinstall/ se instala la que no está instalada. +</simpara></listitem> +</itemizedlist> +</para> + +<para> +Típicamente, la versión instalada del paquete (prioridad 100) +no es tan reciente como la disponible a través de &sources-list; +(prioridad 500 o 990). Entonces el paquete se actualizará cuando se ejecute +<command>apt-get install <replaceable>algún-paquete</replaceable></command> o +<command>apt-get upgrade</command>. +</para> + +<para>Rara vez la versión instalada de un paquete es <emphasis/más/ reciente +que cualquiera de las versiones disponibles. En éste caso no se instalará la +versión anterior del paquete cuando se ejecute <command>apt-get install +<replaceable>algún-paquete</replaceable></command> o <command>apt-get +upgrade</command>. +</para> + +<para> +A veces la versión instalada de un paquete es más reciente que la +versión perteneciente a la distribución objetivo, pero no tan reciente como la +versión de otra distribución. Este tipo de paquetes se actualizarán cuando se +ejecute <command>apt-get install +<replaceable>algún-paquete</replaceable></command> o <command>apt-get +upgrade</command> porque al menos <emphasis/uno/ de los ejemplares disponibles +tiene una prioridad mayor que la versión instalada. +</para> + +</RefSect2> + +<RefSect2><Title>El efecto de las preferencias sobre APT</> + +<para> +El fichero de preferencias de APT permite al administrador del sistema controlar +las asignaciones de prioridades. El fichero consiste en uno o más registros de +varias líneas separados entre sí por espacios en blanco. Los registros pueden +tener una o dos formas: una específica y otra general. +<itemizedlist> +<listitem> +<simpara> +La forma específica asigna una prioridad ("Pin-Priority") a un paquete +concreto y se aplica a una versión o rango de versiones. Por ejemplo, +el siguiente registro asigna una prioridad alta a todas las versiones del +paquete <filename/perl/ cuyo número de versión empiece con "<literal/5.8/". +</simpara> + +<programlisting> +Package: perl +Pin: version 5.8* +Pin-Priority: 1001 +</programlisting> +</listitem> + +<listitem><simpara> +La forma general asigna una prioridad a todas las versiones de los paquetes +en una distribución (esto es, a todas las versiones de paquetes provenientes +de un fichero <filename/Release/), o a todos las versiones de un paquete +que provienen de un sitio concreto en internet, identificado por su +nombre de dominio. +</simpara> + +<simpara> +Esta forma general del fichero de preferencias de APT sólo se aplica a grupos de +paquetes. Por ejemplo, el siguiente registro hace que asigne una prioridad alta +a todas las versiones disponibles desde un sitio local. +</simpara> + +<programlisting> +Package: * +Pin: origin "" +Pin-Priority: 999 +</programlisting> + +<simpara> +Un aviso acerca de la palabra clave usada en "<literal/origin/": no debe de +confundirse con el origen ("Origin:") de una distribución tal y como se +especifica en el fichero <filename/Release/. Lo que sigue a "Origin:" en un +fichero <filename/Release/ no es una dirección de un sitio de internet, sino el +autor o el nombre del proveedor, tales como "Debian" o "Ximian". +</simpara> + +<simpara> +El siguiente registro asigna una prioridad baja a todas las versiones de los +paquetes pertenecientes a cualquier distribución que tenga como nombre de +Archivo "<literal/unstable/". +</simpara> + +<programlisting> +Package: * +Pin: release a=unstable +Pin-Priority: 50 +</programlisting> + +<simpara> +El siguiente registro asigna una prioridad alta a todas las versiones de los +paquetes pertenecientes a la distribución que tiene como nombre de Archivo +"<literal/stable/" y como número de versión "<literal/3.0/". +</simpara> + +<programlisting> +Package: * +Pin: release a=unstable, v=3.0 +Pin-Priority: 50 +</programlisting> +</listitem> +</itemizedlist> +</para> + +</RefSect2> + +<RefSect2> +<Title>¿Cómo interpreta APT las prioridades? + + +Las prioridades (P) asignadas en el fichero de preferencias deben ser +números enteros. Se interpretan (en general) del siguiente modo: + + + +P > 1000 +la versión se instala incluso si es una versión +anterior a la instalada en el sistema. + +990 < P <=1000 +la versión se instala aunque no venga de la distribución +objetivo, a menos que la versión instalada sea más reciente. + + +500 < P <=990 +la versión se instala a menos que exista otro ejemplar +disponible perteneciente a la distribución objetivo o bien la versión +instalada sea más reciente. + +100 < P <=500 +la versión se instala a menos que exista un ejemplar +perteneciente a otra distribución o la versión instalada sea más reciente. + +0 < P <=100 +la versión sólo se instala si no hay ninguna versión +del paquete instalado. + +P < 0 +la versión nunca se instala. + + + + + + +Si uno de los registros de forma específica descritos arriba coinciden con una +versión disponible de un paquete, el registro determina la prioridad de la +versión. En caso de que esto no sea así, si cualquier número de registros de +forma general coinciden con una versión, el primero determina la prioridad de la +versión del paquete. + + + +Por ejemplo, suponga que el fichero de preferencias de APT +contiene los tres registros antes mencionados: + + +Package: perl +Pin: version 5.8* +Pin-Priority: 1001 + +Package: * +Pin: origin "" +Pin-Priority: 999 + +Package: * +Pin: release unstable +Pin-Priority: 50 + + +Entonces: + + +La versión más reciente disponible del paquete +Cualquier otra versión de un paquete +distinto de + +Otras versiones que tengan un origen distinto al sistema +local listadas en &sources-list; y que pertenezcan a la distribución + + + + + + +Determinación de la versión del paquete y de las propiedades de la +distribución + + +Los recursos del fichero &sources-list; deben proporcionar los ficheros +Packages y Release. Éstos describen +los paquetes disponibles en cada uno de los sitios. + + +El fichero Packages se encuentra normalmente en +el directorio .../dists/nombre-dist/ +componente/arquitectura +, +por ejemplo, .../dists/stable/main/binary-i386/Packages. +El fichero consiste en una serie de registros de varias líneas, uno por cada +paquete disponible en ese directorio. Para montar un repositorio de APT sólo +son significativas dos de las líneas de cada registro: + + +La línea +Indica el nombre del paquete + + +La línea +Indica el número de versión del paquete + + + + +El fichero Release normalmente se encuentra en el +directorio +.../dists/nombre-dist, +por ejemplo, .../dists/stable/Release, +o .../dists/woody/Release. +El fichero consiste en registros de una sola línea que se aplican a + + +La línea +Indica el nombre del archivo al que pertenecen todos los +paquetes del árbol de directorios. Por ejemplo, la línea +"Archive: stable" especifica que todos los paquetes en el árbol de +directorios por debajo del directorio raíz marcado en el fichero + + +Pin: release a=stable + + + + + +La línea +Indica la versión de la distribución. Por ejemplo, los +paquetes en árbol pueden pertenecer a la versión 3.0 de Debian GNU/Linux. Dese +cuenta de que + + +Pin: release v=3.0 +Pin: release a=stable, v=3.0 +Pin: release 3.0 + + + + + + +La línea +Indica la licencia asociada a los paquetes en el árbol +de directorios correspondiente al fichero + +Pin: release c=main + + + + + +La línea +Indica la procedencia de los paquetes en el árbol de +directorios del fichero + +Pin: release o=Debian + + + + + +La línea +nombra la etiqueta de los paquetes en los árboles de +directorios del fichero + +Pin: release l=Debian + + + + + + + +Todos los ficheros Packages y Release +que se obtienen de los recursos de &sources-list; se guardan en el directorio +/var/lib/apt/lists, o en el directorio definido por la +variable debian.lcs.mit.edu_debian_dists_unstable_contrib_binary-i386_Release + contiene los ficheros Release obtenidos de + + + + + +Líneas opcionales en un registro de preferencias de APT + + +Cada registro en el fichero de preferencias de APT puede comenzar +con una o más líneas que tengan como primera palabra + + + +La línea + + + + +Ejemplos + +Siguiendo la distribución estable + +El siguiente fichero de preferencias de APT provoca que APT asigne una +prioridad mayor de la que asigna por omisión (500) a todos los ejemplares de +la distribución +Explanation: Desinstalar o no instalar los ejemplares que no +Explanation: pertenecen a la distribución estable +Package: * +Pin: release a=stable +Pin-Priority: 900 + +Package: * +Pin: release o=Debian +Pin-Priority: -10 + + + + +Con un fichero &sources-list; apropiado y el fichero de preferencias mostrado +anteriormente, cualquiera de las siguientes órdenes de APT hace que o bien todo +el sistema o bien sólo algunos paquetes se actualicen a la última versión + +apt-get install paquete +apt-get upgrade +apt-get dist-upgrade + + + +La siguiente orden hace que APT actualice un paquete a la última versión +de la distribución de +apt-get install paquete/testing + + + + +Siguiendo la distribución de pruebas o inestable + +El siguiente fichero de preferencias de APT provocará que APT asigne +mayor prioridad a las versiones de la distribución de +Package: * +Pin: release a=testing +Pin-Priority: 900 + +Package: * +Pin: release a=unstable +Pin-Priority: 800 + +Package: * +Pin: release o=Debian +Pin-Priority: -10 + + + + +Con un fichero &sources-list; adecuado y el fichero de preferencias anterior, +cualquiera de la órdenes siguientes hace que APT actualice los paquetes a la +última versión de la distribución de +apt-get install paquete +apt-get upgrade +apt-get dist-upgrade + + + +La siguiente orden hace que APT actualice un determinado paquete a la +última versión de la distribución apt-get upgrade actualizarán el paquete a la última versión +de la distribución de +apt-get install paquete/unstable + + + + + + + +Véase además</> +<para> +&apt-get; &apt-cache; &apt-conf; &sources-list; +</para> + </RefSect1> + + &manbugs; + &manauthor; + + <refsect1> + <title>TRADUCTOR + + Traducción de Rubén Porras Campo + <debian-l10n-spanish@lists.debian.org> + + + + diff --git a/doc/es/makefile b/doc/es/makefile new file mode 100644 index 0000000..81a410c --- /dev/null +++ b/doc/es/makefile @@ -0,0 +1,12 @@ +# -*- make -*- +BASE=../.. +SUBDIR=doc/es + +# Bring in the default rules +include ../../buildlib/defaults.mak + +# Man pages +SOURCE = apt-cache.es.8 apt-get.es.8 apt-cdrom.es.8 apt.conf.es.5 \ + sources.list.es.5 apt-config.es.8 apt_preferences.es.5 +INCLUDES = apt.ent.es +include $(SGML_MANPAGE_H) diff --git a/doc/es/manpage.links b/doc/es/manpage.links new file mode 100644 index 0000000..e69de29 diff --git a/doc/es/manpage.refs b/doc/es/manpage.refs new file mode 100644 index 0000000..16ffc79 --- /dev/null +++ b/doc/es/manpage.refs @@ -0,0 +1,4 @@ +{ + '' => '', + '' => '' +} diff --git a/doc/es/sources.list.es.5 b/doc/es/sources.list.es.5 new file mode 100644 index 0000000..89a58e1 --- /dev/null +++ b/doc/es/sources.list.es.5 @@ -0,0 +1,212 @@ +.\" This manpage has been automatically generated by docbook2man +.\" from a DocBook document. This tool can be found at: +.\" +.\" Please send any bug reports, improvements, comments, patches, +.\" etc. to Steve Cheng . +.TH "SOURCES.LIST" "5" "04 December 2006" "" "" + +.SH NAME +sources.list \- lista de recursos de paquetes para APT +.SH "DESCRIPCIóN" +.PP +La lista de recursos de paquetes se usa para localizar ficheros del sistema +de distribución de paquetes usado en el sistema. +A día de hoy, esta página del manual documenta sólamente el sistema de +paquetes usado por Debian GNU/Linux. Este fichero de control está situado en +\fI/etc/apt/sources.list\fR +.PP +La lista de procedencias está diseñada para soportar cualquier número y +distintos tipos de procedencias. El fichero lista una procedencia por línea, +con la procedencia de mayor prioridad en la primera línea. +El formato de cada línea es: +tipo uri argumentos\&. El primer elemento, tipo, +determina el formato de argumentos\&. +uri es Universal Resource Identifier (Identificador Universal de +Recursos), un caso general de la más especifica y bien conocida +Universal Resource Locator, o URL. +El resto de la línea puede marcarse como comentario usando #. +.SH "LOS TIPOS DEB Y DEB-SRC" +.PP +El tipo deb hace referencia a un típico archivo de Debian de dos +niveles, \fIdistribución/componente\fR\&. Normalmente +distribución es stable, testing, o +unstable, mientras que componente es main, +contrib, non-free, o non-us\&. El tipo +deb-src hace referencia al código fuente de la distribución con la +misma sintaxis que el tipo deb\&. Es necesaria una línea +deb-src para descargar un índice de los paquetes que tienen +código fuente disponible. +.PP +El formato para una entrada en el fichero \fIsources.list\fR usando +los tipos deb y deb-src es: + +.nf +deb uri distribución [componente1] [componente2] [...] +.fi +.PP +La URI para el tipo deb debe de especificar la base de +la distribución de Debian, donde APT encontrará la información que +necesita. +distribución puede especificar un ruta exacta, en cuyo caso se +deben omitir los componentes y distribución debe finalizar +con una barra (/). Esto es útil cuando únicamente queremos una sub-sección +del archivo denotado por la URI. Si distribución no especifica +la ruta exacta, al menos uno de los componentes debe de estar +presente. +.PP +distribución puede contener una variable, $(ARCH), +que se expandirá en la arquitectura de Debian usada en el sistema (i386, +m68k, powerpc, ...). Esto permite que \fIsources.list\fR sea +independiente de la arquitectura. En general esta característica sólo es +de interés cuando se especifica una ruta completa, de lo contrario +APT generará automáticamente la URI con la arquitectura actual +del sistema. +.PP +Debido a que sólo se puede especificar una distribución por línea es posible +que sea necesario tener múltiples líneas para la misma URI si deseamos +tener accesibles más de una distribución o componente de ese sitio. +APT ordenará internamente la lista de URI's después de haber generado +una copia interna, y juntará varias referencias al mismo servidor de Internet +en una sola conexión, para así no establecer una conexión FTP de forma +ineficiente, cerrarla, hacer algo más, y entonces restablecer la conexión +al mismo servidor. Esta característica es útil para acceder a FPT's concurridos +que limitan el número de accesos simultáneos de usuarios anónimos. APT +también paralelará conexiones a diferentes servidores para aprovechar mejor +el ancho de banda. +.PP +Es importante listar las fuente por orden de preferencia, con la fuente de más +preferencia al principio. Lo normal es ordenar las fuentes por velocidad, +de la más rápida a la más lenta (CD-ROM seguido de servidores en la red +local, seguidos por servidores de Internet distantes, por ejemplo). +.PP +Algunos ejemplos: + +.nf +deb http://http.us.debian.org/debian stable main contrib non-free +deb http://http.us.debian.org/debian dists/stable-updates/ + +.fi +.SH "ESPECIFICACIóN DE LA URI" +.PP +Se reconocen los siguientes tipos de URI: cdrom, file, http, y ftp. +.TP +\fBfile\fR +file permite considerar como archivo a cualquier +fichero en el sistema de ficheros. Esto es útil para particiones +montadas mediante NFS y réplicas locales. +.TP +\fBcdrom\fR +El cdrom permite a APT usar la unidad de CDROM local. Use el +programa \fBapt-cdrom\fR(8) para añadir entradas de un cdrom a sources.list. +.TP +\fBhttp\fR +Http especifica un servidor HTTP como archivo. Si la variable de entorno +\fBhttp_proxy\fR está establecida con el formato http://server:port/, +se usará el servidor proxy especificado en \fBhttp_proxy\fR\&. Usuarios de +servidor proxy de autenticación HTTP/1.1 deberán usar la cadena de +caracteres http://user:pass@server:port/ +Dese cuenta que este método de autenticación es inseguro. +.TP +\fBftp\fR +Ftp especifica un servidor FTP como archivo. El comportamiento de APT +con FTP es altamente configurable, para más información consulte la página +del manual de \fB\fIapt.conf\fB\fR(5)\&. Dese cuenta que un proxy ftp puede ser +especificado usando la variable de entorno \fBftp_proxy\fR\&. Es posible +especificar un servidor proxy http (servidores proxy http normalmente +comprenden las url's tipo ftp) usando este método y SÓLO este método. +Se ignorarán los proxies ftp especificados en el fichero de configuración que usen +http. +.TP +\fBcopy\fR +Copy es idéntico a file excepto en que los paquetes son copiados al +directorio que contiene la caché en vez de usar directamente su +lugar original. Esto es útil para gente que use discos zip con APT. +.TP +\fBrsh\fR +.TP +\fBssh\fR +El método rsh/ssh usa rsh/ssh para conectar a los servidores remotos como +un usuario dado y acceder a los ficheros. No es posible realizar ninguna +autenticación por contraseña, debe hacerse previamente una configuración +de claves RSA o rhosts. +El acceso a los ficheros del sistema remoto usa las órdenes estándar +\fBfind\fR y \fBdd\fR para realizar las transferencias. +.SH "EJEMPLOS" +.PP +Usa el archivo local (o montado mediante NFS) en /home/jason/debian +para stable/main, stable/contrib, y stable/non-free. + +.nf +deb file:/home/jason/debian stable main contrib non-free +.fi +.PP +Como arriba, excepto que usa la distribución inestable. + +.nf +deb file:/home/jason/debian unstable main contrib non-free +.fi +.PP +Línea para el código fuente de lo mismo que arriba + +.nf +deb-src file:/home/jason/debian unstable main contrib non-free +.fi +.PP +Usa HTTP para acceder al archivo en archive.debian.org, y usa sólo la parte +de hamm/main. + +.nf +deb http://archive.debian.org/debian-archive hamm main +.fi +.PP +Usa FTP para acceder al archivo en ftp.debian.org, debajo del directorio +debian, y usa sólo la parte de stable/contrib. + +.nf +deb ftp://ftp.debian.org/debian stable contrib +.fi +.PP +Usa FTP para acceder al archivo en ftp.debian.org, debajo del directorio +debian, y usa sólo la parte de unstable/contrib. Si tanto esta línea como +la del ejemplo anterior aparecen en \fIsources.list\fR, se usará sólo +una sesión FTP para ambas. + +.nf +deb ftp://ftp.debian.org/debian unstable contrib +.fi +.PP +Usa HTTP para acceder al archivo en nonus.debian.org, bajo el directorio +debian-non-US. + +.nf +deb http://nonus.debian.org/debian-non-US stable/non-US main + contrib non-free +.fi +.PP +Usa HTTP para acceder al archivo en nonus.debian.org, bajo el directorio +debian-non-US, y usa sólo ficheros que se encuentren debajo de +\fIunstable/binary-i386\fR en máquinas i386, +\fIunstable/binary-m68k\fR en máquinas m68k, y así para todas las +arquitecturas soportadas. (Dese cuenta que este ejemplo sólo sirve para +ilustrar como se usa la variable de substitución, non-us ya no está +estructurado de este modo) + +.nf +deb http://ftp.de.debian.org/debian-non-US + unstable/binary-$(ARCH)/ +.fi +.SH "VéASE TAMBIéN" +.PP +\fBapt-cache\fR(8) \fB\fIapt.conf\fB\fR(5) +.SH "FALLOS" +.PP +Vea la página de fallos de APT \&. +Si desea avisar de un fallo en APT, vea +\fI/usr/share/doc/debian/bug-reporting.txt\fR o la orden \fBreportbug\fR(1)\&. +.SH "AUTOR" +.PP +APT fue escrito por el equipo de APT \&. +.SH "TRADUCTOR" +.PP +Traducción de Rubén Porras Campo + diff --git a/doc/es/sources.list.es.5.sgml b/doc/es/sources.list.es.5.sgml new file mode 100644 index 0000000..66e5c38 --- /dev/null +++ b/doc/es/sources.list.es.5.sgml @@ -0,0 +1,225 @@ + + +%aptent; + +]> + + + + &apt-docinfo; + + + sources.list + 5 + + + + + sources.list + lista de recursos de paquetes para APT + + + Descripción</> + + <para> + La lista de recursos de paquetes se usa para localizar ficheros del sistema + de distribución de paquetes usado en el sistema. + A día de hoy, esta página del manual documenta sólamente el sistema de + paquetes usado por Debian GNU/Linux. Este fichero de control está situado en + <filename>/etc/apt/sources.list</> + <para> + La lista de procedencias está diseñada para soportar cualquier número y + distintos tipos de procedencias. El fichero lista una procedencia por línea, + con la procedencia de mayor prioridad en la primera línea. + El formato de cada línea es: + <literal/tipo uri argumentos/. El primer elemento, <literal/tipo/, + determina el formato de <literal/argumentos/. + <literal/uri/ es Universal Resource Identifier (Identificador Universal de + Recursos), un caso general de la más especifica y bien conocida + Universal Resource Locator, o URL. + El resto de la línea puede marcarse como comentario usando #. + </RefSect1> + + <RefSect1><Title>Los tipos deb y deb-src</> + <para> + El tipo <literal/deb/ hace referencia a un típico archivo de Debian de dos + niveles, <filename>distribución/componente</>. Normalmente + <literal/distribución/ es <literal/stable/, <literal/testing/, o + <literal/unstable/, mientras que componente es <literal/main/, + <literal/contrib/, <literal/non-free/, o <literal/non-us/. El tipo + <literal/deb-src/ hace referencia al código fuente de la distribución con la + misma sintaxis que el tipo <literal/deb/. Es necesaria una línea + <literal/deb-src/ para descargar un índice de los paquetes que tienen + código fuente disponible. + <para> + El formato para una entrada en el fichero <filename/sources.list/ usando + los tipos <literal/deb/ y <literal/deb-src/ es: + <literallayout>deb uri distribución [componente1] [componente2] [...]</literallayout> + <para> + La URI para el tipo <literal/deb/ debe de especificar la base de + la distribución de Debian, donde APT encontrará la información que + necesita. + <literal/distribución/ puede especificar un ruta exacta, en cuyo caso se + deben omitir los componentes y <literal/distribución/ debe finalizar + con una barra (/). Esto es útil cuando únicamente queremos una sub-sección + del archivo denotado por la URI. Si <literal/distribución/ no especifica + la ruta exacta, al menos uno de los <literal/componentes/ debe de estar + presente. + <para> + <literal/distribución/ puede contener una variable, <literal/$(ARCH)/, + que se expandirá en la arquitectura de Debian usada en el sistema (i386, + m68k, powerpc, ...). Esto permite que <filename/sources.list/ sea + independiente de la arquitectura. En general esta característica sólo es + de interés cuando se especifica una ruta completa, de lo contrario + <literal/APT/ generará automáticamente la URI con la arquitectura actual + del sistema. + <para> + Debido a que sólo se puede especificar una distribución por línea es posible + que sea necesario tener múltiples líneas para la misma URI si deseamos + tener accesibles más de una distribución o componente de ese sitio. + APT ordenará internamente la lista de URI's después de haber generado + una copia interna, y juntará varias referencias al mismo servidor de Internet + en una sola conexión, para así no establecer una conexión FTP de forma + ineficiente, cerrarla, hacer algo más, y entonces restablecer la conexión + al mismo servidor. Esta característica es útil para acceder a FPT's concurridos + que limitan el número de accesos simultáneos de usuarios anónimos. APT + también paralelará conexiones a diferentes servidores para aprovechar mejor + el ancho de banda. + <para> + Es importante listar las fuente por orden de preferencia, con la fuente de más + preferencia al principio. Lo normal es ordenar las fuentes por velocidad, + de la más rápida a la más lenta (CD-ROM seguido de servidores en la red + local, seguidos por servidores de Internet distantes, por ejemplo). + <para> + Algunos ejemplos: + <literallayout> +deb http://http.us.debian.org/debian stable main contrib non-free +deb http://http.us.debian.org/debian dists/stable-updates/ + </literallayout> + </RefSect1> + + <RefSect1><title>especificación de la URI + + Se reconocen los siguientes tipos de URI: cdrom, file, http, y ftp. + + file + + file permite considerar como archivo a cualquier + fichero en el sistema de ficheros. Esto es útil para particiones + montadas mediante NFS y réplicas locales. + + + cdrom + + El cdrom permite a APT usar la unidad de CDROM local. Use el + programa &apt-cdrom; para añadir entradas de un cdrom a sources.list. + + + http + + Http especifica un servidor HTTP como archivo. Si la variable de entorno + + + ftp + + Ftp especifica un servidor FTP como archivo. El comportamiento de APT + con FTP es altamente configurable, para más información consulte la página + del manual de &apt-conf;. Dese cuenta que un proxy ftp puede ser + especificado usando la variable de entorno + + copy + + Copy es idéntico a file excepto en que los paquetes son copiados al + directorio que contiene la caché en vez de usar directamente su + lugar original. Esto es útil para gente que use discos zip con APT. + + + rshssh + + El método rsh/ssh usa rsh/ssh para conectar a los servidores remotos como + un usuario dado y acceder a los ficheros. No es posible realizar ninguna + autenticación por contraseña, debe hacerse previamente una configuración + de claves RSA o rhosts. + El acceso a los ficheros del sistema remoto usa las órdenes estándar + + + + + Ejemplos + + Usa el archivo local (o montado mediante NFS) en /home/jason/debian + para stable/main, stable/contrib, y stable/non-free. + deb file:/home/jason/debian stable main contrib non-free + + Como arriba, excepto que usa la distribución inestable. + deb file:/home/jason/debian unstable main contrib non-free + + Línea para el código fuente de lo mismo que arriba + deb-src file:/home/jason/debian unstable main contrib non-free + + Usa HTTP para acceder al archivo en archive.debian.org, y usa sólo la parte + de hamm/main. + deb http://archive.debian.org/debian-archive hamm main + + Usa FTP para acceder al archivo en ftp.debian.org, debajo del directorio + debian, y usa sólo la parte de stable/contrib. + deb ftp://ftp.debian.org/debian stable contrib + + Usa FTP para acceder al archivo en ftp.debian.org, debajo del directorio + debian, y usa sólo la parte de unstable/contrib. Si tanto esta línea como + la del ejemplo anterior aparecen en deb ftp://ftp.debian.org/debian unstable contrib + + Usa HTTP para acceder al archivo en nonus.debian.org, bajo el directorio + debian-non-US. + deb http://nonus.debian.org/debian-non-US stable/non-US main + contrib non-free + + Usa HTTP para acceder al archivo en nonus.debian.org, bajo el directorio + debian-non-US, y usa sólo ficheros que se encuentren debajo de + unstable/binary-i386 en máquinas i386, + unstable/binary-m68k en máquinas m68k, y así para todas las + arquitecturas soportadas. (Dese cuenta que este ejemplo sólo sirve para + ilustrar como se usa la variable de substitución, non-us ya no está + estructurado de este modo) + deb http://ftp.de.debian.org/debian-non-US + unstable/binary-$(ARCH)/ + + + Véase también</> + <para> + &apt-cache; &apt-conf; + </RefSect1> + + &manbugs; + &manauthor; + + <refsect1> + <title>TRADUCTOR + + Traducción de Rubén Porras Campo + <debian-l10n-spanish@lists.debian.org> + + + + diff --git a/doc/es/vendors.list.es.5.sgml b/doc/es/vendors.list.es.5.sgml new file mode 100644 index 0000000..b8b329e --- /dev/null +++ b/doc/es/vendors.list.es.5.sgml @@ -0,0 +1,120 @@ + + +%aptent; + +]> + + + + + &apt-docinfo; + + + vendors.list + 5 + + + + + vendors.list + Configuración de claves de seguridad de APT + + + Descripción</> + <para> + La lista de proveedores de paquetes contiene una lista de todos los + proveedores cuyos paquetes descargados desee autenticar. + Debe de tener la huella digital PGP correspondiente a cada + proveedor, de este modo APT puede verificar la firma del fichero + <literal>Release</literal> y después la suma de control de cada + paquete descargado. Para habilitar la autenticación debe añadir + entre llaves el identificador del proveedor (vea más abajo) a cada + línea del fichero &sources-list; que replique el repositorio + proporcionado por ese proveedor. + <para> + El formato del fichero es parecido al que usa + <command>apt.conf</command>. Consiste de un número arbitrario de + bloques, donde cada bloque comienza con una cadena de caracteres + que indican el <replaceable/tipo_clave/ y el <replaceable/id_de_proveedor/. + <para> + Algunos proveedores pueden tener varios bloques definiendo + diferentes normas de seguridad para sus distribuciones. Debian, por + ejemplo, usa diferentes métodos para firmar las distintas distribuciones. + <para> + <replaceable/tipo_clave/ es el tipo de comprobación exigido. + Actualmente, sólo está disponible el tipo <literal/simple-key/. + <para> + <replaceable/id_de_proveedor/ es la cadena de carácteres que + identifica al proveedor. Es una cadena arbitraria y obligatoria que + debe proporcionar para identificar inequívocamente al proveedor + listado en este fichero. + + Ejemplo: +<informalexample><programlisting> +simple-key "juan" +{ + Fingerprint "0987AB4378FSD872343298787ACC"; + Name "Juan Gándara <juan@gandara.com>"; +} +</programlisting></informalexample> + + </RefSect1> + + <RefSect1><Title>El tipo simple-key</> + <para> + Este tipo de verificación se usa cuando el proveedor tiene una sola + clave asegurada que se debe usar para firmar el fichero <literal> + Release</literal>. Los siguiente elementos deben de estar presentes: + + <VariableList> + <VarListEntry><Term>Fingerprint</Term> + <ListItem><Para> + La huella digital PGP para la clave. La huella digital debe + expresarse con la notación estándar, con o sin espacios. + La opción <option/--fingerprint/ de la orden <CiteRefEntry><RefEntryTitle> + <command/gpg/</RefEntryTitle><ManVolNum/1/</CiteRefEntry> + mostrará la huella digital de la clave o claves seleccionadas. + </VarListEntry> + + <VarListEntry><Term>Name</Term> + <ListItem><Para> + Cadena de caracteres que contiene una descripción del propietario + de la clave o del proveedor. Puede poner el nombre del proveedor + y su <foreignphrase>email</foreignphrase>. La cadena debe de ir + entre comillas dobles. + </VarListEntry> + + </VariableList> + </RefSect1> + + <RefSect1><Title>Ficheros</> + <para> + <filename>/etc/apt/vendors.list</> + </RefSect1> + + <RefSect1><Title>Véase también</> + <para> + &sources-list; + </RefSect1> + + &manbugs; + &manauthor; + + <refsect1> + <title>TRADUCTOR + + Traducción de Rubén Porras Campo + <debian-l10n-spanish@lists.debian.org> + + + + + diff --git a/doc/examples/apt-ftparchive.conf b/doc/examples/apt-ftparchive.conf new file mode 100644 index 0000000..c9d352a --- /dev/null +++ b/doc/examples/apt-ftparchive.conf @@ -0,0 +1,46 @@ +// This config is for use with the pool-structure for the packages, thus we +// don't use a Tree Section in here + +// The debian archive should be in the current working dir +Dir { + ArchiveDir "."; + CacheDir "."; +}; + +// Create Packages, Packages.gz and Packages.bz2, remove what you don't need +Default { + Packages::Compress ". gzip bzip2"; + Sources::Compress ". gzip bzip2"; + Contents::Compress ". gzip bzip2"; +}; + +// Includes the main section. You can structure the directory tree under +// ./pool/main any way you like, apt-ftparchive will take any deb (and +// source package) it can find. This creates a Packages a Sources and a +// Contents file for these in the main section of the sid release +BinDirectory "pool/main" { + Packages "dists/sid/main/binary-i386/Packages"; + Sources "dists/sid/main/source/Sources"; + Contents "dists/sid/Contents-i386"; +} + +// This is the same for the contrib section +BinDirectory "pool/contrib" { + Packages "dists/sid/contrib/binary-i386/Packages"; + Sources "dists/sid/contrib/source/Sources"; + Contents "dists/sid/Contents-i386"; +} + +// This is the same for the non-free section +BinDirectory "pool/non-free" { + Packages "dists/sid/non-free/binary-i386/Packages"; + Sources "dists/sid/non-free/source/Sources"; + Contents "dists/sid/Contents-i386"; +}; + +// By default all Packages should have the extension ".deb" +Default { + Packages { + Extensions ".deb"; + }; +}; diff --git a/doc/examples/apt.conf b/doc/examples/apt.conf new file mode 100644 index 0000000..7201d19 --- /dev/null +++ b/doc/examples/apt.conf @@ -0,0 +1,32 @@ +// $Id: apt.conf,v 1.43 1999/12/06 02:19:38 jgg Exp $ +/* This file is a sample configuration file with a few harmless sample + options. +*/ + +APT +{ + // Options for apt-get + Get + { + Download-Only "false"; + }; + +}; + +// Options for the downloading routines +Acquire +{ + Retries "0"; +}; + +// Things that effect the APT dselect method +DSelect +{ + Clean "auto"; // always|auto|prompt|never +}; + +DPkg +{ + // Probably don't want to use force-downgrade.. + Options {"--force-overwrite";} +} diff --git a/doc/examples/configure-index b/doc/examples/configure-index new file mode 100644 index 0000000..e58ba7b --- /dev/null +++ b/doc/examples/configure-index @@ -0,0 +1,274 @@ +// $Id: configure-index,v 1.10 2004/07/17 19:37:16 mdz Exp $ +/* This file is an index of all APT configuration directives. It should + NOT actually be used as a real config file, though it is (except for the + last line) a completely valid file. Most of the options have sane default + values, unless you have specific needs you should NOT include arbitary + items in a custom configuration. + + In some instances involving filenames it is possible to set the default + directory when the path is evaluated. This means you can use relative + paths within the sub scope. + + The configuration directives are specified in a tree with {} designating + a subscope relative to the tag before the {}. You can further specify + a subscope using scope notation eg, + APT::Architecture "i386"; + This is prefixed with the current scope. Scope notation must be used + if an option is specified on the command line with -o. +*/ + +quiet "0"; + +// Options for APT in general +APT +{ + Architecture "i386"; + Build-Essential "build-essential"; + + // Options for apt-get + Get + { + Arch-Only "false"; + Download-Only "false"; + Simulate "false"; + Assume-Yes "false"; + Force-Yes "false"; // I would never set this. + Fix-Broken "false"; + Fix-Missing "false"; + Show-Upgraded "false"; + Show-Versions "false"; + Upgrade "true"; + Print-URIs "false"; + Compile "false"; + Download "true"; + Purge "false"; + List-Cleanup "true"; + ReInstall "false"; + Trivial-Only "false"; + Remove "true"; + Only-Source ""; + Diff-Only "false"; + Tar-Only "false"; + }; + + Cache + { + Important "false"; + AllVersions "false"; + GivenOnly "false"; + RecurseDepends "false"; + ShowFull "false"; + Generate "true"; + NamesOnly "false"; + AllNames "false"; + Installed "false"; + }; + + CDROM + { + Rename "false"; + NoMount "false"; + Fast "false"; + NoAct "false"; + }; + + Authentication + { + TrustCDROM "false"; // consider the CDROM always trusted + }; + + GPGV + { + TrustedKeyring "/etc/apt/trusted.gpg"; + }; + + // Some general options + Ignore-Hold "false"; + Clean-Installed "true"; + Immediate-Configure "true"; // DO NOT turn this off, see the man page + Force-LoopBreak "false"; // DO NOT turn this on, see the man page + Cache-Limit "4194304"; + Default-Release ""; + + + // Write progress messages on this fd (for stuff like base-config) + Status-Fd "-1"; + // Keep the list of FDs open (normally apt closes all fds when it + // does a ExecFork) + Keep-Fds {}; +}; + +// Options for the downloading routines +Acquire +{ + Queue-Mode "host"; // host|access + Retries "0"; + Source-Symlinks "true"; + + PDiffs "true"; // try to get the IndexFile diffs + + // HTTP method configuration + http + { + Proxy "http://127.0.0.1:3128"; + Proxy::http.us.debian.org "DIRECT"; // Specific per-host setting + Timeout "120"; + Pipeline-Depth "5"; + + // Cache Control. Note these do not work with Squid 2.0.2 + No-Cache "false"; + Max-Age "86400"; // 1 Day age on index files + No-Store "false"; // Prevent the cache from storing archives + Dl-Limit "7"; // 7Kb/sec maximum download rate + }; + + ftp + { + Proxy "ftp://127.0.0.1/"; + Proxy::http.us.debian.org "DIRECT"; // Specific per-host setting + + /* Required script to perform proxy login. This example should work + for tisfwtk */ + ProxyLogin + { + "USER $(PROXY_USER)"; + "PASS $(PROXY_PASS)"; + "USER $(SITE_USER)@$(SITE):$(SITE_PORT)"; + "PASS $(SITE_PASS)"; + }; + + Timeout "120"; + + /* Passive mode control, proxy, non-proxy and per-host. Pasv mode + is prefered if possible */ + Passive "true"; + Proxy::Passive "true"; + Passive::http.us.debian.org "true"; // Specific per-host setting + }; + + cdrom + { + mount "/cdrom"; + + // You need the trailing slash! + "/cdrom/" + { + Mount "sleep 1000"; + UMount "sleep 500"; + } + }; + + gpgv + { + Options {"--ignore-time-conflict";} // not very usefull on a normal system + }; +}; + +// Directory layout +Dir "/" +{ + // Location of the state dir + State "var/lib/apt/" + { + Lists "lists/"; + xstatus "xstatus"; + userstatus "status.user"; + status "/var/lib/dpkg/status"; + cdroms "cdroms.list"; + }; + + // Location of the cache dir + Cache "var/cache/apt/" { + Archives "archives/"; + srcpkgcache "srcpkgcache.bin"; + pkgcache "pkgcache.bin"; + }; + + // Config files + Etc "etc/apt/" { + SourceList "sources.list"; + Main "apt.conf"; + Preferences "preferences"; + Parts "apt.conf.d/"; + }; + + // Locations of binaries + Bin { + methods "/usr/lib/apt/methods/"; + gzip "/bin/gzip"; + gpg "/usr/bin/gpgv"; + dpkg "/usr/bin/dpkg"; + dpkg-source "/usr/bin/dpkg-source"; + dpkg-buildpackage "/usr/bin/dpkg-buildpackage"; + apt-get "/usr/bin/apt-get"; + apt-cache "/usr/bin/apt-cache"; + }; +}; + +// Things that effect the APT dselect method +DSelect +{ + Clean "auto"; // always|auto|prompt|never + Options "-f"; + UpdateOptions ""; + PromptAfterUpdate "no"; + CheckDir "no"; +} + +DPkg +{ + // Probably don't want to use force-downgrade.. + Options {"--force-overwrite";"--force-downgrade";} + + // Auto re-mounting of a readonly /usr + Pre-Invoke {"mount -o remount,rw /usr";}; + Post-Invoke {"mount -o remount,ro /usr";}; + + // Prevents daemons from getting cwd as something mountable (default) + Run-Directory "/"; + + // Build options for apt-get source --compile + Build-Options "-b -uc"; + + // Pre-configure all packages before they are installed using debconf. + Pre-Install-Pkgs {"dpkg-preconfigure --apt --priority=low --frontend=dialog";}; + + // Flush the contents of stdin before forking dpkg. + FlushSTDIN "true"; + + // Control the size of the command line passed to dpkg. + MaxBytes 1024; + MaxArgs 350; + + // controls if apt will apport on the first dpkg error or if it + // tries to install as many packages as possible + StopOnError "true"; +} + +/* Options you can set to see some debugging text They correspond to names + of classes in the source code */ +Debug +{ + pkgProblemResolver "false"; + pkgDepCache::AutoInstall "false"; // what packages apt install to satify dependencies + pkgAcquire "false"; + pkgAcquire::Worker "false"; + pkgAcquire::Auth "false"; + pkgDPkgPM "false"; + pkgDPkgProgressReporting "false"; + pkgOrderList "false"; + BuildDeps "false"; + + pkgInitialize "false"; // This one will dump the configuration space + NoLocking "false"; + Acquire::Ftp "false"; // Show ftp command traffic + Acquire::Http "false"; // Show http command traffic + Acquire::gpgv "false"; // Show the gpgv traffic + aptcdrom "false"; // Show found package files + IdentCdrom "false"; + +} + +/* Whatever you do, do not use this configuration file!! Take out ONLY + the portions you need! */ +This Is Not A Valid Config File diff --git a/doc/examples/ftp-archive.conf b/doc/examples/ftp-archive.conf new file mode 100644 index 0000000..4f4b008 --- /dev/null +++ b/doc/examples/ftp-archive.conf @@ -0,0 +1,81 @@ +/* This configuration file describes the standard Debian distribution + as it once looked */ + +Dir +{ + ArchiveDir "/org/ftp.debian.org/ftp/"; + OverrideDir "/org/ftp.debian.org/scripts/override/"; + CacheDir "/org/ftp.debian.org/scripts/cache/"; +}; + +Default +{ + Packages::Compress ". gzip"; + Sources::Compress "gzip"; + Contents::Compress "gzip"; + DeLinkLimit 10000; // 10 Meg delink per day + MaxContentsChange 10000; // 10 Meg of new contents files per day +}; + +TreeDefault +{ + Contents::Header "/org/ftp.debian.org/scripts/masterfiles/Contents.top"; + BinCacheDB "packages-$(ARCH).db"; + + // These are all defaults and are provided for completeness + Directory "$(DIST)/$(SECTION)/binary-$(ARCH)/"; + Packages "$(DIST)/$(SECTION)/binary-$(ARCH)/Packages"; + + SrcDirectory "$(DIST)/$(SECTION)/source/"; + Sources "$(DIST)/$(SECTION)/source/Sources"; + + Contents "$(DIST)/Contents-$(ARCH)"; +}; + +tree "dists/woody" +{ + Sections "main contrib non-free"; + Architectures "alpha arm hurd-i386 i386 m68k powerpc sparc sparc64 source"; + BinOverride "override.woody.$(SECTION)"; + SrcOverride "override.woody.$(SECTION).src"; +}; + +tree "dists/potato" +{ + Sections "main contrib non-free"; + Architectures "alpha arm i386 m68k powerpc sparc source"; + BinOverride "override.potato.$(SECTION)"; + SrcOverride "override.woody.$(SECTION).src"; +}; + +tree "dists/slink" +{ + Sections "main contrib non-free"; + Architectures "alpha i386 m68k sparc source"; + BinOverride "override.slink.$(SECTION)"; + SrcOverride "override.woody.$(SECTION).src"; + External-Links false; // Slink should contain no links outside itself +}; + + +bindirectory "project/experimental" +{ + Sources "project/experimental/Sources"; + Packages "project/experimental/Packages"; + + BinOverride "override.experimental"; + BinCacheDB "packages-experimental.db"; + SrcOverride "override.experimental.src"; +}; + +bindirectory "dists/proposed-updates" +{ + Packages "project/proposed-updates/Packages"; + Contents "project/proposed-updates/Contents"; + + BinOverride "override.slink.all3"; + BinOverride "override.slink.all3.src"; + BinCacheDB "packages-proposed-updates.db"; +}; + + diff --git a/doc/examples/preferences b/doc/examples/preferences new file mode 100644 index 0000000..7ebc52a --- /dev/null +++ b/doc/examples/preferences @@ -0,0 +1,11 @@ +Package: * +Pin: release a=stable +Pin-Priority: 500 + +Package: * +Pin: release a=testing +Pin-Priority: 101 + +Package: * +Pin: release a=unstable +Pin-Priority: 99 diff --git a/doc/examples/sources.list b/doc/examples/sources.list new file mode 100644 index 0000000..9af1c3c --- /dev/null +++ b/doc/examples/sources.list @@ -0,0 +1,9 @@ +# See sources.list(5) for more information, especialy +# Remember that you can only use http, ftp or file URIs +# CDROMs are managed through the apt-cdrom tool. +deb http://http.us.debian.org/debian stable main contrib non-free +deb http://security.debian.org stable/updates main contrib non-free + +# Uncomment if you want the apt-get source function to work +#deb-src http://http.us.debian.org/debian stable main contrib non-free +#deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free diff --git a/doc/files.sgml b/doc/files.sgml new file mode 100644 index 0000000..2293e20 --- /dev/null +++ b/doc/files.sgml @@ -0,0 +1,442 @@ + + + +APT Files + +Jason Gunthorpe jgg@debian.org +$Id: files.sgml,v 1.12 2003/04/26 23:26:13 doogie Exp $ + + +This document describes the complete implementation and format of the +installed APT directory structure. It also serves as guide to how APT +views the Debian archive. + + + +Copyright © Jason Gunthorpe, 1998-1999. +

+"APT" and this document are free software; you can redistribute them and/or +modify them under the terms of the GNU General Public License as published +by the Free Software Foundation; either version 2 of the License, or (at your +option) any later version. + +

+For more details, on Debian GNU/Linux systems, see the file +/usr/share/common-licenses/GPL for the full license. + + + + +Introduction + + +General + +

+This document serves two purposes. The first is to document the installed +directory structure and the format and purpose of each file. The second +purpose is to document how APT views the Debian archive and deals with +multiple package files. + +

+The var directory structure is as follows: + + /var/lib/apt/ + lists/ + partial/ + xstatus + userstatus + cdroms.list + /var/cache/apt/ + pkgcache.bin + srcpkgcache.bin + archives/ + partial/ + /etc/apt/ + sources.list + apt.conf + /usr/lib/apt/ + methods/ + cdrom + ftp + http + file + gzip + copy + + +

+As is specified in the FHS 2.1 /var/lib/apt is used for application +data that is not expected to be user modified. /var/cache/apt is used +for regeneratable data and is where the package cache and downloaded .debs +go. + + + +Files + + +Distribution Source list (sources.list) + +

+The distribution source list is used to locate archives of the debian +distribution. It is designed to support any number of active sources and to +support a mix of source media. The file lists one source per line, with the +fastest source listed first. The format of each line is: + +

+type uri args + +

+The first item, type, indicates the format for the remainder +of the line. It is designed to indicate the structure of the distribution +the line is talking about. Currently the only defined value is deb +which indicates a standard debian archive with a dists dir. + +The deb Type +

+ The deb type is to be a typical two level debian distributions, + dist/distribution/component. Typically distribution + is one of stable, unstable or testing while component is one of main, + contrib, non-free or non-us. The format for the deb line is as follows: + +

+ deb uri distribution component + [component ...] + +

+ uri for the deb type must specify the base of the + debian distribution. APT will automatically generate the proper longer + URIs to get the information it needs. distribution can specify + an exact path, in this case the components must be omitted and + distribution must end in a slash. + +

+ Since only one distribution can be specified per deb line it may be + necessary to list a number of deb lines for the same URI. APT will + sort the URI list after it has generated a complete set to allow + connection reuse. It is important to order things in the sourcelist + from most preferred to least preferred (fastest to slowest). + + +URI specification +

+URIs in the source list support a large number of access schemes. + + +cdrom + The cdrom scheme is special in that If Modified Since queries are never + performed and that APT knows how to match a cdrom to the name it + was given when first inserted. APT also knows all of the possible + mount points the cdrom drives and that the user should be prompted + to insert a CD if it cannot be found. The path is relative to an + arbitrary mount point (of APT's choosing) and must not start with a + slash. The first pathname component is the given name and is purely + descriptive and of the users choice. However, if a file in the root of + the cdrom is called '.disk/info' its contents will be used instead of + prompting. The name serves as a tag for the cdrom and should be unique. + + cdrom:Debian 1.3/debian + + +http + This scheme specifies a HTTP server for the debian archive. HTTP is preferred + over FTP because If Modified Since queries against the Package file are + possible as well as deep pipelining and resume capabilities. + + http://www.debian.org/archive + + +ftp + This scheme specifies a FTP connection to the server. FTP is limited because + there is no support for IMS and is hard to proxy over firewalls. + + ftp://ftp.debian.org/debian + + +file + The file scheme allows an arbitrary directory in the file system to be + considered as a debian archive. This is useful for NFS mounts and + local mirrors/archives. + + file:/var/debian + + +smb + A possible future expansion may be to have direct support for smb (Samba + servers). + + smb://ftp.kernel.org/pub/mirrors/debian + + + + +Hashing the URI +

+All permanent information acquired from any of the sources is stored in the +lists directory. Thus, there must be a way to relate the filename in the +lists directory to a line in the sourcelist. To simplify things this is +done by quoting the URI and treating _'s as quoteable characters and +converting / to _. The URI spec says this is done by converting a +sensitive character into %xx where xx is the hexadecimal representation +from the ASCII character set. Examples: + + +http://www.debian.org/archive/dists/stable/binary-i386/Packages +/var/lib/apt/lists/www.debian.org_archive_dists_stable_binary-i386_Packages + +cdrom:Debian 1.3/debian/Packages +/var/lib/apt/info/Debian%201.3_debian_Packages + + +

+The other alternative that was considered was to use a deep directory +structure but this poses two problems, it makes it very difficult to prune +directories back when sources are no longer used and complicates the handling +of the partial directory. This gives a very simple way to deal with all +of the situations that can arise. Also note that the same rules described in +the Archive Directory section regarding the partial sub dir apply +here as well. + + + + + + +Extra Status File (xstatus) + +

+The extra status file serves the same purpose as the normal dpkg status file +(/var/lib/dpkg/status) except that it stores information unique to apt. +This includes the autoflag, target distribution and version and any other +unique features that come up over time. It duplicates nothing from the normal +dpkg status file. Please see other APT documentation for a discussion +of the exact internal behaviour of these fields. The Package field is +placed directly before the new fields to indicate which package they +apply to. The new fields are as follows: + + +X-Auto + The Auto flag can be Yes or No and controls whether the package is in + auto mode. + +X-TargetDist + The TargetDist item indicates which distribution versions are offered for + installation from. It should be stable, unstable or testing. + +X-TargetVersion + The target version item is set if the user selects a specific version, it + overrides the TargetDist selection if both are present. + + + + + +Binary Package Cache (pkgcache.bin) + +

+Please see cache.sgml for a complete description of what this file is. The +cache file is updated whenever the contents of the lists directory changes. +If the cache is erased, corrupted or of a non-matching version it will +be automatically rebuilt by all of the tools that need it. +srcpkgcache.bin contains a cache of all of the package files in the +source list. This allows regeneration of the cache when the status files +change to use a prebuilt version for greater speed. + + + + +Downloads Directory (archives) + +

+The archives directory is where all downloaded .deb archives go. When the +file transfer is initiated the deb is placed in partial. Once the file +is fully downloaded and its MD5 hash and size are verified it is moved +from partial into archives/. Any files found in archives/ can be assumed +to be verified. + +

+No directory structure is transfered from the receiving site and all .deb +file names conform to debian conventions. No short (msdos) filename should +be placed in archives. If the need arises .debs should be unpacked, scanned +and renamed to their correct internal names. This is mostly to prevent +file name conflicts but other programs may depend on this if convenient. +A conforming .deb is one of the form, name_version_arch.deb. Our archive +scripts do not handle epochs, but they are necessary and should be re-inserted. +If necessary _'s and :'s in the fields should be quoted using the % convention. +It must be possible to extract all 3 fields by examining the file name. +Downloaded .debs must be found in one of the package lists with an exact +name + version match.. + + + + + The Methods Directory (/usr/lib/apt/methods) + +

+The Methods directory is more fully described in the APT Methods interface +document. + + + + + The Mirror List + +

+The mirror list is stored on the primary debian web server (www.debian.org) +and contains a machine readable list of all known debian mirrors. It's +format and style mirror the Package file. + + +Site +This is the proper host name of the site. It should not be a host within +debian.org and generally cnames should be avoided here. + +Aliases +These list any commonly used aliases for the site. This field is used to make +sure that a site is not added twice. + +Type +This field can either be Push-Primary or leaf. +Push-Primary are authorized top level mirrors of the archive, all +other mirrors are leaf. + +Archive-[access] +The Archive field gives the path(s) to the debian archive. [access] +specifies the access method and may be one of ftp, http, rsync, nfs, or +smb. For many of the types it is possible to prefix the path with :### +indicating that an alternate port should be used. Generally paths +start with a / and end with a /, rsync is an exception in that the +first directory component is not a path but a label. + +WWW-[access] +The WWW field gives the path(s) to the debian web site. + +CDImage-[access] +The WWW field gives the path(s) to the debian CD-ROM images + +Incoming-[access] +The Incoming field gives the path(s) to a mirror of the debian incoming +directory. + +nonUS-[access] +The nonUS field gives the path(s) to a mirror of the non-US distribution. + +Maintainer +This is the email address of the maintainer of the mirror. + +Location +Location gives the general geographical region the mirror is in. + +Sponsor +The Sponsor field indicates who owns the mirror and a URL to a web page +describing the organization. + +Comment +General free-form text. + + + +

+Some form of network measurement will have to be used to gauge performance +of each of the mirrors. This will be discussed later, initial versions +will use the first found URI. + + + + + The Release File + +

+This file plays and important role in how APT presents the archive to the +user. Its main purpose is to present a descriptive name for the source +of each version of each package. It also is used to detect when new versions +of debian are released. It augments the package file it is associated with +by providing meta information about the entire archive which the Packages +file describes. + +

+The full name of the distribution for presentation to the user is formed +as 'label version archive', with a possible extended name being +'label version archive component'. + +

+The file is formed as the package file (RFC-822) with the following tags +defined: + + +Archive +This is the common name we give our archives, such as stable or +unstable. + +Component +Refers to the sub-component of the archive, main, contrib +etc. Component may be omitted if there are no components for this archive. + +Version +This is a version string with the same properties as in the Packages file. +It represents the release level of the archive. + +Origin +This specifies who is providing this archive. In the case of Debian the +string will read 'Debian'. Other providers may use their own string + +Label +This carries the encompassing name of the distribution. For Debian proper +this field reads 'Debian'. For derived distributions it should contain their +proper name. + +Architecture +When the archive has packages for a single architecture then the Architecture +is listed here. If a mixed set of systems are represented then this should +contain the keyword mixed. + +NotAutomatic +A Yes/No flag indicating that the archive is extremely unstable and its +version's should never be automatically selected. This is to be used by +experimental. + +Description +Description is used to describe the release. For instance experimental would +contain a warning that the packages have problems. + + +

+The location of the Release file in the archive is very important, it must +be located in the same location as the packages file so that it can be +located in all situations. The following is an example for the current stable +release, 1.3.1r6 + + +Archive: stable +Component: main +Version: 1.3.1r6 +Origin: Debian +Label: Debian +Architecture: i386 + + +This is an example of experimental, + +Archive: experimental +Version: 0 +Origin: Debian +Label: Debian +Architecture: mixed +NotAutomatic: Yes + + +And unstable, + +Archive: unstable +Component: main +Version: 2.1 +Origin: Debian +Label: Debian +Architecture: i386 + + + + + + diff --git a/doc/fr/.cvsignore b/doc/fr/.cvsignore new file mode 100644 index 0000000..cfa8962 --- /dev/null +++ b/doc/fr/.cvsignore @@ -0,0 +1,13 @@ +apt-cdrom.fr.8 +apt-config.fr.8 +apt-extracttemplates.fr.1 +apt-ftparchive.fr.1 +apt-sortpkgs.fr.1 +apt.conf.fr.5 +apt_preferences.fr.5 +manpage.links +manpage.refs +sources.list.fr.5 +apt-cache.fr.8 +apt-get.fr.8 +vendors.list.fr.5 diff --git a/doc/fr/apt-cache.8 b/doc/fr/apt-cache.8 new file mode 100644 index 0000000..deac129 --- /dev/null +++ b/doc/fr/apt-cache.8 @@ -0,0 +1,400 @@ +.\" Title: apt\-cache +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 Février 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-CACHE" "8" "29 Février 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt\-cache \- Gestion des paquets et manipulation du cache par APT +.SH "SYNOPSIS" +.HP 10 +\fBapt\-cache\fR [\fB\-hvsn\fR] [\fB\-o=\fR\fB\fIoption\ de\ configuration\fR\fR] [\fB\-c=\fR\fB\fIfichier\fR\fR] {[add\ \fIfichier\fR...] | [gencaches] | [showpkg\ \fIpaquet\fR...] | [showsrc\ \fIpaquet\fR...] | [stats] | [dump] | [dumpavail] | [unmet] | [search\ \fIregex\fR] | [show\ \fIpaquet\fR...] | [depends\ \fIpaquet\fR...] | [rdepends\ \fIpaquet\fR...] | [pkgnames\ \fIprefix\fR] | [dotty\ \fIpaquet\fR...] | [policy\ \fIpaquets\fR...] | [madison\ \fIpaquets\fR...]} +.SH "DESCRIPTION" +.PP + +\fBapt\-cache\fR +réalise différentes opérations sur le cache de paquet d' APT. +\fBapt\-cache\fR +ne manipule pas l'état du système mais fournit des moyens de recherche dans les métadonnées d'un paquet desquelles il extrait d'intéressantes informations. +.PP +À moins que l'option +\fB\-h\fR +ou +\fB\-\-help\fR +ne soit donnée, l'une des commandes suivantes doit être présente. +.PP +add \fIfichier(s)\fR +.RS 3n +La commande +add +ajoute des fichiers indexant des paquets au cache des paquets. Cela sert uniquement pour le débogage. +.RE +.PP +gencaches +.RS 3n +La commande +gencaches +fait la même chose que +\fBapt\-get check\fR. Elle construit les caches des sources et des paquets à partir des sources répertoriées dans +\fBsources.list\fR(5)et dans +\fI/var/lib/dpkg/status\fR. +.RE +.PP +showpkg \fIpaquet(s)\fR +.RS 3n +La commande +showpkg +affiche des informations sur les paquets donnés en argument. Les arguments restants sont les noms de paquets. Les versions disponibles et les dépendances inverses de chaque paquet répertorié sont listées, ainsi que les dépendances normales pour chaque version. Les dépendances normales d'un paquet sont constituées par les paquets dont il dépend\ ; les dépendances inverses sont les paquets qui dépendent du paquet en question. Les dépendances normales doivent donc être satisfaites et les dépendances inverses n'ont pas besoin de l'être. Ainsi, la commande +\fBapt\-cache showpkg libreadline2\fR +donnera ce résultat\ : +.sp +.RS 3n +.nf +Package: libreadline2 +Versions: 2.1\-12(/var/state/apt/lists/foo_Packages), +Reverse Depends: + libreadlineg2,libreadline2 + libreadline2\-altdev,libreadline2 +Dependencies: +2.1\-12 \- libc5 (2 5.4.0\-0) ncurses3.0 (0 (null)) +Provides: +2.1\-12 \- +Reverse Provides: +.fi +.RE +On peut voir que libreadline2, version 2.1\-12, dépend de libc5, ncurses3.0\ ; ces paquets doivent être installés au préalable pour que libreadline2 fonctionne. À leur tour, libreadlineg2 et libreadline2\-altdev dépendent de libreadline2. Si libreadline2 est installé, libc5 et ncurses3.0 doivent être installés\ ; libreadlineg2 et libreadline2\-altdev n'ont pas à l'être. Pour connaître le sens de la fin de chaîne, il est préférable de consulter le code source d'APT. +.RE +.PP +stats +.RS 3n +La commande +stats +affiche des statistiques à propos du cache. Aucun autre argument n'est attendu. Voici les informations rapportées\ : +.RS 3n +.TP 3n +\(bu + +Total package names +est le nombre de paquets trouvés dans le cache. +.TP 3n +\(bu + +Normal packages +est le nombre de paquets simples, ordinaires\ ; ces paquets tolèrent une correspondance bijective entre leur nom et le nom utilisé par les autres paquets pour les qualifier comme dépendance. La majorité des paquets appartient à cette catégorie. +.TP 3n +\(bu + +Pure virtual packages +est le nombre des paquets qui n'existent que sous la forme d'un nom représentant un paquet virtuel\ ; ces paquets \(Fo\ fournissent\ \(Fc seulement un nom de paquet virtuel et aucun paquet n'utilise véritablement ce nom. Par exemple, au sein du système Debian GNU/Linux, le nom \(Fo\ mail\-transport\-agent\ \(Fc est un paquet virtuel pur\ ; plusieurs paquets peuvent \(Fo\ remplir\ \(Fc ce nom \(Fo\ mail\-transport\-agent\ \(Fc, mais il n'existe aucun paquet nommé \(Fo\ mail\-transport\-agent\ \(Fc. +.TP 3n +\(bu + +Single virtual packages +est le nombre de paquets virtuels qui ne peuvent être remplis que par un seul paquet. Par exemple, au sein du système Debian GNU/Linux, \(Fo\ X11\-text\-viewer\ \(Fc est un paquet virtuel\ ; seul le paquet \(Fo\ xless\ \(Fc remplit \(Fo\ X11\-text\-viewer\ \(Fc. +.TP 3n +\(bu + +Mixed virtual packages +est le nombre des paquets qui remplissent un paquet virtuel particulier ou dont le nom est un nom de paquet virtuel. Par exemple, au sein du système Debian GNU/Linux, \(Fo\ debconf\ \(Fc est un paquet réel et il est aussi fourni par \(Fo\ debconf\-tiny\ \(Fc. +.TP 3n +\(bu + +Missing +est le nombre de paquets référencés dans une dépendance mais qui ne sont fournis par aucun paquet. Les paquets manquants peuvent être mis en évidence quand on n'accède pas à une distribution complète ou si un paquet (réel ou virtuel) a été sorti d'une distribution. Habituellement on les trouve dans les champs \(Fo\ Conflicts\ \(Fc. +.TP 3n +\(bu + +Total distinct versions +est le nombre de versions de paquets trouvées dans le cache\ ; cette valeur est par conséquent au moins égale au nombre total de paquets. Quand on accède à plus d'une distribution (\(Fo\ stable\ \(Fc et \(Fo\ unstable\ \(Fc, par exemple), cette valeur peut être considérablement plus grande que le nombre total de paquets. +.TP 3n +\(bu + +Total dependencies +est le nombre de relations de dépendances déclarées par tous les paquets présents dans le cache. +.RE +.IP "" 3n +.RE +.PP +showsrc \fIpaquet(s)\fR +.RS 3n + +showsrc +affiche toutes les entrées de paquet source qui correspondent aux noms donnés. Toutes les versions sont affichées et toutes les entrées qui déclarent que ces noms correspondent à des paquets binaires. +.RE +.PP +dump +.RS 3n +La commande +dump +affiche un court résumé sur chaque paquet du cache. Elle est d'abord destinée au débogage. +.RE +.PP +dumpavail +.RS 3n +La commande +dumpavail +affiche sur la sortie standard une liste des paquets disponibles. Elle convient à une utilisation avec +\fBdpkg\fR(8) +et la méthode +\fBdselect\fR(8) +s'en sert. +.RE +.PP +unmet +.RS 3n +La commande +unmet +affiche un résumé concernant toutes les dépendances absentes dans le cache de paquets. +.RE +.PP +show \fIpaquet(s)\fR +.RS 3n +La commande +show +est semblable à +\fBdpkg \-\-print\-avail\fR\ ; elle affiche des informations sur les paquets donnés en argument. +.RE +.PP +search \fIregex [ regex ... ]\fR +.RS 3n +La commande +search +recherche l'expression régulière donnée en argument sur tous les paquets disponibles. Elle cherche une occurrence de la chaîne dans les noms de paquets et dans les descriptions puis elle affiche le nom du paquet et sa description courte. Quand on donne l'option +\fB\-\-full\fR, la sortie est identique à +show +pour chaque paquet\ ; l'option +\fB\-\-names\-only\fR +ne recherche pas la chaîne dans les descriptions longues mais seulement dans les noms de paquets. +.sp +On peut utiliser des arguments distincts pour indiquer des expressions régulières différentes sur lesquelles sera réalisé un \(Fo\ et\ \(Fc logique. +.RE +.PP +depends \fIpaquet(s)\fR +.RS 3n +La commande +depends +affiche la liste de toutes les dépendances d'un paquet et la liste de tous les paquets possibles qui satisfont ces dépendances. +.RE +.PP +rdepends \fIpaquet(s)\fR +.RS 3n +La commande +rdepends +affiche la liste de toutes les dépendances inverses d'un paquet. +.RE +.PP +pkgnames \fI[ prefix ]\fR +.RS 3n +Cette commande affiche le nom de chaque paquet du système. Un préfixe pour filtrer la liste des noms peut être donné en argument. La sortie est appropriée à une utilisation au sein d'une fonction complète de shell\ ; elle est produite très rapidement. On utilise au mieux cette commande avec l'option +\fB\-\-generate\fR. +.RE +.PP +dotty \fIpaquet(s)\fR +.RS 3n +La commande +dotty +prend une liste de paquets sur la ligne de commande et affiche une sortie appropriée à une utilisation par la commande dotty du paquet +[1]\&\fIGraphViz\fR. Il en résulte un ensemble de noeuds et d'arcs représentant les relations entre les paquets. Par défaut les paquets donnés en argument suivent toutes leurs dépendances, ce qui peut produire un graphe très volumineux. Pour limiter la sortie aux seuls paquets listés sur la ligne de commande, positionnez l'option +APT::Cache::GivenOnly. +.sp +Les noeuds résultants ont plusieurs formes\ ; les paquets normaux sont des boîtes, les \(Fo\ provides\ \(Fc purs sont des triangles, les \(Fo\ provides\ \(Fc mixtes sont des diamants et les paquets manquants sont des hexagones. Les boîtes oranges expriment un arrêt de la récursivité [paquet feuille], les lignes bleues représentent des prédépendances et les lignes vertes représentent des conflits. +.sp +Attention, dotty ne peut pas représenter des ensembles très grands de paquets. +.RE +.PP +policy \fI[ paquet(s) ]\fR +.RS 3n + +policy +sert à déboguer des problèmes relatifs au fichier des préférences. Sans argument, la commande affiche la priorité de chaque source. Sinon, elle affiche des informations précises sur la priorité du paquet donné en argument. +.RE +.PP +madison \fI[ paquet(s) ]\fR +.RS 3n +La commande +madison +d'apt\-cache +cherche à mimer le format de sortie propre à l'outil debian de gestion d'archives, +madison, ainsi qu'une part de ses fonctionnalités. Elle affiche les versions disponibles d'un paquet dans un tableau. Contrairement au programme original +madison, elle n'affiche que des informations concernant l'architecture pour laquelle Apt a lu la liste des paquets disponibles (APT::Architecture). +.RE +.SH "OPTIONS" +.PP +Toutes les options en ligne de commande peuvent être positionnées via le fichier de configuration\ ; les descriptifs indiquent l'option de configuration à positionner. En ce qui concerne les options booléennes, on peut annuler le fichier de configuration en utilisant quelque chose comme +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +ou d'autres variantes. +.PP +\fB\-p\fR, \fB\-\-pkg\-cache\fR +.RS 3n +Indique le fichier servant de cache des paquets. Le cache des paquets est le cache primaire utilisé par toutes les opérations. Élément de configuration\ : +Dir::Cache::pkgcache. +.RE +.PP +\fB\-s\fR, \fB\-\-src\-cache\fR +.RS 3n +Indique le fichier servant de cache des sources. Ce cache n'est utilisé que par +gencaches\ ; une version des informations sur les paquets, faite à partir d'une analyse de sources distantes, est conservée. Quand le cache des paquets est créé, le cache des sources est utilisé afin d'éviter d'analyser à nouveau tous les paquets. Élément de configuration\ : +Dir::Cache::srcpkgcache. +.RE +.PP +\fB\-q\fR, \fB\-\-quiet\fR +.RS 3n +Mode silencieux\ ; produit une sortie pertinente pour l'enregistrement dans un fichier\-journal, sans afficher d'indicateur de progression. Un plus grand nombre de q produira un plus grand silence, avec un maximum de 2. Vous pouvez aussi utiliser +\fB\-q=#\fR +pour positionner le niveau de silence, annulant le fichier de configuration. Élément de configuration\ : +quiet. +.RE +.PP +\fB\-i\fR, \fB\-\-important\fR +.RS 3n +N'affiche que les dépendances importantes\ ; à utiliser avec la commande unmet pour n'afficher que les relations Depends et Pre\-Depends. Élément de configuration\ : +APT::Cache::Important. +.RE +.PP +\fB\-f\fR, \fB\-\-full\fR +.RS 3n +Affiche la totalité des champs d'information sur le paquet lors d'une recherche. Élément de configuration\ : +APT::Cache::ShowFull. +.RE +.PP +\fB\-a\fR, \fB\-\-all\-versions\fR +.RS 3n +Affiche la totalité des champs d'information pour toutes les versions disponibles\ : c'est la valeur par défaut. Pour la désactiver, utilisez l'option +\fB\-\-no\-all\-versions\fR. Quand l'option +\fB\-\-no\-all\-versions\fR +est choisie, seuls les éléments de la version choisie (celle qui serait installée) seront affichés. Cette option concerne seulement la commande +show. Élément de configuration\ : +APT::Cache::AllVersions. +.RE +.PP +\fB\-g\fR, \fB\-\-generate\fR +.RS 3n +Réalise une mise à jour automatique du cache des paquets plutôt que de se servir du cache actuel. Pour désactiver cette option (option par défaut), utilisez l'option +\fB\-\-no\-generate\fR. Élément de configuration\ : +APT::Cache::Generate. +.RE +.PP +\fB\-\-names\-only\fR, \fB\-n\fR +.RS 3n +N'effectue une recherche que sur les noms de paquets et pas sur les descriptions longues. Élément de configuration\ : +APT::Cache::NamesOnly. +.RE +.PP +\fB\-\-all\-names\fR +.RS 3n +Avec cette option +pkgnames +affiche tous les noms, les noms des paquets virtuels et les dépendances manquantes. Élément de configuration\ : +APT::Cache::AllNames. +.RE +.PP +\fB\-\-recurse\fR +.RS 3n +Avec cette option +depends +et +rdepends +sont récursives de manière à n'afficher qu'une seule fois les paquets mentionnés. Élément de configuration\ : +APT::Cache::RecurseDepends. +.RE +.PP +\fB\-\-installed\fR +.RS 3n +Cette option limite la sortie de +depends +et de +rdepends +aux paquets qui sont actuellement installés. Élément de configuration\ : +APT::Cache::Installed. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +Affiche un mode d'emploi succinct. +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +Affiche la version du programme. +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +Fichier de configuration\ ; indique quel fichier de configuration utiliser. Le programme lit le fichier de configuration par défaut, puis celui\-ci. Voyez +\fBapt.conf\fR(5) +pour la syntaxe. +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +Donne une option de configuration\ ; cela fixe une option de configuration arbitraire. La syntaxe est : +\fB\-o Foo::Bar=bar\fR. +.RE +.SH "FICHIERS" +.PP +\fI/etc/apt/sources.list\fR +.RS 3n +Emplacements où aller chercher les paquets. Élément de configuration\ : +Dir::Etc::SourceList. +.RE +.PP +\fI/var/lib/apt/lists/\fR +.RS 3n +Zone de stockage pour les informations qui concernent chaque ressource de paquet spécifiée dans +\fBsources.list\fR(5)Élément de configuration\ : +Dir::State::Lists. +.RE +.PP +\fI/var/lib/apt/lists/partial/\fR +.RS 3n +Zone de stockage pour les informations en transit. Élément de configuration\ : +Dir::State::Lists +(partial est implicite). +.RE +.SH "VOIR AUSSI" +.PP + +\fBapt.conf\fR(5), +\fBsources.list\fR(5), +\fBapt\-get\fR(8). +.SH "DIAGNOSTICS" +.PP + +\fBapt\-cache\fR +retourne zéro après un déroulement normal, et le nombre décimal 100 en cas d'erreur. +.SH "BOGUES" +.PP +Voyez la +[2]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "TRADUCTION" +.PP +Jérôme Marant. 2000\ ; mise à jour : Philippe Batailler. 2005. +. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "REFERENCES" +.TP 3 +1.\ GraphViz +\%http://www.research.att.com/sw/tools/graphviz/ +.TP 3 +2.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt-cache.fr.8 b/doc/fr/apt-cache.fr.8 new file mode 100644 index 0000000..deac129 --- /dev/null +++ b/doc/fr/apt-cache.fr.8 @@ -0,0 +1,400 @@ +.\" Title: apt\-cache +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 Février 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-CACHE" "8" "29 Février 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt\-cache \- Gestion des paquets et manipulation du cache par APT +.SH "SYNOPSIS" +.HP 10 +\fBapt\-cache\fR [\fB\-hvsn\fR] [\fB\-o=\fR\fB\fIoption\ de\ configuration\fR\fR] [\fB\-c=\fR\fB\fIfichier\fR\fR] {[add\ \fIfichier\fR...] | [gencaches] | [showpkg\ \fIpaquet\fR...] | [showsrc\ \fIpaquet\fR...] | [stats] | [dump] | [dumpavail] | [unmet] | [search\ \fIregex\fR] | [show\ \fIpaquet\fR...] | [depends\ \fIpaquet\fR...] | [rdepends\ \fIpaquet\fR...] | [pkgnames\ \fIprefix\fR] | [dotty\ \fIpaquet\fR...] | [policy\ \fIpaquets\fR...] | [madison\ \fIpaquets\fR...]} +.SH "DESCRIPTION" +.PP + +\fBapt\-cache\fR +réalise différentes opérations sur le cache de paquet d' APT. +\fBapt\-cache\fR +ne manipule pas l'état du système mais fournit des moyens de recherche dans les métadonnées d'un paquet desquelles il extrait d'intéressantes informations. +.PP +À moins que l'option +\fB\-h\fR +ou +\fB\-\-help\fR +ne soit donnée, l'une des commandes suivantes doit être présente. +.PP +add \fIfichier(s)\fR +.RS 3n +La commande +add +ajoute des fichiers indexant des paquets au cache des paquets. Cela sert uniquement pour le débogage. +.RE +.PP +gencaches +.RS 3n +La commande +gencaches +fait la même chose que +\fBapt\-get check\fR. Elle construit les caches des sources et des paquets à partir des sources répertoriées dans +\fBsources.list\fR(5)et dans +\fI/var/lib/dpkg/status\fR. +.RE +.PP +showpkg \fIpaquet(s)\fR +.RS 3n +La commande +showpkg +affiche des informations sur les paquets donnés en argument. Les arguments restants sont les noms de paquets. Les versions disponibles et les dépendances inverses de chaque paquet répertorié sont listées, ainsi que les dépendances normales pour chaque version. Les dépendances normales d'un paquet sont constituées par les paquets dont il dépend\ ; les dépendances inverses sont les paquets qui dépendent du paquet en question. Les dépendances normales doivent donc être satisfaites et les dépendances inverses n'ont pas besoin de l'être. Ainsi, la commande +\fBapt\-cache showpkg libreadline2\fR +donnera ce résultat\ : +.sp +.RS 3n +.nf +Package: libreadline2 +Versions: 2.1\-12(/var/state/apt/lists/foo_Packages), +Reverse Depends: + libreadlineg2,libreadline2 + libreadline2\-altdev,libreadline2 +Dependencies: +2.1\-12 \- libc5 (2 5.4.0\-0) ncurses3.0 (0 (null)) +Provides: +2.1\-12 \- +Reverse Provides: +.fi +.RE +On peut voir que libreadline2, version 2.1\-12, dépend de libc5, ncurses3.0\ ; ces paquets doivent être installés au préalable pour que libreadline2 fonctionne. À leur tour, libreadlineg2 et libreadline2\-altdev dépendent de libreadline2. Si libreadline2 est installé, libc5 et ncurses3.0 doivent être installés\ ; libreadlineg2 et libreadline2\-altdev n'ont pas à l'être. Pour connaître le sens de la fin de chaîne, il est préférable de consulter le code source d'APT. +.RE +.PP +stats +.RS 3n +La commande +stats +affiche des statistiques à propos du cache. Aucun autre argument n'est attendu. Voici les informations rapportées\ : +.RS 3n +.TP 3n +\(bu + +Total package names +est le nombre de paquets trouvés dans le cache. +.TP 3n +\(bu + +Normal packages +est le nombre de paquets simples, ordinaires\ ; ces paquets tolèrent une correspondance bijective entre leur nom et le nom utilisé par les autres paquets pour les qualifier comme dépendance. La majorité des paquets appartient à cette catégorie. +.TP 3n +\(bu + +Pure virtual packages +est le nombre des paquets qui n'existent que sous la forme d'un nom représentant un paquet virtuel\ ; ces paquets \(Fo\ fournissent\ \(Fc seulement un nom de paquet virtuel et aucun paquet n'utilise véritablement ce nom. Par exemple, au sein du système Debian GNU/Linux, le nom \(Fo\ mail\-transport\-agent\ \(Fc est un paquet virtuel pur\ ; plusieurs paquets peuvent \(Fo\ remplir\ \(Fc ce nom \(Fo\ mail\-transport\-agent\ \(Fc, mais il n'existe aucun paquet nommé \(Fo\ mail\-transport\-agent\ \(Fc. +.TP 3n +\(bu + +Single virtual packages +est le nombre de paquets virtuels qui ne peuvent être remplis que par un seul paquet. Par exemple, au sein du système Debian GNU/Linux, \(Fo\ X11\-text\-viewer\ \(Fc est un paquet virtuel\ ; seul le paquet \(Fo\ xless\ \(Fc remplit \(Fo\ X11\-text\-viewer\ \(Fc. +.TP 3n +\(bu + +Mixed virtual packages +est le nombre des paquets qui remplissent un paquet virtuel particulier ou dont le nom est un nom de paquet virtuel. Par exemple, au sein du système Debian GNU/Linux, \(Fo\ debconf\ \(Fc est un paquet réel et il est aussi fourni par \(Fo\ debconf\-tiny\ \(Fc. +.TP 3n +\(bu + +Missing +est le nombre de paquets référencés dans une dépendance mais qui ne sont fournis par aucun paquet. Les paquets manquants peuvent être mis en évidence quand on n'accède pas à une distribution complète ou si un paquet (réel ou virtuel) a été sorti d'une distribution. Habituellement on les trouve dans les champs \(Fo\ Conflicts\ \(Fc. +.TP 3n +\(bu + +Total distinct versions +est le nombre de versions de paquets trouvées dans le cache\ ; cette valeur est par conséquent au moins égale au nombre total de paquets. Quand on accède à plus d'une distribution (\(Fo\ stable\ \(Fc et \(Fo\ unstable\ \(Fc, par exemple), cette valeur peut être considérablement plus grande que le nombre total de paquets. +.TP 3n +\(bu + +Total dependencies +est le nombre de relations de dépendances déclarées par tous les paquets présents dans le cache. +.RE +.IP "" 3n +.RE +.PP +showsrc \fIpaquet(s)\fR +.RS 3n + +showsrc +affiche toutes les entrées de paquet source qui correspondent aux noms donnés. Toutes les versions sont affichées et toutes les entrées qui déclarent que ces noms correspondent à des paquets binaires. +.RE +.PP +dump +.RS 3n +La commande +dump +affiche un court résumé sur chaque paquet du cache. Elle est d'abord destinée au débogage. +.RE +.PP +dumpavail +.RS 3n +La commande +dumpavail +affiche sur la sortie standard une liste des paquets disponibles. Elle convient à une utilisation avec +\fBdpkg\fR(8) +et la méthode +\fBdselect\fR(8) +s'en sert. +.RE +.PP +unmet +.RS 3n +La commande +unmet +affiche un résumé concernant toutes les dépendances absentes dans le cache de paquets. +.RE +.PP +show \fIpaquet(s)\fR +.RS 3n +La commande +show +est semblable à +\fBdpkg \-\-print\-avail\fR\ ; elle affiche des informations sur les paquets donnés en argument. +.RE +.PP +search \fIregex [ regex ... ]\fR +.RS 3n +La commande +search +recherche l'expression régulière donnée en argument sur tous les paquets disponibles. Elle cherche une occurrence de la chaîne dans les noms de paquets et dans les descriptions puis elle affiche le nom du paquet et sa description courte. Quand on donne l'option +\fB\-\-full\fR, la sortie est identique à +show +pour chaque paquet\ ; l'option +\fB\-\-names\-only\fR +ne recherche pas la chaîne dans les descriptions longues mais seulement dans les noms de paquets. +.sp +On peut utiliser des arguments distincts pour indiquer des expressions régulières différentes sur lesquelles sera réalisé un \(Fo\ et\ \(Fc logique. +.RE +.PP +depends \fIpaquet(s)\fR +.RS 3n +La commande +depends +affiche la liste de toutes les dépendances d'un paquet et la liste de tous les paquets possibles qui satisfont ces dépendances. +.RE +.PP +rdepends \fIpaquet(s)\fR +.RS 3n +La commande +rdepends +affiche la liste de toutes les dépendances inverses d'un paquet. +.RE +.PP +pkgnames \fI[ prefix ]\fR +.RS 3n +Cette commande affiche le nom de chaque paquet du système. Un préfixe pour filtrer la liste des noms peut être donné en argument. La sortie est appropriée à une utilisation au sein d'une fonction complète de shell\ ; elle est produite très rapidement. On utilise au mieux cette commande avec l'option +\fB\-\-generate\fR. +.RE +.PP +dotty \fIpaquet(s)\fR +.RS 3n +La commande +dotty +prend une liste de paquets sur la ligne de commande et affiche une sortie appropriée à une utilisation par la commande dotty du paquet +[1]\&\fIGraphViz\fR. Il en résulte un ensemble de noeuds et d'arcs représentant les relations entre les paquets. Par défaut les paquets donnés en argument suivent toutes leurs dépendances, ce qui peut produire un graphe très volumineux. Pour limiter la sortie aux seuls paquets listés sur la ligne de commande, positionnez l'option +APT::Cache::GivenOnly. +.sp +Les noeuds résultants ont plusieurs formes\ ; les paquets normaux sont des boîtes, les \(Fo\ provides\ \(Fc purs sont des triangles, les \(Fo\ provides\ \(Fc mixtes sont des diamants et les paquets manquants sont des hexagones. Les boîtes oranges expriment un arrêt de la récursivité [paquet feuille], les lignes bleues représentent des prédépendances et les lignes vertes représentent des conflits. +.sp +Attention, dotty ne peut pas représenter des ensembles très grands de paquets. +.RE +.PP +policy \fI[ paquet(s) ]\fR +.RS 3n + +policy +sert à déboguer des problèmes relatifs au fichier des préférences. Sans argument, la commande affiche la priorité de chaque source. Sinon, elle affiche des informations précises sur la priorité du paquet donné en argument. +.RE +.PP +madison \fI[ paquet(s) ]\fR +.RS 3n +La commande +madison +d'apt\-cache +cherche à mimer le format de sortie propre à l'outil debian de gestion d'archives, +madison, ainsi qu'une part de ses fonctionnalités. Elle affiche les versions disponibles d'un paquet dans un tableau. Contrairement au programme original +madison, elle n'affiche que des informations concernant l'architecture pour laquelle Apt a lu la liste des paquets disponibles (APT::Architecture). +.RE +.SH "OPTIONS" +.PP +Toutes les options en ligne de commande peuvent être positionnées via le fichier de configuration\ ; les descriptifs indiquent l'option de configuration à positionner. En ce qui concerne les options booléennes, on peut annuler le fichier de configuration en utilisant quelque chose comme +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +ou d'autres variantes. +.PP +\fB\-p\fR, \fB\-\-pkg\-cache\fR +.RS 3n +Indique le fichier servant de cache des paquets. Le cache des paquets est le cache primaire utilisé par toutes les opérations. Élément de configuration\ : +Dir::Cache::pkgcache. +.RE +.PP +\fB\-s\fR, \fB\-\-src\-cache\fR +.RS 3n +Indique le fichier servant de cache des sources. Ce cache n'est utilisé que par +gencaches\ ; une version des informations sur les paquets, faite à partir d'une analyse de sources distantes, est conservée. Quand le cache des paquets est créé, le cache des sources est utilisé afin d'éviter d'analyser à nouveau tous les paquets. Élément de configuration\ : +Dir::Cache::srcpkgcache. +.RE +.PP +\fB\-q\fR, \fB\-\-quiet\fR +.RS 3n +Mode silencieux\ ; produit une sortie pertinente pour l'enregistrement dans un fichier\-journal, sans afficher d'indicateur de progression. Un plus grand nombre de q produira un plus grand silence, avec un maximum de 2. Vous pouvez aussi utiliser +\fB\-q=#\fR +pour positionner le niveau de silence, annulant le fichier de configuration. Élément de configuration\ : +quiet. +.RE +.PP +\fB\-i\fR, \fB\-\-important\fR +.RS 3n +N'affiche que les dépendances importantes\ ; à utiliser avec la commande unmet pour n'afficher que les relations Depends et Pre\-Depends. Élément de configuration\ : +APT::Cache::Important. +.RE +.PP +\fB\-f\fR, \fB\-\-full\fR +.RS 3n +Affiche la totalité des champs d'information sur le paquet lors d'une recherche. Élément de configuration\ : +APT::Cache::ShowFull. +.RE +.PP +\fB\-a\fR, \fB\-\-all\-versions\fR +.RS 3n +Affiche la totalité des champs d'information pour toutes les versions disponibles\ : c'est la valeur par défaut. Pour la désactiver, utilisez l'option +\fB\-\-no\-all\-versions\fR. Quand l'option +\fB\-\-no\-all\-versions\fR +est choisie, seuls les éléments de la version choisie (celle qui serait installée) seront affichés. Cette option concerne seulement la commande +show. Élément de configuration\ : +APT::Cache::AllVersions. +.RE +.PP +\fB\-g\fR, \fB\-\-generate\fR +.RS 3n +Réalise une mise à jour automatique du cache des paquets plutôt que de se servir du cache actuel. Pour désactiver cette option (option par défaut), utilisez l'option +\fB\-\-no\-generate\fR. Élément de configuration\ : +APT::Cache::Generate. +.RE +.PP +\fB\-\-names\-only\fR, \fB\-n\fR +.RS 3n +N'effectue une recherche que sur les noms de paquets et pas sur les descriptions longues. Élément de configuration\ : +APT::Cache::NamesOnly. +.RE +.PP +\fB\-\-all\-names\fR +.RS 3n +Avec cette option +pkgnames +affiche tous les noms, les noms des paquets virtuels et les dépendances manquantes. Élément de configuration\ : +APT::Cache::AllNames. +.RE +.PP +\fB\-\-recurse\fR +.RS 3n +Avec cette option +depends +et +rdepends +sont récursives de manière à n'afficher qu'une seule fois les paquets mentionnés. Élément de configuration\ : +APT::Cache::RecurseDepends. +.RE +.PP +\fB\-\-installed\fR +.RS 3n +Cette option limite la sortie de +depends +et de +rdepends +aux paquets qui sont actuellement installés. Élément de configuration\ : +APT::Cache::Installed. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +Affiche un mode d'emploi succinct. +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +Affiche la version du programme. +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +Fichier de configuration\ ; indique quel fichier de configuration utiliser. Le programme lit le fichier de configuration par défaut, puis celui\-ci. Voyez +\fBapt.conf\fR(5) +pour la syntaxe. +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +Donne une option de configuration\ ; cela fixe une option de configuration arbitraire. La syntaxe est : +\fB\-o Foo::Bar=bar\fR. +.RE +.SH "FICHIERS" +.PP +\fI/etc/apt/sources.list\fR +.RS 3n +Emplacements où aller chercher les paquets. Élément de configuration\ : +Dir::Etc::SourceList. +.RE +.PP +\fI/var/lib/apt/lists/\fR +.RS 3n +Zone de stockage pour les informations qui concernent chaque ressource de paquet spécifiée dans +\fBsources.list\fR(5)Élément de configuration\ : +Dir::State::Lists. +.RE +.PP +\fI/var/lib/apt/lists/partial/\fR +.RS 3n +Zone de stockage pour les informations en transit. Élément de configuration\ : +Dir::State::Lists +(partial est implicite). +.RE +.SH "VOIR AUSSI" +.PP + +\fBapt.conf\fR(5), +\fBsources.list\fR(5), +\fBapt\-get\fR(8). +.SH "DIAGNOSTICS" +.PP + +\fBapt\-cache\fR +retourne zéro après un déroulement normal, et le nombre décimal 100 en cas d'erreur. +.SH "BOGUES" +.PP +Voyez la +[2]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "TRADUCTION" +.PP +Jérôme Marant. 2000\ ; mise à jour : Philippe Batailler. 2005. +. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "REFERENCES" +.TP 3 +1.\ GraphViz +\%http://www.research.att.com/sw/tools/graphviz/ +.TP 3 +2.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt-cache.fr.8.xml b/doc/fr/apt-cache.fr.8.xml new file mode 100644 index 0000000..043d9ec --- /dev/null +++ b/doc/fr/apt-cache.fr.8.xml @@ -0,0 +1,474 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 Février 2004 + + + +apt-cache + 8 + + + + + apt-cache + Gestion des paquets et manipulation du cache par APT + + + + + + apt-cache + + + + + add fichier + gencaches + showpkg paquet + showsrc paquet + stats + dump + dumpavail + unmet + search regex + show paquet + depends paquet + rdepends paquet + pkgnames prefix + dotty paquet + policy paquets + madison paquets + + + + + Description + +apt-cache réalise différentes opérations sur le cache de paquet d' +APT. apt-cache ne manipule pas l'état du système mais fournit des +moyens de recherche dans les métadonnées d'un paquet desquelles il extrait +d'intéressantes informations. + + +À moins que l'option ou ne soit donnée, l'une +des commandes suivantes doit être présente. + + + add fichier(s) + +La commande add ajoute des fichiers indexant des paquets au cache des +paquets. Cela sert uniquement pour le débogage. + + + + gencaches + +La commande gencaches fait la même chose que +apt-get check. Elle construit les caches des sources et des paquets +à partir des sources répertoriées dans &sources-list; et dans +/var/lib/dpkg/status. + + + + showpkg paquet(s) + +La commande showpkg affiche des informations sur les paquets donnés +en argument. Les arguments restants sont les noms de paquets. Les versions +disponibles et les dépendances inverses de chaque paquet répertorié sont +listées, ainsi que les dépendances normales pour chaque version. Les +dépendances normales d'un paquet sont constituées par les paquets dont il +dépend ; les +dépendances inverses sont les paquets qui dépendent du paquet en question. +Les dépendances normales doivent donc être satisfaites et les dépendances +inverses n'ont pas besoin de l'être. Ainsi, la commande +apt-cache showpkg libreadline2 donnera ce résultat : + + +Package: libreadline2 +Versions: 2.1-12(/var/state/apt/lists/foo_Packages), +Reverse Depends: + libreadlineg2,libreadline2 + libreadline2-altdev,libreadline2 +Dependencies: +2.1-12 - libc5 (2 5.4.0-0) ncurses3.0 (0 (null)) +Provides: +2.1-12 - +Reverse Provides: + + + +On peut voir que libreadline2, version 2.1-12, dépend de libc5, ncurses3.0 ; +ces paquets doivent être installés au préalable pour que +libreadline2 fonctionne. À leur tour, libreadlineg2 et libreadline2-altdev +dépendent de libreadline2. Si libreadline2 est installé, libc5 et ncurses3.0 +doivent être installés ; libreadlineg2 et libreadline2-altdev +n'ont pas à l'être. Pour connaître le sens de la fin de chaîne, il est +préférable de consulter le code source d'APT. + + + + stats + +La commande stats affiche des statistiques à propos du cache. Aucun +autre argument n'est attendu. Voici les informations rapportées : + + +Total package names est le nombre de paquets trouvés dans le cache. + + + +Normal packages est le nombre de paquets simples, +ordinaires ; ces paquets tolèrent une correspondance bijective entre +leur nom et le nom utilisé par les autres paquets pour les qualifier comme +dépendance. La majorité des paquets appartient à cette catégorie. + + + +Pure virtual packages est le nombre des paquets qui n'existent que +sous la forme d'un nom représentant un paquet virtuel ; ces paquets +« fournissent » seulement un nom de paquet virtuel et aucun paquet +n'utilise véritablement ce nom. Par exemple, au sein du système Debian +GNU/Linux, le nom « mail-transport-agent » est un paquet virtuel +pur ; plusieurs paquets peuvent « remplir » ce nom +« mail-transport-agent », mais il +n'existe aucun paquet nommé « mail-transport-agent ». + + + +Single virtual packages est le nombre de paquets virtuels qui ne +peuvent être remplis que par un seul paquet. Par exemple, au sein du système +Debian GNU/Linux, « X11-text-viewer » est un paquet virtuel ; +seul le paquet « xless » remplit « X11-text-viewer ». + + + +Mixed virtual packages est le nombre des paquets qui remplissent un +paquet virtuel particulier ou dont le nom est un nom de paquet virtuel. +Par exemple, au sein du système Debian GNU/Linux, « debconf » est +un paquet réel et il est aussi fourni par « debconf-tiny ». + + + +Missing est le nombre de paquets référencés dans une +dépendance mais qui ne sont fournis par aucun paquet. Les paquets manquants +peuvent être mis en évidence quand on n'accède pas à une distribution complète +ou si un paquet (réel ou virtuel) a été sorti d'une distribution. +Habituellement on les trouve dans les champs « Conflicts ». + + + +Total distinct versions est le nombre de versions de paquets trouvées +dans le cache ; cette valeur est par conséquent au moins égale au +nombre total de paquets. Quand on accède à plus d'une distribution +(« stable » et « unstable », par exemple), cette valeur +peut être considérablement plus grande que le nombre total de paquets. + + + +Total dependencies est le nombre de relations de dépendances +déclarées par tous les paquets présents dans le cache. + + + + + + + showsrc paquet(s) + + showsrc affiche toutes les entrées de paquet source qui +correspondent aux noms donnés. Toutes les versions sont affichées et toutes +les entrées qui déclarent que ces noms correspondent à des paquets binaires. + + + + + + dump + +La commande dump affiche un court résumé sur chaque paquet du cache. +Elle est d'abord destinée au débogage. + + + + dumpavail + +La commande dumpavail affiche sur la sortie standard une liste des +paquets disponibles. Elle convient à une utilisation avec &dpkg; et la +méthode &dselect; s'en sert. + + + + unmet + +La commande unmet affiche un résumé concernant toutes les +dépendances absentes dans le cache de paquets. + + + + show paquet(s) + +La commande show est semblable à +dpkg --print-avail ; +elle affiche des informations sur les paquets donnés en argument. + + + + search regex [ regex ... ] + +La commande search recherche l'expression régulière donnée en +argument sur tous les paquets disponibles. Elle cherche une occurrence de la +chaîne dans les noms de paquets et dans les descriptions puis elle affiche +le nom du paquet et sa description courte. Quand on donne l'option +, la sortie est identique à show pour chaque +paquet ; l'option ne recherche pas la chaîne +dans les descriptions longues mais seulement dans les noms de paquets. + +On peut utiliser des arguments distincts pour indiquer des expressions +régulières différentes sur lesquelles sera réalisé un « et » logique. + + + + + depends paquet(s) + +La commande depends affiche la liste de toutes les dépendances +d'un paquet et la liste de tous les paquets possibles qui satisfont ces +dépendances. + + + + rdepends paquet(s) + +La commande rdepends affiche la liste de toutes les dépendances inverses +d'un paquet. + + + + pkgnames [ prefix ] + +Cette commande affiche le nom de chaque paquet du système. Un préfixe pour +filtrer la liste des noms peut être donné en argument. La sortie est +appropriée à une utilisation au sein d'une fonction complète de shell ; +elle est produite très rapidement. On utilise au mieux cette commande avec +l'option . + + + + dotty paquet(s) + +La commande dotty prend une liste de paquets sur la ligne de commande +et affiche une sortie appropriée à une utilisation par la commande dotty du +paquet GraphViz. +Il en résulte un ensemble de noeuds et d'arcs représentant les relations +entre les paquets. Par défaut les paquets donnés en argument suivent toutes +leurs dépendances, ce qui peut produire un graphe très volumineux. +Pour limiter la sortie aux seuls paquets listés sur la ligne de commande, +positionnez l'option APT::Cache::GivenOnly. + + +Les noeuds résultants ont plusieurs formes ; les paquets normaux sont +des boîtes, les « provides » purs sont des triangles, +les « provides » mixtes sont des diamants et les paquets manquants +sont des hexagones. Les boîtes oranges expriment un arrêt de la récursivité +[paquet feuille], les lignes bleues représentent des prédépendances et les +lignes vertes représentent des conflits. + + +Attention, dotty ne peut pas représenter des ensembles très grands de paquets. + + + + + policy [ paquet(s) ] + + policy sert à déboguer des problèmes relatifs au fichier des +préférences. Sans argument, la commande affiche la priorité de chaque source. +Sinon, elle affiche des informations précises sur la priorité du paquet donné +en argument. + + + + madison [ paquet(s) ] + + + La commande madison d'apt-cache + cherche à mimer le +format de sortie propre à l'outil debian de gestion d'archives, +madison, ainsi qu'une part de ses fonctionnalités. Elle affiche les +versions disponibles d'un paquet dans un tableau. Contrairement au programme +original madison, elle n'affiche que des informations concernant +l'architecture pour laquelle Apt a lu la liste des paquets disponibles +(APT::Architecture). + + + + + + + Options + &apt-cmdblurb; + + + + +Indique le fichier servant de cache des paquets. Le cache des paquets est +le cache primaire utilisé par toutes les opérations. +Élément de configuration : Dir::Cache::pkgcache. + + + + + +Indique le fichier servant de cache des sources. Ce cache n'est utilisé que +par gencaches ; une version des informations sur les paquets, +faite à partir d'une analyse de sources distantes, est conservée. Quand le +cache des paquets est créé, le cache des sources est utilisé afin d'éviter +d'analyser à nouveau tous les paquets. +Élément de configuration : Dir::Cache::srcpkgcache. + + + + + +Mode silencieux ; produit une sortie pertinente pour l'enregistrement +dans un fichier-journal, sans afficher d'indicateur de progression. Un plus +grand nombre de q produira un plus grand silence, avec un maximum de 2. Vous +pouvez aussi utiliser pour positionner le niveau de silence, +annulant le fichier de configuration. +Élément de configuration : quiet. + + + + + +N'affiche que les dépendances importantes ; à utiliser avec la commande +unmet pour n'afficher que les relations Depends et Pre-Depends. +Élément de configuration : APT::Cache::Important. + + + + + +Affiche la totalité des champs d'information sur le paquet lors d'une +recherche. +Élément de configuration : APT::Cache::ShowFull. + + + + + +Affiche la totalité des champs d'information pour toutes les versions +disponibles : c'est la valeur par défaut. Pour la désactiver, utilisez +l'option . Quand l'option +est choisie, seuls les éléments de la version choisie (celle qui serait +installée) seront affichés. +Cette option concerne seulement la commande show. +Élément de configuration : APT::Cache::AllVersions. + + + + + +Réalise une mise à jour automatique du cache des paquets plutôt que de se +servir du cache actuel. +Pour désactiver cette option (option par défaut), utilisez l'option +. +Élément de configuration : APT::Cache::Generate. + + + + + +N'effectue une recherche que sur les noms de paquets et pas sur les +descriptions longues. +Élément de configuration : APT::Cache::NamesOnly. + + + + + +Avec cette option pkgnames affiche tous les noms, les noms des +paquets virtuels et les dépendances manquantes. +Élément de configuration : APT::Cache::AllNames. + + + + + +Avec cette option depends et rdepends +sont récursives de +manière à n'afficher qu'une seule fois les paquets mentionnés. +Élément de configuration : APT::Cache::RecurseDepends. + + + + + +Cette option limite la sortie de depends et de +rdepends +aux paquets qui sont actuellement installés. +Élément de configuration : APT::Cache::Installed. + + + + &apt-commonoptions; + + + + + Fichiers + + /etc/apt/sources.list + +Emplacements où aller chercher les paquets. +Élément de configuration : Dir::Etc::SourceList. + + + + &statedir;/lists/ + +Zone de stockage pour les informations qui concernent chaque ressource de +paquet spécifiée dans &sources-list; +Élément de configuration : Dir::State::Lists. + + + + &statedir;/lists/partial/ + +Zone de stockage pour les informations en transit. +Élément de configuration : Dir::State::Lists (partial est implicite). + + + + + + + Voir aussi + + &apt-conf;, &sources-list;, &apt-get;. + + + Diagnostics + +apt-cache retourne zéro après un déroulement normal, et le nombre +décimal 100 en cas d'erreur. + + + &manbugs; + &deux-traducteurs; + diff --git a/doc/fr/apt-cdrom.8 b/doc/fr/apt-cdrom.8 new file mode 100644 index 0000000..0d797ba --- /dev/null +++ b/doc/fr/apt-cdrom.8 @@ -0,0 +1,160 @@ +.\" Title: apt\-cdrom +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 14 Février 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-CDROM" "8" "14 Février 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt\-cdrom \- Gestion des cédéroms par APT +.SH "SYNOPSIS" +.HP 10 +\fBapt\-cdrom\fR [\fB\-hvrmfan\fR] [\fB\-d=\fR\fB\fIpoint\ de\ montage\ du\ cédérom\fR\fR] [\fB\-o=\fR\fB\fIoption\ de\ configuration\fR\fR] [\fB\-c=\fR\fB\fIfichier\fR\fR] [[add] | [ident]] +.SH "DESCRIPTION" +.PP + +\fBapt\-cdrom\fR +est utilisé pour ajouter un nouveau cédérom à la liste des sources disponibles. +\fBapt\-cdrom\fR +prend soin de déterminer la structure du disque, de corriger de possibles erreurs de gravure et de vérifier les fichiers d'index. +.PP +Il est nécessaire d'utiliser +\fBapt\-cdrom\fR +pour ajouter des cédéroms au système APT, cela ne peut être réalisé \(Fo\ à la main\ \(Fc. Par ailleurs, chaque disque d'un ensemble de cédéroms doit être séparément inséré et parcouru pour prendre en compte de possibles erreurs de gravure. +.PP +À moins que l'option +\fB\-h\fR +ou +\fB\-\-help\fR +ne soit donnée, l'une des commandes suivantes doit être présente. +.PP +add +.RS 3n +La commande +add +est utilisée pour ajouter un nouveau disque à la liste des sources. Elle démonte le cédérom, réclame l'insertion d'un disque, parcourt ensuite le disque et copie les fichiers d'index. Si le disque ne possède pas de répertoire +\fIdisk/\fR +correct, un titre descriptif est demandé. +.sp +APT utilise un identifiant de cédérom pour reconnaître le disque qui se trouve actuellement dans le lecteur et maintient une base de données de ces identifiants dans +\fI/var/lib/apt/cdroms.list\fR. +.RE +.PP +ident +.RS 3n +Un outil de débogage pour rapporter l'identifiant du disque actuel ainsi que le nom du fichier stocké. +.RE +.SH "OPTIONS" +.PP +Toutes les options en ligne de commande peuvent être positionnées via le fichier de configuration\ ; les descriptifs indiquent l'option de configuration à positionner. En ce qui concerne les options booléennes, on peut annuler le fichier de configuration en utilisant quelque chose comme +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +ou d'autres variantes. +.PP +\fB\-d\fR, \fB\-\-cdrom\fR +.RS 3n +Point de montage\ ; spécifie l'emplacement de montage du cédérom. Ce point de montage doit être spécifié dans +\fI/etc/fstab\fR +et correctement configuré. Élément de configuration\ : +Acquire::cdrom::mount. +.RE +.PP +\fB\-r\fR, \fB\-\-rename\fR +.RS 3n +Change le nom d'un disque\ ; change le nom d'un disque ou annule le nom donné aux disques. Cette option oblige +\fBapt\-cdrom\fR +à demander un nouveau nom à l'utilisateur. Élément de configuration\ : +APT::CDROM::Rename. +.RE +.PP +\fB\-m\fR, \fB\-\-no\-mount\fR +.RS 3n +Pas de montage\ ; empêche +\fBapt\-cdrom\fR +de monter ou démonter le point de montage. Élément de configuration\ : +APT::CDROM::NoMount. +.RE +.PP +\fB\-f\fR, \fB\-\-fast\fR +.RS 3n +Copie rapide\ ; suppose que les paquets sont valides et ne vérifie pas chaque paquet. Cette option ne devrait être utilisée que si +\fBapt\-cdrom\fR +a préalablement utilisé ce disque et n'a trouvé aucune erreur. Élément de configuration\ : +APT::CDROM::Fast. +.RE +.PP +\fB\-a\fR, \fB\-\-thorough\fR +.RS 3n +Parcours minutieux des paquets\ ; cette option peut être nécessaire avec de vieux cédéroms de systèmes Debian 1.1 ou 1.2 dont les fichiers Packages sont situés dans des endroits étranges. Il faudra plus de temps pour parcourir le CD mais tous les paquets seront repérés. +.RE +.PP +\fB\-n\fR, \fB\-\-just\-print\fR, \fB\-\-recon\fR, \fB\-\-no\-act\fR +.RS 3n +Aucune modification\ ; ne pas modifier le fichier +\fBsources.list\fR(5)ni les fichiers d'index. Cependant, tout est vérifié. Élément de configuration\ : +APT::CDROM::NoAct. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +Affiche un mode d'emploi succinct. +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +Affiche la version du programme. +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +Fichier de configuration\ ; indique quel fichier de configuration utiliser. Le programme lit le fichier de configuration par défaut, puis celui\-ci. Voyez +\fBapt.conf\fR(5) +pour la syntaxe. +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +Donne une option de configuration\ ; cela fixe une option de configuration arbitraire. La syntaxe est : +\fB\-o Foo::Bar=bar\fR. +.RE +.SH "VOIR AUSSI" +.PP + +\fBapt.conf\fR(5), +\fBapt\-get\fR(8), +\fBsources.list\fR(5). +.SH "DIAGNOSTICS" +.PP +\fBapt\-cdrom\fR +retourne zéro après un déroulement normal, et le nombre décimal 100 en cas d'erreur. +.SH "BOGUES" +.PP +Voyez la +[1]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "TRADUCTION" +.PP +Jérôme Marant. 2000\ ; mise à jour : Philippe Batailler. 2005. +. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "REFERENCES" +.TP 3 +1.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt-cdrom.fr.8 b/doc/fr/apt-cdrom.fr.8 new file mode 100644 index 0000000..0d797ba --- /dev/null +++ b/doc/fr/apt-cdrom.fr.8 @@ -0,0 +1,160 @@ +.\" Title: apt\-cdrom +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 14 Février 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-CDROM" "8" "14 Février 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt\-cdrom \- Gestion des cédéroms par APT +.SH "SYNOPSIS" +.HP 10 +\fBapt\-cdrom\fR [\fB\-hvrmfan\fR] [\fB\-d=\fR\fB\fIpoint\ de\ montage\ du\ cédérom\fR\fR] [\fB\-o=\fR\fB\fIoption\ de\ configuration\fR\fR] [\fB\-c=\fR\fB\fIfichier\fR\fR] [[add] | [ident]] +.SH "DESCRIPTION" +.PP + +\fBapt\-cdrom\fR +est utilisé pour ajouter un nouveau cédérom à la liste des sources disponibles. +\fBapt\-cdrom\fR +prend soin de déterminer la structure du disque, de corriger de possibles erreurs de gravure et de vérifier les fichiers d'index. +.PP +Il est nécessaire d'utiliser +\fBapt\-cdrom\fR +pour ajouter des cédéroms au système APT, cela ne peut être réalisé \(Fo\ à la main\ \(Fc. Par ailleurs, chaque disque d'un ensemble de cédéroms doit être séparément inséré et parcouru pour prendre en compte de possibles erreurs de gravure. +.PP +À moins que l'option +\fB\-h\fR +ou +\fB\-\-help\fR +ne soit donnée, l'une des commandes suivantes doit être présente. +.PP +add +.RS 3n +La commande +add +est utilisée pour ajouter un nouveau disque à la liste des sources. Elle démonte le cédérom, réclame l'insertion d'un disque, parcourt ensuite le disque et copie les fichiers d'index. Si le disque ne possède pas de répertoire +\fIdisk/\fR +correct, un titre descriptif est demandé. +.sp +APT utilise un identifiant de cédérom pour reconnaître le disque qui se trouve actuellement dans le lecteur et maintient une base de données de ces identifiants dans +\fI/var/lib/apt/cdroms.list\fR. +.RE +.PP +ident +.RS 3n +Un outil de débogage pour rapporter l'identifiant du disque actuel ainsi que le nom du fichier stocké. +.RE +.SH "OPTIONS" +.PP +Toutes les options en ligne de commande peuvent être positionnées via le fichier de configuration\ ; les descriptifs indiquent l'option de configuration à positionner. En ce qui concerne les options booléennes, on peut annuler le fichier de configuration en utilisant quelque chose comme +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +ou d'autres variantes. +.PP +\fB\-d\fR, \fB\-\-cdrom\fR +.RS 3n +Point de montage\ ; spécifie l'emplacement de montage du cédérom. Ce point de montage doit être spécifié dans +\fI/etc/fstab\fR +et correctement configuré. Élément de configuration\ : +Acquire::cdrom::mount. +.RE +.PP +\fB\-r\fR, \fB\-\-rename\fR +.RS 3n +Change le nom d'un disque\ ; change le nom d'un disque ou annule le nom donné aux disques. Cette option oblige +\fBapt\-cdrom\fR +à demander un nouveau nom à l'utilisateur. Élément de configuration\ : +APT::CDROM::Rename. +.RE +.PP +\fB\-m\fR, \fB\-\-no\-mount\fR +.RS 3n +Pas de montage\ ; empêche +\fBapt\-cdrom\fR +de monter ou démonter le point de montage. Élément de configuration\ : +APT::CDROM::NoMount. +.RE +.PP +\fB\-f\fR, \fB\-\-fast\fR +.RS 3n +Copie rapide\ ; suppose que les paquets sont valides et ne vérifie pas chaque paquet. Cette option ne devrait être utilisée que si +\fBapt\-cdrom\fR +a préalablement utilisé ce disque et n'a trouvé aucune erreur. Élément de configuration\ : +APT::CDROM::Fast. +.RE +.PP +\fB\-a\fR, \fB\-\-thorough\fR +.RS 3n +Parcours minutieux des paquets\ ; cette option peut être nécessaire avec de vieux cédéroms de systèmes Debian 1.1 ou 1.2 dont les fichiers Packages sont situés dans des endroits étranges. Il faudra plus de temps pour parcourir le CD mais tous les paquets seront repérés. +.RE +.PP +\fB\-n\fR, \fB\-\-just\-print\fR, \fB\-\-recon\fR, \fB\-\-no\-act\fR +.RS 3n +Aucune modification\ ; ne pas modifier le fichier +\fBsources.list\fR(5)ni les fichiers d'index. Cependant, tout est vérifié. Élément de configuration\ : +APT::CDROM::NoAct. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +Affiche un mode d'emploi succinct. +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +Affiche la version du programme. +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +Fichier de configuration\ ; indique quel fichier de configuration utiliser. Le programme lit le fichier de configuration par défaut, puis celui\-ci. Voyez +\fBapt.conf\fR(5) +pour la syntaxe. +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +Donne une option de configuration\ ; cela fixe une option de configuration arbitraire. La syntaxe est : +\fB\-o Foo::Bar=bar\fR. +.RE +.SH "VOIR AUSSI" +.PP + +\fBapt.conf\fR(5), +\fBapt\-get\fR(8), +\fBsources.list\fR(5). +.SH "DIAGNOSTICS" +.PP +\fBapt\-cdrom\fR +retourne zéro après un déroulement normal, et le nombre décimal 100 en cas d'erreur. +.SH "BOGUES" +.PP +Voyez la +[1]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "TRADUCTION" +.PP +Jérôme Marant. 2000\ ; mise à jour : Philippe Batailler. 2005. +. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "REFERENCES" +.TP 3 +1.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt-cdrom.fr.8.xml b/doc/fr/apt-cdrom.fr.8.xml new file mode 100644 index 0000000..fd2b89a --- /dev/null +++ b/doc/fr/apt-cdrom.fr.8.xml @@ -0,0 +1,159 @@ + + +%aptent; + +]> + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + 14 Février 2004 + + + +apt-cdrom +8 + + + + +apt-cdrom +Gestion des cédéroms par APT + + + + + +apt-cdrom + + + + + +add +ident + + + + +Description + +apt-cdrom est utilisé pour ajouter un nouveau cédérom à la liste des +sources disponibles. apt-cdrom prend soin de déterminer la structure +du disque, de corriger de possibles erreurs de gravure et de vérifier les +fichiers d'index. + +Il est nécessaire d'utiliser apt-cdrom pour ajouter des cédéroms au +système APT, cela ne peut être réalisé « à la main ». Par ailleurs, +chaque disque d'un ensemble de cédéroms doit être séparément inséré et +parcouru pour prendre en compte de possibles erreurs de gravure. + + +À moins que l'option ou ne soit donnée, l'une +des commandes suivantes doit être présente. + + +add + +La commande add est utilisée pour ajouter un nouveau disque à la +liste des sources. Elle démonte le cédérom, réclame l'insertion d'un disque, +parcourt ensuite le disque et copie les fichiers d'index. Si le disque ne +possède pas de répertoire disk/ correct, un titre descriptif +est demandé. + +APT utilise un identifiant de cédérom pour reconnaître le disque qui +se trouve actuellement dans le lecteur et maintient une base de données de +ces identifiants dans &statedir;/cdroms.list. + + + + +ident +Un outil de débogage pour rapporter l'identifiant du disque actuel ainsi +que le nom du fichier stocké. + + + + + + + +Options +&apt-cmdblurb; + + + + +Point de montage ; spécifie l'emplacement de montage du cédérom. Ce +point de montage doit être spécifié dans /etc/fstab et +correctement configuré. +Élément de configuration : Acquire::cdrom::mount. + + + + +Change le nom d'un disque ; change le nom d'un disque ou annule le nom +donné aux disques. Cette option oblige apt-cdrom à demander un +nouveau nom à l'utilisateur. +Élément de configuration : APT::CDROM::Rename. + + + + +Pas de montage ; empêche apt-cdrom de monter ou démonter le +point de montage. Élément de configuration : APT::CDROM::NoMount. + + + + +Copie rapide ; suppose que les paquets sont valides et ne vérifie pas +chaque paquet. Cette option ne devrait être utilisée que si apt-cdrom +a préalablement utilisé ce disque et n'a trouvé aucune erreur. +Élément de configuration : APT::CDROM::Fast. + + + + +Parcours minutieux des paquets ; cette option peut être nécessaire avec +de vieux cédéroms de systèmes Debian 1.1 ou 1.2 dont les fichiers Packages +sont situés dans des endroits étranges. Il faudra plus de temps pour +parcourir le CD mais tous les paquets seront repérés. + + + + + + + +Aucune modification ; ne pas modifier le fichier &sources-list; + ni les fichiers d'index. Cependant, tout est vérifié. +Élément de configuration : APT::CDROM::NoAct. + + + +&apt-commonoptions; + + + +Voir aussi + + +&apt-conf;, &apt-get;, &sources-list;. + + + +Diagnostics +apt-cdrom retourne zéro après un déroulement normal, et le nombre +décimal 100 en cas d'erreur. + + + +&manbugs; +&deux-traducteurs; + + diff --git a/doc/fr/apt-config.8 b/doc/fr/apt-config.8 new file mode 100644 index 0000000..a5ae260 --- /dev/null +++ b/doc/fr/apt-config.8 @@ -0,0 +1,112 @@ +.\" Title: apt\-config +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 Février 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-CONFIG" "8" "29 Février 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt\-config \- Programme pour interroger la configuration de APT +.SH "SYNOPSIS" +.HP 11 +\fBapt\-config\fR [\fB\-hv\fR] [\fB\-o=\fR\fB\fIoption\ de\ configuration\fR\fR] [\fB\-c=\fR\fB\fIfichier\fR\fR] {[shell] | [dump]} +.SH "DESCRIPTION" +.PP +\fBapt\-config\fR +est un programme interne utilisé par différentes composantes d'APT\ ; il offre la possibilité d'une configuration cohérente et permet aux applications conçues sous forme de script une utilisation simple du fichier de configuration principal +\fI/etc/apt/apt.conf\fR. +.PP +À moins que l'option +\fB\-h\fR +ou +\fB\-\-help\fR +ne soit donnée, l'une des commandes suivantes doit être présente. +.PP +shell +.RS 3n +Le terme shell est utilisé pour accéder aux informations de configuration depuis un script shell. Deux arguments doivent lui être donnés\ ; le premier est une variable du shell et le second une valeur de configuration à demander. La sortie standard consiste en une liste de commandes d'assignation de shell pour chaque valeur présente. Dans un script shell, cette commande devrait être utilisée comme suit\ : +.sp +.RS 3n +.nf +OPTS="\-f" +RES=`apt\-config shell OPTS MyApp::Options` +eval $RES +.fi +.RE +La variable d'environnement du shell $OPTS sera définie par la valeur de MyApp::Options ou, par défaut, la valeur \-f. +.sp +L'élément de configuration peut être suivi par /[fdbi]. \(Fo\ f\ \(Fc renvoie un nom de fichier, \(Fo\ d\ \(Fc un nom de répertoire, \(Fo\ b\ \(Fc renvoie \(Fo\ true\ \(Fc ou \(Fo\ false\ \(Fc et \(Fo\ i\ \(Fc renvoie un entier. Chacune de ses valeurs est normalisée et vérifiée. +.RE +.PP +dump +.RS 3n +Affiche seulement le contenu de l'espace de configuration. +.RE +.SH "OPTIONS" +.PP +Toutes les options en ligne de commande peuvent être positionnées via le fichier de configuration\ ; les descriptifs indiquent l'option de configuration à positionner. En ce qui concerne les options booléennes, on peut annuler le fichier de configuration en utilisant quelque chose comme +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +ou d'autres variantes. +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +Affiche un mode d'emploi succinct. +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +Affiche la version du programme. +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +Fichier de configuration\ ; indique quel fichier de configuration utiliser. Le programme lit le fichier de configuration par défaut, puis celui\-ci. Voyez +\fBapt.conf\fR(5) +pour la syntaxe. +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +Donne une option de configuration\ ; cela fixe une option de configuration arbitraire. La syntaxe est : +\fB\-o Foo::Bar=bar\fR. +.RE +.SH "VOIR AUSSI" +.PP + +\fBapt.conf\fR(5) +.SH "DIAGNOSTICS" +.PP +\fBapt\-config\fR +retourne zéro après un déroulement normal, et le nombre 100 en cas d'erreur. +.SH "BOGUES" +.PP +Voyez la +[1]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "TRADUCTION" +.PP +Jérôme Marant. 2000\ ; mise à jour : Philippe Batailler. 2005. +. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "REFERENCES" +.TP 3 +1.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt-config.fr.8 b/doc/fr/apt-config.fr.8 new file mode 100644 index 0000000..a5ae260 --- /dev/null +++ b/doc/fr/apt-config.fr.8 @@ -0,0 +1,112 @@ +.\" Title: apt\-config +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 Février 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-CONFIG" "8" "29 Février 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt\-config \- Programme pour interroger la configuration de APT +.SH "SYNOPSIS" +.HP 11 +\fBapt\-config\fR [\fB\-hv\fR] [\fB\-o=\fR\fB\fIoption\ de\ configuration\fR\fR] [\fB\-c=\fR\fB\fIfichier\fR\fR] {[shell] | [dump]} +.SH "DESCRIPTION" +.PP +\fBapt\-config\fR +est un programme interne utilisé par différentes composantes d'APT\ ; il offre la possibilité d'une configuration cohérente et permet aux applications conçues sous forme de script une utilisation simple du fichier de configuration principal +\fI/etc/apt/apt.conf\fR. +.PP +À moins que l'option +\fB\-h\fR +ou +\fB\-\-help\fR +ne soit donnée, l'une des commandes suivantes doit être présente. +.PP +shell +.RS 3n +Le terme shell est utilisé pour accéder aux informations de configuration depuis un script shell. Deux arguments doivent lui être donnés\ ; le premier est une variable du shell et le second une valeur de configuration à demander. La sortie standard consiste en une liste de commandes d'assignation de shell pour chaque valeur présente. Dans un script shell, cette commande devrait être utilisée comme suit\ : +.sp +.RS 3n +.nf +OPTS="\-f" +RES=`apt\-config shell OPTS MyApp::Options` +eval $RES +.fi +.RE +La variable d'environnement du shell $OPTS sera définie par la valeur de MyApp::Options ou, par défaut, la valeur \-f. +.sp +L'élément de configuration peut être suivi par /[fdbi]. \(Fo\ f\ \(Fc renvoie un nom de fichier, \(Fo\ d\ \(Fc un nom de répertoire, \(Fo\ b\ \(Fc renvoie \(Fo\ true\ \(Fc ou \(Fo\ false\ \(Fc et \(Fo\ i\ \(Fc renvoie un entier. Chacune de ses valeurs est normalisée et vérifiée. +.RE +.PP +dump +.RS 3n +Affiche seulement le contenu de l'espace de configuration. +.RE +.SH "OPTIONS" +.PP +Toutes les options en ligne de commande peuvent être positionnées via le fichier de configuration\ ; les descriptifs indiquent l'option de configuration à positionner. En ce qui concerne les options booléennes, on peut annuler le fichier de configuration en utilisant quelque chose comme +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +ou d'autres variantes. +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +Affiche un mode d'emploi succinct. +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +Affiche la version du programme. +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +Fichier de configuration\ ; indique quel fichier de configuration utiliser. Le programme lit le fichier de configuration par défaut, puis celui\-ci. Voyez +\fBapt.conf\fR(5) +pour la syntaxe. +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +Donne une option de configuration\ ; cela fixe une option de configuration arbitraire. La syntaxe est : +\fB\-o Foo::Bar=bar\fR. +.RE +.SH "VOIR AUSSI" +.PP + +\fBapt.conf\fR(5) +.SH "DIAGNOSTICS" +.PP +\fBapt\-config\fR +retourne zéro après un déroulement normal, et le nombre 100 en cas d'erreur. +.SH "BOGUES" +.PP +Voyez la +[1]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "TRADUCTION" +.PP +Jérôme Marant. 2000\ ; mise à jour : Philippe Batailler. 2005. +. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "REFERENCES" +.TP 3 +1.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt-config.fr.8.xml b/doc/fr/apt-config.fr.8.xml new file mode 100644 index 0000000..043c586 --- /dev/null +++ b/doc/fr/apt-config.fr.8.xml @@ -0,0 +1,116 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 Février 2004 + + + +apt-config +8 + + + +apt-config +Programme pour interroger la configuration de APT + + + + +apt-config + + + + +shell +dump + + + + +Description +apt-config est un programme interne utilisé par différentes +composantes d'APT ; il offre la possibilité d'une configuration +cohérente et permet aux applications conçues sous forme de script une +utilisation simple du fichier de configuration principal +/etc/apt/apt.conf. + +À moins que l'option ou ne soit donnée, l'une +des commandes suivantes doit être présente. + + + +shell + +Le terme shell est utilisé pour accéder aux informations de configuration +depuis un script shell. Deux arguments doivent lui être donnés ; le +premier est une variable du shell et le second une valeur de configuration à +demander. +La sortie standard consiste en une liste de commandes d'assignation de shell +pour chaque valeur présente. Dans un script shell, cette commande devrait +être utilisée comme suit : + + +OPTS="-f" +RES=`apt-config shell OPTS MyApp::Options` +eval $RES + + +La variable d'environnement du shell $OPTS sera définie par la valeur de +MyApp::Options ou, par défaut, la valeur -f. + + +L'élément de configuration peut être suivi par /[fdbi]. « f » +renvoie un nom de fichier, « d » un nom de répertoire, +« b » renvoie « true » ou « false » et +« i » renvoie un entier. Chacune de ses valeurs est normalisée et vérifiée. + + + +dump + +Affiche seulement le contenu de l'espace de configuration. + + + + + +Options +&apt-cmdblurb; + + +&apt-commonoptions; + + + + +Voir aussi + +&apt-conf; + + + +Diagnostics +apt-config retourne zéro après un déroulement normal, et le nombre +100 en cas d'erreur. + + + +&manbugs; +&deux-traducteurs; + + + diff --git a/doc/fr/apt-extracttemplates.1 b/doc/fr/apt-extracttemplates.1 new file mode 100644 index 0000000..fee2a53 --- /dev/null +++ b/doc/fr/apt-extracttemplates.1 @@ -0,0 +1,102 @@ +.\" Title: apt\-extracttemplates +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 Février 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-EXTRACTTEMPLATES" "1" "29 Février 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt\-extracttemplates \- Un outil pour extraire d'un paquet Debian les textes de configuration pour DebConf. +.SH "SYNOPSIS" +.HP 21 +\fBapt\-extracttemplates\fR [\fB\-hv\fR] [\fB\-t=\fR\fB\fIrépertoire\ temporaire\fR\fR] \fIfichier\fR... +.SH "DESCRIPTION" +.PP + +\fBApt\-extracttemplates\fR +prend un ou plusieurs paquets Debian en argument et renvoie (dans un répertoire temporaire) tous les scripts et guides de configuration associés. Pour chaque paquet traité contenant des scripts et guides de configuration, une ligne est affichée au format suivant\ : +.PP +paquet version guide\-de\-configuration script\-de\-configuration +.PP +Les scripts et guides de configuration sont écrits dans le répertoire temporaire indiqué par l'option +\fB\-t\fR +ou +\fB\-\-tempdir\fR +(APT::ExtractTemplates::TempDir)\ ; les noms de fichier sont de la forme +\fIpackage.template.XXXX\fR +ou +\fIpackage.config.XXXX\fR. +.SH "OPTIONS" +.PP +Toutes les options en ligne de commande peuvent être positionnées via le fichier de configuration\ ; les descriptifs indiquent l'option de configuration à positionner. En ce qui concerne les options booléennes, on peut annuler le fichier de configuration en utilisant quelque chose comme +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +ou d'autres variantes. +.PP +\fB\-t\fR, \fB\-\-tempdir\fR +.RS 3n +Répertoire temporaire dans lequel écrire les scripts et guides de configuration pour Debconf. Élément de configuration\ : +APT::ExtractTemplates::TempDir. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +Affiche un mode d'emploi succinct. +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +Affiche la version du programme. +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +Fichier de configuration\ ; indique quel fichier de configuration utiliser. Le programme lit le fichier de configuration par défaut, puis celui\-ci. Voyez +\fBapt.conf\fR(5) +pour la syntaxe. +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +Donne une option de configuration\ ; cela fixe une option de configuration arbitraire. La syntaxe est : +\fB\-o Foo::Bar=bar\fR. +.RE +.SH "VOIR AUSSI" +.PP +\fBapt\-config\fR(8) +.SH "DIAGNOSTICS" +.PP + +\fBapt\-extracttemplates\fR +retourne zéro si tout se passe bien, le nombre 100 en cas d'erreur. +.SH "BOGUES" +.PP +Voyez la +[1]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "TRADUCTION" +.PP +Philippe Batailler. +. 2005. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "REFERENCES" +.TP 3 +1.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt-extracttemplates.fr.1 b/doc/fr/apt-extracttemplates.fr.1 new file mode 100644 index 0000000..fee2a53 --- /dev/null +++ b/doc/fr/apt-extracttemplates.fr.1 @@ -0,0 +1,102 @@ +.\" Title: apt\-extracttemplates +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 Février 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-EXTRACTTEMPLATES" "1" "29 Février 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt\-extracttemplates \- Un outil pour extraire d'un paquet Debian les textes de configuration pour DebConf. +.SH "SYNOPSIS" +.HP 21 +\fBapt\-extracttemplates\fR [\fB\-hv\fR] [\fB\-t=\fR\fB\fIrépertoire\ temporaire\fR\fR] \fIfichier\fR... +.SH "DESCRIPTION" +.PP + +\fBApt\-extracttemplates\fR +prend un ou plusieurs paquets Debian en argument et renvoie (dans un répertoire temporaire) tous les scripts et guides de configuration associés. Pour chaque paquet traité contenant des scripts et guides de configuration, une ligne est affichée au format suivant\ : +.PP +paquet version guide\-de\-configuration script\-de\-configuration +.PP +Les scripts et guides de configuration sont écrits dans le répertoire temporaire indiqué par l'option +\fB\-t\fR +ou +\fB\-\-tempdir\fR +(APT::ExtractTemplates::TempDir)\ ; les noms de fichier sont de la forme +\fIpackage.template.XXXX\fR +ou +\fIpackage.config.XXXX\fR. +.SH "OPTIONS" +.PP +Toutes les options en ligne de commande peuvent être positionnées via le fichier de configuration\ ; les descriptifs indiquent l'option de configuration à positionner. En ce qui concerne les options booléennes, on peut annuler le fichier de configuration en utilisant quelque chose comme +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +ou d'autres variantes. +.PP +\fB\-t\fR, \fB\-\-tempdir\fR +.RS 3n +Répertoire temporaire dans lequel écrire les scripts et guides de configuration pour Debconf. Élément de configuration\ : +APT::ExtractTemplates::TempDir. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +Affiche un mode d'emploi succinct. +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +Affiche la version du programme. +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +Fichier de configuration\ ; indique quel fichier de configuration utiliser. Le programme lit le fichier de configuration par défaut, puis celui\-ci. Voyez +\fBapt.conf\fR(5) +pour la syntaxe. +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +Donne une option de configuration\ ; cela fixe une option de configuration arbitraire. La syntaxe est : +\fB\-o Foo::Bar=bar\fR. +.RE +.SH "VOIR AUSSI" +.PP +\fBapt\-config\fR(8) +.SH "DIAGNOSTICS" +.PP + +\fBapt\-extracttemplates\fR +retourne zéro si tout se passe bien, le nombre 100 en cas d'erreur. +.SH "BOGUES" +.PP +Voyez la +[1]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "TRADUCTION" +.PP +Philippe Batailler. +. 2005. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "REFERENCES" +.TP 3 +1.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt-extracttemplates.fr.1.xml b/doc/fr/apt-extracttemplates.fr.1.xml new file mode 100644 index 0000000..7b54886 --- /dev/null +++ b/doc/fr/apt-extracttemplates.fr.1.xml @@ -0,0 +1,88 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 Février 2004 + + + +apt-extracttemplates +1 + + + +apt-extracttemplates +Un outil pour extraire d'un paquet Debian les textes de configuration pour DebConf. + + + + +apt-extracttemplates + + +fichier + + + +Description + +Apt-extracttemplates prend un ou plusieurs paquets Debian en +argument et renvoie (dans un répertoire temporaire) tous les scripts et +guides de configuration associés. Pour chaque paquet traité contenant des +scripts et guides de configuration, une ligne est affichée au format +suivant : + +paquet version guide-de-configuration script-de-configuration + +Les scripts et guides de configuration sont écrits dans le répertoire +temporaire indiqué par l'option ou + (APT::ExtractTemplates::TempDir) ; +les noms de fichier sont de la +forme package.template.XXXX ou package.config.XXXX. + + + +Options +&apt-cmdblurb; + + + + +Répertoire temporaire dans lequel écrire les scripts et guides de +configuration pour Debconf. +Élément de configuration : APT::ExtractTemplates::TempDir. + + + +&apt-commonoptions; + + + +Voir aussi +&apt-config; + + + +Diagnostics + +apt-extracttemplates retourne zéro si tout se passe bien, le nombre +100 en cas d'erreur. + + + +&manbugs; +&traducteur; + \ No newline at end of file diff --git a/doc/fr/apt-ftparchive.1 b/doc/fr/apt-ftparchive.1 new file mode 100644 index 0000000..76bea5b --- /dev/null +++ b/doc/fr/apt-ftparchive.1 @@ -0,0 +1,530 @@ +.\" Title: apt\-ftparchive +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 Février 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-FTPARCHIVE" "1" "29 Février 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt\-ftparchive \- Un outil pour créer des index +.SH "SYNOPSIS" +.HP 15 +\fBapt\-ftparchive\fR [\fB\-hvdsq\fR] [\fB\-\-md5\fR] [\fB\-\-delink\fR] [\fB\-\-readonly\fR] [\fB\-\-contents\fR] [\fB\-o=\fR\fB\fIoption\ de\ configuration\fR\fR] [\fB\-c=\fR\fB\fIfichier\fR\fR] {[packages\ \fIchemin\fR...\ [\fIoverride\fR\ [\fIpréfixe\-de\-chemin\fR]]] | [sources\ \fIchemin\fR...\ [\fIoverride\fR\ [\fIpréfixe\-de\-chemin\fR]]] | [contents\ \fIchemin\fR] | [release\ \fIchemin\fR] | [generate\ \fIfichier\-de\-configuration\fR\ \fIsection\fR...] | [clean\ \fIfichier\-de\-configuration\fR]} +.SH "DESCRIPTION" +.PP + +\fBapt\-ftparchive\fR +est l'outil en ligne de commande qui crée les index dont APT se sert pour accéder aux sources des distributions. Un index doit être créé pour un site et basé sur le contenu de ce site. +.PP +\fBapt\-ftparchive\fR +est un ensemble comprenant le programme +\fBdpkg\-scanpackages\fR(8) +et toutes ses fonctionnalités via la commande +packages\ ; il comprend aussi un générateur de fichier \(Fo\ Contents\ \(Fc, la commande +contents, et une technique élaborée pour \(Fo\ scripter\ \(Fc le processus de création d'une archive complète. +.PP + +\fBApt\-ftparchive\fR +peut utiliser lui\-même des bases de données binaires pour \(Fo\ cacher\ \(Fc le contenu d'un fichier .deb\ ; il n'a pas besoin de programmes extérieurs, sauf +\fBgzip\fR(1). Lors d'une exécution, il vérifie les changements dans les fichiers et crée les fichiers compressés voulus. +.PP +À moins que l'option +\fB\-h\fR +ou +\fB\-\-help\fR +ne soit donnée, l'une des commandes suivantes doit être présente\ : +.PP +packages +.RS 3n +La commande +packages +crée un fichier \(Fo\ Packages\ \(Fc à partir d'une arborescence. Elle recherche récursivement à travers le répertoire donné les fichiers .deb et, pour chaque fichier trouvé, envoie une entrée pour ce paquet sur la sortie standard. Cette commande est approximativement équivalente à +\fBdpkg\-scanpackages\fR(8). +.sp +On peut se servir de l'option +\fB\-\-db\fR +pour demander un cache binaire. +.RE +.PP +sources +.RS 3n +La commande +sources +crée un index des sources à partir d'une arborescence. Elle recherche récursivement à travers le répertoire donné les fichiers .dsc et, pour chaque fichier trouvé, envoie une entrée pour ce paquet sur la sortie standard. Cette commande est approximativement équivalente à +\fBdpkg\-scansources\fR(8). +.sp +Quand on précise un fichier \(Fo\ override\ \(Fc, c'est un fichier source avec une extension .src qui est recherché. On peut se servir de l'option +\fB\-\-source\-override\fR +pour changer de fichier source d'\(Fo\ override\ \(Fc. +.RE +.PP +contents +.RS 3n +La commande +contents +crée un fichier \(Fo\ Contents\ \(Fc à partir d'une arborescence. Elle recherche récursivement à travers le répertoire donné les fichiers .deb et, pour chaque fichier trouvé, lit la liste des fichiers. Elle trie la liste des fichiers correspondant à des paquets et l'envoie sur la sortie standard. Les répertoires ne font pas partie du résultat. Quand un fichier appartient à plusieurs paquets, une virgule sépare les paquets. +.sp +On peut se servir de l'option +\fB\-\-db\fR +pour demander un cache binaire. +.RE +.PP +release +.RS 3n +La commande +release +crée un fichier Releases à partir d'un répertoire. Elle cherche récursivement dans ce répertoire les fichiers Packages, Packages.gz, Packages.bz2, Sources, Sources.gz, Sources.bz2, Release et md5sum.txt. Elle envoie alors un fichier Release sur la sortie standard avec un résumé MD5 et un résumé SHA1 pour chaque fichier. +.sp +La valeur des autres champs du fichier Release est tirée de la valeur correspondante dans +APT::FTPArchive::Release, p. ex. +APT::FTPArchive::Release::Origin. Les champs reconnus sont : +Origin, +Label, +Suite, +Version, +Codename, +Date, +Architectures, +Components, +Description. +.RE +.PP +generate +.RS 3n +La commande +generate +est conçue pour être exécutable par le programme cron et elle crée un index en suivant le fichier de configuration donné. Le langage de configuration fournit un moyen souple de préciser index et répertoires aussi bien que les paramètres requis. +.RE +.PP +clean +.RS 3n +La commande +clean +range les bases de données utilisées par le fichier de configuration en supprimant les enregistrements qui ne sont plus nécessaires. +.RE +.SH "CONFIGURATION DE LA COMMANDE GENERATE" +.PP +La commande +generate +utilise un fichier de configuration pour décrire l'archive qui va être créée. Le format de ce fichier est le format ISC classique utilisé par des outils ISC comme bind 8 et dhcpd. Le fichier +\fBapt.conf\fR(5) +décrit ce format. Il faut noter que l'analyse de ce fichier se fait par section tandis que celle d'\fBapt.conf\fR(5) +se fait par arborescence. Cela n'affecte que l'usage de l'étiquette de visée (scope tag). +.PP +Ce fichier de configuration possède quatre sections, décrites ci\-dessous. +.SS "La section Dir" +.PP +La section +Dir +définit les répertoires standards où situer les fichiers nécessaires au processus de création. Ces répertoires sont précédés de chemins relatifs définis dans les sections suivantes de manière à produire un chemin absolu et complet. +.PP +ArchiveDir +.RS 3n +Indique la racine de l'archive FTP\ ; Pour une configuration Debian classique, c'est le répertoire qui contient le fichier +\fIls\-LR\fR +et les noeuds des distributions. +.RE +.PP +OverrideDir +.RS 3n +Indique l'emplacement des fichiers d'\(Fo\ override\ \(Fc. +.RE +.PP +CacheDir +.RS 3n +Indique l'emplacement des fichiers de cache. +.RE +.PP +FileListDir +.RS 3n +Indique l'emplacement des fichiers contenant la liste des fichiers (si on se sert de la valeur +FileList +définie plus bas). +.RE +.SS "La section Default" +.PP +La section +Default +précise les valeurs par défaut et les paramètres qui contrôlent la marche du générateur. Ces valeurs peuvent être annulées dans d'autres sections (paramètrage par section). +.PP +Packages::Compress +.RS 3n +Indique comment sont compressés les fichiers d'index. C'est une chaîne qui contient des valeurs séparées par des espaces\ ; elle contient au moins l'une des valeurs suivantes\ : \(Fo\ .\ \(Fc (pas de compression), \(Fo\ gzip\ \(Fc, \(Fo\ bzip2\ \(Fc. Par défaut, c'est la chaîne \(Fo\ . gzip\ \(Fc. +.RE +.PP +Packages::Extensions +.RS 3n +Indique la liste par défaut des extensions de fichier qui constituent des paquets. Par défaut, c'est \(Fo\ .deb\ \(Fc. +.RE +.PP +Sources::Compress +.RS 3n +Identique à +Packages::Compress +mais précise comment sont compressés les fichiers sources. +.RE +.PP +Sources::Extensions +.RS 3n +Indique la liste par défaut des extensions de fichier qui constituent des fichiers sources. Par défaut, c'est \(Fo\ .dsc\ \(Fc. +.RE +.PP +Contents::Compress +.RS 3n +Identique à +Packages::Compress +mais précise comment sont compressés les fichiers \(Fo\ Contents\ \(Fc. +.RE +.PP +DeLinkLimit +.RS 3n +Indique le nombre de kilooctets à délier (et à remplacer par des liens en dur) pour chaque exécution. On s'en sert, pour chaque section, avec le paramètre +External\-Links. +.RE +.PP +FileMode +.RS 3n +Indique le système de permissions des fichiers d'index créés. Par défaut, c'est le mode 0644. Tous les fichiers d'index ont ce mode et le masque utilisateur (umasq) est ignoré. +.RE +.SS "La section TreeDefault" +.PP +On indique les valeurs par défaut particulières à la section +Tree. Toutes ces variables sont des variables de substitution\ ; les chaînes $(DIST), $(SECTION) et $(ARCH) sont remplacées par leur valeur respective. +.PP +MaxContentsChange +.RS 3n +Indique le nombre de kilooctets de fichiers \(Fo\ Contents\ \(Fc qui sont créés chaque jour. Les fichiers \(Fo\ Contents\ \(Fc sont tirés au sort selon le système +\fIround\-robin\fR +de manière que, sur plusieurs jours, tous soient reconstruits. +.RE +.PP +ContentsAge +.RS 3n +Contrôle le nombre de jours pendant lequel un fichier \(Fo\ Contents\ \(Fc peut être utilisé sans actualisation. Quand cette limite est franchie, le \(Fo\ mtime\ \(Fc du fichier \(Fo\ Contents\ \(Fc est mis à jour. Cela peut arriver quand un fichier est modifié sans que cela modifie le fichier \(Fo\ Contents\ \(Fc (modification par \(Fo\ override\ \(Fc par exemple). Un délai est permis dans l'espoir que de nouveaux \(Fo\ .deb\ \(Fc seront installés, exigeant un nouveau \(Fo\ Contents\ \(Fc. Par défaut ce nombre vaut 10, l'unité étant le jour. +.RE +.PP +Directory +.RS 3n +Indique la racine de l'arborescence des \(Fo\ .deb\ \(Fc. Par défaut, c'est +\fI$(DIST)/$(SECTION)/binary\-$(ARCH)/\fR. +.RE +.PP +SrcDirectory +.RS 3n +Indique la racine de l'arborescence des paquets source. Par défaut, c'est +\fI$(DIST)/$(SECTION)/source/\fR. +.RE +.PP +Packages +.RS 3n +Indique le fichier \(Fo\ Packages\ \(Fc créé. Par défaut, c'est +\fI$(DIST)/$(SECTION)/binary\-$(ARCH)/Packages\fR. +.RE +.PP +Sources +.RS 3n +Indique le fichier \(Fo\ Packages\ \(Fc crée. Par défaut, c'est +\fI$(DIST)/$(SECTION)/source/Sources\fR. +.RE +.PP +InternalPrefix +.RS 3n +Indique un préfixe de chemin\ ; ce préfixe fait qu'un lien symbolique sera considéré comme un lien interne plutôt que comme un lien externe. Par défaut, c'est +\fI$(DIST)/$(SECTION)/\fR. +.RE +.PP +Contents +.RS 3n +Indique le fichier \(Fo\ Contents\ \(Fc créé. Par défaut, c'est +\fI$(DIST)/Contents\-$(ARCH)\fR. Quand le paramètrage fait que différents fichiers \(Fo\ Packages\ \(Fc se réfèrent à un seul fichier \(Fo\ Contents\ \(Fc, +\fBapt\-ftparchive\fR +les intègre automatiquement. +.RE +.PP +Contents::Header +.RS 3n +Indique l'en\-tête à préfixer au fichier \(Fo\ Contents\ \(Fc créé. +.RE +.PP +BinCacheDB +.RS 3n +Indique la base de données binaire servant de cache pour cette section. Différentes sections peuvent partager cette base de données. +.RE +.PP +FileList +.RS 3n +Indique qu'au lieu de lire l'arborescence, +\fBapt\-ftparchive\fR +doit lire la liste de fichiers dans le fichier donné en argument. Les noms relatifs sont préfixés par le répertoire de l'archive. +.RE +.PP +SourceFileList +.RS 3n +Indique qu'au lieu de lire l'arborescence, +\fBapt\-ftparchive\fR +doit lire la liste de fichiers dans le fichier donné en argument. Les noms relatifs sont préfixés par le répertoire de l'archive. On s'en sert pour traiter les index de sources. +.RE +.SS "La section Tree" +.PP +La section +Tree +définit une arborescence debian classique avec un répertoire de base, différentes sections dans ce répertoire et différentes architectures dans chaque section. Le chemin exact est défini par la variable de substitution +Directory. +.PP +La section +Tree +accepte une étiquette de visée (scope tag) qui détermine la variable +$(DIST) +et la racine de l'arborescence (le chemin est préfixé par +ArchiveDir). C'est par exemple\ : +\fIdists/woody\fR. +.PP +Tous les paramètres définis dans la section +TreeDefault +peuvent s'utiliser dans la section +Tree +ainsi que les trois nouvelles variables suivantes. +.PP +Quand il exécute la section +Tree, +\fBapt\-ftparchive\fR +agit ainsi\ : +.sp .RS 3n .nf for i in Sections do for j in Architectures do Generate for DIST=scope SECTION=i ARCH=j .fi .RE +.PP +Sections +.RS 3n +C'est une liste de sections séparées par des espaces qui appartiennent à une distribution\ ; classiquement, on trouve +main contrib non\-free. +.RE +.PP +Architectures +.RS 3n +C'est une liste de toutes les architectures qui appartiennent à chaque section. L'architecture spéciale \(Fo\ source\ \(Fc indique que l'arborescence est une arborescence de sources. +.RE +.PP +BinOverride +.RS 3n +Indique le fichier binaire d'\(Fo\ override\ \(Fc. Ce fichier contient des informations sur la section, la priorité et le responsable du paquet. +.RE +.PP +SrcOverride +.RS 3n +Indique le fichier source d'\(Fo\ override\ \(Fc. Ce fichier contient des informations sur la section. +.RE +.PP +ExtraOverride +.RS 3n +Indique un autre fichier d'\(Fo\ override\ \(Fc pour les binaires. +.RE +.PP +SrcExtraOverride +.RS 3n +Indique un autre fichier d'\(Fo\ override\ \(Fc pour les sources. +.RE +.SS "La section BinDirectory" +.PP +La section +bindirectory +définit une arborescence binaire sans structure particulière. L'étiquette de visée (scope tag) indique l'emplacement du répertoire binaire et le paramètrage est identique à celui pour la section +Tree +sans substitution de variables ou au paramètrage de +SectionArchitecture. +.PP +Packages +.RS 3n +Indique le fichier \(Fo\ Packages\ \(Fc créé. +.RE +.PP +Sources +.RS 3n +Indique le fichier \(Fo\ Sources\ \(Fc créé. L'un des deux fichiers, +Packages +ou +Sources +est nécessaire. +.RE +.PP +Contents +.RS 3n +Indique le fichier \(Fo\ Contents\ \(Fc créé. +.RE +.PP +Binoverride +.RS 3n +Indique le fichier d'\(Fo\ override\ \(Fc pour les binaires. +.RE +.PP +SrcOverride +.RS 3n +Indique le fichier d'\(Fo\ override\ \(Fc pour les sources. +.RE +.PP +ExtraOverride +.RS 3n +Indique un autre fichier d'\(Fo\ override\ \(Fc pour les binaires. +.RE +.PP +SrcExtraOverride +.RS 3n +Indique un autre fichier d'\(Fo\ override\ \(Fc pour les sources. +.RE +.PP +BinCacheDB +.RS 3n +Indique une base de données cache. +.RE +.PP +PathPrefix +.RS 3n +Ajoute un chemin à tous les chemins créés. +.RE +.PP +FileList, SourceFileList +.RS 3n +Indique le fichier contenant la liste des fichiers. +.RE +.SH "LE FICHIER D'\(Fo\ OVERRIDE\ \(Fc POUR LES BINAIRES." +.PP +Le fichier d'\(Fo\ Override\ \(Fc est pleinement compatible avec +\fBdpkg\-scanpackages\fR(8). Il contient quatre champs séparés par des espaces. Le premier est le nom du paquet\ ; le deuxième est la priorité à donner à ce paquet\ ; le troisième est sa section et le dernier champ est un champ pour changer le nom du responsable de paquet. +.PP +Le champ du responsable est de cette forme\ : +.sp +.RS 3n +.nf +old [// oldn]* => new +.fi +.RE +.sp +ou simplement, +.sp +.RS 3n +.nf +new +.fi +.RE +.sp +La première forme permet de spécifier de vieilles adresses dans une liste (le séparateur est la double barre oblique). Si l'une de ces deux formes est rencontrée, la valeur de new remplace la valeur du champ. La deuxième forme remplace inconditionnellement le champ. +.SH "LE FICHIER D'\(Fo\ OVERRIDE\ \(Fc POUR LES SOURCES" +.PP +Le fichier d'\(Fo\ Override\ \(Fc est pleinement compatible avec +\fBdpkg\-scansources\fR(8). Il contient deux champs. Le premier est le nom du paquet source\ ; le second, sa section. +.SH "LE FICHIER SUPPLÉMENTAIRE D'\(Fo\ OVERRIDE\ \(Fc" +.PP +Le fichier supplémentaire d'\(Fo\ Override\ \(Fc permet d'ajouter ou de remplacer des étiquettes sur la sortie. Il possède trois colonnes\ : la première représente le paquet, la seconde est une étiquette et la troisième en fin de ligne est la nouvelle valeur. +.SH "LES OPTIONS" +.PP +Toutes les options en ligne de commande peuvent être positionnées via le fichier de configuration\ ; les descriptifs indiquent l'option de configuration à positionner. En ce qui concerne les options booléennes, on peut annuler le fichier de configuration en utilisant quelque chose comme +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +ou d'autres variantes. +.PP +\fB\-\-md5\fR +.RS 3n +Créer la somme de contrôle MD5. Cette option est activée par défaut. Quand elle est désactivée, les fichiers d'index n'ont pas les champs MD5Sum là où c'est possible. Élément de configuration\ : +APT::FTPArchive::MD5. +.RE +.PP +\fB\-d\fR, \fB\-\-db\fR +.RS 3n +Utiliser une base de données binaire pour cache. Cela n'a aucun effet sur la commande generate. Élément de configuration\ : +APT::FTPArchive::DB. +.RE +.PP +\fB\-q\fR, \fB\-\-quiet\fR +.RS 3n +Mode silencieux\ ; cette commande produit une sortie destinée à l'enregistrement dans un fichier\-journal en omettant les indicateurs de progression. Un plus grand nombre de \(Fo\ q\ \(Fc (2 au plus) produit un plus grand silence. On peut aussi utiliser +\fB\-q=#\fR +pour positionner le niveau de silence, et annuler le fichier de configuration. Élément de configuration\ : +quiet. +.RE +.PP +\fB\-\-delink\fR +.RS 3n +Faire une déliaison. Si +External\-Links +est activé, cette option permet réellement la déliaison des fichiers. Par défaut, elle est activée mais elle peut être désactivée avec l'option +\fB\-\-no\-delink\fR. Élément de configuration\ : +APT::FTPArchive::DeLinkAct. +.RE +.PP +\fB\-\-contents\fR +.RS 3n +Permettre la création d'un fichier \(Fo\ Contents\ \(Fc. Quand cette option est activée et que les index sont créés sous forme de base de données binaire, la liste des fichiers est aussi extraite et conservée dans la base de données pour un usage futur. Avec la commande generate, cette option permet la création de fichiers \(Fo\ Contents\ \(Fc. Par défaut, elle est activée. Élément de configuration\ : +APT::FTPArchive::Contents. +.RE +.PP +\fB\-s\fR, \fB\-\-source\-override\fR +.RS 3n +Indique le fichier d'\(Fo\ override\ \(Fc à utiliser avec la commande +sources. Élément de configuration\ : +APT::FTPArchive::SourceOverride. +.RE +.PP +\fB\-\-readonly\fR +.RS 3n +N'autoriser que la lecture pour les bases de données de cache. Élément de configuration\ : +APT::FTPArchive::ReadOnlyDB. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +Affiche un mode d'emploi succinct. +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +Affiche la version du programme. +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +Fichier de configuration\ ; indique quel fichier de configuration utiliser. Le programme lit le fichier de configuration par défaut, puis celui\-ci. Voyez +\fBapt.conf\fR(5) +pour la syntaxe. +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +Donne une option de configuration\ ; cela fixe une option de configuration arbitraire. La syntaxe est : +\fB\-o Foo::Bar=bar\fR. +.RE +.SH "VOIR AUSSI" +.PP +\fBapt.conf\fR(5) +.SH "DIAGNOSTICS" +.PP + +\fBapt\-ftparchive\fR +retourne zéro si tout se passe bien, le nombre décimal 100 en cas d'erreur. +.SH "BOGUES" +.PP +Voyez la +[1]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "TRADUCTION" +.PP +Philippe Batailler. +. 2005. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "REFERENCES" +.TP 3 +1.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt-ftparchive.fr.1 b/doc/fr/apt-ftparchive.fr.1 new file mode 100644 index 0000000..76bea5b --- /dev/null +++ b/doc/fr/apt-ftparchive.fr.1 @@ -0,0 +1,530 @@ +.\" Title: apt\-ftparchive +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 Février 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-FTPARCHIVE" "1" "29 Février 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt\-ftparchive \- Un outil pour créer des index +.SH "SYNOPSIS" +.HP 15 +\fBapt\-ftparchive\fR [\fB\-hvdsq\fR] [\fB\-\-md5\fR] [\fB\-\-delink\fR] [\fB\-\-readonly\fR] [\fB\-\-contents\fR] [\fB\-o=\fR\fB\fIoption\ de\ configuration\fR\fR] [\fB\-c=\fR\fB\fIfichier\fR\fR] {[packages\ \fIchemin\fR...\ [\fIoverride\fR\ [\fIpréfixe\-de\-chemin\fR]]] | [sources\ \fIchemin\fR...\ [\fIoverride\fR\ [\fIpréfixe\-de\-chemin\fR]]] | [contents\ \fIchemin\fR] | [release\ \fIchemin\fR] | [generate\ \fIfichier\-de\-configuration\fR\ \fIsection\fR...] | [clean\ \fIfichier\-de\-configuration\fR]} +.SH "DESCRIPTION" +.PP + +\fBapt\-ftparchive\fR +est l'outil en ligne de commande qui crée les index dont APT se sert pour accéder aux sources des distributions. Un index doit être créé pour un site et basé sur le contenu de ce site. +.PP +\fBapt\-ftparchive\fR +est un ensemble comprenant le programme +\fBdpkg\-scanpackages\fR(8) +et toutes ses fonctionnalités via la commande +packages\ ; il comprend aussi un générateur de fichier \(Fo\ Contents\ \(Fc, la commande +contents, et une technique élaborée pour \(Fo\ scripter\ \(Fc le processus de création d'une archive complète. +.PP + +\fBApt\-ftparchive\fR +peut utiliser lui\-même des bases de données binaires pour \(Fo\ cacher\ \(Fc le contenu d'un fichier .deb\ ; il n'a pas besoin de programmes extérieurs, sauf +\fBgzip\fR(1). Lors d'une exécution, il vérifie les changements dans les fichiers et crée les fichiers compressés voulus. +.PP +À moins que l'option +\fB\-h\fR +ou +\fB\-\-help\fR +ne soit donnée, l'une des commandes suivantes doit être présente\ : +.PP +packages +.RS 3n +La commande +packages +crée un fichier \(Fo\ Packages\ \(Fc à partir d'une arborescence. Elle recherche récursivement à travers le répertoire donné les fichiers .deb et, pour chaque fichier trouvé, envoie une entrée pour ce paquet sur la sortie standard. Cette commande est approximativement équivalente à +\fBdpkg\-scanpackages\fR(8). +.sp +On peut se servir de l'option +\fB\-\-db\fR +pour demander un cache binaire. +.RE +.PP +sources +.RS 3n +La commande +sources +crée un index des sources à partir d'une arborescence. Elle recherche récursivement à travers le répertoire donné les fichiers .dsc et, pour chaque fichier trouvé, envoie une entrée pour ce paquet sur la sortie standard. Cette commande est approximativement équivalente à +\fBdpkg\-scansources\fR(8). +.sp +Quand on précise un fichier \(Fo\ override\ \(Fc, c'est un fichier source avec une extension .src qui est recherché. On peut se servir de l'option +\fB\-\-source\-override\fR +pour changer de fichier source d'\(Fo\ override\ \(Fc. +.RE +.PP +contents +.RS 3n +La commande +contents +crée un fichier \(Fo\ Contents\ \(Fc à partir d'une arborescence. Elle recherche récursivement à travers le répertoire donné les fichiers .deb et, pour chaque fichier trouvé, lit la liste des fichiers. Elle trie la liste des fichiers correspondant à des paquets et l'envoie sur la sortie standard. Les répertoires ne font pas partie du résultat. Quand un fichier appartient à plusieurs paquets, une virgule sépare les paquets. +.sp +On peut se servir de l'option +\fB\-\-db\fR +pour demander un cache binaire. +.RE +.PP +release +.RS 3n +La commande +release +crée un fichier Releases à partir d'un répertoire. Elle cherche récursivement dans ce répertoire les fichiers Packages, Packages.gz, Packages.bz2, Sources, Sources.gz, Sources.bz2, Release et md5sum.txt. Elle envoie alors un fichier Release sur la sortie standard avec un résumé MD5 et un résumé SHA1 pour chaque fichier. +.sp +La valeur des autres champs du fichier Release est tirée de la valeur correspondante dans +APT::FTPArchive::Release, p. ex. +APT::FTPArchive::Release::Origin. Les champs reconnus sont : +Origin, +Label, +Suite, +Version, +Codename, +Date, +Architectures, +Components, +Description. +.RE +.PP +generate +.RS 3n +La commande +generate +est conçue pour être exécutable par le programme cron et elle crée un index en suivant le fichier de configuration donné. Le langage de configuration fournit un moyen souple de préciser index et répertoires aussi bien que les paramètres requis. +.RE +.PP +clean +.RS 3n +La commande +clean +range les bases de données utilisées par le fichier de configuration en supprimant les enregistrements qui ne sont plus nécessaires. +.RE +.SH "CONFIGURATION DE LA COMMANDE GENERATE" +.PP +La commande +generate +utilise un fichier de configuration pour décrire l'archive qui va être créée. Le format de ce fichier est le format ISC classique utilisé par des outils ISC comme bind 8 et dhcpd. Le fichier +\fBapt.conf\fR(5) +décrit ce format. Il faut noter que l'analyse de ce fichier se fait par section tandis que celle d'\fBapt.conf\fR(5) +se fait par arborescence. Cela n'affecte que l'usage de l'étiquette de visée (scope tag). +.PP +Ce fichier de configuration possède quatre sections, décrites ci\-dessous. +.SS "La section Dir" +.PP +La section +Dir +définit les répertoires standards où situer les fichiers nécessaires au processus de création. Ces répertoires sont précédés de chemins relatifs définis dans les sections suivantes de manière à produire un chemin absolu et complet. +.PP +ArchiveDir +.RS 3n +Indique la racine de l'archive FTP\ ; Pour une configuration Debian classique, c'est le répertoire qui contient le fichier +\fIls\-LR\fR +et les noeuds des distributions. +.RE +.PP +OverrideDir +.RS 3n +Indique l'emplacement des fichiers d'\(Fo\ override\ \(Fc. +.RE +.PP +CacheDir +.RS 3n +Indique l'emplacement des fichiers de cache. +.RE +.PP +FileListDir +.RS 3n +Indique l'emplacement des fichiers contenant la liste des fichiers (si on se sert de la valeur +FileList +définie plus bas). +.RE +.SS "La section Default" +.PP +La section +Default +précise les valeurs par défaut et les paramètres qui contrôlent la marche du générateur. Ces valeurs peuvent être annulées dans d'autres sections (paramètrage par section). +.PP +Packages::Compress +.RS 3n +Indique comment sont compressés les fichiers d'index. C'est une chaîne qui contient des valeurs séparées par des espaces\ ; elle contient au moins l'une des valeurs suivantes\ : \(Fo\ .\ \(Fc (pas de compression), \(Fo\ gzip\ \(Fc, \(Fo\ bzip2\ \(Fc. Par défaut, c'est la chaîne \(Fo\ . gzip\ \(Fc. +.RE +.PP +Packages::Extensions +.RS 3n +Indique la liste par défaut des extensions de fichier qui constituent des paquets. Par défaut, c'est \(Fo\ .deb\ \(Fc. +.RE +.PP +Sources::Compress +.RS 3n +Identique à +Packages::Compress +mais précise comment sont compressés les fichiers sources. +.RE +.PP +Sources::Extensions +.RS 3n +Indique la liste par défaut des extensions de fichier qui constituent des fichiers sources. Par défaut, c'est \(Fo\ .dsc\ \(Fc. +.RE +.PP +Contents::Compress +.RS 3n +Identique à +Packages::Compress +mais précise comment sont compressés les fichiers \(Fo\ Contents\ \(Fc. +.RE +.PP +DeLinkLimit +.RS 3n +Indique le nombre de kilooctets à délier (et à remplacer par des liens en dur) pour chaque exécution. On s'en sert, pour chaque section, avec le paramètre +External\-Links. +.RE +.PP +FileMode +.RS 3n +Indique le système de permissions des fichiers d'index créés. Par défaut, c'est le mode 0644. Tous les fichiers d'index ont ce mode et le masque utilisateur (umasq) est ignoré. +.RE +.SS "La section TreeDefault" +.PP +On indique les valeurs par défaut particulières à la section +Tree. Toutes ces variables sont des variables de substitution\ ; les chaînes $(DIST), $(SECTION) et $(ARCH) sont remplacées par leur valeur respective. +.PP +MaxContentsChange +.RS 3n +Indique le nombre de kilooctets de fichiers \(Fo\ Contents\ \(Fc qui sont créés chaque jour. Les fichiers \(Fo\ Contents\ \(Fc sont tirés au sort selon le système +\fIround\-robin\fR +de manière que, sur plusieurs jours, tous soient reconstruits. +.RE +.PP +ContentsAge +.RS 3n +Contrôle le nombre de jours pendant lequel un fichier \(Fo\ Contents\ \(Fc peut être utilisé sans actualisation. Quand cette limite est franchie, le \(Fo\ mtime\ \(Fc du fichier \(Fo\ Contents\ \(Fc est mis à jour. Cela peut arriver quand un fichier est modifié sans que cela modifie le fichier \(Fo\ Contents\ \(Fc (modification par \(Fo\ override\ \(Fc par exemple). Un délai est permis dans l'espoir que de nouveaux \(Fo\ .deb\ \(Fc seront installés, exigeant un nouveau \(Fo\ Contents\ \(Fc. Par défaut ce nombre vaut 10, l'unité étant le jour. +.RE +.PP +Directory +.RS 3n +Indique la racine de l'arborescence des \(Fo\ .deb\ \(Fc. Par défaut, c'est +\fI$(DIST)/$(SECTION)/binary\-$(ARCH)/\fR. +.RE +.PP +SrcDirectory +.RS 3n +Indique la racine de l'arborescence des paquets source. Par défaut, c'est +\fI$(DIST)/$(SECTION)/source/\fR. +.RE +.PP +Packages +.RS 3n +Indique le fichier \(Fo\ Packages\ \(Fc créé. Par défaut, c'est +\fI$(DIST)/$(SECTION)/binary\-$(ARCH)/Packages\fR. +.RE +.PP +Sources +.RS 3n +Indique le fichier \(Fo\ Packages\ \(Fc crée. Par défaut, c'est +\fI$(DIST)/$(SECTION)/source/Sources\fR. +.RE +.PP +InternalPrefix +.RS 3n +Indique un préfixe de chemin\ ; ce préfixe fait qu'un lien symbolique sera considéré comme un lien interne plutôt que comme un lien externe. Par défaut, c'est +\fI$(DIST)/$(SECTION)/\fR. +.RE +.PP +Contents +.RS 3n +Indique le fichier \(Fo\ Contents\ \(Fc créé. Par défaut, c'est +\fI$(DIST)/Contents\-$(ARCH)\fR. Quand le paramètrage fait que différents fichiers \(Fo\ Packages\ \(Fc se réfèrent à un seul fichier \(Fo\ Contents\ \(Fc, +\fBapt\-ftparchive\fR +les intègre automatiquement. +.RE +.PP +Contents::Header +.RS 3n +Indique l'en\-tête à préfixer au fichier \(Fo\ Contents\ \(Fc créé. +.RE +.PP +BinCacheDB +.RS 3n +Indique la base de données binaire servant de cache pour cette section. Différentes sections peuvent partager cette base de données. +.RE +.PP +FileList +.RS 3n +Indique qu'au lieu de lire l'arborescence, +\fBapt\-ftparchive\fR +doit lire la liste de fichiers dans le fichier donné en argument. Les noms relatifs sont préfixés par le répertoire de l'archive. +.RE +.PP +SourceFileList +.RS 3n +Indique qu'au lieu de lire l'arborescence, +\fBapt\-ftparchive\fR +doit lire la liste de fichiers dans le fichier donné en argument. Les noms relatifs sont préfixés par le répertoire de l'archive. On s'en sert pour traiter les index de sources. +.RE +.SS "La section Tree" +.PP +La section +Tree +définit une arborescence debian classique avec un répertoire de base, différentes sections dans ce répertoire et différentes architectures dans chaque section. Le chemin exact est défini par la variable de substitution +Directory. +.PP +La section +Tree +accepte une étiquette de visée (scope tag) qui détermine la variable +$(DIST) +et la racine de l'arborescence (le chemin est préfixé par +ArchiveDir). C'est par exemple\ : +\fIdists/woody\fR. +.PP +Tous les paramètres définis dans la section +TreeDefault +peuvent s'utiliser dans la section +Tree +ainsi que les trois nouvelles variables suivantes. +.PP +Quand il exécute la section +Tree, +\fBapt\-ftparchive\fR +agit ainsi\ : +.sp .RS 3n .nf for i in Sections do for j in Architectures do Generate for DIST=scope SECTION=i ARCH=j .fi .RE +.PP +Sections +.RS 3n +C'est une liste de sections séparées par des espaces qui appartiennent à une distribution\ ; classiquement, on trouve +main contrib non\-free. +.RE +.PP +Architectures +.RS 3n +C'est une liste de toutes les architectures qui appartiennent à chaque section. L'architecture spéciale \(Fo\ source\ \(Fc indique que l'arborescence est une arborescence de sources. +.RE +.PP +BinOverride +.RS 3n +Indique le fichier binaire d'\(Fo\ override\ \(Fc. Ce fichier contient des informations sur la section, la priorité et le responsable du paquet. +.RE +.PP +SrcOverride +.RS 3n +Indique le fichier source d'\(Fo\ override\ \(Fc. Ce fichier contient des informations sur la section. +.RE +.PP +ExtraOverride +.RS 3n +Indique un autre fichier d'\(Fo\ override\ \(Fc pour les binaires. +.RE +.PP +SrcExtraOverride +.RS 3n +Indique un autre fichier d'\(Fo\ override\ \(Fc pour les sources. +.RE +.SS "La section BinDirectory" +.PP +La section +bindirectory +définit une arborescence binaire sans structure particulière. L'étiquette de visée (scope tag) indique l'emplacement du répertoire binaire et le paramètrage est identique à celui pour la section +Tree +sans substitution de variables ou au paramètrage de +SectionArchitecture. +.PP +Packages +.RS 3n +Indique le fichier \(Fo\ Packages\ \(Fc créé. +.RE +.PP +Sources +.RS 3n +Indique le fichier \(Fo\ Sources\ \(Fc créé. L'un des deux fichiers, +Packages +ou +Sources +est nécessaire. +.RE +.PP +Contents +.RS 3n +Indique le fichier \(Fo\ Contents\ \(Fc créé. +.RE +.PP +Binoverride +.RS 3n +Indique le fichier d'\(Fo\ override\ \(Fc pour les binaires. +.RE +.PP +SrcOverride +.RS 3n +Indique le fichier d'\(Fo\ override\ \(Fc pour les sources. +.RE +.PP +ExtraOverride +.RS 3n +Indique un autre fichier d'\(Fo\ override\ \(Fc pour les binaires. +.RE +.PP +SrcExtraOverride +.RS 3n +Indique un autre fichier d'\(Fo\ override\ \(Fc pour les sources. +.RE +.PP +BinCacheDB +.RS 3n +Indique une base de données cache. +.RE +.PP +PathPrefix +.RS 3n +Ajoute un chemin à tous les chemins créés. +.RE +.PP +FileList, SourceFileList +.RS 3n +Indique le fichier contenant la liste des fichiers. +.RE +.SH "LE FICHIER D'\(Fo\ OVERRIDE\ \(Fc POUR LES BINAIRES." +.PP +Le fichier d'\(Fo\ Override\ \(Fc est pleinement compatible avec +\fBdpkg\-scanpackages\fR(8). Il contient quatre champs séparés par des espaces. Le premier est le nom du paquet\ ; le deuxième est la priorité à donner à ce paquet\ ; le troisième est sa section et le dernier champ est un champ pour changer le nom du responsable de paquet. +.PP +Le champ du responsable est de cette forme\ : +.sp +.RS 3n +.nf +old [// oldn]* => new +.fi +.RE +.sp +ou simplement, +.sp +.RS 3n +.nf +new +.fi +.RE +.sp +La première forme permet de spécifier de vieilles adresses dans une liste (le séparateur est la double barre oblique). Si l'une de ces deux formes est rencontrée, la valeur de new remplace la valeur du champ. La deuxième forme remplace inconditionnellement le champ. +.SH "LE FICHIER D'\(Fo\ OVERRIDE\ \(Fc POUR LES SOURCES" +.PP +Le fichier d'\(Fo\ Override\ \(Fc est pleinement compatible avec +\fBdpkg\-scansources\fR(8). Il contient deux champs. Le premier est le nom du paquet source\ ; le second, sa section. +.SH "LE FICHIER SUPPLÉMENTAIRE D'\(Fo\ OVERRIDE\ \(Fc" +.PP +Le fichier supplémentaire d'\(Fo\ Override\ \(Fc permet d'ajouter ou de remplacer des étiquettes sur la sortie. Il possède trois colonnes\ : la première représente le paquet, la seconde est une étiquette et la troisième en fin de ligne est la nouvelle valeur. +.SH "LES OPTIONS" +.PP +Toutes les options en ligne de commande peuvent être positionnées via le fichier de configuration\ ; les descriptifs indiquent l'option de configuration à positionner. En ce qui concerne les options booléennes, on peut annuler le fichier de configuration en utilisant quelque chose comme +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +ou d'autres variantes. +.PP +\fB\-\-md5\fR +.RS 3n +Créer la somme de contrôle MD5. Cette option est activée par défaut. Quand elle est désactivée, les fichiers d'index n'ont pas les champs MD5Sum là où c'est possible. Élément de configuration\ : +APT::FTPArchive::MD5. +.RE +.PP +\fB\-d\fR, \fB\-\-db\fR +.RS 3n +Utiliser une base de données binaire pour cache. Cela n'a aucun effet sur la commande generate. Élément de configuration\ : +APT::FTPArchive::DB. +.RE +.PP +\fB\-q\fR, \fB\-\-quiet\fR +.RS 3n +Mode silencieux\ ; cette commande produit une sortie destinée à l'enregistrement dans un fichier\-journal en omettant les indicateurs de progression. Un plus grand nombre de \(Fo\ q\ \(Fc (2 au plus) produit un plus grand silence. On peut aussi utiliser +\fB\-q=#\fR +pour positionner le niveau de silence, et annuler le fichier de configuration. Élément de configuration\ : +quiet. +.RE +.PP +\fB\-\-delink\fR +.RS 3n +Faire une déliaison. Si +External\-Links +est activé, cette option permet réellement la déliaison des fichiers. Par défaut, elle est activée mais elle peut être désactivée avec l'option +\fB\-\-no\-delink\fR. Élément de configuration\ : +APT::FTPArchive::DeLinkAct. +.RE +.PP +\fB\-\-contents\fR +.RS 3n +Permettre la création d'un fichier \(Fo\ Contents\ \(Fc. Quand cette option est activée et que les index sont créés sous forme de base de données binaire, la liste des fichiers est aussi extraite et conservée dans la base de données pour un usage futur. Avec la commande generate, cette option permet la création de fichiers \(Fo\ Contents\ \(Fc. Par défaut, elle est activée. Élément de configuration\ : +APT::FTPArchive::Contents. +.RE +.PP +\fB\-s\fR, \fB\-\-source\-override\fR +.RS 3n +Indique le fichier d'\(Fo\ override\ \(Fc à utiliser avec la commande +sources. Élément de configuration\ : +APT::FTPArchive::SourceOverride. +.RE +.PP +\fB\-\-readonly\fR +.RS 3n +N'autoriser que la lecture pour les bases de données de cache. Élément de configuration\ : +APT::FTPArchive::ReadOnlyDB. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +Affiche un mode d'emploi succinct. +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +Affiche la version du programme. +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +Fichier de configuration\ ; indique quel fichier de configuration utiliser. Le programme lit le fichier de configuration par défaut, puis celui\-ci. Voyez +\fBapt.conf\fR(5) +pour la syntaxe. +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +Donne une option de configuration\ ; cela fixe une option de configuration arbitraire. La syntaxe est : +\fB\-o Foo::Bar=bar\fR. +.RE +.SH "VOIR AUSSI" +.PP +\fBapt.conf\fR(5) +.SH "DIAGNOSTICS" +.PP + +\fBapt\-ftparchive\fR +retourne zéro si tout se passe bien, le nombre décimal 100 en cas d'erreur. +.SH "BOGUES" +.PP +Voyez la +[1]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "TRADUCTION" +.PP +Philippe Batailler. +. 2005. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "REFERENCES" +.TP 3 +1.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt-ftparchive.fr.1.xml b/doc/fr/apt-ftparchive.fr.1.xml new file mode 100644 index 0000000..9ae6506 --- /dev/null +++ b/doc/fr/apt-ftparchive.fr.1.xml @@ -0,0 +1,631 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 Février 2004 + + + +apt-ftparchive +1 + + +apt-ftparchive +Un outil pour créer des index + + + + + +apt-ftparchive + + + + + + + + +packagescheminoverridepréfixe-de-chemin +sourcescheminoverridepréfixe-de-chemin +contents chemin +release chemin +generate fichier-de-configurationsection +clean fichier-de-configuration + + + + +Description + +apt-ftparchive est l'outil en ligne de commande qui crée les index +dont APT se sert pour accéder aux sources des distributions. Un index doit +être créé pour un site et basé sur le contenu de ce site. + +apt-ftparchive est un ensemble comprenant le programme +&dpkg-scanpackages; et toutes ses fonctionnalités via la commande +packages ; il comprend aussi un générateur de fichier +« Contents », la commande contents, et une technique +élaborée pour « scripter » le processus de création d'une archive +complète. + + +Apt-ftparchive peut utiliser lui-même des bases de données binaires +pour « cacher » le contenu d'un fichier .deb ; il n'a pas +besoin de programmes extérieurs, sauf &gzip;. Lors d'une exécution, il +vérifie les changements dans les fichiers et crée les fichiers compressés +voulus. + + +À moins que l'option ou ne soit donnée, l'une des +commandes suivantes doit être présente : + + +packages + +La commande packages crée un fichier « Packages » à partir d'une +arborescence. Elle recherche récursivement à travers le répertoire donné +les fichiers .deb et, pour chaque fichier trouvé, envoie une entrée pour ce +paquet sur la sortie standard. Cette commande est approximativement +équivalente à &dpkg-scanpackages;. + + +On peut se servir de l'option pour demander un cache binaire. + + + +sources + +La commande sources crée un index des sources à partir d'une +arborescence. Elle recherche récursivement à travers le répertoire donné +les fichiers .dsc et, pour chaque fichier trouvé, envoie une entrée pour ce +paquet sur la sortie standard. Cette commande est approximativement +équivalente à &dpkg-scansources;. + + +Quand on précise un fichier « override », c'est un fichier source +avec une extension .src qui est recherché. On peut se servir de l'option + pour changer de fichier source d'« override ». + + + +contents + +La commande contents crée un fichier « Contents » à partir d'une +arborescence. Elle recherche récursivement à travers le répertoire donné +les fichiers .deb et, pour chaque fichier trouvé, lit la liste des +fichiers. Elle trie la liste des fichiers correspondant à des paquets et +l'envoie sur la sortie standard. Les répertoires ne font pas partie du +résultat. Quand un fichier appartient à plusieurs paquets, une virgule +sépare les paquets. + +On peut se servir de l'option pour demander un cache binaire. + + + + release + +La commande release crée un fichier Releases à partir +d'un répertoire. Elle cherche récursivement dans ce répertoire les +fichiers Packages, Packages.gz, Packages.bz2, Sources, Sources.gz, +Sources.bz2, Release et md5sum.txt. Elle envoie alors un fichier Release +sur la sortie standard avec un résumé MD5 et un résumé SHA1 pour chaque +fichier. + + +La valeur des autres champs du fichier Release est tirée de la valeur +correspondante dans APT::FTPArchive::Release, +p. ex. APT::FTPArchive::Release::Origin. Les champs reconnus +sont : Origin, Label, Suite, +Version, Codename, Date, +Architectures, Components, +Description. + + + + +generate + +La commande generate est conçue pour être exécutable par le +programme cron et elle crée un index en suivant le fichier de configuration +donné. Le langage de configuration fournit un moyen souple de préciser +index et répertoires aussi bien que les paramètres requis. + + + +clean + +La commande clean range les bases de données utilisées par le +fichier de configuration en supprimant les enregistrements qui ne sont +plus nécessaires. + + + + + + +Configuration de la commande generate + +La commande generate utilise un fichier de configuration pour +décrire l'archive qui va être créée. Le format de ce fichier est le format +ISC classique utilisé par des outils ISC comme bind 8 et dhcpd. Le fichier &apt-conf; +décrit ce format. Il faut noter que l'analyse de ce fichier se fait +par section tandis que celle d'&apt-conf; se fait par arborescence. Cela +n'affecte que l'usage de l'étiquette de visée (scope tag). + + +Ce fichier de configuration possède quatre sections, décrites ci-dessous. + + +La section Dir + +La section Dir définit les répertoires standards où situer les +fichiers nécessaires au processus de création. Ces répertoires sont +précédés de chemins relatifs définis dans les sections suivantes de manière +à produire un chemin absolu et complet. + + +ArchiveDir + +Indique la racine de l'archive FTP ; Pour une configuration Debian +classique, +c'est le répertoire qui contient le fichier ls-LR et les noeuds +des distributions. + + +OverrideDir + +Indique l'emplacement des fichiers d'« override ». + + +CacheDir + +Indique l'emplacement des fichiers de cache. + + +FileListDir + +Indique l'emplacement des fichiers contenant la liste des fichiers (si on se +sert de la valeur FileList définie plus bas). + + + + + +La section Default + +La section Default précise les valeurs par défaut et les paramètres +qui contrôlent la marche du générateur. Ces valeurs peuvent être annulées dans +d'autres sections (paramètrage par section). + + +Packages::Compress + +Indique comment sont compressés les fichiers d'index. C'est une chaîne qui +contient des valeurs séparées par des espaces ; elle contient au moins +l'une des valeurs suivantes : « . » (pas de compression), +« gzip », « bzip2 ». +Par défaut, c'est la chaîne « . gzip ». + + +Packages::Extensions + +Indique la liste par défaut des extensions de fichier qui constituent des +paquets. Par défaut, c'est « .deb ». + + +Sources::Compress + +Identique à Packages::Compress mais précise comment sont compressés +les fichiers sources. + + +Sources::Extensions + +Indique la liste par défaut des extensions de fichier qui constituent des +fichiers sources. Par défaut, c'est « .dsc ». + + +Contents::Compress + +Identique à Packages::Compress mais précise comment sont compressés +les fichiers « Contents ». + + +DeLinkLimit + +Indique le nombre de kilooctets à délier (et à remplacer par des liens en dur) +pour chaque exécution. On s'en sert, pour chaque section, avec le paramètre +External-Links. + + +FileMode + +Indique le système de permissions des fichiers d'index créés. Par défaut, +c'est le mode 0644. Tous les fichiers d'index ont ce mode et le masque +utilisateur (umasq) est ignoré. + + + + + +La section TreeDefault + +On indique les valeurs par défaut particulières à la section +Tree. Toutes ces variables sont des variables de +substitution ; les chaînes $(DIST), +$(SECTION) et $(ARCH) sont remplacées par leur valeur respective. + + +MaxContentsChange + +Indique le nombre de kilooctets de fichiers « Contents » qui sont +créés chaque jour. Les fichiers « Contents » sont tirés au sort +selon le système round-robin de manière que, sur +plusieurs jours, tous soient reconstruits. + + +ContentsAge + +Contrôle le nombre de jours pendant lequel un fichier « Contents » +peut être utilisé sans actualisation. Quand cette limite est franchie, +le « mtime » du fichier « Contents » est mis à jour. Cela +peut arriver quand un fichier est modifié sans que cela modifie le fichier +« Contents » (modification par « override » par exemple). +Un délai est permis dans l'espoir que de nouveaux « .deb » seront +installés, exigeant un nouveau « Contents ». Par +défaut ce nombre vaut 10, l'unité étant le jour. + + +Directory + +Indique la racine de l'arborescence des « .deb ». Par défaut, c'est +$(DIST)/$(SECTION)/binary-$(ARCH)/. + + + + SrcDirectory + + Indique la racine de l'arborescence des paquets source. Par défaut, c'est + $(DIST)/$(SECTION)/source/. + + + +Packages + +Indique le fichier « Packages » créé. Par défaut, c'est +$(DIST)/$(SECTION)/binary-$(ARCH)/Packages. + + + +Sources + +Indique le fichier « Packages » crée. Par défaut, c'est +$(DIST)/$(SECTION)/source/Sources. + + + +InternalPrefix +Indique un préfixe de chemin ; ce préfixe fait qu'un lien symbolique sera +considéré comme un lien interne plutôt que comme un lien externe. Par défaut, +c'est $(DIST)/$(SECTION)/. + + + +Contents + +Indique le fichier « Contents » créé. Par défaut, c'est +$(DIST)/Contents-$(ARCH). Quand le paramètrage fait que +différents fichiers « Packages » se réfèrent à un seul fichier +« Contents », apt-ftparchive les intègre automatiquement. + + + +Contents::Header + +Indique l'en-tête à préfixer au fichier « Contents » créé. + + + +BinCacheDB + +Indique la base de données binaire servant de cache pour cette section. +Différentes sections peuvent partager cette base de données. + + +FileList + +Indique qu'au lieu de lire l'arborescence, apt-ftparchive doit lire +la liste de fichiers dans le fichier donné en argument. Les noms relatifs +sont préfixés par le répertoire de l'archive. + + +SourceFileList + +Indique qu'au lieu de lire l'arborescence, apt-ftparchive doit lire +la liste de fichiers dans le fichier donné en argument. Les noms relatifs +sont préfixés par le répertoire de l'archive. On s'en sert pour traiter les +index de sources. + + + + + + +La section Tree + +La section Tree définit une arborescence debian classique avec +un répertoire de base, différentes sections dans ce répertoire et +différentes architectures dans chaque section. Le chemin exact est défini +par la variable de substitution Directory. + + +La section Tree accepte une étiquette de visée (scope tag) qui +détermine la variable $(DIST) et la racine de l'arborescence +(le chemin est préfixé par ArchiveDir). C'est par exemple : +dists/woody. + +Tous les paramètres définis dans la section TreeDefault peuvent +s'utiliser dans la section Tree ainsi que les trois nouvelles +variables suivantes. + + +Quand il exécute la section Tree, apt-ftparchive +agit ainsi : + +for i in Sections do + for j in Architectures do + Generate for DIST=scope SECTION=i ARCH=j + + + + +Sections + +C'est une liste de sections séparées par des espaces qui appartiennent à une +distribution ; classiquement, on trouve main contrib non-free. + + + +Architectures + +C'est une liste de toutes les architectures qui appartiennent à chaque +section. L'architecture spéciale « source » indique que +l'arborescence est une arborescence de sources. + + + +BinOverride + +Indique le fichier binaire d'« override ». Ce fichier contient +des informations sur la section, la priorité et le responsable du paquet. + + + +SrcOverride + +Indique le fichier source d'« override ». Ce fichier +contient des informations sur la section. + + + +ExtraOverride + +Indique un autre fichier d'« override » pour les binaires. + + + +SrcExtraOverride + +Indique un autre fichier d'« override » pour les sources. + + + + + +La section BinDirectory + +La section bindirectory définit une arborescence binaire sans +structure particulière. L'étiquette de visée (scope tag) indique l'emplacement +du répertoire binaire et le paramètrage est identique à celui pour la +section Tree sans substitution de variables ou au paramètrage de +SectionArchitecture. + + +Packages + +Indique le fichier « Packages » créé. + + + +Sources + +Indique le fichier « Sources » créé. L'un des deux fichiers, +Packages ou Sources est nécessaire. + + + +Contents + +Indique le fichier « Contents » créé. + + +Binoverride + +Indique le fichier d'« override » pour les binaires. + + + +SrcOverride + +Indique le fichier d'« override » pour les sources. + + + +ExtraOverride + +Indique un autre fichier d'« override » pour les binaires. + + + +SrcExtraOverride + +Indique un autre fichier d'« override » pour les sources. + + + +BinCacheDB + +Indique une base de données cache. + + + +PathPrefix + +Ajoute un chemin à tous les chemins créés. + + +FileList, SourceFileList + +Indique le fichier contenant la liste des fichiers. + + + + + + +Le fichier d'« Override » pour les binaires. + +Le fichier d'« Override » est pleinement compatible avec +&dpkg-scanpackages;. Il contient quatre champs séparés par des espaces. Le +premier est le nom du paquet ; le deuxième est la priorité à donner à ce +paquet ; le troisième est sa section et le dernier champ est un champ +pour changer le nom du responsable de paquet. + +Le champ du responsable est de cette forme : + old [// oldn]* => new + ou simplement, + new +La première forme permet de spécifier de vieilles adresses dans une liste (le +séparateur est la double barre oblique). Si l'une de ces deux formes est +rencontrée, la valeur de new remplace la valeur du champ. La deuxième forme +remplace inconditionnellement le champ. + + + +Le fichier d'« Override » pour les sources + +Le fichier d'« Override » est pleinement compatible avec +&dpkg-scansources;. Il contient deux champs. Le premier est le nom du paquet +source ; le second, sa section. + + + +Le fichier supplémentaire d'« Override » + +Le fichier supplémentaire d'« Override » permet d'ajouter ou de +remplacer des étiquettes sur la sortie. Il possède trois colonnes : +la première représente le paquet, la seconde est une étiquette et la +troisième en fin de ligne est la nouvelle valeur. + + + +Les options +&apt-cmdblurb; + + + + +Créer la somme de contrôle MD5. Cette option est activée par défaut. Quand +elle est désactivée, les fichiers d'index n'ont pas les champs MD5Sum là où +c'est possible. +Élément de configuration : APT::FTPArchive::MD5. + + + + + +Utiliser une base de données binaire pour cache. Cela n'a aucun effet sur la +commande generate. +Élément de configuration : APT::FTPArchive::DB. + + + + + +Mode silencieux ; cette commande produit une sortie destinée à +l'enregistrement dans un fichier-journal en omettant les indicateurs de +progression. Un plus grand nombre de « q » (2 au plus) produit un +plus grand silence. +On peut aussi utiliser pour positionner le niveau de silence, +et annuler le fichier de configuration. +Élément de configuration : quiet. + + + + + +Faire une déliaison. Si External-Links est activé, cette option +permet réellement la déliaison des fichiers. Par défaut, elle est activée mais +elle peut être désactivée avec l'option . +Élément de configuration : APT::FTPArchive::DeLinkAct. + + + + + +Permettre la création d'un fichier « Contents ». Quand cette option +est activée et que les index sont créés sous forme de base de données binaire, +la liste des fichiers est aussi extraite et conservée dans la base de données +pour un usage futur. Avec la commande generate, cette option permet la +création de fichiers « Contents ». Par défaut, elle est activée. +Élément de configuration : APT::FTPArchive::Contents. + + + + + +Indique le fichier d'« override » à utiliser avec la commande +sources. +Élément de configuration : APT::FTPArchive::SourceOverride. + + + +N'autoriser que la lecture pour les bases de données de cache. +Élément de configuration : APT::FTPArchive::ReadOnlyDB. + + + +&apt-commonoptions; + + + +Voir aussi +&apt-conf; + + + +Diagnostics + +apt-ftparchive retourne zéro si tout se passe bien, le nombre +décimal 100 en cas d'erreur. + + + +&manbugs; +&traducteur; + + diff --git a/doc/fr/apt-get.8 b/doc/fr/apt-get.8 new file mode 100644 index 0000000..b92669d --- /dev/null +++ b/doc/fr/apt-get.8 @@ -0,0 +1,491 @@ +.\" Title: apt\-get +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 Février 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-GET" "8" "29 Février 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt\-get \- Utilitaire d'APT pour la manipulation de paquets \-\- interface en ligne de commande. +.SH "SYNOPSIS" +.HP 8 +\fBapt\-get\fR [\fB\-hvs\fR] [\fB\-o=\fR\fB\fIoption\ de\ configuration\fR\fR] [\fB\-c=\fR\fB\fIfichier\fR\fR] {[update] | [upgrade] | [dselect\-upgrade] | [install\ \fIpaquet\fR...] | [remove\ \fIpaquet\fR...] | [source\ \fIpaquet\fR...] | [build\-dep\ \fIpaquet\fR...] | [check] | [clean] | [autoclean]} +.SH "DESCRIPTION" +.PP + +\fBApt\-get\fR +est l'outil en ligne de commande pour manipuler les paquets. Il peut être considéré par l'utilisateur comme un générateur de sortie pour les autres outils de la bibliothèque APT. Plusieurs interfaces utilisateur existent, comme dselect, aptitude, synaptic, gnome\-apt ou wajig. +.PP +À moins que l'option +\fB\-h\fR, ou +\fB\-\-help\fR +ne soit donnée, l'une des commandes suivantes doit être présente. +.PP +update +.RS 3n +La commande +update +permet de resynchroniser un fichier répertoriant les paquets disponibles et sa source. Ces fichiers sont récupérés aux endroits spécifiés dans +\fI/etc/apt/sources.list\fR. Ainsi, lorsqu'on utilise une archive Debian, cette commande récupère les fichiers +\fIPackages.gz\fR +et les analyse de manière à rendre disponibles les informations concernant les nouveaux paquets et les paquets mis à jour. On doit toujours exécuter une commande +update +avant les commandes +upgrade +ou +dist\-upgrade. Il faut savoir que l'indicateur de progression d'ensemble n'est pas correct puisque la taille de ces fichiers ne peut être connue à l'avance. +.RE +.PP +upgrade +.RS 3n +La commande +upgrade +permet d'installer les versions les plus récentes de tous les paquets présents sur le système en utilisant les sources énumérées dans +\fI/etc/apt/sources.list\fR. Les paquets installés dont il existe de nouvelles versions sont récupérés et mis à niveau. En aucun cas des paquets déjà installés ne sont supprimés\ ; de même, des paquets qui ne sont pas déjà installés ne sont ni récupérés ni installés. Les paquets dont de nouvelles versions ne peuvent pas être installées sans changer le statut d'installation d'un autre paquet sont laissés dans leur version courante. On doit d'abord exécuter la commande +update +pour que +\fBapt\-get\fR +connaisse l'existence de nouvelles versions des paquets. +.RE +.PP +dselect\-upgrade +.RS 3n + +dselect\-upgrade +est utilisée conjointement avec +\fBdselect\fR(8), l'interface traditionnelle Debian pour la gestion des paquets. La commande +dselect\-upgrade +suit les modifications faites par +\fBdselect\fR(8) +dans le champ +Status +des paquets disponibles, et effectue les actions nécessaires à la réalisation de cet état (par exemple, suppression d'anciens paquets, installation de nouveaux paquets). +.RE +.PP +dist\-upgrade +.RS 3n +La commande +dist\-upgrade +effectue la fonction +upgrade +en y ajoutant une gestion intelligente des changements de dépendances dans les nouvelles versions des paquets\ ; +\fBapt\-get\fR +possède un système \(Fo\ intelligent\ \(Fc de résolution des conflits et il essaye, quand c'est nécessaire, de mettre à niveau les paquets les plus importants aux dépens des paquets les moins importants. Le fichier +\fI/etc/apt/sources.list\fR +contient une liste de sources où récupérer les paquets désirés. Voyez aussi +\fBapt_preferences\fR(5) +pour un mécanisme de remplacement des paramètres généraux pour certains paquets. +.RE +.PP +install +.RS 3n +La commande +install +est suivie par un ou plusieurs paquets à installer. Chaque paquet est un nom de paquet\ ; ce n'est pas un nom de fichier entièrement défini (par exemple, dans un système Debian GNU/Linux, on indiquera libc6 et non pas +libc6_1.9.6\-2.deb). Tous les paquets requis par le(s) paquet(s) que l'on veut installer sont aussi récupérés et installés. On se sert du fichier +\fI/etc/apt/sources.list\fR +pour localiser les paquets désirés. Quand un trait d'union est accolé (sans espace intermédiaire) au nom d'un paquet déjà installé, ce paquet est supprimé. De même on peut ajouter un signe \(Fo\ +\ \(Fc pour désigner un paquet à installer. Cette dernière fonctionnalité peut être utilisée pour annuler les décisions prises par le système de résolution des conflits d'apt\-get. +.sp +On peut choisir d'installer une version particulière d'un paquet en faisant suivre son nom par un signe égal et par la version. Cette version sera localisée et l'installation sera demandée. On peut aussi choisir une distribution particulière en faisant suivre le nom du paquet par une barre oblique et par le nom de la distribution ou de l'archive (stable, testing, unstable). +.sp +Avec ces possibilités de choisir la version, de vieilles versions d'un paquet peuvent être installées. Il faut faire attention. +.sp +Enfin, le mécanisme d'\fBapt_preferences\fR(5) +permet de créer d'autres règles pour l'installation des paquets. +.sp +Quand aucun paquet ne correspond à l'expression donnée en argument et que cette expression contient l'un des caractères \(Fo\ .\ \(Fc, \(Fo\ ?\ \(Fc ou \(Fo\ *\ \(Fc, on considère que c'est une expression rationnelle POSIX et elle est appliquée à tous les paquets de la base de données. Tout paquet correspondant est installé (ou supprimé). Notez que la comparaison est effectuée par sous\-chaîne et \(Fo\ lo\ \(Fc correspond aussi bien à \(Fo\ how\-lo\ \(Fc qu'à \(Fo\ lowest\ \(Fc. Si vous ne le voulez pas, ancrez l'expression par un caractère \(Fo\ ^\ \(Fc ou un caractère \(Fo\ $\ \(Fc, ou bien créez une expression plus précise. +.RE +.PP +remove +.RS 3n +La commande +remove +est identique à la commande +install\ ; Mais les paquets sont supprimés et non pas installés. Quand un signe plus est accolé (sans espace intermédiaire) au nom du paquet, le paquet est installé au lieu d'être supprimé. +.RE +.PP +source +.RS 3n +Avec la commande +source, +\fBapt\-get\fR +récupère des paquets sources. APT examine les paquets disponibles pour choisir le paquet source à récupérer. Il trouve ensuite et télécharge dans le répertoire courant la version la plus récente. Les paquets source sont gérés indépendamment des paquets binaires, via les lignes de type +deb\-src +dans le fichier +\fBsources.list\fR(5). On n'obtiendra probablement pas les mêmes sources que celles du paquet installé ou celles du paquet qu'on pourrait installer. Si l'option +\fB\-\-compile\fR +est spécifiée, le paquet est compilé en un binaire .deb avec +\fBdpkg\-buildpackage\fR. Si +\fB\-\-download\-only\fR +est spécifié, le source n'est pas décompacté. +.sp +De la même façon qu'avec les paquets binaires, on peut récupérer une version particulière d'un paquet source en faisant suivre son nom par un signe égal et par la version. Cela permet une comparaison exacte entre le nom du paquet source et la version\ ; cela lance implicitement la commande +APT::Get::Only\-Source. +.sp +Notez que les paquets sources ne sont pas suivis comme le sont les paquets binaires. Ils ne sont présents que dans le répertoire courant et sont semblables à des sources téléchargés sous forme de tarball. +.RE +.PP +build\-dep +.RS 3n +Avec la commande +build\-dep, apt\-get installe ou supprime des paquets dans le but de satisfaire les dépendances de construction d'un paquet source. Pour l'instant, dans la cas d'un paquet virtuel, un paquet est choisi au hasard. +.RE +.PP +check +.RS 3n +La commande +check +est un outil de diagnostic\ ; il met à jour le cache des paquets et cherche des dépendances défectueuses. +.RE +.PP +clean +.RS 3n +La commande +clean +nettoie le référentiel local des paquets récupérés. Il supprime tout, excepté le fichier lock situé dans +\fI/var/cache/apt/archives/\fR +et +\fI/var/cache/apt/archives/partial/\fR. Quand APT est utilisé comme mode de +\fBdselect\fR(8), +clean +est effectué automatiquement. Quand on n'utilise pas dselect, il faut exécuter +apt\-get clean +de temps en temps si l'on veut libérer de l'espace disque. +.RE +.PP +autoclean +.RS 3n +Tout comme +clean, +autoclean +nettoie le référentiel local des paquets récupérés. La différence est qu'il supprime uniquement les paquets qui ne peuvent plus être téléchargés et qui sont grandement inutiles. On peut ainsi contrôler la taille de ce cache sur une longue période. Tant qu'elle n'est pas activée, l'option de configuration +APT::Clean\-Installed +empêche la suppression de paquets installés. +.RE +.SH "OPTIONS" +.PP +Toutes les options en ligne de commande peuvent être positionnées via le fichier de configuration\ ; les descriptifs indiquent l'option de configuration à positionner. En ce qui concerne les options booléennes, on peut annuler le fichier de configuration en utilisant quelque chose comme +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +ou d'autres variantes. +.PP +\fB\-d\fR, \fB\-\-download\-only\fR +.RS 3n +Récupération seule\ ; les paquets sont récupérés mais ne sont ni dépaquetés ni installés. Élément de configuration\ : +APT::Get::Download\-Only. +.RE +.PP +\fB\-f\fR, \fB\-\-fix\-broken\fR +.RS 3n +Correction\ ; essaye de réparer un système dont les dépendances sont défectueuses. Cette option, utilisée avec install ou remove, peut omettre tout paquet de façon à permettre à APT de déduire une solution viable. Chaque paquet spécifié doit complètement corriger le problème. Cette option est quelquefois nécessaire lorsque l'on exécute APT pour la première fois\ ; APT lui\-même interdit les dépendances défectueuses dans un système. Il est possible que la structure de dépendances d'un système soit tellement corrompue qu'elle requiert une intervention manuelle (ce qui veut dire la plupart du temps utiliser +\fBdselect\fR(8) +ou +\fBdpkg \-\-remove\fR +pour éliminer les paquets en cause). L'utilisation de cette option conjointement avec +\fB\-m\fR +peut produire une erreur dans certaines situations. Élément de configuration\ : +APT::Get::Fix\-Broken. +.RE +.PP +\fB\-m\fR, \fB\-\-ignore\-missing\fR, \fB\-\-fix\-missing\fR +.RS 3n +Ignorer les paquets manquants\ ; si des paquets ne peuvent être récupérés, ou, après récupération, ne satisfont pas au contrôle d'intégrité, cette commande met ces paquets de côté et gère le résultat. Utiliser cette option conjointement avec +\fB\-f\fR +peut produire une erreur dans certaines situations. Quand un paquet, sélectionné pour une installation (particulièrement si c'est mentionné en ligne de commande), ne peut être récupéré, il est mis silencieusement de côté. Élément de configuration\ : +APT::Get::Fix\-Missing. +.RE +.PP +\fB\-\-no\-download\fR +.RS 3n +Pas de récupération. Le mieux est d'utiliser cette option avec +\fB\-\-ignore\-missing\fR +pour forcer APT à n'utiliser que les .deb qu'il a déjà récupérés. Élément de configuration\ : +APT::Get::Download. +.RE +.PP +\fB\-q\fR, \fB\-\-quiet\fR +.RS 3n +Mode silencieux\ ; cette commande produit une sortie destinée à l'enregistrement dans un fichier\-journal en omettant les indicateurs de progression. Un plus grand nombre de \(Fo\ q\ \(Fc (2 au plus) produit un plus grand silence. On peut aussi utiliser +\fB\-q=#\fR +pour positionner le niveau de silence, et annuler le fichier de configuration. Notez qu'un niveau de silence égal à 2 implique +\fB\-y\fR +et vous ne devez jamais utiliser +\fB\-qq\fR +sans l'accompagner d'un modificateur tel que +\fB\-d\fR, +\fB\-\-print\-uris\fR +ou +\fB\-s\fR\ : APT pourrait exécuter des actions inattendues\ ! Élément de configuration\ : +quiet. +.RE +.PP +\fB\-s\fR, \fB\-\-simulate\fR, \fB\-\-just\-print\fR, \fB\-\-dry\-run\fR, \fB\-\-recon\fR, \fB\-\-no\-act\fR +.RS 3n +Simulation\ ; cette commande réalise une simulation des actions qui seraient exécutées mais ne modifie pas le système. Élément de configuration\ : +APT::Get::Simulate. +.sp +La simulation affiche une série de lignes représentant chacune une opération de dpkg, Configure (Conf),Remove (Remv),Unpack (Inst). Les crochets encadrent des paquets endommagés et des crochets n'encadrant rien indiquent que les dommages n'ont aucune conséquence (rare). +.RE +.PP +\fB\-y\fR, \fB\-\-yes\fR, \fB\-\-assume\-yes\fR +.RS 3n +Répond automatiquement oui aux questions\ ; présume \(Fo\ oui\ \(Fc comme réponse à toutes les questions et s'exécute de manière non interactive. Dans le cas d'une situation indésirable, comme le changement d'un paquet gelé, l'installation d'un paquet non authentifié ou la suppression d'un paquet essentiel, +apt\-get +s'interrompt. Élément de configuration\ : +APT::Get::Assume\-Yes. +.RE +.PP +\fB\-u\fR, \fB\-\-show\-upgraded\fR +.RS 3n +Afficher les paquets mis à niveau\ ; affiche une liste de tous les paquets à mettre à niveau. Élément de configuration\ : +APT::Get::Show\-Upgraded. +.RE +.PP +\fB\-V\fR, \fB\-\-verbose\-versions\fR +.RS 3n +Afficher les versions complètes des paquets installés ou mis à niveau. Élément de configuration\ : +APT::Get::Show\-Versions. +.RE +.PP +\fB\-b\fR, \fB\-\-compile\fR, \fB\-\-build\fR +.RS 3n +Cette commande compile un paquet source après l'avoir récupéré. Élément de configuration\ : +APT::Get::Compile. +.RE +.PP +\fB\-\-ignore\-hold\fR +.RS 3n +Cette commande ignore la marque \(Fo\ Hold\ \(Fc d'un paquet\ ; par ce biais, +\fBapt\-get\fR +ignore un \(Fo\ hold\ \(Fc placé sur un paquet. cela peut être utile avec +dist\-upgrade +pour annuler un grand nombre de \(Fo\ hold\ \(Fc indésirables. Élément de configuration\ : +APT::Ignore\-Hold. +.RE +.PP +\fB\-\-no\-upgrade\fR +.RS 3n +Aucune mise à niveau\ ; quand elle est utilisée avec +install, cette commande empêche les paquets listés sur la ligne de commande d'être mis à niveau. Élément de configuration\ : +APT::Get::Upgrade. +.RE +.PP +\fB\-\-force\-yes\fR +.RS 3n +Forcer l'acceptation\ ; cette option est dangereuse parce qu'elle laisse APT continuer sans poser de questions quand il réalise quelque chose de potentiellement dommageable. Cette option ne doit être utilisée que dans des circonstances très spéciales. Utiliser +force\-yes +peut détruire le système\ ! Élément de configuration\ : +APT::Get::force\-yes. +.RE +.PP +\fB\-\-print\-uris\fR +.RS 3n +Au lieu d'aller chercher les paquets à installer, leurs URI sont affichées. Chaque URI a un chemin, un nom de fichier destination, une taille et une clé md5 attendue. Notez que le nom de fichier à afficher ne correspond pas toujours au nom de fichier sur le site distant\ ! Cette option fonctionne aussi avec la commande +source +et avec la commande +update. Avec la commande +update, la somme MD5 et la taille ne sont pas données et c'est à l'utilisateur de décompresser les fichiers compressés. Élément de configuration\ : +APT::Get::Print\-URIs. +.RE +.PP +\fB\-\-purge\fR +.RS 3n +Utiliser purge à la place de remove pour supprimer tout ce qui peut être supprimé. Un astérisque (*) sera affiché près des paquets qui vont être purgés. Élément de configuration\ : +APT::Get::Purge. +.RE +.PP +\fB\-\-reinstall\fR +.RS 3n +Réinstaller les paquets déjà installés avec leur version la plus récente. Élément de configuration\ : +APT::Get::ReInstall. +.RE +.PP +\fB\-\-list\-cleanup\fR +.RS 3n +Cette option est activée par défaut\ ; utilisez +\-\-no\-list\-cleanup +pour la désactiver. Quand elle est activée, +\fBapt\-get\fR +gère automatiquement le contenu de +\fI/var/lib/apt/lists\fR +afin d'assurer que les fichiers obsolètes soient effacés. La seule raison de la désactiver est une modification fréquente de votre liste de sources. Élément de configuration\ : +APT::Get::List\-Cleanup. +.RE +.PP +\fB\-t\fR, \fB\-\-target\-release\fR, \fB\-\-default\-release\fR +.RS 3n +Cette option contrôle l'entrée par défaut pour les questions de distribution\ ; une étiquette (pin) par défaut dont la priorité vaut 990 est créé en utilisant la chaîne spécifiée. Le fichier des préférences peut annuler cette décision. En clair, cette option permet de contrôler simplement dans quelle distribution seront récupérés les paquets. Par exemple\ : +\fB\-t '2.1*'\fR +ou +\fB\-t unstable\fR. Élément de configuration\ : +APT::Default\-Release. Voyez aussi la page de manuel d'\fBapt_preferences\fR(5). +.RE +.PP +\fB\-\-trivial\-only\fR +.RS 3n +Ne réalise que les opérations \(Fo\ triviales\ \(Fc. Logiquement ceci peut être considéré comme relatif à +\fB\-\-assume\-yes\fR. Alors que +\fB\-\-assume\-yes\fR +répond oui à n'importe quelle question, +\fB\-\-trivial\-only\fR +répond non. Élément de configuration\ : +APT::Get::Trivial\-Only. +.RE +.PP +\fB\-\-no\-remove\fR +.RS 3n +Quand des paquets doivent être supprimés, apt\-get s'arrête immédiatement sans poser de questions. Élément de configuration\ : +APT::Get::Remove. +.RE +.PP +\fB\-\-only\-source\fR +.RS 3n +Cette option n'a de sens qu'avec les commandes +source +et +build\-dep. Elle indique que les noms de sources donnés ne doivent pas être repérés à travers le tableau des binaires. Cela signifie que si cette option est choisie, la commande +source +acceptera seulement des noms de paquets source comme argument\ ; elle n'acceptera pas de les rechercher à partir des noms de paquets binaires correspondants. Élément de configuration\ : +APT::Get::Only\-Source +.RE +.PP +\fB\-\-diff\-only\fR, \fB\-\-tar\-only\fR +.RS 3n +Ne récupérer que le fichier diff ou tar d'une archive de source. Élément de configuration\ : +APT::Get::Diff\-Only +et +APT::Get::Tar\-Only. +.RE +.PP +\fB\-\-arch\-only\fR +.RS 3n +Ne traiter que les dépendances de construction pour telle architecture. Élément de configuration\ : +APT::Get::Arch\-Only +.RE +.PP +\fB\-\-allow\-unauthenticated\fR +.RS 3n +Ignorer le fait que les paquets ne peuvent pas être authentifiés ; pas d'interrogation de l'utilisateur. C'est très utile pour certains outils comme pbuilder Élément de configuration\ : +APT::Get::AllowUnauthenticated. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +Affiche un mode d'emploi succinct. +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +Affiche la version du programme. +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +Fichier de configuration\ ; indique quel fichier de configuration utiliser. Le programme lit le fichier de configuration par défaut, puis celui\-ci. Voyez +\fBapt.conf\fR(5) +pour la syntaxe. +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +Donne une option de configuration\ ; cela fixe une option de configuration arbitraire. La syntaxe est : +\fB\-o Foo::Bar=bar\fR. +.RE +.SH "FICHIERS" +.PP +\fI/etc/apt/sources.list\fR +.RS 3n +Liste les emplacements où aller chercher les paquets. Élément de configuration\ : +Dir::Etc::SourceList. +.RE +.PP +\fI/etc/apt/apt.conf\fR +.RS 3n +Fichier de configuration d'APT. Élément de configuration\ : +Dir::Etc::Main. +.RE +.PP +\fI/etc/apt/apt.conf.d/\fR +.RS 3n +Éléments du fichier de configuration d'APT. Élément de configuration\ : +Dir::Etc::Parts. +.RE +.PP +\fI/etc/apt/preferences\fR +.RS 3n +Fichier des préférences. C'est dans ce fichier qu'on peut faire de l'étiquetage (pinning) c'est\-à\-dire, choisir d'obtenir des paquets d'une source distincte ou d'une distribution différente. Élément de configuration\ : +Dir::Etc::Preferences. +.RE +.PP +\fI/var/cache/apt/archives/\fR +.RS 3n +Zone de stockage pour les paquets récupérés. Élément de configuration\ : +Dir::Cache::Archives. +.RE +.PP +\fI/var/cache/apt/archives/partial/\fR +.RS 3n +Zone de stockage pour les paquets en transit. Élément de configuration\ : +Dir::Cache::Archives +(implicitement, partial). +.RE +.PP +\fI/var/lib/apt/lists/\fR +.RS 3n +Zone de stockage des informations concernant chaque ressource spécifiée dans +\fBsources.list\fR(5). Élément de configuration\ : +Dir::State::Lists. +.RE +.PP +\fI/var/lib/apt/lists/partial/\fR +.RS 3n +Zone de stockage pour les informations d'état des paquets en transit. Élément de configuration\ : +Dir::State::Lists +(implicit partial). +.RE +.SH "VOIR AUSSI" +.PP + +\fBapt\-cache\fR(8), +\fBapt\-cdrom\fR(8), +\fBdpkg\fR(8), +\fBdselect\fR(8), +\fBsources.list\fR(5), +\fBapt.conf\fR(5), +\fBapt\-config\fR(8), le guide \(Fo\ APT users guide\ \(Fc dans /usr/share/doc/apt/, +\fBapt_preferences\fR(5), le guide APT. +.SH "DIAGNOSTIC" +.PP +\fBapt\-get\fR +renvoie zéro après une opération normale, le décimal 100 en cas d'erreur. +.SH "BOGUES" +.PP +Voyez la +[1]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "TRADUCTION" +.PP +Jérôme Marant. 2000\ ; mise à jour : Philippe Batailler. 2005. +. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "REFERENCES" +.TP 3 +1.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt-get.fr.8 b/doc/fr/apt-get.fr.8 new file mode 100644 index 0000000..b92669d --- /dev/null +++ b/doc/fr/apt-get.fr.8 @@ -0,0 +1,491 @@ +.\" Title: apt\-get +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 Février 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-GET" "8" "29 Février 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt\-get \- Utilitaire d'APT pour la manipulation de paquets \-\- interface en ligne de commande. +.SH "SYNOPSIS" +.HP 8 +\fBapt\-get\fR [\fB\-hvs\fR] [\fB\-o=\fR\fB\fIoption\ de\ configuration\fR\fR] [\fB\-c=\fR\fB\fIfichier\fR\fR] {[update] | [upgrade] | [dselect\-upgrade] | [install\ \fIpaquet\fR...] | [remove\ \fIpaquet\fR...] | [source\ \fIpaquet\fR...] | [build\-dep\ \fIpaquet\fR...] | [check] | [clean] | [autoclean]} +.SH "DESCRIPTION" +.PP + +\fBApt\-get\fR +est l'outil en ligne de commande pour manipuler les paquets. Il peut être considéré par l'utilisateur comme un générateur de sortie pour les autres outils de la bibliothèque APT. Plusieurs interfaces utilisateur existent, comme dselect, aptitude, synaptic, gnome\-apt ou wajig. +.PP +À moins que l'option +\fB\-h\fR, ou +\fB\-\-help\fR +ne soit donnée, l'une des commandes suivantes doit être présente. +.PP +update +.RS 3n +La commande +update +permet de resynchroniser un fichier répertoriant les paquets disponibles et sa source. Ces fichiers sont récupérés aux endroits spécifiés dans +\fI/etc/apt/sources.list\fR. Ainsi, lorsqu'on utilise une archive Debian, cette commande récupère les fichiers +\fIPackages.gz\fR +et les analyse de manière à rendre disponibles les informations concernant les nouveaux paquets et les paquets mis à jour. On doit toujours exécuter une commande +update +avant les commandes +upgrade +ou +dist\-upgrade. Il faut savoir que l'indicateur de progression d'ensemble n'est pas correct puisque la taille de ces fichiers ne peut être connue à l'avance. +.RE +.PP +upgrade +.RS 3n +La commande +upgrade +permet d'installer les versions les plus récentes de tous les paquets présents sur le système en utilisant les sources énumérées dans +\fI/etc/apt/sources.list\fR. Les paquets installés dont il existe de nouvelles versions sont récupérés et mis à niveau. En aucun cas des paquets déjà installés ne sont supprimés\ ; de même, des paquets qui ne sont pas déjà installés ne sont ni récupérés ni installés. Les paquets dont de nouvelles versions ne peuvent pas être installées sans changer le statut d'installation d'un autre paquet sont laissés dans leur version courante. On doit d'abord exécuter la commande +update +pour que +\fBapt\-get\fR +connaisse l'existence de nouvelles versions des paquets. +.RE +.PP +dselect\-upgrade +.RS 3n + +dselect\-upgrade +est utilisée conjointement avec +\fBdselect\fR(8), l'interface traditionnelle Debian pour la gestion des paquets. La commande +dselect\-upgrade +suit les modifications faites par +\fBdselect\fR(8) +dans le champ +Status +des paquets disponibles, et effectue les actions nécessaires à la réalisation de cet état (par exemple, suppression d'anciens paquets, installation de nouveaux paquets). +.RE +.PP +dist\-upgrade +.RS 3n +La commande +dist\-upgrade +effectue la fonction +upgrade +en y ajoutant une gestion intelligente des changements de dépendances dans les nouvelles versions des paquets\ ; +\fBapt\-get\fR +possède un système \(Fo\ intelligent\ \(Fc de résolution des conflits et il essaye, quand c'est nécessaire, de mettre à niveau les paquets les plus importants aux dépens des paquets les moins importants. Le fichier +\fI/etc/apt/sources.list\fR +contient une liste de sources où récupérer les paquets désirés. Voyez aussi +\fBapt_preferences\fR(5) +pour un mécanisme de remplacement des paramètres généraux pour certains paquets. +.RE +.PP +install +.RS 3n +La commande +install +est suivie par un ou plusieurs paquets à installer. Chaque paquet est un nom de paquet\ ; ce n'est pas un nom de fichier entièrement défini (par exemple, dans un système Debian GNU/Linux, on indiquera libc6 et non pas +libc6_1.9.6\-2.deb). Tous les paquets requis par le(s) paquet(s) que l'on veut installer sont aussi récupérés et installés. On se sert du fichier +\fI/etc/apt/sources.list\fR +pour localiser les paquets désirés. Quand un trait d'union est accolé (sans espace intermédiaire) au nom d'un paquet déjà installé, ce paquet est supprimé. De même on peut ajouter un signe \(Fo\ +\ \(Fc pour désigner un paquet à installer. Cette dernière fonctionnalité peut être utilisée pour annuler les décisions prises par le système de résolution des conflits d'apt\-get. +.sp +On peut choisir d'installer une version particulière d'un paquet en faisant suivre son nom par un signe égal et par la version. Cette version sera localisée et l'installation sera demandée. On peut aussi choisir une distribution particulière en faisant suivre le nom du paquet par une barre oblique et par le nom de la distribution ou de l'archive (stable, testing, unstable). +.sp +Avec ces possibilités de choisir la version, de vieilles versions d'un paquet peuvent être installées. Il faut faire attention. +.sp +Enfin, le mécanisme d'\fBapt_preferences\fR(5) +permet de créer d'autres règles pour l'installation des paquets. +.sp +Quand aucun paquet ne correspond à l'expression donnée en argument et que cette expression contient l'un des caractères \(Fo\ .\ \(Fc, \(Fo\ ?\ \(Fc ou \(Fo\ *\ \(Fc, on considère que c'est une expression rationnelle POSIX et elle est appliquée à tous les paquets de la base de données. Tout paquet correspondant est installé (ou supprimé). Notez que la comparaison est effectuée par sous\-chaîne et \(Fo\ lo\ \(Fc correspond aussi bien à \(Fo\ how\-lo\ \(Fc qu'à \(Fo\ lowest\ \(Fc. Si vous ne le voulez pas, ancrez l'expression par un caractère \(Fo\ ^\ \(Fc ou un caractère \(Fo\ $\ \(Fc, ou bien créez une expression plus précise. +.RE +.PP +remove +.RS 3n +La commande +remove +est identique à la commande +install\ ; Mais les paquets sont supprimés et non pas installés. Quand un signe plus est accolé (sans espace intermédiaire) au nom du paquet, le paquet est installé au lieu d'être supprimé. +.RE +.PP +source +.RS 3n +Avec la commande +source, +\fBapt\-get\fR +récupère des paquets sources. APT examine les paquets disponibles pour choisir le paquet source à récupérer. Il trouve ensuite et télécharge dans le répertoire courant la version la plus récente. Les paquets source sont gérés indépendamment des paquets binaires, via les lignes de type +deb\-src +dans le fichier +\fBsources.list\fR(5). On n'obtiendra probablement pas les mêmes sources que celles du paquet installé ou celles du paquet qu'on pourrait installer. Si l'option +\fB\-\-compile\fR +est spécifiée, le paquet est compilé en un binaire .deb avec +\fBdpkg\-buildpackage\fR. Si +\fB\-\-download\-only\fR +est spécifié, le source n'est pas décompacté. +.sp +De la même façon qu'avec les paquets binaires, on peut récupérer une version particulière d'un paquet source en faisant suivre son nom par un signe égal et par la version. Cela permet une comparaison exacte entre le nom du paquet source et la version\ ; cela lance implicitement la commande +APT::Get::Only\-Source. +.sp +Notez que les paquets sources ne sont pas suivis comme le sont les paquets binaires. Ils ne sont présents que dans le répertoire courant et sont semblables à des sources téléchargés sous forme de tarball. +.RE +.PP +build\-dep +.RS 3n +Avec la commande +build\-dep, apt\-get installe ou supprime des paquets dans le but de satisfaire les dépendances de construction d'un paquet source. Pour l'instant, dans la cas d'un paquet virtuel, un paquet est choisi au hasard. +.RE +.PP +check +.RS 3n +La commande +check +est un outil de diagnostic\ ; il met à jour le cache des paquets et cherche des dépendances défectueuses. +.RE +.PP +clean +.RS 3n +La commande +clean +nettoie le référentiel local des paquets récupérés. Il supprime tout, excepté le fichier lock situé dans +\fI/var/cache/apt/archives/\fR +et +\fI/var/cache/apt/archives/partial/\fR. Quand APT est utilisé comme mode de +\fBdselect\fR(8), +clean +est effectué automatiquement. Quand on n'utilise pas dselect, il faut exécuter +apt\-get clean +de temps en temps si l'on veut libérer de l'espace disque. +.RE +.PP +autoclean +.RS 3n +Tout comme +clean, +autoclean +nettoie le référentiel local des paquets récupérés. La différence est qu'il supprime uniquement les paquets qui ne peuvent plus être téléchargés et qui sont grandement inutiles. On peut ainsi contrôler la taille de ce cache sur une longue période. Tant qu'elle n'est pas activée, l'option de configuration +APT::Clean\-Installed +empêche la suppression de paquets installés. +.RE +.SH "OPTIONS" +.PP +Toutes les options en ligne de commande peuvent être positionnées via le fichier de configuration\ ; les descriptifs indiquent l'option de configuration à positionner. En ce qui concerne les options booléennes, on peut annuler le fichier de configuration en utilisant quelque chose comme +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +ou d'autres variantes. +.PP +\fB\-d\fR, \fB\-\-download\-only\fR +.RS 3n +Récupération seule\ ; les paquets sont récupérés mais ne sont ni dépaquetés ni installés. Élément de configuration\ : +APT::Get::Download\-Only. +.RE +.PP +\fB\-f\fR, \fB\-\-fix\-broken\fR +.RS 3n +Correction\ ; essaye de réparer un système dont les dépendances sont défectueuses. Cette option, utilisée avec install ou remove, peut omettre tout paquet de façon à permettre à APT de déduire une solution viable. Chaque paquet spécifié doit complètement corriger le problème. Cette option est quelquefois nécessaire lorsque l'on exécute APT pour la première fois\ ; APT lui\-même interdit les dépendances défectueuses dans un système. Il est possible que la structure de dépendances d'un système soit tellement corrompue qu'elle requiert une intervention manuelle (ce qui veut dire la plupart du temps utiliser +\fBdselect\fR(8) +ou +\fBdpkg \-\-remove\fR +pour éliminer les paquets en cause). L'utilisation de cette option conjointement avec +\fB\-m\fR +peut produire une erreur dans certaines situations. Élément de configuration\ : +APT::Get::Fix\-Broken. +.RE +.PP +\fB\-m\fR, \fB\-\-ignore\-missing\fR, \fB\-\-fix\-missing\fR +.RS 3n +Ignorer les paquets manquants\ ; si des paquets ne peuvent être récupérés, ou, après récupération, ne satisfont pas au contrôle d'intégrité, cette commande met ces paquets de côté et gère le résultat. Utiliser cette option conjointement avec +\fB\-f\fR +peut produire une erreur dans certaines situations. Quand un paquet, sélectionné pour une installation (particulièrement si c'est mentionné en ligne de commande), ne peut être récupéré, il est mis silencieusement de côté. Élément de configuration\ : +APT::Get::Fix\-Missing. +.RE +.PP +\fB\-\-no\-download\fR +.RS 3n +Pas de récupération. Le mieux est d'utiliser cette option avec +\fB\-\-ignore\-missing\fR +pour forcer APT à n'utiliser que les .deb qu'il a déjà récupérés. Élément de configuration\ : +APT::Get::Download. +.RE +.PP +\fB\-q\fR, \fB\-\-quiet\fR +.RS 3n +Mode silencieux\ ; cette commande produit une sortie destinée à l'enregistrement dans un fichier\-journal en omettant les indicateurs de progression. Un plus grand nombre de \(Fo\ q\ \(Fc (2 au plus) produit un plus grand silence. On peut aussi utiliser +\fB\-q=#\fR +pour positionner le niveau de silence, et annuler le fichier de configuration. Notez qu'un niveau de silence égal à 2 implique +\fB\-y\fR +et vous ne devez jamais utiliser +\fB\-qq\fR +sans l'accompagner d'un modificateur tel que +\fB\-d\fR, +\fB\-\-print\-uris\fR +ou +\fB\-s\fR\ : APT pourrait exécuter des actions inattendues\ ! Élément de configuration\ : +quiet. +.RE +.PP +\fB\-s\fR, \fB\-\-simulate\fR, \fB\-\-just\-print\fR, \fB\-\-dry\-run\fR, \fB\-\-recon\fR, \fB\-\-no\-act\fR +.RS 3n +Simulation\ ; cette commande réalise une simulation des actions qui seraient exécutées mais ne modifie pas le système. Élément de configuration\ : +APT::Get::Simulate. +.sp +La simulation affiche une série de lignes représentant chacune une opération de dpkg, Configure (Conf),Remove (Remv),Unpack (Inst). Les crochets encadrent des paquets endommagés et des crochets n'encadrant rien indiquent que les dommages n'ont aucune conséquence (rare). +.RE +.PP +\fB\-y\fR, \fB\-\-yes\fR, \fB\-\-assume\-yes\fR +.RS 3n +Répond automatiquement oui aux questions\ ; présume \(Fo\ oui\ \(Fc comme réponse à toutes les questions et s'exécute de manière non interactive. Dans le cas d'une situation indésirable, comme le changement d'un paquet gelé, l'installation d'un paquet non authentifié ou la suppression d'un paquet essentiel, +apt\-get +s'interrompt. Élément de configuration\ : +APT::Get::Assume\-Yes. +.RE +.PP +\fB\-u\fR, \fB\-\-show\-upgraded\fR +.RS 3n +Afficher les paquets mis à niveau\ ; affiche une liste de tous les paquets à mettre à niveau. Élément de configuration\ : +APT::Get::Show\-Upgraded. +.RE +.PP +\fB\-V\fR, \fB\-\-verbose\-versions\fR +.RS 3n +Afficher les versions complètes des paquets installés ou mis à niveau. Élément de configuration\ : +APT::Get::Show\-Versions. +.RE +.PP +\fB\-b\fR, \fB\-\-compile\fR, \fB\-\-build\fR +.RS 3n +Cette commande compile un paquet source après l'avoir récupéré. Élément de configuration\ : +APT::Get::Compile. +.RE +.PP +\fB\-\-ignore\-hold\fR +.RS 3n +Cette commande ignore la marque \(Fo\ Hold\ \(Fc d'un paquet\ ; par ce biais, +\fBapt\-get\fR +ignore un \(Fo\ hold\ \(Fc placé sur un paquet. cela peut être utile avec +dist\-upgrade +pour annuler un grand nombre de \(Fo\ hold\ \(Fc indésirables. Élément de configuration\ : +APT::Ignore\-Hold. +.RE +.PP +\fB\-\-no\-upgrade\fR +.RS 3n +Aucune mise à niveau\ ; quand elle est utilisée avec +install, cette commande empêche les paquets listés sur la ligne de commande d'être mis à niveau. Élément de configuration\ : +APT::Get::Upgrade. +.RE +.PP +\fB\-\-force\-yes\fR +.RS 3n +Forcer l'acceptation\ ; cette option est dangereuse parce qu'elle laisse APT continuer sans poser de questions quand il réalise quelque chose de potentiellement dommageable. Cette option ne doit être utilisée que dans des circonstances très spéciales. Utiliser +force\-yes +peut détruire le système\ ! Élément de configuration\ : +APT::Get::force\-yes. +.RE +.PP +\fB\-\-print\-uris\fR +.RS 3n +Au lieu d'aller chercher les paquets à installer, leurs URI sont affichées. Chaque URI a un chemin, un nom de fichier destination, une taille et une clé md5 attendue. Notez que le nom de fichier à afficher ne correspond pas toujours au nom de fichier sur le site distant\ ! Cette option fonctionne aussi avec la commande +source +et avec la commande +update. Avec la commande +update, la somme MD5 et la taille ne sont pas données et c'est à l'utilisateur de décompresser les fichiers compressés. Élément de configuration\ : +APT::Get::Print\-URIs. +.RE +.PP +\fB\-\-purge\fR +.RS 3n +Utiliser purge à la place de remove pour supprimer tout ce qui peut être supprimé. Un astérisque (*) sera affiché près des paquets qui vont être purgés. Élément de configuration\ : +APT::Get::Purge. +.RE +.PP +\fB\-\-reinstall\fR +.RS 3n +Réinstaller les paquets déjà installés avec leur version la plus récente. Élément de configuration\ : +APT::Get::ReInstall. +.RE +.PP +\fB\-\-list\-cleanup\fR +.RS 3n +Cette option est activée par défaut\ ; utilisez +\-\-no\-list\-cleanup +pour la désactiver. Quand elle est activée, +\fBapt\-get\fR +gère automatiquement le contenu de +\fI/var/lib/apt/lists\fR +afin d'assurer que les fichiers obsolètes soient effacés. La seule raison de la désactiver est une modification fréquente de votre liste de sources. Élément de configuration\ : +APT::Get::List\-Cleanup. +.RE +.PP +\fB\-t\fR, \fB\-\-target\-release\fR, \fB\-\-default\-release\fR +.RS 3n +Cette option contrôle l'entrée par défaut pour les questions de distribution\ ; une étiquette (pin) par défaut dont la priorité vaut 990 est créé en utilisant la chaîne spécifiée. Le fichier des préférences peut annuler cette décision. En clair, cette option permet de contrôler simplement dans quelle distribution seront récupérés les paquets. Par exemple\ : +\fB\-t '2.1*'\fR +ou +\fB\-t unstable\fR. Élément de configuration\ : +APT::Default\-Release. Voyez aussi la page de manuel d'\fBapt_preferences\fR(5). +.RE +.PP +\fB\-\-trivial\-only\fR +.RS 3n +Ne réalise que les opérations \(Fo\ triviales\ \(Fc. Logiquement ceci peut être considéré comme relatif à +\fB\-\-assume\-yes\fR. Alors que +\fB\-\-assume\-yes\fR +répond oui à n'importe quelle question, +\fB\-\-trivial\-only\fR +répond non. Élément de configuration\ : +APT::Get::Trivial\-Only. +.RE +.PP +\fB\-\-no\-remove\fR +.RS 3n +Quand des paquets doivent être supprimés, apt\-get s'arrête immédiatement sans poser de questions. Élément de configuration\ : +APT::Get::Remove. +.RE +.PP +\fB\-\-only\-source\fR +.RS 3n +Cette option n'a de sens qu'avec les commandes +source +et +build\-dep. Elle indique que les noms de sources donnés ne doivent pas être repérés à travers le tableau des binaires. Cela signifie que si cette option est choisie, la commande +source +acceptera seulement des noms de paquets source comme argument\ ; elle n'acceptera pas de les rechercher à partir des noms de paquets binaires correspondants. Élément de configuration\ : +APT::Get::Only\-Source +.RE +.PP +\fB\-\-diff\-only\fR, \fB\-\-tar\-only\fR +.RS 3n +Ne récupérer que le fichier diff ou tar d'une archive de source. Élément de configuration\ : +APT::Get::Diff\-Only +et +APT::Get::Tar\-Only. +.RE +.PP +\fB\-\-arch\-only\fR +.RS 3n +Ne traiter que les dépendances de construction pour telle architecture. Élément de configuration\ : +APT::Get::Arch\-Only +.RE +.PP +\fB\-\-allow\-unauthenticated\fR +.RS 3n +Ignorer le fait que les paquets ne peuvent pas être authentifiés ; pas d'interrogation de l'utilisateur. C'est très utile pour certains outils comme pbuilder Élément de configuration\ : +APT::Get::AllowUnauthenticated. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +Affiche un mode d'emploi succinct. +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +Affiche la version du programme. +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +Fichier de configuration\ ; indique quel fichier de configuration utiliser. Le programme lit le fichier de configuration par défaut, puis celui\-ci. Voyez +\fBapt.conf\fR(5) +pour la syntaxe. +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +Donne une option de configuration\ ; cela fixe une option de configuration arbitraire. La syntaxe est : +\fB\-o Foo::Bar=bar\fR. +.RE +.SH "FICHIERS" +.PP +\fI/etc/apt/sources.list\fR +.RS 3n +Liste les emplacements où aller chercher les paquets. Élément de configuration\ : +Dir::Etc::SourceList. +.RE +.PP +\fI/etc/apt/apt.conf\fR +.RS 3n +Fichier de configuration d'APT. Élément de configuration\ : +Dir::Etc::Main. +.RE +.PP +\fI/etc/apt/apt.conf.d/\fR +.RS 3n +Éléments du fichier de configuration d'APT. Élément de configuration\ : +Dir::Etc::Parts. +.RE +.PP +\fI/etc/apt/preferences\fR +.RS 3n +Fichier des préférences. C'est dans ce fichier qu'on peut faire de l'étiquetage (pinning) c'est\-à\-dire, choisir d'obtenir des paquets d'une source distincte ou d'une distribution différente. Élément de configuration\ : +Dir::Etc::Preferences. +.RE +.PP +\fI/var/cache/apt/archives/\fR +.RS 3n +Zone de stockage pour les paquets récupérés. Élément de configuration\ : +Dir::Cache::Archives. +.RE +.PP +\fI/var/cache/apt/archives/partial/\fR +.RS 3n +Zone de stockage pour les paquets en transit. Élément de configuration\ : +Dir::Cache::Archives +(implicitement, partial). +.RE +.PP +\fI/var/lib/apt/lists/\fR +.RS 3n +Zone de stockage des informations concernant chaque ressource spécifiée dans +\fBsources.list\fR(5). Élément de configuration\ : +Dir::State::Lists. +.RE +.PP +\fI/var/lib/apt/lists/partial/\fR +.RS 3n +Zone de stockage pour les informations d'état des paquets en transit. Élément de configuration\ : +Dir::State::Lists +(implicit partial). +.RE +.SH "VOIR AUSSI" +.PP + +\fBapt\-cache\fR(8), +\fBapt\-cdrom\fR(8), +\fBdpkg\fR(8), +\fBdselect\fR(8), +\fBsources.list\fR(5), +\fBapt.conf\fR(5), +\fBapt\-config\fR(8), le guide \(Fo\ APT users guide\ \(Fc dans /usr/share/doc/apt/, +\fBapt_preferences\fR(5), le guide APT. +.SH "DIAGNOSTIC" +.PP +\fBapt\-get\fR +renvoie zéro après une opération normale, le décimal 100 en cas d'erreur. +.SH "BOGUES" +.PP +Voyez la +[1]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "TRADUCTION" +.PP +Jérôme Marant. 2000\ ; mise à jour : Philippe Batailler. 2005. +. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "REFERENCES" +.TP 3 +1.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt-get.fr.8.xml b/doc/fr/apt-get.fr.8.xml new file mode 100644 index 0000000..dccf415 --- /dev/null +++ b/doc/fr/apt-get.fr.8.xml @@ -0,0 +1,581 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 Février 2004 + + + +apt-get +8 + + + +apt-get +Utilitaire d'APT pour la manipulation de paquets -- interface en ligne de commande. + + + + +apt-get + + + + +update +upgrade +dselect-upgrade +install paquet +remove paquet +source paquet +build-dep paquet +check +clean +autoclean + + + + +Description + +Apt-get est l'outil en ligne de commande pour manipuler les +paquets. Il peut être considéré par l'utilisateur comme un générateur de +sortie pour les autres outils de la bibliothèque APT. +Plusieurs interfaces utilisateur existent, comme dselect, aptitude, +synaptic, gnome-apt ou wajig. + + +À moins que l'option , ou ne soit donnée, l'une des +commandes suivantes doit être présente. + + update + +La commande update permet de resynchroniser un fichier répertoriant +les paquets disponibles et sa source. Ces fichiers sont récupérés aux +endroits spécifiés dans /etc/apt/sources.list. Ainsi, lorsqu'on +utilise une archive Debian, cette commande récupère les fichiers +Packages.gz et les analyse de manière à rendre disponibles +les informations concernant les nouveaux paquets et les paquets mis à jour. +On doit toujours exécuter une commande update avant les commandes +upgrade ou dist-upgrade. Il faut savoir que l'indicateur +de progression d'ensemble n'est pas correct puisque la taille de ces fichiers +ne peut être connue à l'avance. + + + +upgrade + +La commande upgrade permet d'installer les versions les plus +récentes de tous les paquets présents sur le système en utilisant les +sources énumérées dans /etc/apt/sources.list. Les paquets +installés dont il existe de nouvelles versions sont récupérés et mis à +niveau. En aucun cas des paquets déjà installés ne sont supprimés ; de +même, des paquets qui ne sont pas déjà installés ne sont ni récupérés ni +installés. Les paquets dont de nouvelles versions ne peuvent pas être +installées sans changer le statut d'installation d'un autre paquet sont +laissés dans leur version courante. On doit d'abord exécuter la commande +update pour que apt-get connaisse +l'existence de nouvelles versions des paquets. + + + +dselect-upgrade + +dselect-upgrade est utilisée conjointement avec &dselect;, l'interface +traditionnelle Debian pour la gestion des paquets. +La commande dselect-upgrade suit les modifications faites par +&dselect; dans le champ Status des paquets disponibles, et effectue +les actions nécessaires à la réalisation de cet état (par exemple, +suppression d'anciens paquets, installation de nouveaux paquets). + + + +dist-upgrade + +La commande dist-upgrade effectue la fonction upgrade en +y ajoutant une gestion intelligente des changements de dépendances dans les +nouvelles versions des paquets ; apt-get possède un système +« intelligent » de résolution des conflits et il essaye, quand c'est +nécessaire, de mettre à niveau les paquets les plus importants aux dépens +des paquets les moins importants. Le fichier /etc/apt/sources.list +contient une liste de sources où récupérer les paquets désirés. +Voyez aussi &apt-preferences; pour un mécanisme de remplacement des paramètres +généraux pour certains paquets. + + + +install + +La commande install est suivie par un ou plusieurs paquets à +installer. Chaque paquet est un nom de paquet ; ce n'est pas un nom de +fichier entièrement défini (par exemple, dans un système Debian GNU/Linux, +on indiquera libc6 et non pas libc6_1.9.6-2.deb). Tous les +paquets requis par le(s) paquet(s) que l'on veut installer sont aussi +récupérés et installés. On se sert du fichier +/etc/apt/sources.list pour localiser les paquets désirés. Quand +un trait d'union est accolé (sans espace intermédiaire) au nom d'un paquet +déjà installé, ce paquet est supprimé. De même on peut ajouter un signe +« + » pour désigner un paquet à installer. +Cette dernière fonctionnalité peut être utilisée pour annuler les décisions +prises par le système de résolution des conflits d'apt-get. + + +On peut choisir d'installer une version particulière d'un paquet en faisant +suivre son nom par un signe égal et par la version. Cette version sera +localisée et l'installation sera demandée. On peut aussi choisir une +distribution particulière en faisant suivre le nom du paquet par une barre +oblique et par le nom de la distribution ou de l'archive (stable, testing, +unstable). + + +Avec ces possibilités de choisir la version, de vieilles versions d'un paquet +peuvent être installées. Il faut faire attention. + + +Enfin, le mécanisme d'&apt-preferences; permet de créer d'autres règles pour +l'installation des paquets. + + +Quand aucun paquet ne correspond à l'expression donnée en argument et que cette +expression contient l'un des caractères « . », « ? » ou +« * », on considère que c'est une expression rationnelle POSIX et +elle est appliquée à tous les paquets de la base de données. Tout paquet +correspondant est installé (ou supprimé). Notez que la comparaison est +effectuée par sous-chaîne et « lo » correspond aussi bien à +« how-lo » qu'à « lowest ». Si vous ne le voulez pas, ancrez +l'expression par un caractère « ^ » ou un caractère « $ », +ou bien créez une expression plus précise. + + + +remove + +La commande remove est identique à la commande install ; +Mais les paquets sont supprimés et non pas installés. Quand un signe plus est +accolé (sans espace intermédiaire) au nom du paquet, le paquet est installé au lieu +d'être supprimé. + + + +source + +Avec la commande source, apt-get récupère des paquets +sources. APT examine les paquets disponibles pour choisir le paquet source +à récupérer. Il trouve ensuite et télécharge dans le répertoire courant +la version la plus récente. Les paquets source sont gérés indépendamment +des paquets binaires, via les lignes de type deb-src dans le fichier +&sources-list;. On n'obtiendra probablement pas les mêmes sources que celles +du paquet installé ou celles du paquet qu'on pourrait installer. Si l'option + est spécifiée, le paquet est compilé en un binaire .deb +avec dpkg-buildpackage. Si est +spécifié, le source n'est pas décompacté. + + +De la même façon qu'avec les paquets binaires, on peut récupérer une version +particulière d'un paquet source en faisant suivre son nom par un signe égal +et par la version. Cela permet une comparaison exacte entre le nom du paquet +source et la version ; cela lance implicitement la commande +APT::Get::Only-Source. + + +Notez que les paquets sources ne sont pas suivis comme le sont les paquets +binaires. Ils ne sont présents que dans le répertoire courant et sont +semblables à des sources téléchargés sous forme de tarball. + + + +build-dep + +Avec la commande build-dep, apt-get installe ou supprime des paquets +dans le but de satisfaire les dépendances de construction d'un paquet source. +Pour l'instant, dans la cas d'un paquet virtuel, un paquet est choisi au +hasard. + + +check + +La commande check est un outil de diagnostic ; il met à jour +le cache des paquets et cherche des dépendances défectueuses. + + + +clean + +La commande clean nettoie le référentiel local des paquets +récupérés. Il supprime tout, excepté le fichier lock situé dans +&cachedir;/archives/ et &cachedir;/archives/partial/. +Quand APT est utilisé comme mode de &dselect;, clean est effectué +automatiquement. Quand on n'utilise pas dselect, il faut exécuter +apt-get clean de temps en temps si l'on veut libérer de l'espace +disque. + + + +autoclean + +Tout comme clean, autoclean nettoie le référentiel local +des paquets récupérés. La différence est qu'il supprime uniquement les paquets +qui ne peuvent plus être téléchargés et qui sont grandement inutiles. +On peut ainsi contrôler la taille de ce cache sur une longue période. +Tant qu'elle n'est pas activée, l'option de configuration +APT::Clean-Installed empêche la suppression de paquets installés. + + + + +Options +&apt-cmdblurb; + + + + + +Récupération seule ; les paquets sont récupérés mais ne sont ni dépaquetés +ni installés. Élément de configuration : APT::Get::Download-Only. + + + + + +Correction ; essaye de réparer un système dont les dépendances sont +défectueuses. Cette option, utilisée avec install ou remove, peut omettre +tout paquet de façon à permettre à APT de déduire une solution viable. +Chaque paquet spécifié doit complètement corriger le problème. Cette option +est quelquefois nécessaire lorsque l'on exécute APT pour la première fois ; +APT lui-même interdit les dépendances défectueuses dans un système. Il est +possible que la structure de dépendances d'un système soit tellement +corrompue qu'elle requiert une intervention manuelle (ce qui veut dire la +plupart du temps utiliser &dselect; ou dpkg --remove pour éliminer +les paquets en cause). L'utilisation de cette option conjointement avec + peut produire une erreur dans certaines situations. +Élément de configuration : APT::Get::Fix-Broken. + + + + + + +Ignorer les paquets manquants ; si des paquets ne peuvent être +récupérés, ou, après récupération, ne satisfont pas au contrôle d'intégrité, +cette commande met ces paquets de côté et gère le résultat. Utiliser cette +option conjointement avec peut produire une erreur dans +certaines situations. Quand un paquet, sélectionné pour une installation +(particulièrement si c'est mentionné en ligne de commande), ne peut être +récupéré, il est mis silencieusement de côté. Élément de configuration : +APT::Get::Fix-Missing. + + + + + +Pas de récupération. Le mieux est d'utiliser cette option avec + pour forcer APT à n'utiliser que les .deb qu'il a +déjà récupérés. +Élément de configuration : APT::Get::Download. + + + + + +Mode silencieux ; cette commande produit une sortie destinée à +l'enregistrement dans un fichier-journal en omettant les indicateurs de +progression. Un plus grand nombre de « q » (2 au plus) produit un +plus grand silence. +On peut aussi utiliser pour positionner le niveau de silence, +et annuler le fichier de configuration. Notez qu'un niveau de silence égal à 2 +implique et vous ne devez jamais utiliser sans +l'accompagner d'un modificateur tel que , + ou  : APT pourrait exécuter des actions inattendues ! +Élément de configuration : quiet. + + + + + + + + + + +Simulation ; cette commande réalise une simulation des actions qui +seraient exécutées mais ne modifie pas le système. +Élément de configuration : APT::Get::Simulate. + + +La simulation affiche une série de lignes représentant chacune une opération +de dpkg, Configure (Conf),Remove (Remv),Unpack (Inst). Les crochets encadrent +des paquets endommagés et des crochets n'encadrant rien indiquent que les +dommages n'ont aucune conséquence (rare). + + + + + + +Répond automatiquement oui aux questions ; présume « oui » +comme réponse à toutes les questions et s'exécute de manière non interactive. +Dans le cas d'une situation indésirable, comme le changement d'un paquet +gelé, l'installation d'un paquet non authentifié ou la suppression d'un +paquet essentiel, apt-get s'interrompt. +Élément de configuration : APT::Get::Assume-Yes. + + + + + +Afficher les paquets mis à niveau ; affiche une liste de tous les paquets à +mettre à niveau. Élément de configuration : APT::Get::Show-Upgraded. + + + + + +Afficher les versions complètes des paquets installés ou mis à niveau. +Élément de configuration : APT::Get::Show-Versions. + + + + + + +Cette commande compile un paquet source après l'avoir récupéré. +Élément de configuration : APT::Get::Compile. + + + + + +Cette commande ignore la marque « Hold » d'un paquet ; par ce biais, +apt-get ignore un « hold » placé sur un paquet. cela peut être utile +avec dist-upgrade pour annuler un grand nombre de « hold » +indésirables. Élément de configuration : APT::Ignore-Hold. + + + + + +Aucune mise à niveau ; quand elle est utilisée avec install, +cette commande empêche les paquets listés sur la ligne de commande d'être mis +à niveau. +Élément de configuration : APT::Get::Upgrade. + + + + + +Forcer l'acceptation ; cette option est dangereuse parce qu'elle laisse +APT continuer sans poser de questions quand il réalise quelque chose de +potentiellement dommageable. Cette option ne doit être utilisée que dans des +circonstances très spéciales. Utiliser force-yes peut détruire le système ! +Élément de configuration : APT::Get::force-yes. + + + + + +Au lieu d'aller chercher les paquets à installer, leurs URI sont affichées. +Chaque URI a un chemin, un nom de fichier destination, une taille et une +clé md5 attendue. Notez que le nom de fichier à afficher ne correspond pas +toujours au nom de fichier sur le site distant ! Cette option fonctionne +aussi avec la commande source et avec la commande +update. Avec la commande update, +la somme MD5 et la taille ne sont pas données et c'est à l'utilisateur de +décompresser les fichiers compressés. +Élément de configuration : APT::Get::Print-URIs. + + + + + +Utiliser purge à la place de remove pour supprimer tout ce qui peut être +supprimé. +Un astérisque (*) sera affiché près des paquets qui vont être purgés. +Élément de configuration : APT::Get::Purge. + + + + + +Réinstaller les paquets déjà installés avec leur version la plus récente. +Élément de configuration : APT::Get::ReInstall. + + + + +Cette option est activée par défaut ; utilisez --no-list-cleanup +pour la désactiver. Quand elle est activée, apt-get gère +automatiquement le contenu de &statedir;/lists afin d'assurer +que les fichiers obsolètes soient effacés. La seule raison de la désactiver +est une modification fréquente de votre liste de sources. +Élément de configuration : APT::Get::List-Cleanup. + + + + + + + +Cette option contrôle l'entrée par défaut pour les questions de +distribution ; une étiquette (pin) par défaut dont la priorité vaut 990 +est créé en utilisant la chaîne spécifiée. Le fichier des préférences peut +annuler cette décision. En clair, cette option permet de contrôler simplement +dans quelle distribution seront récupérés les paquets. Par exemple : + ou . +Élément de configuration : APT::Default-Release. +Voyez aussi la page de manuel d'&apt-preferences;. + + + + + +Ne réalise que les opérations « triviales ». Logiquement ceci peut être +considéré comme relatif à . Alors que + répond oui à n'importe quelle question, + répond non. +Élément de configuration : APT::Get::Trivial-Only. + + + + + +Quand des paquets doivent être supprimés, apt-get s'arrête immédiatement sans +poser de questions. Élément de configuration : APT::Get::Remove. + + + + + +Cette option n'a de sens qu'avec les commandes source et +build-dep. Elle indique +que les noms de sources donnés ne doivent pas être repérés à travers le +tableau des binaires. Cela signifie que si cette option est choisie, la commande +source acceptera seulement des noms de paquets source +comme argument ; elle n'acceptera pas de les rechercher à partir des noms de +paquets binaires correspondants. +Élément de configuration : APT::Get::Only-Source + + + + + +Ne récupérer que le fichier diff ou tar d'une archive de source. +Élément de configuration : APT::Get::Diff-Only et +APT::Get::Tar-Only. + + + + + +Ne traiter que les dépendances de construction pour telle architecture. +Élément de configuration : APT::Get::Arch-Only + + + + + +Ignorer le fait que les paquets ne peuvent pas être authentifiés ; pas +d'interrogation de l'utilisateur. C'est très utile pour certains outils + comme pbuilder +Élément de configuration : +APT::Get::AllowUnauthenticated. + + + +&apt-commonoptions; + + + + +Fichiers + +/etc/apt/sources.list + +Liste les emplacements où aller chercher les paquets. +Élément de configuration : Dir::Etc::SourceList. + + + +/etc/apt/apt.conf +Fichier de configuration d'APT. +Élément de configuration : Dir::Etc::Main. + + + +/etc/apt/apt.conf.d/ + +Éléments du fichier de configuration d'APT. +Élément de configuration : Dir::Etc::Parts. + + + +/etc/apt/preferences + +Fichier des préférences. +C'est dans ce fichier qu'on peut faire de l'étiquetage (pinning) c'est-à-dire, +choisir d'obtenir des paquets d'une source distincte ou d'une distribution +différente. +Élément de configuration : Dir::Etc::Preferences. + + + +&cachedir;/archives/ + +Zone de stockage pour les paquets récupérés. +Élément de configuration : Dir::Cache::Archives. + + + +&cachedir;/archives/partial/ + +Zone de stockage pour les paquets en transit. +Élément de configuration : Dir::Cache::Archives (implicitement, partial). + + + +&statedir;/lists/ + +Zone de stockage des informations concernant chaque ressource spécifiée dans +&sources-list;. +Élément de configuration : Dir::State::Lists. + + + +&statedir;/lists/partial/ + +Zone de stockage pour les informations d'état des paquets en transit. +Élément de configuration : Dir::State::Lists (implicit partial). + + + + + +Voir aussi + +&apt-cache;, &apt-cdrom;, &dpkg;, &dselect;, &sources-list;, + &apt-conf;, &apt-config;, + le guide « APT users guide » dans &docdir;, &apt-preferences;, +le guide APT. + + + + Diagnostic + apt-get renvoie zéro après une opération normale, le décimal 100 +en cas d'erreur. + + + &manbugs; +&deux-traducteurs; + diff --git a/doc/fr/apt-key.8 b/doc/fr/apt-key.8 new file mode 100644 index 0000000..b5a867a --- /dev/null +++ b/doc/fr/apt-key.8 @@ -0,0 +1,101 @@ +.\" Title: apt\-key +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 14 décembre 2003 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-KEY" "8" "14 décembre 2003" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt\-key \- Utilitaire de gestion des clés +.SH "SYNOPSIS" +.HP 8 +\fBapt\-key\fR [\fIcommand\fR/] [\fB\fIarguments\fR\fR...] +.SH "DESCRIPTION" +.PP + +\fBapt\-key\fR +gère les clés dont se sert apt pour authentifier les paquets. Les paquets authentifiés par ces clés seront réputés fiables. +.SH "COMMANDES" +.PP +add \fIfichier\fR +.RS 3n +Ajouter une clé à la liste des clés fiables. La clé est lue dans +\fIfichier\fR, ou sur l'entrée standard si +\fIfichier\fR +est +\-. +.RE +.PP +del \fIkeyid\fR +.RS 3n +Supprimer une clé de la liste des clés fiables. +.RE +.PP +list +.RS 3n +Afficher la liste des clés fiables. +.RE +.PP +update +.RS 3n +Mettre à jour le trousseau de clés local avec le trousseau de clés de l'archive Debian et supprimer les clés qui sont périmées. +.RE +.SH "FICHIERS" +.PP +\fI/etc/apt/trusted.gpg\fR +.RS 3n +Trousseau de clés locales fiables, les nouvelles clés sont ajoutées ici. +.RE +.PP +\fI/etc/apt/trustdb.gpg\fR +.RS 3n +Base de données locale fiable des clés de l'archive. +.RE +.PP +\fI/usr/share/keyrings/debian\-archive\-keyring.gpg\fR +.RS 3n +Trousseau des clés fiables de l'archive Debian. +.RE +.PP +\fI/usr/share/keyrings/debian\-archive\-removed\-keys.gpg\fR +.RS 3n +Trousseau des clés fiables supprimées de l'archive Debian. +.RE +.SH "VOIR AUSSI" +.PP + +\fBapt\-get\fR(8), +\fBapt\-secure\fR(8) +.SH "BOGUES" +.PP +Voyez la +[1]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "AUTEUR" +.PP +APT a été écrit par l'équipe APT +. +.SH "TRADUCTION" +.PP +Philippe Batailler. +. 2005. +.SH "AUTEUR" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "COPYRIGHT" +Copyright \(co 1998\-2001 Jason Gunthorpe +.br +.SH "REFERENCES" +.TP 3 +1.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt-key.fr.8 b/doc/fr/apt-key.fr.8 new file mode 100644 index 0000000..b5a867a --- /dev/null +++ b/doc/fr/apt-key.fr.8 @@ -0,0 +1,101 @@ +.\" Title: apt\-key +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 14 décembre 2003 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-KEY" "8" "14 décembre 2003" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt\-key \- Utilitaire de gestion des clés +.SH "SYNOPSIS" +.HP 8 +\fBapt\-key\fR [\fIcommand\fR/] [\fB\fIarguments\fR\fR...] +.SH "DESCRIPTION" +.PP + +\fBapt\-key\fR +gère les clés dont se sert apt pour authentifier les paquets. Les paquets authentifiés par ces clés seront réputés fiables. +.SH "COMMANDES" +.PP +add \fIfichier\fR +.RS 3n +Ajouter une clé à la liste des clés fiables. La clé est lue dans +\fIfichier\fR, ou sur l'entrée standard si +\fIfichier\fR +est +\-. +.RE +.PP +del \fIkeyid\fR +.RS 3n +Supprimer une clé de la liste des clés fiables. +.RE +.PP +list +.RS 3n +Afficher la liste des clés fiables. +.RE +.PP +update +.RS 3n +Mettre à jour le trousseau de clés local avec le trousseau de clés de l'archive Debian et supprimer les clés qui sont périmées. +.RE +.SH "FICHIERS" +.PP +\fI/etc/apt/trusted.gpg\fR +.RS 3n +Trousseau de clés locales fiables, les nouvelles clés sont ajoutées ici. +.RE +.PP +\fI/etc/apt/trustdb.gpg\fR +.RS 3n +Base de données locale fiable des clés de l'archive. +.RE +.PP +\fI/usr/share/keyrings/debian\-archive\-keyring.gpg\fR +.RS 3n +Trousseau des clés fiables de l'archive Debian. +.RE +.PP +\fI/usr/share/keyrings/debian\-archive\-removed\-keys.gpg\fR +.RS 3n +Trousseau des clés fiables supprimées de l'archive Debian. +.RE +.SH "VOIR AUSSI" +.PP + +\fBapt\-get\fR(8), +\fBapt\-secure\fR(8) +.SH "BOGUES" +.PP +Voyez la +[1]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "AUTEUR" +.PP +APT a été écrit par l'équipe APT +. +.SH "TRADUCTION" +.PP +Philippe Batailler. +. 2005. +.SH "AUTEUR" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "COPYRIGHT" +Copyright \(co 1998\-2001 Jason Gunthorpe +.br +.SH "REFERENCES" +.TP 3 +1.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt-key.fr.8.xml b/doc/fr/apt-key.fr.8.xml new file mode 100644 index 0000000..73a61ea --- /dev/null +++ b/doc/fr/apt-key.fr.8.xml @@ -0,0 +1,122 @@ + + +%aptent; + +]> + + + &apt-docinfo; + + + apt-key + 8 + + + + + apt-key + Utilitaire de gestion des clés + + + + + + apt-key + command/ + + + + + Description + + apt-key gère les clés dont se sert apt pour +authentifier les paquets. Les paquets authentifiés par ces clés seront +réputés fiables. + + + +Commandes + + add fichier + + + +Ajouter une clé à la liste des clés fiables. La clé est lue dans +fichier, ou sur l'entrée standard si +fichier est -. + + + + + + + del keyid + + + +Supprimer une clé de la liste des clés fiables. + + + + + + + list + + + +Afficher la liste des clés fiables. + + + + + + update + + +Mettre à jour le trousseau de clés local avec le trousseau de clés de l'archive +Debian et supprimer les clés qui sont périmées. + + + + + + + + Fichiers + + /etc/apt/trusted.gpg +Trousseau de clés locales fiables, les nouvelles clés sont ajoutées ici. + + + + /etc/apt/trustdb.gpg + Base de données locale fiable des clés de l'archive. + + + /usr/share/keyrings/debian-archive-keyring.gpg + Trousseau des clés fiables de l'archive Debian. + + + /usr/share/keyrings/debian-archive-removed-keys.gpg + + Trousseau des clés fiables supprimées de l'archive Debian. + + + + + +Voir aussi + +&apt-get;, &apt-secure; + + + + &manbugs; + &manauthor; +&traducteur; + + diff --git a/doc/fr/apt-secure.8 b/doc/fr/apt-secure.8 new file mode 100644 index 0000000..7c53378 --- /dev/null +++ b/doc/fr/apt-secure.8 @@ -0,0 +1,140 @@ +.\" Title: apt\-secure +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 14 décembre 2003 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-SECURE" "8" "14 décembre 2003" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt\-secure \- Certification d'archive avec APT +.SH "DESCRIPTION" +.PP +Depuis sa version 0.6, +\fBapt\fR +sait vérifier la signature du fichier Release de chaque archive. On s'assure ainsi que les paquets de cette archive ne peuvent pas être modifiés par quelqu'un qui ne possède pas la clé de la signature du fichier Release. +.PP +Quand un paquet provient d'une archive sans signature ou d'une archive avec une signature dont apt ne possède pas la clé, ce paquet n'est pas considéré comme fiable et son installation provoquera un avertissement. Pour l'instant, +\fBapt\-get\fR +ne signale que les archives sans signature\ ; les prochaines versions pourraient rendre obligatoire la vérification des sources avant tout téléchargement de paquet. +.PP +Les paquets +\fBapt\-get\fR(8), +\fBaptitude\fR(8) +et +\fBsynaptic\fR(8) +possèdent cette nouvelle fonction de certification. +.SH "ARCHIVES FIABLES" +.PP +D'une archive apt jusqu'à l'utilisateur, la confiance se construit en plusieurs étapes. +\fBApt\-secure\fR +est la dernière étape. Faire confiance à une archive ne signifie pas que les paquets qu'elle contient sont exempts de code malveillant, mais signifie que vous faites confiance au responsable de l'archive. C'est ensuite au responsable de l'archive de faire en sorte que l'archive soit fiable. +.PP +\fBApt\-secure\fR +n'examine pas la signature d'un paquet. Certains programmes peuvent le faire comme +\fBdebsig\-verify\fR +ou +\fBdebsign\fR, qu'on peut trouver dans les paquets debsig\-verify et devscripts. +.PP +La fiabilisation dans Debian commence quand un responsable de paquet envoie un nouveau paquet ou une nouvelle version d'un paquet dans l'archive. Cet envoi, pour être effectif, doit être signé avec la clé d'un responsable qui se trouve dans le trousseau des responsables Debian (disponible dans le paquet debian\-keyring). Les clés des responsables de paquet sont signées par d'autres responsables, suivant des procédures préétablies pour s'assurer de l'identité des propriétaires de la clé. +.PP +Une fois le paquet vérifié et archivé, la signature du responsable est enlevée, une somme MD5 du paquet est calculée et mise dans le fichier Packages. Une somme MD5 de tous les paquets est ensuite calculée et mise dans le fichier Release. Ce fichier est signé par la clé de l'archive. Cette clé qui est créée chaque année et distribuée par le serveur FTP se trouve aussi dans le trousseau Debian. +.PP +Un utilisateur peut consulter la signature du fichier Release, extraire la somme MD5 d'un paquet et la comparer avec la somme du paquet qu'il a téléchargé. Avant la version 0.6, seule la somme du paquet téléchargé était vérifiée. Maintenant on peut vérifier aussi la signature du fichier Release. +.PP +Cette façon de faire est différente d'une vérification de la signature d'un paquet. Elle vise à empêcher deux types d'attaque possibles\ : +.TP 3n +\(bu +L'attaque de type +\(Fo\ homme au milieu\ \(Fc. Sans vérification de signature, quelqu'un de malveillant peut s'introduire au milieu du processus de téléchargement et insérer du code soit en contrôlant un élément du réseau, routeur, commutateur, etc. soit en détournant le trafic vers un serveur fourbe (par usurpation d'adresses). +.TP 3n +\(bu +L'attaque par compromission d'un miroir sur le réseau. Sans vérification de signature, quelqu'un de malveillant peut compromettre un miroir et modifier les fichiers. Ainsi tous ceux qui téléchargent les paquets de ce miroir propagent du code malveillant. +.PP +Cependant cette méthode ne garantit pas contre une compromission du serveur Debian lui\-même (qui signe les paquets) ni contre la compromission de la clé qui sert à signer les fichiers Release. Mais elle peut compléter la signature des paquets. +.SH "CONFIGURATION" +.PP +Le programme qui gère la liste des clés utilisées par apt s'appelle +\fBapt\-key\fR. Il peut ajouter ou supprimer des clés. Cette version installe automatiquement les clés qui servent à signer l'archive Debian et les différents répertoires de paquets. +.PP +Pour ajouter une clé, vous devez d'abord la télécharger. Il vaut mieux utiliser un canal fiable pour ce téléchargement. Ensuite vous l'ajoutez avec la commande +\fBapt\-key\fR +et vous lancez la commande +\fBapt\-get update\fR +pour télécharger et vérifier le fichier +\fIRelease.gpg\fR +de l'archive que vous avez configurée. +.SH "CONFIGURATION D'UNE ARCHIVE" +.PP +Si vous voulez signer les archives dont vous avez la responsabilité, vous devez\ : +.TP 3n +\(bu +créer un fichier Release à la racine de l'archive, s'il n'existe pas déjà. Vous pouvez le créer avec la commande +\fBapt\-ftparchive release\fR +(fournie dans le paquet apt\-utils)\ ; +.TP 3n +\(bu +le signer, avec la commande +\fBgpg \-abs \-o Release.gpg Release\fR\ ; +.TP 3n +\(bu +publier l'empreinte de la clé. Ainsi les utilisateurs de votre archive connaîtront la clé qu'ils doivent importer pour authentifier les fichiers de l'archive. +.PP +Chaque fois que le contenu de l'archive change, le responsable doit refaire les deux premières étapes. +.SH "VOIR AUSSI" +.PP + +\fBapt.conf\fR(5), +\fBapt\-get\fR(8),\fBsources.list\fR(5), +\fBapt\-key\fR(8), +\fBapt\-archive\fR(1), +\fBdebsign\fR(1), +\fBdebsig\-verify\fR(1), +\fBgpg\fR(1) +.PP +Pour des informations plus substantielles, vous pouvez consulter +[1]\&\fI l'infrastructure debian pour la sécurité\fR +un chapitre du manuel Debian sur la sécurité (disponible dans le paquet harden\-doc) et le +[2]\&\fIStrong Distribution HOWTO\fR +par V. Alex Brennen. +.SH "BOGUES" +.PP +Voyez la +[3]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "AUTEUR" +.PP +APT a été écrit par l'équipe APT +. +.SH "AUTEURS" +.PP +Cette page a été écrite à partir des travaux de Javier Fernández\-Sanguino Peña, Isaac Jones, Colin Walters, Florian Weimer et Michael Vogt. +.SH "TRADUCTION" +.PP +Philippe Batailler. +. 2005. +.SH "AUTEUR" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "COPYRIGHT" +Copyright \(co 1998\-2001 Jason Gunthorpe +.br +.SH "REFERENCES" +.TP 3 +1.\ l'infrastructure debian pour la sécurité +\%http://www.debian.org/doc/manuals/securing\-debian\-howto/ch7.en.html +.TP 3 +2.\ Strong Distribution HOWTO +\%http://www.cryptnet.net/fdp/crypto/strong_distro.html +.TP 3 +3.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt-secure.fr.8 b/doc/fr/apt-secure.fr.8 new file mode 100644 index 0000000..7c53378 --- /dev/null +++ b/doc/fr/apt-secure.fr.8 @@ -0,0 +1,140 @@ +.\" Title: apt\-secure +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 14 décembre 2003 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-SECURE" "8" "14 décembre 2003" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt\-secure \- Certification d'archive avec APT +.SH "DESCRIPTION" +.PP +Depuis sa version 0.6, +\fBapt\fR +sait vérifier la signature du fichier Release de chaque archive. On s'assure ainsi que les paquets de cette archive ne peuvent pas être modifiés par quelqu'un qui ne possède pas la clé de la signature du fichier Release. +.PP +Quand un paquet provient d'une archive sans signature ou d'une archive avec une signature dont apt ne possède pas la clé, ce paquet n'est pas considéré comme fiable et son installation provoquera un avertissement. Pour l'instant, +\fBapt\-get\fR +ne signale que les archives sans signature\ ; les prochaines versions pourraient rendre obligatoire la vérification des sources avant tout téléchargement de paquet. +.PP +Les paquets +\fBapt\-get\fR(8), +\fBaptitude\fR(8) +et +\fBsynaptic\fR(8) +possèdent cette nouvelle fonction de certification. +.SH "ARCHIVES FIABLES" +.PP +D'une archive apt jusqu'à l'utilisateur, la confiance se construit en plusieurs étapes. +\fBApt\-secure\fR +est la dernière étape. Faire confiance à une archive ne signifie pas que les paquets qu'elle contient sont exempts de code malveillant, mais signifie que vous faites confiance au responsable de l'archive. C'est ensuite au responsable de l'archive de faire en sorte que l'archive soit fiable. +.PP +\fBApt\-secure\fR +n'examine pas la signature d'un paquet. Certains programmes peuvent le faire comme +\fBdebsig\-verify\fR +ou +\fBdebsign\fR, qu'on peut trouver dans les paquets debsig\-verify et devscripts. +.PP +La fiabilisation dans Debian commence quand un responsable de paquet envoie un nouveau paquet ou une nouvelle version d'un paquet dans l'archive. Cet envoi, pour être effectif, doit être signé avec la clé d'un responsable qui se trouve dans le trousseau des responsables Debian (disponible dans le paquet debian\-keyring). Les clés des responsables de paquet sont signées par d'autres responsables, suivant des procédures préétablies pour s'assurer de l'identité des propriétaires de la clé. +.PP +Une fois le paquet vérifié et archivé, la signature du responsable est enlevée, une somme MD5 du paquet est calculée et mise dans le fichier Packages. Une somme MD5 de tous les paquets est ensuite calculée et mise dans le fichier Release. Ce fichier est signé par la clé de l'archive. Cette clé qui est créée chaque année et distribuée par le serveur FTP se trouve aussi dans le trousseau Debian. +.PP +Un utilisateur peut consulter la signature du fichier Release, extraire la somme MD5 d'un paquet et la comparer avec la somme du paquet qu'il a téléchargé. Avant la version 0.6, seule la somme du paquet téléchargé était vérifiée. Maintenant on peut vérifier aussi la signature du fichier Release. +.PP +Cette façon de faire est différente d'une vérification de la signature d'un paquet. Elle vise à empêcher deux types d'attaque possibles\ : +.TP 3n +\(bu +L'attaque de type +\(Fo\ homme au milieu\ \(Fc. Sans vérification de signature, quelqu'un de malveillant peut s'introduire au milieu du processus de téléchargement et insérer du code soit en contrôlant un élément du réseau, routeur, commutateur, etc. soit en détournant le trafic vers un serveur fourbe (par usurpation d'adresses). +.TP 3n +\(bu +L'attaque par compromission d'un miroir sur le réseau. Sans vérification de signature, quelqu'un de malveillant peut compromettre un miroir et modifier les fichiers. Ainsi tous ceux qui téléchargent les paquets de ce miroir propagent du code malveillant. +.PP +Cependant cette méthode ne garantit pas contre une compromission du serveur Debian lui\-même (qui signe les paquets) ni contre la compromission de la clé qui sert à signer les fichiers Release. Mais elle peut compléter la signature des paquets. +.SH "CONFIGURATION" +.PP +Le programme qui gère la liste des clés utilisées par apt s'appelle +\fBapt\-key\fR. Il peut ajouter ou supprimer des clés. Cette version installe automatiquement les clés qui servent à signer l'archive Debian et les différents répertoires de paquets. +.PP +Pour ajouter une clé, vous devez d'abord la télécharger. Il vaut mieux utiliser un canal fiable pour ce téléchargement. Ensuite vous l'ajoutez avec la commande +\fBapt\-key\fR +et vous lancez la commande +\fBapt\-get update\fR +pour télécharger et vérifier le fichier +\fIRelease.gpg\fR +de l'archive que vous avez configurée. +.SH "CONFIGURATION D'UNE ARCHIVE" +.PP +Si vous voulez signer les archives dont vous avez la responsabilité, vous devez\ : +.TP 3n +\(bu +créer un fichier Release à la racine de l'archive, s'il n'existe pas déjà. Vous pouvez le créer avec la commande +\fBapt\-ftparchive release\fR +(fournie dans le paquet apt\-utils)\ ; +.TP 3n +\(bu +le signer, avec la commande +\fBgpg \-abs \-o Release.gpg Release\fR\ ; +.TP 3n +\(bu +publier l'empreinte de la clé. Ainsi les utilisateurs de votre archive connaîtront la clé qu'ils doivent importer pour authentifier les fichiers de l'archive. +.PP +Chaque fois que le contenu de l'archive change, le responsable doit refaire les deux premières étapes. +.SH "VOIR AUSSI" +.PP + +\fBapt.conf\fR(5), +\fBapt\-get\fR(8),\fBsources.list\fR(5), +\fBapt\-key\fR(8), +\fBapt\-archive\fR(1), +\fBdebsign\fR(1), +\fBdebsig\-verify\fR(1), +\fBgpg\fR(1) +.PP +Pour des informations plus substantielles, vous pouvez consulter +[1]\&\fI l'infrastructure debian pour la sécurité\fR +un chapitre du manuel Debian sur la sécurité (disponible dans le paquet harden\-doc) et le +[2]\&\fIStrong Distribution HOWTO\fR +par V. Alex Brennen. +.SH "BOGUES" +.PP +Voyez la +[3]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "AUTEUR" +.PP +APT a été écrit par l'équipe APT +. +.SH "AUTEURS" +.PP +Cette page a été écrite à partir des travaux de Javier Fernández\-Sanguino Peña, Isaac Jones, Colin Walters, Florian Weimer et Michael Vogt. +.SH "TRADUCTION" +.PP +Philippe Batailler. +. 2005. +.SH "AUTEUR" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "COPYRIGHT" +Copyright \(co 1998\-2001 Jason Gunthorpe +.br +.SH "REFERENCES" +.TP 3 +1.\ l'infrastructure debian pour la sécurité +\%http://www.debian.org/doc/manuals/securing\-debian\-howto/ch7.en.html +.TP 3 +2.\ Strong Distribution HOWTO +\%http://www.cryptnet.net/fdp/crypto/strong_distro.html +.TP 3 +3.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt-secure.fr.8.xml b/doc/fr/apt-secure.fr.8.xml new file mode 100644 index 0000000..5cec9a4 --- /dev/null +++ b/doc/fr/apt-secure.fr.8.xml @@ -0,0 +1,217 @@ + + +%aptent; + +]> + + + &apt-docinfo; + + + apt-secure + 8 + + + + + + + + + apt-secure + Certification d'archive avec APT + + + Description + + Depuis sa version 0.6, apt sait vérifier +la signature du fichier Release de chaque archive. On s'assure ainsi que les +paquets de cette archive ne peuvent pas être modifiés par quelqu'un qui ne +possède pas la clé de la signature du fichier Release. + + + + Quand un paquet provient d'une archive sans signature ou d'une archive avec +une signature dont apt ne possède pas la clé, ce paquet n'est pas considéré +comme fiable et son installation provoquera un avertissement. Pour +l'instant, apt-get ne signale que les archives sans +signature ; les prochaines versions pourraient rendre obligatoire la +vérification des sources avant tout téléchargement de paquet. + + + + Les paquets &apt-get;, &aptitude; et &synaptic; possèdent cette nouvelle +fonction de certification. + + + + + Archives fiables + + + D'une archive apt jusqu'à l'utilisateur, la confiance se construit en +plusieurs étapes. Apt-secure est la dernière étape. Faire +confiance à une archive ne signifie pas que les paquets qu'elle contient +sont exempts de code malveillant, mais signifie que vous faites confiance au +responsable de l'archive. C'est ensuite au responsable de l'archive de faire +en sorte que l'archive soit fiable. + + + + Apt-secure n'examine pas la signature d'un +paquet. Certains programmes peuvent le faire comme +debsig-verify ou debsign, qu'on peut +trouver dans les paquets debsig-verify et devscripts. + + + + La fiabilisation dans Debian commence quand un responsable de paquet envoie +un nouveau paquet ou une nouvelle version d'un paquet dans l'archive. Cet +envoi, pour être effectif, doit être signé avec la clé d'un responsable qui +se trouve dans le trousseau des responsables Debian (disponible dans le +paquet debian-keyring). Les clés des responsables de paquet sont signées par +d'autres responsables, suivant des procédures préétablies pour s'assurer de +l'identité des propriétaires de la clé. + + + + + Une fois le paquet vérifié et archivé, la signature du responsable est +enlevée, une somme MD5 du paquet est calculée et mise dans le fichier +Packages. Une somme MD5 de tous les paquets est ensuite calculée et mise +dans le fichier Release. Ce fichier est signé par la clé de l'archive. Cette +clé qui est créée chaque année et distribuée par le serveur FTP se trouve +aussi dans le trousseau Debian. + + + + + Un utilisateur peut consulter la signature du fichier Release, extraire la +somme MD5 d'un paquet et la comparer avec la somme du paquet qu'il a +téléchargé. Avant la version 0.6, seule la somme du paquet téléchargé était +vérifiée. Maintenant on peut vérifier aussi la signature du fichier Release. + + + + Cette façon de faire est différente d'une vérification de la signature d'un +paquet. Elle vise à empêcher deux types d'attaque possibles : + + + + + +L'attaque de type homme au milieu. Sans vérification de +signature, quelqu'un de malveillant peut s'introduire au milieu du +processus de téléchargement et insérer du code soit en contrôlant un élément +du réseau, routeur, commutateur, etc. soit en détournant le trafic vers un +serveur fourbe (par usurpation d'adresses). + + + +L'attaque par compromission d'un miroir sur le réseau. Sans vérification de +signature, quelqu'un de malveillant peut compromettre un miroir et modifier +les fichiers. Ainsi tous ceux qui téléchargent les paquets de ce miroir +propagent du code malveillant. + + + + +Cependant cette méthode ne garantit pas contre une compromission du serveur +Debian lui-même (qui signe les paquets) ni contre la compromission de la clé +qui sert à signer les fichiers Release. Mais elle peut compléter la +signature des paquets. + + + + Configuration + + Le programme qui gère la liste des clés utilisées par apt s'appelle +apt-key. Il peut ajouter ou supprimer des clés. Cette +version installe automatiquement les clés qui servent à signer l'archive +Debian et les différents répertoires de paquets. + + + + Pour ajouter une clé, vous devez d'abord la télécharger. Il vaut mieux +utiliser un canal fiable pour ce téléchargement. Ensuite vous l'ajoutez avec +la commande apt-key et vous lancez la commande +apt-get update pour télécharger et vérifier le fichier +Release.gpg de l'archive que vous avez configurée. + + + + +Configuration d'une archive + + Si vous voulez signer les archives dont vous avez la responsabilité, vous +devez : + + + + + créer un fichier Release à la racine de l'archive, s'il n'existe pas +déjà. Vous pouvez le créer avec la commande apt-ftparchive release +(fournie dans le paquet apt-utils) ; + + + +le signer, avec la commande gpg -abs -o Release.gpg Release ; + + + +publier l'empreinte de la clé. Ainsi les utilisateurs de votre archive +connaîtront la clé qu'ils doivent importer pour authentifier les fichiers de +l'archive. + + + + + Chaque fois que le contenu de l'archive change, le responsable doit refaire +les deux premières étapes. + + + + +Voir aussi + +&apt-conf;, &apt-get;,&sources-list;, &apt-key;, &apt-archive;, &debsign;, +&debsig-verify;, &gpg; + + + +Pour des informations plus substantielles, vous pouvez consulter + +l'infrastructure debian pour la sécurité un chapitre du manuel Debian sur la sécurité +(disponible dans le paquet harden-doc) et le +Strong Distribution HOWTO par V. Alex Brennen. + + + + + &manbugs; + &manauthor; + +Auteurs + + +Cette page a été écrite à partir des travaux de Javier Fernández-Sanguino Peña, Isaac +Jones, Colin Walters, Florian Weimer et Michael Vogt. + + +&traducteur; + + diff --git a/doc/fr/apt-sortpkgs.1 b/doc/fr/apt-sortpkgs.1 new file mode 100644 index 0000000..df7a044 --- /dev/null +++ b/doc/fr/apt-sortpkgs.1 @@ -0,0 +1,94 @@ +.\" Title: apt\-sortpkgs +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-SORTPKGS" "1" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt\-sortpkgs \- Un outil pour trier les index de paquets. +.SH "SYNOPSIS" +.HP 13 +\fBapt\-sortpkgs\fR [\fB\-hvs\fR] [\fB\-o=\fR\fB\fIoption\ de\ configuration\fR\fR] [\fB\-c=\fR\fB\fIfichier\fR\fR] \fIfichier\fR... +.SH "DESCRIPTION" +.PP + +\fBApt\-sortpkgs\fR +prend un index (un index de Source ou un index de paquet) et trie leurs enregistrements selon le nom de paquet. Un tri des champs de chaque enregistrement est réalisé selon des règles internes. +.PP +Le résultat est envoyé sur la sortie standard\ ; l'entrée doit être un fichier analysable. +.SH "OPTIONS" +.PP +Toutes les options en ligne de commande peuvent être positionnées via le fichier de configuration\ ; les descriptifs indiquent l'option de configuration à positionner. En ce qui concerne les options booléennes, on peut annuler le fichier de configuration en utilisant quelque chose comme +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +ou d'autres variantes. +.PP +\fB\-s\fR, \fB\-\-source\fR +.RS 3n +Se servir d'un index de sources pour le tri des champs. Élément de configuration\ : +APT::SortPkgs::Source. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +Affiche un mode d'emploi succinct. +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +Affiche la version du programme. +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +Fichier de configuration\ ; indique quel fichier de configuration utiliser. Le programme lit le fichier de configuration par défaut, puis celui\-ci. Voyez +\fBapt.conf\fR(5) +pour la syntaxe. +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +Donne une option de configuration\ ; cela fixe une option de configuration arbitraire. La syntaxe est : +\fB\-o Foo::Bar=bar\fR. +.RE +.SH "VOIR AUSSI" +.PP + +\fBapt.conf\fR(5) +.SH "DIAGNOSTICS" +.PP + +\fBapt\-sortpkgs\fR +retourne zéro si tout se passe bien ou 100 en cas d'erreur. +.SH "BOGUES" +.PP +Voyez la +[1]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "TRADUCTION" +.PP +Philippe Batailler. +. 2005. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "REFERENCES" +.TP 3 +1.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt-sortpkgs.fr.1 b/doc/fr/apt-sortpkgs.fr.1 new file mode 100644 index 0000000..df7a044 --- /dev/null +++ b/doc/fr/apt-sortpkgs.fr.1 @@ -0,0 +1,94 @@ +.\" Title: apt\-sortpkgs +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-SORTPKGS" "1" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt\-sortpkgs \- Un outil pour trier les index de paquets. +.SH "SYNOPSIS" +.HP 13 +\fBapt\-sortpkgs\fR [\fB\-hvs\fR] [\fB\-o=\fR\fB\fIoption\ de\ configuration\fR\fR] [\fB\-c=\fR\fB\fIfichier\fR\fR] \fIfichier\fR... +.SH "DESCRIPTION" +.PP + +\fBApt\-sortpkgs\fR +prend un index (un index de Source ou un index de paquet) et trie leurs enregistrements selon le nom de paquet. Un tri des champs de chaque enregistrement est réalisé selon des règles internes. +.PP +Le résultat est envoyé sur la sortie standard\ ; l'entrée doit être un fichier analysable. +.SH "OPTIONS" +.PP +Toutes les options en ligne de commande peuvent être positionnées via le fichier de configuration\ ; les descriptifs indiquent l'option de configuration à positionner. En ce qui concerne les options booléennes, on peut annuler le fichier de configuration en utilisant quelque chose comme +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +ou d'autres variantes. +.PP +\fB\-s\fR, \fB\-\-source\fR +.RS 3n +Se servir d'un index de sources pour le tri des champs. Élément de configuration\ : +APT::SortPkgs::Source. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +Affiche un mode d'emploi succinct. +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +Affiche la version du programme. +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +Fichier de configuration\ ; indique quel fichier de configuration utiliser. Le programme lit le fichier de configuration par défaut, puis celui\-ci. Voyez +\fBapt.conf\fR(5) +pour la syntaxe. +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +Donne une option de configuration\ ; cela fixe une option de configuration arbitraire. La syntaxe est : +\fB\-o Foo::Bar=bar\fR. +.RE +.SH "VOIR AUSSI" +.PP + +\fBapt.conf\fR(5) +.SH "DIAGNOSTICS" +.PP + +\fBapt\-sortpkgs\fR +retourne zéro si tout se passe bien ou 100 en cas d'erreur. +.SH "BOGUES" +.PP +Voyez la +[1]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "TRADUCTION" +.PP +Philippe Batailler. +. 2005. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "REFERENCES" +.TP 3 +1.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt-sortpkgs.fr.1.xml b/doc/fr/apt-sortpkgs.fr.1.xml new file mode 100644 index 0000000..109a23c --- /dev/null +++ b/doc/fr/apt-sortpkgs.fr.1.xml @@ -0,0 +1,84 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 February 2004 + + + +apt-sortpkgs +1 + + + +apt-sortpkgsUn outil pour trier les index de paquets. + + + + + +apt-sortpkgs + + + +fichier + + + +Description + +Apt-sortpkgs prend un index (un index de Source ou un index de +paquet) et trie leurs enregistrements selon le nom de paquet. Un tri des +champs de chaque enregistrement est réalisé selon des règles internes. + + + +Le résultat est envoyé sur la sortie standard ; l'entrée doit être un +fichier analysable. + + + +Options +&apt-cmdblurb; + + + + +Se servir d'un index de sources pour le tri des champs. +Élément de configuration : APT::SortPkgs::Source. + + + +&apt-commonoptions; + + + +Voir aussi + +&apt-conf; + + + +Diagnostics + +apt-sortpkgs retourne zéro si tout se passe bien ou 100 en cas +d'erreur. + + + +&manbugs; +&traducteur; + \ No newline at end of file diff --git a/doc/fr/apt.conf.5 b/doc/fr/apt.conf.5 new file mode 100644 index 0000000..804c834 --- /dev/null +++ b/doc/fr/apt.conf.5 @@ -0,0 +1,437 @@ +.\" Title: apt.conf +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 Février 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT.CONF" "5" "29 Février 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt.conf \- Fichier de configuration pour APT +.SH "DESCRIPTION" +.PP +Le fichier +\fIapt.conf\fR +est le principal fichier de configuration de la collection d'outils que constitue APT\ ; tous les outils font appel à ce fichier de configuration et utilisent un analyseur syntaxique en ligne de commande commun afin de fournir un environnement uniforme. Quand un outil d'APT démarre, il lit (si elle existe) la variable d'environnement +\fBAPT_CONFIG\fR\ ; puis il lit les fichiers situés dans +Dir::Etc::Parts +ainsi que le principal fichier de configuration indiqué par +Dir::Etc::main\ ; enfin il applique les options de la ligne de commande qui annulent les directives de configuration, chargeant, si nécessaire, d'autres fichiers de configuration. +.PP +Le fichier de configuration est construit comme un arbre d'options organisées en groupes fonctionnels. On se sert du double deux points (\(Fo\ ::\ \(Fc) pour indiquer une option\ ; par exemple, +APT::Get::Assume\-Yes +est une option pour le groupe d'outils APT, destinée à l'outil Get. Les options n'héritent pas des groupes de leurs parents. +.PP +Syntaxiquement, le langage de configuration est conçu sur le même modèle que les langages utilisés par des outils ISC tels que bind et dhcp. Une ligne qui commence par +// +est un commentaire et elle est ignorée. Chaque ligne est de la forme\ : +APT::Get::Assume\-Yes "true"; +Le point\-virgule final est obligatoire et les guillemets sont optionnels. On peut déclarer un nouveau champ d'action avec des accolades, comme suit\ : +.sp +.RS 3n +.nf + +APT { + Get { + Assume\-Yes "true"; + Fix\-Broken "true"; + }; +}; +.fi +.RE +.PP +avec des retours à la ligne pour faciliter la lecture. On peut créer des listes en ouvrant un champ d'action et en mettant un seul mot entre apostrophes suivi d'un point\-virgule. On peut mettre plusieurs entrées, séparées par un point\-virgule. +.sp +.RS 3n +.nf + +DPkg::Pre\-Install\-Pkgs {"/usr/sbin/dpkg\-preconfigure \-\-apt";}; +.fi +.RE +.PP +Les modèles +\fI/usr/share/doc/apt/examples/apt.conf\fR +\fI/usr/share/doc/apt/examples/configure\-index.gz\fR +montrent à quoi devrait ressembler le fichier de configuration. +.PP +Deux éléments spéciaux sont autorisés\ : +#include +et +#clear. +#include +inclut le fichier donné en argument, à moins que le nom ne se termine par une barre oblique. +#clear +sert à effacer une liste de noms. +.PP +Tous les outils d'APT possèdent une option +\fB\-o\fR +qui permet de spécifier une configuration arbitraire depuis la ligne de commande. La syntaxe consiste en un nom complet d'option (par exemple +APT::Get::Assume\-Yes) suivi par un signe égal, puis par la nouvelle valeur de l'option. On peut compléter une liste en ajoutant un \(Fo\ ::\ \(Fc au nom de la liste. +.SH "LE GROUPE APT" +.PP +Ce groupe d'options contrôle aussi bien le comportement global d'APT que la prise en compte des options pour chaque outil. +.PP +Architecture +.RS 3n +L'architecture du système\ ; cette option positionne l'architecture à utiliser pour récupérer des fichiers et analyser des listes de paquets. L'architecture interne par défaut est celle pour laquelle APT a été compilé. +.RE +.PP +Ignore\-Hold +.RS 3n +Ignore les paquets \(Fo\ gelés\ \(Fc\ ; cette option globale indique au système de résolution de ne pas tenir compte des paquets \(Fo\ gelés\ \(Fc dans sa prise de décision. +.RE +.PP +Clean\-Installed +.RS 3n +Avec cette option qui est activée par défaut, la fonctionnalité \(Fo\ autoclean\ \(Fc supprime tout paquet qui ne peut plus être récupéré dans le cache. Quand cette option est désactivée, les paquets qui sont installés localement sont aussi exclus du nettoyage \- mais notez que APT ne fournit aucun moyen direct pour les réinstaller. +.RE +.PP +Immediate\-Configure +.RS 3n +Désactive la configuration immédiate\ ; cette dangereuse option désactive une partie du code de mise en ordre de APT pour que ce dernier effectue le moins d'appels possible à Dpkg. C'est peut\-être nécessaire sur des systèmes lents à un seul utilisateur mais c'est extrêmement dangereux et cela peut faire échouer les scripts d'installation, voire pire. Utilisez\-la à vos risques et périls. +.RE +.PP +Force\-LoopBreak +.RS 3n +Ne jamais activer cette option à moins que vous ne sachiez \- réellement \- ce que vous faites. Elle autorise APT à supprimer temporairement un paquet essentiel pour mettre fin à une boucle Conflicts / Conflicts ou Conflicts / Pre\-Depends entre deux paquets essentiels. UNE TELLE BOUCLE NE DOIT JAMAIS SE PRODUIRE\ : C'EST UN BOGUE SÉRIEUX. Cette option fonctionne si les paquets essentiels ne sont pas tar, gzip, libc, dpkg, bash ou tous les paquets dont ces paquets dépendent. +.RE +.PP +Cache\-Limit +.RS 3n +APT utilise un fichier cache d'une taille mémoire fixe pour ranger les informations du fichier \(Fo\ available\ \(Fc. Cette option fixe la taille de ce cache. +.RE +.PP +Build\-Essential +.RS 3n +Cette option définit les paquets qui sont considérés comme faisant partie des dépendances essentielles pour la construction des paquets. +.RE +.PP +Get +.RS 3n +La sous\-section +Get +contrôle l'outil +\fBapt\-get\fR(8), veuillez consulter sa documentation pour avoir plus d'informations sur les options en question. +.RE +.PP +Cache +.RS 3n +La sous\-section +Cache +contrôle l'outil +\fBapt\-cache\fR(8), veuillez consulter sa documentation pour avoir plus d'informations sur les options en question. +.RE +.PP +CDROM +.RS 3n +La sous\-section +CDROM +contrôle l'outil\fBapt\-cdrom\fR(8), veuillez consulter sa documentation pour avoir plus d'informations sur les options en question. +.RE +.SH "LE GROUPE ACQUIRE" +.PP +Le groupe d'options +Acquire +contrôle le téléchargement des paquets et les gestionnaires d'URI. +.PP +Queue\-Mode +.RS 3n +Le mode file d'attente\ ; +Queue\-Mode +peut prendre une valeur parmi +host +ou +access +et cela détermine comment APT parallélise les connexions sortantes. +Host +signifie qu'une connexion par cible sera initiée, tandis que +access +signifie qu'une connexion par type d'URI sera initiée. +.RE +.PP +Retries +.RS 3n +Nombre d'essais à effectuer. Si ce nombre n'est pas nul, APT essaie de récupérer, le nombre donné de fois, les fichiers dont la récupération a échoué. +.RE +.PP +Source\-Symlinks +.RS 3n +Utilise des liens symboliques pour les archives de sources. Positionnée à \(Fo\ true\ \(Fc, cette option crée si possible des liens symboliques vers les archives de sources au lieu de les copier. Par défaut à \(Fo\ true\ \(Fc. +.RE +.PP +http +.RS 3n +URI HTTP ; http::Proxy est le mandataire (proxy) http à utiliser par défaut. Il se présente sous la forme standard\ : +http://[[user][:pass]@]host[:port]/. En utilisant la syntaxe\ : +http::Proxy::, où le mot\-clé spécial +DIRECT +indique de n'utiliser aucun mandataire, on peut spécifier un mandataire pour chaque machine distante. La variable d'environnement +\fBhttp_proxy\fR +remplace tous ces paramètres. +.sp +Trois options de configuration sont fournies pour le contrôle des caches qui sont compatibles avec HTTP/1.1. +No\-Cache +signifie que le mandataire ne doit pas du tout utiliser les réponses qu'il a stockées\ ; +Max\-Age +sert uniquement pour les fichiers d'index\ : cela demande au cache de les mettre à jour quand leur ancienneté est supérieure au nombre de secondes donné. Debian met à jour son fichier d'index de manière journalière, la valeur par défaut est donc de 1 jour. +No\-Store +sert uniquement pour les fichiers d'archive\ : cela demande au cache de ne jamais garder la requête. Cela peut éviter de polluer un cache mandataire avec des fichiers .deb très grands. Note\ : Squid 2.0.2 ne prend en compte aucune de ces options. +.sp +L'option +timeout +positionne le compteur de temps mort (timeout) utilisé par la méthode\ : cela vaut pour tout (connexion, données). +.sp +Une option de configuration est fournie pour contrôler la profondeur du tube pour le cas où un serveur distant n'est pas conforme à la RFC ou est bogué (comme Squid 2.0.2). +Acquire::http::Pipeline\-Depth +a une valeur comprise entre 0 et 5\ : elle indique le nombre de requêtes en attente qui peuvent être émises. Quand la machine distante ne conserve pas correctement les connexions TCP, on DOIT donner une valeur égale à 0 \-\- sinon des données seront corrompues. Les machines qui ont besoin de cette option ne respectent pas la RFC 2068. +.RE +.PP +ftp +.RS 3n +URI FTP ; ftp::Proxy est le serveur mandataire par défaut à utiliser. Il se présente sous la forme standard\ : +ftp://[[user][:pass]@]host[:port]/\ ; il est remplacé par la variable d'environnement +\fBftp_proxy\fR. Pour utiliser un mandataire ftp, vous devez renseigner l'entrée +ftp::ProxyLogin +dans le fichier de configuration. Cette entrée spécifie les commandes qui disent au serveur mandataire comment se connecter. Voyez +\fI/usr/share/doc/apt/examples/configure\-index.gz\fR +pour savoir comment faire. Les variables de substitution disponibles sont\ : +$(PROXY_USER), +$(PROXY_PASS), +$(SITE_USER), +$(SITE_PASS), +$(SITE), et +$(SITE_PORT). Chacune correspond à un élément de l'URI. +.sp +L'option +timeout +positionne le compteur de temps mort (timeout) utilisé par la méthode\ : cela vaut pour tout (connexion, données). +.sp +Plusieurs options de configuration sont fournies pour contrôler le mode passif. Généralement, c'est plus sûr d'activer le mode passif\ ; cela marche dans presque tous les environnements. Cependant, certaines situations nécessitent que le mode passif soit désactivé et que le mode \(Fo\ port\ \(Fc de ftp soit utilisé à la place. On peut le faire globalement, pour des connexions qui passent par un mandataire ou pour une machine spécifique (examinez le modèle de fichier de configuration). +.sp +On peut utiliser un mandataire FTP pour atteindre une cible HTTP en positionnant la variable d'environnement +\fBftp_proxy\fR +à une url http \-\- consultez la méthode http ci\-dessus pour la syntaxe. On ne peut pas fixer cette variable dans le fichier de configuration et il n'est pas recommandé d'utiliser HTTP par FTP à cause de son peu d'efficacité. +.sp +L'option +ForceExtended +contrôle l'utilisation des commandes liées à la RFC 2428, +EPSV +et +EPRT. Par défaut, elle vaut \(Fo\ false\ \(Fc\ ; ce qui signifie que ces commandes ne sont utilisées que pour une connexion de type IPv6. Quand elle vaut \(Fo\ true\ \(Fc, on les utilise même si la connexion est de type IPv4. La plupart des serveurs FTP ne suivent pas la RFC 2428. +.RE +.PP +cdrom +.RS 3n +URI CDROM\ ; la seule option de configuration pour les URI de CDROM est le point de montage\ : +cdrom::Mount\ ; il doit représenter le point de montage du lecteur de cédérom indiqué dans +\fI/etc/fstab\fR. On peut fournir d'autres commandes de montage et de démontage quand le point de montage ne peut être listé dans le fichier +\fI/etc/fstab\fR +(par exemple, un montage SMB). Syntaxiquement, il faut placer +.sp +.RS 3n +.nf +"/cdrom/"::Mount "foo"; +.fi +.RE +.sp +dans le bloc cdrom. La barre oblique finale est importante. Les commandes de démontage peuvent être spécifiées en utilisant +UMount. +.RE +.PP +gpgv +.RS 3n +URI GPGV ; la seule option pour les URI GPGV est celle qui permet de passer des paramètres à gpgv. +gpgv::Options +Options supplémentaires passées à gpgv. +.RE +.SH "LES RÉPERTOIRES" +.PP +Les répertoires de la section +Dir::State +concernent le système local. +lists +est le répertoire où placer les listes de paquets téléchargés et +status +est le nom du fichier d'état de Dpkg. +preferences +concerne APT\ : c'est le nom du fichier des préférences. +Dir::State +contient le répertoire par défaut préfixé à tous les sous\-éléments, quand ceux\-ci ne commencent pas par +\fI/\fR +ou +\fI./\fR. +.PP + +Dir::Cache +contient les emplacements qui renseignent sur le cache local\ : par exemple, les deux caches de paquets +srcpkgcache +et +pkgcache, et aussi l'endroit où sont placées les archives téléchargées, +Dir::Cache::archives. On peut empêcher la création des caches en laissant leur nom en blanc. Cela ralentit le démarrage mais cela sauve de l'espace disque. Il vaut mieux se passer du cache +pkgcache +plutôt que se passer du cache +srcpkgcache. Comme pour +Dir::State, le répertoire par défaut est contenu dans +Dir::Cache. +.PP + +Dir::Etc +contient l'emplacement des fichiers de configuration, +sourcelist +indique l'emplacement de la liste de sources et +main +est le fichier de configuration par défaut (le modifier n'a aucun effet, à moins qu'on ne le modifie avec le fichier de configuration indiqué par la variable +\fBAPT_CONFIG\fR). +.PP + +Dir::Parts +lit, par ordre d'entrée, tous les fragments de configuration dans le répertoire indiqué. Ensuite, le fichier principal de configuration est chargé. +.PP +Les programmes binaires sont pointés par +Dir::Bin. L'emplacement des gestionnaires de méthodes est indiqué par +Dir::Bin::Methods\ ; +gzip, +Dpkg, +apt\-get, +dpkg\-source, +dpkg\-buildpackage +et +apt\-cache +indiquent l'emplacement des programmes correspondants. +.SH "APT ET DSELECT" +.PP +Quand APT est utilisé comme une méthode de +\fBdselect\fR(8), plusieurs directives contrôlent le comportement par défaut. On les trouve dans la section +DSelect. +.PP +Clean +.RS 3n +Mode de nettoyage du cache\ ; cette variable peut prendre l'une des valeurs suivantes\ : \(Fo\ always\ \(Fc, \(Fo\ prompt\ \(Fc, \(Fo\ auto\ \(Fc, \(Fo\ pre\-auto\ \(Fc et \(Fo\ never\ \(Fc. \(Fo\ always\ \(Fc et \(Fo\ prompt\ \(Fc suppriment tous les paquets du cache après la mise à niveau\ ; \(Fo\ prompt\ \(Fc (valeur par défaut) les supprime après une demande et \(Fo\ auto\ \(Fc ne supprime que les archives qui ne peuvent plus être téléchargées (remplacées, par exemple, par une nouvelle version). \(Fo\ pre\-auto\ \(Fc les supprime avant de récupérer de nouveaux paquets. +.RE +.PP +Options +.RS 3n +Le contenu de cette variable est passé à +\fBapt\-get\fR(8) +avec les options de la ligne de commande quand ce programme est utilisé dans la phase d'installation. +.RE +.PP +UpdateOptions +.RS 3n +Le contenu de cette variable est passé à +\fBapt\-get\fR(8) +avec les options de la ligne de commande quand ce programme est utilisé dans la phase de mise à jour. +.RE +.PP +PromptAfterUpdate +.RS 3n +Si cette option est \(Fo\ vraie\ \(Fc, l'opération [U]pdate de +\fBdselect\fR(8) +interroge toujours l'utilisateur avant de continuer. Par défaut, ce n'est qu'en cas d'erreur que l'on propose à l'utilisateur d'intervenir. +.RE +.SH "COMMENT APT APPELLE DPKG" +.PP +Plusieurs directives de configuration contrôlent la manière dont APT invoque +\fBdpkg\fR(8)\ : elles figurent dans la section +DPkg. +.PP +Options +.RS 3n +Il s'agit d'une liste d'options à passer à dpkg. Les options doivent être déclarées en utilisant la notation de liste et chaque élément de liste est passé comme un seul argument à +\fBdpkg\fR(8). +.RE +.PP +Pre\-Invoke, Post\-Invoke +.RS 3n +Il s'agit d'une liste de commandes shell à exécuter avant ou après l'appel de +\fBdpkg\fR(8). Tout comme pour +Options, on doit utiliser la notation de liste. Les commandes sont appelées dans l'ordre, en utilisant +\fI/bin/sh\fR\ : APT s'arrête dès que l'une d'elles échoue. +.RE +.PP +Pre\-Install\-Pkgs +.RS 3n +Il s'agit d'une liste de commandes shell à exécuter avant d'appeler Dpkg. Tout comme pour +Options, on doit utiliser la notation de liste. Les commandes sont appelées dans l'ordre, en utilisant +\fI/bin/sh\fR\ : APT s'arrête dès que l'une d'elles échoue. Sur l'entrée standard, APT transmet aux commandes les noms de tous les fichiers .deb qu'il va installer, à raison d'un par ligne. +.sp +La deuxième version de ce protocole donne plus de renseignements\ : on obtient la version du protocole, la configuration de APT et les paquets, fichiers ou versions qui ont changé. On autorise cette version en positionnant +DPkg::Tools::Options::cmd::Version +à 2. +cmd +est une commande passée à +Pre\-Install\-Pkgs. +.RE +.PP +Run\-Directory +.RS 3n +APT se place dans ce répertoire avant d'appeler Dpkg\ ; par défaut c'est le répertoire +\fI/\fR. +.RE +.PP +Build\-Options +.RS 3n +Ces options sont passées à +\fBdpkg\-buildpackage\fR(1) +lors de la compilation des paquets\ ; par défaut la signature est désactivée et tous les binaires sont créés. +.RE +.SH "LES OPTIONS DE DÉBOGAGE" +.PP +La plupart des options de la section +debug +n'ont aucun intérêt pour le simple utilisateur\ ; cependant, +Debug::pkgProblemResolver +affiche d'intéressantes informations sur les décisions que prend la commande dist\-upgrade. +Debug::NoLocking +désactive le verrouillage de fichier de manière à ce que APT puisse effectuer quelques opérations sans être \(Fo\ root\ \(Fc et +Debug::pkgDPkgPM +affiche la ligne de commande à chaque appel de Dpkg. +Debug::IdentCdrom +désactive l'inclusion de données de type statfs dans les ID de CDROM. +Debug::Acquire::gpgv +Débogage de la méthode gpgv. +.SH "EXEMPLES" +.PP +Le fichier +\fI/usr/share/doc/apt/examples/configure\-index.gz\fR +contient un modèle de fichier montrant les valeurs par défaut de toutes les options possibles. +.SH "FICHIERS" +.PP + +\fI/etc/apt/apt.conf\fR +.SH "VOIR AUSSI" +.PP + +\fBapt\-cache\fR(8), +\fBapt\-config\fR(8), +\fBapt_preferences\fR(5). +.SH "BOGUES" +.PP +Voyez la +[1]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "TRADUCTION" +.PP +Jérôme Marant. 2000\ ; mise à jour : Philippe Batailler. 2005. +. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "REFERENCES" +.TP 3 +1.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt.conf.fr.5 b/doc/fr/apt.conf.fr.5 new file mode 100644 index 0000000..804c834 --- /dev/null +++ b/doc/fr/apt.conf.fr.5 @@ -0,0 +1,437 @@ +.\" Title: apt.conf +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 Février 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT.CONF" "5" "29 Février 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt.conf \- Fichier de configuration pour APT +.SH "DESCRIPTION" +.PP +Le fichier +\fIapt.conf\fR +est le principal fichier de configuration de la collection d'outils que constitue APT\ ; tous les outils font appel à ce fichier de configuration et utilisent un analyseur syntaxique en ligne de commande commun afin de fournir un environnement uniforme. Quand un outil d'APT démarre, il lit (si elle existe) la variable d'environnement +\fBAPT_CONFIG\fR\ ; puis il lit les fichiers situés dans +Dir::Etc::Parts +ainsi que le principal fichier de configuration indiqué par +Dir::Etc::main\ ; enfin il applique les options de la ligne de commande qui annulent les directives de configuration, chargeant, si nécessaire, d'autres fichiers de configuration. +.PP +Le fichier de configuration est construit comme un arbre d'options organisées en groupes fonctionnels. On se sert du double deux points (\(Fo\ ::\ \(Fc) pour indiquer une option\ ; par exemple, +APT::Get::Assume\-Yes +est une option pour le groupe d'outils APT, destinée à l'outil Get. Les options n'héritent pas des groupes de leurs parents. +.PP +Syntaxiquement, le langage de configuration est conçu sur le même modèle que les langages utilisés par des outils ISC tels que bind et dhcp. Une ligne qui commence par +// +est un commentaire et elle est ignorée. Chaque ligne est de la forme\ : +APT::Get::Assume\-Yes "true"; +Le point\-virgule final est obligatoire et les guillemets sont optionnels. On peut déclarer un nouveau champ d'action avec des accolades, comme suit\ : +.sp +.RS 3n +.nf + +APT { + Get { + Assume\-Yes "true"; + Fix\-Broken "true"; + }; +}; +.fi +.RE +.PP +avec des retours à la ligne pour faciliter la lecture. On peut créer des listes en ouvrant un champ d'action et en mettant un seul mot entre apostrophes suivi d'un point\-virgule. On peut mettre plusieurs entrées, séparées par un point\-virgule. +.sp +.RS 3n +.nf + +DPkg::Pre\-Install\-Pkgs {"/usr/sbin/dpkg\-preconfigure \-\-apt";}; +.fi +.RE +.PP +Les modèles +\fI/usr/share/doc/apt/examples/apt.conf\fR +\fI/usr/share/doc/apt/examples/configure\-index.gz\fR +montrent à quoi devrait ressembler le fichier de configuration. +.PP +Deux éléments spéciaux sont autorisés\ : +#include +et +#clear. +#include +inclut le fichier donné en argument, à moins que le nom ne se termine par une barre oblique. +#clear +sert à effacer une liste de noms. +.PP +Tous les outils d'APT possèdent une option +\fB\-o\fR +qui permet de spécifier une configuration arbitraire depuis la ligne de commande. La syntaxe consiste en un nom complet d'option (par exemple +APT::Get::Assume\-Yes) suivi par un signe égal, puis par la nouvelle valeur de l'option. On peut compléter une liste en ajoutant un \(Fo\ ::\ \(Fc au nom de la liste. +.SH "LE GROUPE APT" +.PP +Ce groupe d'options contrôle aussi bien le comportement global d'APT que la prise en compte des options pour chaque outil. +.PP +Architecture +.RS 3n +L'architecture du système\ ; cette option positionne l'architecture à utiliser pour récupérer des fichiers et analyser des listes de paquets. L'architecture interne par défaut est celle pour laquelle APT a été compilé. +.RE +.PP +Ignore\-Hold +.RS 3n +Ignore les paquets \(Fo\ gelés\ \(Fc\ ; cette option globale indique au système de résolution de ne pas tenir compte des paquets \(Fo\ gelés\ \(Fc dans sa prise de décision. +.RE +.PP +Clean\-Installed +.RS 3n +Avec cette option qui est activée par défaut, la fonctionnalité \(Fo\ autoclean\ \(Fc supprime tout paquet qui ne peut plus être récupéré dans le cache. Quand cette option est désactivée, les paquets qui sont installés localement sont aussi exclus du nettoyage \- mais notez que APT ne fournit aucun moyen direct pour les réinstaller. +.RE +.PP +Immediate\-Configure +.RS 3n +Désactive la configuration immédiate\ ; cette dangereuse option désactive une partie du code de mise en ordre de APT pour que ce dernier effectue le moins d'appels possible à Dpkg. C'est peut\-être nécessaire sur des systèmes lents à un seul utilisateur mais c'est extrêmement dangereux et cela peut faire échouer les scripts d'installation, voire pire. Utilisez\-la à vos risques et périls. +.RE +.PP +Force\-LoopBreak +.RS 3n +Ne jamais activer cette option à moins que vous ne sachiez \- réellement \- ce que vous faites. Elle autorise APT à supprimer temporairement un paquet essentiel pour mettre fin à une boucle Conflicts / Conflicts ou Conflicts / Pre\-Depends entre deux paquets essentiels. UNE TELLE BOUCLE NE DOIT JAMAIS SE PRODUIRE\ : C'EST UN BOGUE SÉRIEUX. Cette option fonctionne si les paquets essentiels ne sont pas tar, gzip, libc, dpkg, bash ou tous les paquets dont ces paquets dépendent. +.RE +.PP +Cache\-Limit +.RS 3n +APT utilise un fichier cache d'une taille mémoire fixe pour ranger les informations du fichier \(Fo\ available\ \(Fc. Cette option fixe la taille de ce cache. +.RE +.PP +Build\-Essential +.RS 3n +Cette option définit les paquets qui sont considérés comme faisant partie des dépendances essentielles pour la construction des paquets. +.RE +.PP +Get +.RS 3n +La sous\-section +Get +contrôle l'outil +\fBapt\-get\fR(8), veuillez consulter sa documentation pour avoir plus d'informations sur les options en question. +.RE +.PP +Cache +.RS 3n +La sous\-section +Cache +contrôle l'outil +\fBapt\-cache\fR(8), veuillez consulter sa documentation pour avoir plus d'informations sur les options en question. +.RE +.PP +CDROM +.RS 3n +La sous\-section +CDROM +contrôle l'outil\fBapt\-cdrom\fR(8), veuillez consulter sa documentation pour avoir plus d'informations sur les options en question. +.RE +.SH "LE GROUPE ACQUIRE" +.PP +Le groupe d'options +Acquire +contrôle le téléchargement des paquets et les gestionnaires d'URI. +.PP +Queue\-Mode +.RS 3n +Le mode file d'attente\ ; +Queue\-Mode +peut prendre une valeur parmi +host +ou +access +et cela détermine comment APT parallélise les connexions sortantes. +Host +signifie qu'une connexion par cible sera initiée, tandis que +access +signifie qu'une connexion par type d'URI sera initiée. +.RE +.PP +Retries +.RS 3n +Nombre d'essais à effectuer. Si ce nombre n'est pas nul, APT essaie de récupérer, le nombre donné de fois, les fichiers dont la récupération a échoué. +.RE +.PP +Source\-Symlinks +.RS 3n +Utilise des liens symboliques pour les archives de sources. Positionnée à \(Fo\ true\ \(Fc, cette option crée si possible des liens symboliques vers les archives de sources au lieu de les copier. Par défaut à \(Fo\ true\ \(Fc. +.RE +.PP +http +.RS 3n +URI HTTP ; http::Proxy est le mandataire (proxy) http à utiliser par défaut. Il se présente sous la forme standard\ : +http://[[user][:pass]@]host[:port]/. En utilisant la syntaxe\ : +http::Proxy::, où le mot\-clé spécial +DIRECT +indique de n'utiliser aucun mandataire, on peut spécifier un mandataire pour chaque machine distante. La variable d'environnement +\fBhttp_proxy\fR +remplace tous ces paramètres. +.sp +Trois options de configuration sont fournies pour le contrôle des caches qui sont compatibles avec HTTP/1.1. +No\-Cache +signifie que le mandataire ne doit pas du tout utiliser les réponses qu'il a stockées\ ; +Max\-Age +sert uniquement pour les fichiers d'index\ : cela demande au cache de les mettre à jour quand leur ancienneté est supérieure au nombre de secondes donné. Debian met à jour son fichier d'index de manière journalière, la valeur par défaut est donc de 1 jour. +No\-Store +sert uniquement pour les fichiers d'archive\ : cela demande au cache de ne jamais garder la requête. Cela peut éviter de polluer un cache mandataire avec des fichiers .deb très grands. Note\ : Squid 2.0.2 ne prend en compte aucune de ces options. +.sp +L'option +timeout +positionne le compteur de temps mort (timeout) utilisé par la méthode\ : cela vaut pour tout (connexion, données). +.sp +Une option de configuration est fournie pour contrôler la profondeur du tube pour le cas où un serveur distant n'est pas conforme à la RFC ou est bogué (comme Squid 2.0.2). +Acquire::http::Pipeline\-Depth +a une valeur comprise entre 0 et 5\ : elle indique le nombre de requêtes en attente qui peuvent être émises. Quand la machine distante ne conserve pas correctement les connexions TCP, on DOIT donner une valeur égale à 0 \-\- sinon des données seront corrompues. Les machines qui ont besoin de cette option ne respectent pas la RFC 2068. +.RE +.PP +ftp +.RS 3n +URI FTP ; ftp::Proxy est le serveur mandataire par défaut à utiliser. Il se présente sous la forme standard\ : +ftp://[[user][:pass]@]host[:port]/\ ; il est remplacé par la variable d'environnement +\fBftp_proxy\fR. Pour utiliser un mandataire ftp, vous devez renseigner l'entrée +ftp::ProxyLogin +dans le fichier de configuration. Cette entrée spécifie les commandes qui disent au serveur mandataire comment se connecter. Voyez +\fI/usr/share/doc/apt/examples/configure\-index.gz\fR +pour savoir comment faire. Les variables de substitution disponibles sont\ : +$(PROXY_USER), +$(PROXY_PASS), +$(SITE_USER), +$(SITE_PASS), +$(SITE), et +$(SITE_PORT). Chacune correspond à un élément de l'URI. +.sp +L'option +timeout +positionne le compteur de temps mort (timeout) utilisé par la méthode\ : cela vaut pour tout (connexion, données). +.sp +Plusieurs options de configuration sont fournies pour contrôler le mode passif. Généralement, c'est plus sûr d'activer le mode passif\ ; cela marche dans presque tous les environnements. Cependant, certaines situations nécessitent que le mode passif soit désactivé et que le mode \(Fo\ port\ \(Fc de ftp soit utilisé à la place. On peut le faire globalement, pour des connexions qui passent par un mandataire ou pour une machine spécifique (examinez le modèle de fichier de configuration). +.sp +On peut utiliser un mandataire FTP pour atteindre une cible HTTP en positionnant la variable d'environnement +\fBftp_proxy\fR +à une url http \-\- consultez la méthode http ci\-dessus pour la syntaxe. On ne peut pas fixer cette variable dans le fichier de configuration et il n'est pas recommandé d'utiliser HTTP par FTP à cause de son peu d'efficacité. +.sp +L'option +ForceExtended +contrôle l'utilisation des commandes liées à la RFC 2428, +EPSV +et +EPRT. Par défaut, elle vaut \(Fo\ false\ \(Fc\ ; ce qui signifie que ces commandes ne sont utilisées que pour une connexion de type IPv6. Quand elle vaut \(Fo\ true\ \(Fc, on les utilise même si la connexion est de type IPv4. La plupart des serveurs FTP ne suivent pas la RFC 2428. +.RE +.PP +cdrom +.RS 3n +URI CDROM\ ; la seule option de configuration pour les URI de CDROM est le point de montage\ : +cdrom::Mount\ ; il doit représenter le point de montage du lecteur de cédérom indiqué dans +\fI/etc/fstab\fR. On peut fournir d'autres commandes de montage et de démontage quand le point de montage ne peut être listé dans le fichier +\fI/etc/fstab\fR +(par exemple, un montage SMB). Syntaxiquement, il faut placer +.sp +.RS 3n +.nf +"/cdrom/"::Mount "foo"; +.fi +.RE +.sp +dans le bloc cdrom. La barre oblique finale est importante. Les commandes de démontage peuvent être spécifiées en utilisant +UMount. +.RE +.PP +gpgv +.RS 3n +URI GPGV ; la seule option pour les URI GPGV est celle qui permet de passer des paramètres à gpgv. +gpgv::Options +Options supplémentaires passées à gpgv. +.RE +.SH "LES RÉPERTOIRES" +.PP +Les répertoires de la section +Dir::State +concernent le système local. +lists +est le répertoire où placer les listes de paquets téléchargés et +status +est le nom du fichier d'état de Dpkg. +preferences +concerne APT\ : c'est le nom du fichier des préférences. +Dir::State +contient le répertoire par défaut préfixé à tous les sous\-éléments, quand ceux\-ci ne commencent pas par +\fI/\fR +ou +\fI./\fR. +.PP + +Dir::Cache +contient les emplacements qui renseignent sur le cache local\ : par exemple, les deux caches de paquets +srcpkgcache +et +pkgcache, et aussi l'endroit où sont placées les archives téléchargées, +Dir::Cache::archives. On peut empêcher la création des caches en laissant leur nom en blanc. Cela ralentit le démarrage mais cela sauve de l'espace disque. Il vaut mieux se passer du cache +pkgcache +plutôt que se passer du cache +srcpkgcache. Comme pour +Dir::State, le répertoire par défaut est contenu dans +Dir::Cache. +.PP + +Dir::Etc +contient l'emplacement des fichiers de configuration, +sourcelist +indique l'emplacement de la liste de sources et +main +est le fichier de configuration par défaut (le modifier n'a aucun effet, à moins qu'on ne le modifie avec le fichier de configuration indiqué par la variable +\fBAPT_CONFIG\fR). +.PP + +Dir::Parts +lit, par ordre d'entrée, tous les fragments de configuration dans le répertoire indiqué. Ensuite, le fichier principal de configuration est chargé. +.PP +Les programmes binaires sont pointés par +Dir::Bin. L'emplacement des gestionnaires de méthodes est indiqué par +Dir::Bin::Methods\ ; +gzip, +Dpkg, +apt\-get, +dpkg\-source, +dpkg\-buildpackage +et +apt\-cache +indiquent l'emplacement des programmes correspondants. +.SH "APT ET DSELECT" +.PP +Quand APT est utilisé comme une méthode de +\fBdselect\fR(8), plusieurs directives contrôlent le comportement par défaut. On les trouve dans la section +DSelect. +.PP +Clean +.RS 3n +Mode de nettoyage du cache\ ; cette variable peut prendre l'une des valeurs suivantes\ : \(Fo\ always\ \(Fc, \(Fo\ prompt\ \(Fc, \(Fo\ auto\ \(Fc, \(Fo\ pre\-auto\ \(Fc et \(Fo\ never\ \(Fc. \(Fo\ always\ \(Fc et \(Fo\ prompt\ \(Fc suppriment tous les paquets du cache après la mise à niveau\ ; \(Fo\ prompt\ \(Fc (valeur par défaut) les supprime après une demande et \(Fo\ auto\ \(Fc ne supprime que les archives qui ne peuvent plus être téléchargées (remplacées, par exemple, par une nouvelle version). \(Fo\ pre\-auto\ \(Fc les supprime avant de récupérer de nouveaux paquets. +.RE +.PP +Options +.RS 3n +Le contenu de cette variable est passé à +\fBapt\-get\fR(8) +avec les options de la ligne de commande quand ce programme est utilisé dans la phase d'installation. +.RE +.PP +UpdateOptions +.RS 3n +Le contenu de cette variable est passé à +\fBapt\-get\fR(8) +avec les options de la ligne de commande quand ce programme est utilisé dans la phase de mise à jour. +.RE +.PP +PromptAfterUpdate +.RS 3n +Si cette option est \(Fo\ vraie\ \(Fc, l'opération [U]pdate de +\fBdselect\fR(8) +interroge toujours l'utilisateur avant de continuer. Par défaut, ce n'est qu'en cas d'erreur que l'on propose à l'utilisateur d'intervenir. +.RE +.SH "COMMENT APT APPELLE DPKG" +.PP +Plusieurs directives de configuration contrôlent la manière dont APT invoque +\fBdpkg\fR(8)\ : elles figurent dans la section +DPkg. +.PP +Options +.RS 3n +Il s'agit d'une liste d'options à passer à dpkg. Les options doivent être déclarées en utilisant la notation de liste et chaque élément de liste est passé comme un seul argument à +\fBdpkg\fR(8). +.RE +.PP +Pre\-Invoke, Post\-Invoke +.RS 3n +Il s'agit d'une liste de commandes shell à exécuter avant ou après l'appel de +\fBdpkg\fR(8). Tout comme pour +Options, on doit utiliser la notation de liste. Les commandes sont appelées dans l'ordre, en utilisant +\fI/bin/sh\fR\ : APT s'arrête dès que l'une d'elles échoue. +.RE +.PP +Pre\-Install\-Pkgs +.RS 3n +Il s'agit d'une liste de commandes shell à exécuter avant d'appeler Dpkg. Tout comme pour +Options, on doit utiliser la notation de liste. Les commandes sont appelées dans l'ordre, en utilisant +\fI/bin/sh\fR\ : APT s'arrête dès que l'une d'elles échoue. Sur l'entrée standard, APT transmet aux commandes les noms de tous les fichiers .deb qu'il va installer, à raison d'un par ligne. +.sp +La deuxième version de ce protocole donne plus de renseignements\ : on obtient la version du protocole, la configuration de APT et les paquets, fichiers ou versions qui ont changé. On autorise cette version en positionnant +DPkg::Tools::Options::cmd::Version +à 2. +cmd +est une commande passée à +Pre\-Install\-Pkgs. +.RE +.PP +Run\-Directory +.RS 3n +APT se place dans ce répertoire avant d'appeler Dpkg\ ; par défaut c'est le répertoire +\fI/\fR. +.RE +.PP +Build\-Options +.RS 3n +Ces options sont passées à +\fBdpkg\-buildpackage\fR(1) +lors de la compilation des paquets\ ; par défaut la signature est désactivée et tous les binaires sont créés. +.RE +.SH "LES OPTIONS DE DÉBOGAGE" +.PP +La plupart des options de la section +debug +n'ont aucun intérêt pour le simple utilisateur\ ; cependant, +Debug::pkgProblemResolver +affiche d'intéressantes informations sur les décisions que prend la commande dist\-upgrade. +Debug::NoLocking +désactive le verrouillage de fichier de manière à ce que APT puisse effectuer quelques opérations sans être \(Fo\ root\ \(Fc et +Debug::pkgDPkgPM +affiche la ligne de commande à chaque appel de Dpkg. +Debug::IdentCdrom +désactive l'inclusion de données de type statfs dans les ID de CDROM. +Debug::Acquire::gpgv +Débogage de la méthode gpgv. +.SH "EXEMPLES" +.PP +Le fichier +\fI/usr/share/doc/apt/examples/configure\-index.gz\fR +contient un modèle de fichier montrant les valeurs par défaut de toutes les options possibles. +.SH "FICHIERS" +.PP + +\fI/etc/apt/apt.conf\fR +.SH "VOIR AUSSI" +.PP + +\fBapt\-cache\fR(8), +\fBapt\-config\fR(8), +\fBapt_preferences\fR(5). +.SH "BOGUES" +.PP +Voyez la +[1]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "TRADUCTION" +.PP +Jérôme Marant. 2000\ ; mise à jour : Philippe Batailler. 2005. +. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "REFERENCES" +.TP 3 +1.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt.conf.fr.5.xml b/doc/fr/apt.conf.fr.5.xml new file mode 100644 index 0000000..88ce461 --- /dev/null +++ b/doc/fr/apt.conf.fr.5.xml @@ -0,0 +1,517 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 Février 2004 + + + +apt.conf +5 + + +apt.conf +Fichier de configuration pour APT + + +Description + +Le fichier apt.conf est le principal fichier de configuration +de la collection d'outils que constitue APT ; tous les outils font appel à ce +fichier de configuration et utilisent un analyseur syntaxique en ligne de +commande commun afin de fournir un environnement uniforme. Quand un outil +d'APT démarre, il lit (si elle existe) la variable d'environnement +APT_CONFIG ; puis il lit les fichiers situés dans +Dir::Etc::Parts ainsi que le principal fichier de configuration +indiqué par Dir::Etc::main ; enfin il applique les options de +la ligne de commande qui annulent les directives de configuration, chargeant, +si nécessaire, d'autres fichiers de configuration. + + +Le fichier de configuration est construit comme un arbre d'options +organisées en groupes fonctionnels. On se sert du double deux points (« :: ») +pour indiquer une option ; par exemple, APT::Get::Assume-Yes est +une option pour le groupe d'outils APT, destinée à l'outil Get. Les options +n'héritent pas des groupes de leurs parents. + + +Syntaxiquement, le langage de configuration est conçu sur le même modèle +que les langages utilisés par des outils ISC tels que bind et dhcp. Une ligne +qui commence par // est un commentaire et elle est ignorée. +Chaque ligne est de la forme : + APT::Get::Assume-Yes "true"; +Le point-virgule final est obligatoire et les guillemets sont optionnels. +On peut déclarer un nouveau champ d'action avec des accolades, comme +suit : + + + +APT { + Get { + Assume-Yes "true"; + Fix-Broken "true"; + }; +}; + + + +avec des retours à la ligne pour faciliter la lecture. On peut créer des +listes en ouvrant un champ d'action et en mettant un seul mot entre +apostrophes suivi d'un point-virgule. On peut mettre plusieurs entrées, +séparées par un point-virgule. + + + +DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; + + + +Les modèles &docdir;examples/apt.conf &configureindex; +montrent à quoi devrait ressembler le fichier de configuration. + + +Deux éléments spéciaux sont autorisés : #include et +#clear. #include inclut le fichier donné en argument, +à moins que le nom ne se termine par une barre oblique. #clear sert à +effacer une liste de noms. + + +Tous les outils d'APT possèdent une option qui permet de +spécifier une configuration arbitraire depuis la ligne de commande. La +syntaxe consiste en un nom complet d'option (par exemple +APT::Get::Assume-Yes) suivi par un signe égal, puis par la nouvelle +valeur de l'option. On peut compléter une liste en ajoutant un « :: » au nom +de la liste. + + + +Le groupe APT + +Ce groupe d'options contrôle aussi bien le comportement global d'APT que +la prise en compte des options pour chaque outil. + + +Architecture + +L'architecture du système ; cette option positionne l'architecture à utiliser +pour récupérer des fichiers et analyser des listes de paquets. L'architecture +interne par défaut est celle pour laquelle APT a été compilé. + + + +Ignore-Hold + +Ignore les paquets « gelés » ; cette option globale indique au +système de résolution de ne pas tenir compte des paquets « gelés » +dans sa prise de décision. + + + +Clean-Installed + +Avec cette option qui est activée par défaut, la fonctionnalité « autoclean » +supprime tout paquet qui ne peut plus être récupéré dans le cache. +Quand cette option est désactivée, les paquets qui sont installés localement +sont aussi exclus du nettoyage - mais notez que APT ne fournit aucun moyen +direct pour les réinstaller. + + + +Immediate-Configure + +Désactive la configuration immédiate ; cette dangereuse option désactive +une partie du code de mise en ordre de APT pour que ce dernier effectue le +moins d'appels possible à Dpkg. C'est peut-être nécessaire sur des systèmes +lents à un seul utilisateur mais c'est extrêmement dangereux et cela peut +faire échouer les scripts d'installation, voire pire. +Utilisez-la à vos risques et périls. + + + +Force-LoopBreak + +Ne jamais activer cette option à moins que vous ne sachiez - réellement - ce +que vous faites. Elle autorise APT à supprimer temporairement un paquet +essentiel pour mettre fin à une boucle Conflicts / Conflicts ou +Conflicts / Pre-Depends entre deux paquets essentiels. UNE TELLE BOUCLE +NE DOIT JAMAIS SE PRODUIRE : C'EST UN BOGUE SÉRIEUX. Cette option +fonctionne si les paquets essentiels ne sont pas tar, gzip, libc, dpkg, bash +ou tous les paquets dont ces paquets dépendent. + + + +Cache-Limit + +APT utilise un fichier cache d'une taille mémoire fixe pour ranger les +informations du fichier « available ». Cette option fixe la taille +de ce cache. + + + +Build-Essential + + Cette option définit les paquets qui sont considérés comme faisant partie +des dépendances essentielles pour la construction des paquets. + + + +Get +La sous-section Get contrôle l'outil &apt-get;, +veuillez consulter +sa documentation pour avoir plus d'informations sur les options en question. + + + +Cache +La sous-section Cache contrôle l'outil &apt-cache;, +veuillez +consulter sa documentation pour avoir plus d'informations sur les options en +question. + + + +CDROM +La sous-section CDROM contrôle l'outil&apt-cdrom;, +veuillez +consulter sa documentation pour avoir plus d'informations sur les options en +question. + + + + + +Le groupe Acquire + +Le groupe d'options Acquire contrôle le téléchargement des paquets et +les gestionnaires d'URI. + + +Queue-Mode + +Le mode file d'attente ; Queue-Mode peut prendre une valeur +parmi host ou access et cela détermine comment APT +parallélise les connexions sortantes. Host signifie qu'une +connexion par cible sera initiée, tandis que access signifie qu'une +connexion par type d'URI sera initiée. + + + +Retries + +Nombre d'essais à effectuer. Si ce nombre n'est pas nul, APT essaie de +récupérer, le nombre donné de fois, les fichiers dont la récupération a échoué. + + + +Source-Symlinks + +Utilise des liens symboliques pour les archives de sources. Positionnée à +« true », cette option crée si possible des liens symboliques vers +les archives de sources au lieu de les copier. +Par défaut à « true ». + + + +http + +URI HTTP ; http::Proxy est le mandataire (proxy) http à utiliser par défaut. +Il se présente sous la forme standard : +http://[[user][:pass]@]host[:port]/. En utilisant la syntaxe : +http::Proxy::<host>, où le mot-clé spécial DIRECT +indique de n'utiliser aucun mandataire, on peut spécifier un mandataire +pour chaque machine distante. La variable d'environnement http_proxy +remplace tous ces paramètres. + + +Trois options de configuration sont fournies pour le contrôle des caches qui +sont compatibles avec HTTP/1.1. No-Cache signifie que le mandataire +ne doit pas du tout utiliser les réponses qu'il a stockées ; Max-Age +sert uniquement pour les fichiers d'index : cela demande au cache de les +mettre à jour quand leur ancienneté est supérieure au nombre de secondes +donné. Debian met à jour son fichier d'index de manière journalière, la +valeur par défaut est donc de 1 jour. No-Store sert uniquement +pour les fichiers d'archive : cela demande au cache de ne jamais garder +la requête. Cela peut éviter de polluer un cache mandataire avec des +fichiers .deb très grands. Note : Squid 2.0.2 ne prend en compte aucune de +ces options. + + +L'option timeout positionne le compteur de temps mort (timeout) +utilisé par la méthode : cela vaut pour tout (connexion, données). + + +Une option de configuration est fournie pour contrôler la profondeur du tube +pour le cas où un serveur distant n'est pas conforme à la RFC ou est bogué +(comme Squid 2.0.2). Acquire::http::Pipeline-Depth a une valeur +comprise entre 0 et 5 : elle indique le nombre de requêtes en attente qui +peuvent être émises. Quand la machine distante ne conserve pas correctement +les connexions TCP, on DOIT donner une valeur égale à 0 -- sinon des +données seront corrompues. Les machines qui ont besoin de cette option +ne respectent pas la RFC 2068. + + + +ftp + +URI FTP ; ftp::Proxy est le serveur mandataire par défaut à utiliser. Il se +présente sous la forme standard : +ftp://[[user][:pass]@]host[:port]/ ; il est remplacé par la +variable d'environnement ftp_proxy. Pour utiliser un mandataire ftp, +vous devez renseigner l'entrée ftp::ProxyLogin dans le fichier de +configuration. Cette entrée spécifie les commandes qui disent au serveur +mandataire comment se connecter. Voyez &configureindex; pour savoir +comment faire. Les variables de substitution disponibles sont : +$(PROXY_USER), $(PROXY_PASS), $(SITE_USER), +$(SITE_PASS), $(SITE), et $(SITE_PORT). +Chacune correspond à un élément de l'URI. + + +L'option timeout positionne le compteur de temps mort (timeout) +utilisé par la méthode : cela vaut pour tout (connexion, données). + + +Plusieurs options de configuration sont fournies pour contrôler le mode +passif. Généralement, c'est plus sûr d'activer le mode passif ; cela +marche dans presque tous les environnements. Cependant, certaines situations +nécessitent que le mode passif soit désactivé et que le mode +« port » de ftp +soit utilisé à la place. On peut le faire globalement, pour des +connexions qui passent par un mandataire ou pour une machine +spécifique (examinez le modèle de fichier de configuration). + + +On peut utiliser un mandataire FTP pour atteindre une cible HTTP en +positionnant la variable d'environnement ftp_proxy à une url http -- +consultez la méthode http ci-dessus pour la syntaxe. On ne peut pas fixer +cette variable dans le fichier de configuration et il n'est pas recommandé +d'utiliser HTTP par FTP à cause de son peu d'efficacité. + + +L'option ForceExtended contrôle l'utilisation des commandes liées +à la RFC 2428, EPSV et EPRT. Par défaut, elle vaut +« false » ; ce qui signifie que ces commandes ne sont +utilisées que pour une connexion de type IPv6. Quand elle vaut +« true », on les utilise même si la connexion est de type IPv4. La +plupart des serveurs FTP ne suivent pas la RFC 2428. + + + +cdrom + +URI CDROM ; la seule option de configuration pour les URI de CDROM +est le point de montage : cdrom::Mount ; il doit +représenter le point de montage du lecteur de cédérom indiqué dans +/etc/fstab. +On peut fournir d'autres commandes de montage et de démontage quand le +point de montage ne peut être listé dans le fichier /etc/fstab +(par exemple, un montage SMB). Syntaxiquement, il faut placer +"/cdrom/"::Mount "foo"; dans le bloc cdrom. +La barre oblique finale est importante. Les commandes de démontage +peuvent être spécifiées en utilisant UMount. + + + + gpgv + +URI GPGV ; la seule option pour les URI GPGV est celle qui permet de + passer des paramètres à gpgv. + gpgv::Options Options supplémentaires passées à + gpgv. + + + + + + + +Les répertoires + +Les répertoires de la section Dir::State concernent le système +local. lists est le répertoire où placer les listes de paquets +téléchargés et status est le nom du fichier d'état de Dpkg. +preferences concerne APT : c'est le nom du fichier des +préférences. +Dir::State contient le répertoire par défaut préfixé à tous les +sous-éléments, quand ceux-ci ne commencent pas par / +ou ./. + + +Dir::Cache contient les emplacements qui renseignent sur le +cache local : par exemple, les deux caches de paquets +srcpkgcache et pkgcache, et aussi l'endroit où sont +placées les archives téléchargées, Dir::Cache::archives. On peut +empêcher la création des caches en laissant leur nom en blanc. Cela ralentit +le démarrage mais cela sauve de l'espace disque. Il vaut mieux se passer du +cache pkgcache plutôt que se passer du cache srcpkgcache. +Comme pour Dir::State, le répertoire par défaut est contenu dans +Dir::Cache. + + +Dir::Etc contient l'emplacement des fichiers de configuration, +sourcelist indique l'emplacement de la liste de sources et +main est le fichier de configuration par défaut (le modifier +n'a aucun effet, à moins qu'on ne le modifie avec le fichier de +configuration indiqué par la variable APT_CONFIG). + + +Dir::Parts lit, par ordre d'entrée, tous les fragments de +configuration dans le répertoire indiqué. Ensuite, le fichier principal +de configuration est chargé. + + +Les programmes binaires sont pointés par Dir::Bin. +L'emplacement des gestionnaires de méthodes est indiqué par +Dir::Bin::Methods ; gzip, +Dpkg, apt-get, +dpkg-source, dpkg-buildpackage +et apt-cache +indiquent l'emplacement des programmes correspondants. + + + +APT et DSelect + +Quand APT est utilisé comme une méthode de &dselect;, plusieurs directives +contrôlent le comportement par défaut. On les trouve dans la section +DSelect. + + + +Clean + +Mode de nettoyage du cache ; cette variable peut prendre l'une des valeurs +suivantes : « always », « prompt », +« auto », « pre-auto » et « never ». +« always » et « prompt » suppriment tous les paquets du +cache après la mise à niveau ; « prompt » (valeur par défaut) +les supprime après une demande et « auto » ne supprime que les +archives qui ne peuvent plus être téléchargées (remplacées, par exemple, par +une nouvelle version). « pre-auto » les supprime avant de récupérer +de nouveaux paquets. + + + +Options + +Le contenu de cette variable est passé à &apt-get; avec les options de la ligne +de commande quand ce programme est utilisé dans la phase d'installation. + + +UpdateOptions + +Le contenu de cette variable est passé à &apt-get; avec les options de la +ligne de commande quand ce programme est utilisé dans la phase de mise à jour. + + + +PromptAfterUpdate + +Si cette option est « vraie », l'opération [U]pdate de &dselect; +interroge toujours l'utilisateur avant de continuer. Par défaut, ce n'est +qu'en cas d'erreur que l'on propose à l'utilisateur d'intervenir. + + + + + +Comment APT appelle Dpkg + +Plusieurs directives de configuration contrôlent la manière dont APT +invoque &dpkg; : elles figurent dans la section DPkg. + + +Options + +Il s'agit d'une liste d'options à passer à dpkg. Les options doivent être +déclarées en utilisant la notation de liste et chaque élément de liste est +passé comme un seul argument à &dpkg;. + + +Pre-InvokePost-Invoke + +Il s'agit d'une liste de commandes shell à exécuter avant ou après l'appel de +&dpkg;. Tout comme pour Options, on doit utiliser la notation de +liste. Les commandes sont appelées dans l'ordre, en utilisant +/bin/sh : APT s'arrête dès que l'une d'elles échoue. + + +Pre-Install-Pkgs + +Il s'agit d'une liste de commandes shell à exécuter avant d'appeler Dpkg. +Tout comme pour Options, on doit utiliser la notation de liste. +Les commandes sont appelées dans l'ordre, en utilisant +/bin/sh : APT s'arrête dès que l'une d'elles échoue. Sur +l'entrée standard, APT transmet aux commandes les noms de tous les fichiers +.deb qu'il va installer, à raison d'un par ligne. + + +La deuxième version de ce protocole donne plus de renseignements : on +obtient la version du protocole, la configuration de APT et les paquets, +fichiers ou versions qui ont changé. On autorise cette version en positionnant +DPkg::Tools::Options::cmd::Version à 2. cmd est une +commande passée à Pre-Install-Pkgs. + + +Run-Directory + +APT se place dans ce répertoire avant d'appeler Dpkg ; par défaut c'est +le répertoire /. + + +Build-Options + +Ces options sont passées à &dpkg-buildpackage; lors de la compilation des +paquets ; par défaut la signature est désactivée et tous les binaires sont +créés. + + + + + +Les options de débogage + +La plupart des options de la section debug n'ont aucun intérêt +pour le simple utilisateur ; cependant, +Debug::pkgProblemResolver affiche d'intéressantes informations sur +les décisions que prend la commande dist-upgrade. Debug::NoLocking +désactive le verrouillage de fichier de manière à ce que APT puisse effectuer +quelques opérations sans être « root » et +Debug::pkgDPkgPM affiche la ligne de commande à chaque appel de +Dpkg. Debug::IdentCdrom désactive l'inclusion de +données de type statfs dans les ID de CDROM. +Debug::Acquire::gpgv Débogage de la méthode gpgv. + + + +Exemples + +Le fichier &configureindex; contient un modèle de fichier montrant les valeurs par +défaut de toutes les options possibles. + + + +Fichiers + /etc/apt/apt.conf + + +Voir aussi + +&apt-cache;, &apt-config;, &apt-preferences;. + + +&manbugs; +&deux-traducteurs; + \ No newline at end of file diff --git a/doc/fr/apt.ent.fr b/doc/fr/apt.ent.fr new file mode 100644 index 0000000..d705b9e --- /dev/null +++ b/doc/fr/apt.ent.fr @@ -0,0 +1,272 @@ + + + + +&docdir;examples/configure-index.gz"> +/etc/apt.conf"> + + + + + + apt.conf + 5 + " +> + + + apt-get + 8 + " +> + + + apt-config + 8 + " +> + + + apt-cdrom + 8 + " +> + + + apt-cache + 8 + " +> + + + apt_preferences + 5 + " +> + + + apt-key + 8 + " +> + + + apt-secure + 8 + " +> + + + apt-archive + 1 + " +> + + + sources.list + 5 + +"> + + + reportbug + 1 + " +> + + + dpkg + 8 + " +> + + + dpkg-buildpackage + 1 + " +> + + + gzip + 1 + " +> + + + dpkg-scanpackages + 8 + " +> + + + dpkg-scansources + 8 + " +> + + + dselect + 8 + " +> + + + aptitude + 8 + " +> + + + synaptic + 8 + " +> + + + debsign + 1 + " +> + + + debsig-verify + 1 + " +> + + + gpg + 1 + " +> + + + +

apt@packages.debian.org
+ Jason Gunthorpe + 1998-2001 Jason Gunthorpe + 14 décembre 2003 + Linux + +"> + + + apt@packages.debian.org + +"> + + + Jason + Gunthorpe +
+"> + + + APT team + +"> + +Linux +"> + + apt@packages.debian.org + +"> + + + Jason Gunthorpe + 1998-2001 +
+"> + + + +Bogues + +Voyez la page concernant les bogues d'APT. + Si vous voulez signaler un bogue, consultez le texte + /usr/share/doc/debian/bug-reporting.txt ou utilisez la +commande &reportbug;. + " +> + + +Auteur + + APT a été écrit par l'équipe APT apt@packages.debian.org. + + " +> + + +Traduction + +Jérôme Marant. 2000 ; mise à jour : Philippe Batailler. 2005. +debian-l10n-french@lists.debian.org. +" +> + +Traduction + +Philippe Batailler. debian-l10n-french@lists.debian.org. 2005. + +"> + + + + + +Affiche un mode d'emploi succinct. + + + + + + +Affiche la version du programme. + + + + + + +Fichier de configuration ; indique quel fichier de configuration utiliser. +Le programme lit le fichier de configuration par défaut, puis celui-ci. +Voyez &apt-conf; pour la syntaxe. + + + + + + +Donne une option de configuration ; cela fixe une option de configuration +arbitraire. La syntaxe est : . + + +"> + + + +Toutes les options en ligne de commande peuvent être positionnées via le +fichier de configuration ; les descriptifs indiquent l'option de +configuration à positionner. En ce qui concerne les options booléennes, +on peut annuler le fichier de configuration en utilisant quelque chose comme +,, +ou d'autres variantes. + +"> diff --git a/doc/fr/apt_preferences.5 b/doc/fr/apt_preferences.5 new file mode 100644 index 0000000..f443c99 --- /dev/null +++ b/doc/fr/apt_preferences.5 @@ -0,0 +1,516 @@ +.\" Title: apt_preferences +.\" Author: APT team +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 Février 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT_PREFERENCES" "5" "29 Février 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt_preferences \- Un fichier de contrôle des préférences pour APT +.SH "DESCRIPTION" +.PP +Le fichier d'APT, +\fI/etc/apt/preferences\fR, peut être utilisé pour choisir la version des paquets que l'on veut installer. +.PP +Quand le fichier +\fBsources.list\fR(5)contient des références à plusieurs distributions (par exemple, +stable +et +testing), plusieurs versions d'un paquet peuvent être installées. APT affecte une priorité à chaque version disponible. La commande +\fBapt\-get\fR, tenant compte des contraintes de dépendance, installe la version qui possède la priorité la plus haute. Le fichier des préférences annule les priorités assignées par défaut aux versions des paquets\ : ainsi l'utilisateur peut choisir la version qu'il veut installer. +.PP +Si le fichier +\fBsources.list\fR(5)contient, pour une même distribution, des références à plusieurs sites de téléchargement, il peut exister plusieurs exemplaires de la même version d'un paquet. Dans ce cas, +\fBapt\-get\fR +télécharge l'exemplaire qui apparaît en premier dans le fichier +\fBsources.list\fR(5). Le fichier des préférences n'influe pas sur le choix des exemplaires, seulement sur le choix de la version. +.SS "Les priorités affectées par défaut" +.PP +Quand le fichier des préférences n'existe pas, ou quand aucune entrée de ce fichier ne s'applique à une version précise, la priorité affectée à cette version est la priorité de la distribution à laquelle elle appartient. On peut distinguer une distribution et lui donner une priorité plus haute que celle des autres distributions\ : on l'appelle la distribution par défaut ou \(Fo\ target release\ \(Fc et elle peut être définie sur la ligne de commande de +\fBapt\-get\fR +ou dans le fichier de configuration d'APT, +\fI/etc/apt/apt.conf\fR. Par exemple\ : +.sp +.RS 3n +.nf +\fBapt\-get install \-t testing \fR\fB\fIpaquet\fR\fR +.fi +.RE +.sp + +.sp +.RS 3n +.nf +APT::Default\-Release "stable"; +.fi +.RE +.sp +.PP +Quand une distribution par défaut a été indiquée, APT utilise l'algorithme suivant pour déterminer la priorité des versions d'un paquet\ : +.PP +une priorité égale à 100 +.RS 3n +est affectée à la version déjà installée (si elle existe). +.RE +.PP +une priorité égale à 500 +.RS 3n +est affectée aux versions qui ne sont pas installées et qui n'appartiennent pas à la distribution par défaut. +.RE +.PP +une priorité égale à 990 +.RS 3n +est affectée aux versions qui ne sont pas installées et qui appartiennent à la distribution par défaut. +.RE +.PP +Quand aucune distribution par défaut n'a été indiquée, APT affecte simplement une priorité égale à 100 à toute version installée d'un paquet et une priorité égale à 500 à tout version non installée. +.PP +Puis APT applique les règles suivantes pour déterminer la version du paquet qu'il faut installer (elles sont listées par ordre de priorité)\ : +.TP 3n +\(bu +Ne jamais revenir en arrière, sauf si la priorité d'une version disponible dépasse 1000. \(Fo\ Revenir en arrière\ \(Fc signifie installer une version moins récente que la version installée. Il faut noter qu'aucune des priorités par défaut n'excède 1000\ ; de telles valeurs ne peuvent être définies que dans le fichier des préférences. Notez aussi qu'il est risqué de revenir en arrière. +.TP 3n +\(bu +Installer la version qui possède la priorité la plus haute. +.TP 3n +\(bu +Quand deux (ou plus) versions ont la même priorité, installer la version la plus récente (c.\-à\-d. celle dont le numéro de version est le plus grand). +.TP 3n +\(bu +Quand deux (ou plus) versions ont la même priorité et le même numéro de version, mais soit les paquets diffèrent par certaines métadonnées, soit l'option +\-\-reinstall +a été donnée, installer la version qui n'est pas installée. +.sp +.RE +.PP +En général, la version installée d'un paquet (priorité 100) n'est pas aussi récente que les versions disponibles dans les sources listées dans le fichier +\fBsources.list\fR(5)(priorité 500 ou 990). Et donc le paquet sera mis à niveau avec la commande\ : +\fBapt\-get install \fR\fB\fIpaquet\fR\fR +ou +\fBapt\-get dist\-upgrade\fR. +.PP +La version installée d'un paquet peut être \- rarement \- +\fIplus\fR +récente que tout autre version disponible. Les commandes +\fBapt\-get install \fR\fB\fIpaquet\fR\fR +ou +\fBapt\-get upgrade\fR +ne provoquent pas de retour en arrière. +.PP +Parfois, la version installée d'un paquet est plus récente que la version appartenant à la distribution par défaut, mais moins récente que la version appartenant à une autre distribution. Une telle version sera mise à niveau par les commandes +\fBapt\-get install \fR\fB\fIpaquet\fR\fR +ou +\fBapt\-get upgrade\fR +car au moins +\fIl'une\fR +des versions disponibles possède une plus haute priorité que celle de la version installée. +.SS "Conséquences des préférences" +.PP +Le fichier des préférences permet à l'administrateur système de contrôler l'affectation des priorités. Ce fichier est constitué d'une ou plusieurs entrées séparées par des lignes blanches. Ces entrées peuvent avoir deux formes, une forme particulière et une forme générale. +.TP 3n +\(bu +La forme particulière affecte une priorité (\fIPin\-Priority\fR) à un paquet précis, à une version précise ou à un intervalle spécifiant plusieurs versions. Par exemple, l'entrée suivante affecte une priorité haute à toutes les versions du paquet +\fIperl\fR +dont le numéro de version commence par +5.8. +.sp +.RS 3n +.nf +Package: perl +Pin: version 5.8* +Pin\-Priority: 1001 +.fi +.RE +.TP 3n +\(bu +La forme générale affecte une priorité à toutes les versions d'un paquet dans une distribution donnée (c'est\-à\-dire, à toutes les versions d'un paquet qui sont listées dans un fichier +\fIRelease\fR), ou à toutes les versions d'un paquet provenant d'un site internet identifié par un nom complètement qualifié. +.sp +Cette forme générale des entrées du fichier des préférences s'applique seulement aux groupes de paquets. Par exemple, l'entrée suivante affecte une priorité haute à toutes les versions disponibles dans le site local. +.sp +.RS 3n +.nf +Package: * +Pin: origin "" +Pin\-Priority: 999 +.fi +.RE +Attention ! le mot\-clé utilisé ici, +origin, ne doit pas être confondu avec l'Origine d'une distribution indiquée dans un fichier +\fIRelease\fR. Ce qui suit l'étiquette \(Fo\ Origin:\ \(Fc dans un fichier +\fIRelease\fR +n'est pas une adresse internet mais le nom d'un auteur ou d'un distributeur, comme Debian ou Ximian. +.sp +L'entrée suivante affecte une priorité basse à toutes les versions d'un paquet appartenant à toute distribution dont le nom d'\(Fo\ Archive\ \(Fc est +unstable. +.sp +.RS 3n +.nf +Package: * +Pin: release a=unstable +Pin\-Priority: 50 +.fi +.RE +L'entrée suivante affecte une priorité haute à toutes les versions d'un paquet appartenant à toute distribution dont le nom d'\(Fo\ Archive\ \(Fc est +stable +et dont le numéro de \(Fo\ Version\ \(Fc est +3.0. +.sp +.RS 3n +.nf +Package: * +Pin: release a=stable, v=3.0 +Pin\-Priority: 500 +.fi +.RE +.sp +.RE +.SS "Comment APT interprète\-t\-il les priorités\ ?" +.PP +Les priorités (P) indiquées dans le fichier des préférences doivent être des entiers positifs ou négatifs. Ils sont interprétés à peu près comme suit\ : +.PP +P > 1000 +.RS 3n +Cette priorité entraîne l'installation du paquet même s'il s'agit d'un retour en arrière. +.RE +.PP +990 < P <=1000 +.RS 3n +La version sera installée, même si elle n'appartient pas à la distribution par défaut\ ; mais elle ne sera pas installée si la version installée est plus récente. +.RE +.PP +500 < P <=990 +.RS 3n +La version sera installée, sauf s'il existe une version appartenant à la distribution par défaut ou si la version installée est plus récente. +.RE +.PP +100 < P <=500 +.RS 3n +La version sera installée, sauf s'il existe une version appartenant à une autre distribution ou si la version installée est plus récente. +.RE +.PP +0 < P <=100 +.RS 3n +La version sera installée si aucune version du paquet n'est installée. +.RE +.PP +P < 0 +.RS 3n +Cette priorité empêche l'installation de la version. +.RE +.PP +Si l'une des entrées de forme particulière correspond à la version disponible d'un paquet, la première entrée trouvée détermine la priorité de cette version. S'il n'en existe pas, et si l'une des entrées de forme générale correspond à la version disponible d'un paquet, la première entrée trouvée détermine la priorité. +.PP +Supposons par exemple que le fichier des préférences contienne les trois entrées décrites ci\-dessous\ : +.sp +.RS 3n +.nf +Package: perl +Pin: version 5.8* +Pin\-Priority: 1001 + +Package: * +Pin: origin "" +Pin\-Priority: 999 + +Package: * +Pin: release unstable +Pin\-Priority: 50 +.fi +.RE +.PP +Alors\ : +.TP 3n +\(bu +La version la plus récente du paquet +perl +sera installé pour autant que son numéro de version commence par +5.8. Si l'\fIune\fR +des versions 5.8* existe et si la version installée est une version 5.9*, il y aura un retour en arrière. +.TP 3n +\(bu +Les versions des paquets (autres que +perl) disponibles dans le site local ont priorité sur les autres versions, même celles appartenant à la distribution par défaut. +.TP 3n +\(bu +La version d'un paquet dont l'origine n'est pas le site local mais un site internet listé dans +\fBsources.list\fR(5)et qui appartient à une distribution +unstable, ne sera installée que si aucune version du paquet n'est déjà installée. +.sp +.RE +.SS "Détermination de la version des paquets et des propriétés des distributions" +.PP +Chaque source listée dans le fichier +\fBsources.list\fR(5)doit fournir les fichiers +\fIPackages\fR +et +\fIRelease\fR +qui décrivent les paquets disponibles à cet endroit. +.PP +Le fichier +\fIPackages\fR +se trouve normalement dans le répertoire +\fI.../dists/\fR\fI\fIdist\-name\fR\fR\fI/\fR\fI\fIcomponent\fR\fR\fI/\fR\fI\fIarch\fR\fR, par exemple, +\fI.../dists/stable/main/binary\-i386/Packages\fR. Il consiste en entrées composées de lignes, une pour chaque paquet disponible dans le répertoire. Seules deux lignes des entrées sont pertinentes pour la détermination des priorités\ : +.PP +La ligne Package: +.RS 3n +donne le nom du paquet +.RE +.PP +La ligne Version: +.RS 3n +donne le numéro de version du paquet +.RE +.PP +Le fichier +\fIRelease\fR +se trouve normalement dans le répertoire +\fI.../dists/\fR\fI\fIdist\-name\fR\fR, par exemple, +\fI.../dists/stable/Release\fR, ou +\fI.../dists/woody/Release\fR. Il consiste en une seule entrée composée de plusieurs lignes qui s'applique à +\fItous\fR +les paquets situés dans les répertoires sous le répertoire parent. Contrairement au fichier +\fIPackages\fR, presque toutes les lignes du fichier +\fIRelease\fR +sont pertinentes pour déterminer les priorités\ : +.PP +La ligne Archive: +.RS 3n +nomme l'archive à laquelle appartiennent tous les paquets situés dans les répertoires. Par exemple, la ligne +Archive: stable +indique que tous les paquets dans les répertoires situés sous le répertoire parent du fichier +\fIRelease\fR +appartiennent à l'archive +stable. Indiquer cette valeur dans le fichier des préférences demanderait cette ligne\ : +.sp +.RS 3n +.nf +Pin: release a=stable +.fi +.RE +.RE +.PP +La ligne Version: +.RS 3n +indique la version de la distribution. Par exemple, les paquets dans les répertoires peuvent appartenir à la distribution Debian GNU/Linux version 3.0. Il n'y a pas de numéro de version pour les distributions +testing +et +unstable +car elles n'ont pas encore été publiées. Indiquer cette valeur dans le fichier des préférences demanderait ces lignes\ : +.sp +.RS 3n +.nf +Pin: release v=3.0 +Pin: release a=stable, v=3.0 +Pin: release 3.0 +.fi +.RE +.RE +.PP +La ligne Component: +.RS 3n +nomme un composant qui indique le type de licence associée aux paquets situés dans les répertoires sous le fichier +\fIRelease\fR. Par exemple, la ligne +Component: main +indique que tous les exemplaires dans les répertoires appartiennent au composant +main, c'est\-à\-dire que leur licence est en accord avec les Directives Debian pour le logiciel libre. Indiquer ce composant dans le fichier des préférences demanderait cette ligne\ : +.sp +.RS 3n +.nf +Pin: release c=main +.fi +.RE +.RE +.PP +La ligne Origin: +.RS 3n +nomme l'origine des paquets situés dans les répertoires sous le fichier +\fIRelease\fR. En général, c'est +Debian. Indiquer cette origine dans le fichier des préférences demanderait cette ligne\ : +.sp +.RS 3n +.nf +Pin: release o=Debian +.fi +.RE +.RE +.PP +La ligne Label: +.RS 3n +indique un label pour les paquets qui se trouvent dans les répertoires sous le fichier +\fIRelease\fR. En général, c'est +Debian. Indiquer cette origine dans le fichier des préférences demanderait cette ligne\ : +.sp +.RS 3n +.nf +Pin: release l=Debian +.fi +.RE +.RE +.PP +Tous les fichiers +\fIPackages\fR +et +\fIRelease\fR +récupérés dans des sources listées par le fichier +\fBsources.list\fR(5)sont conservés dans le répertoire +\fI/var/lib/apt/lists\fR +ou dans le fichier spécifié par la variable +Dir::State::Lists +dans le fichier +\fIapt.conf\fR. Par exemple, le fichier +\fIdebian.lcs.mit.edu_debian_dists_unstable_contrib_binary\-i386_Release\fR +contient le fichier +\fIRelease\fR +du site +debian.lcs.mit.edu, architecture +binary\-i386 +et composant +contrib +de la distribution +unstable. +.SS "Lignes facultatives dans le fichier des préférences" +.PP +Toute entrée du fichier des préférences peut commencer par une ou plusieurs lignes contenant le mot +Explanation:. Cela permet des commentaires. +.PP +La ligne +Pin\-Priority: +d'une entrée est facultative. Si elle n'existe pas, APT affecte une priorité inférieure de 1 à la valeur spécifiée sur une ligne commençant par +Pin\-Priority: release .... +.SH "EXEMPLES" +.SS "Comment suivre Stable\ ?" +.PP +Le fichier des préférences suivant affecte une priorité plus haute que la priorité par défaut (500) à tous les exemplaires appartenant à la distribution +stable +et une priorité prohibitivement basse à tous les exemplaires appartenant à d'autres distributions +Debian. +.sp +.RS 3n +.nf +Explanation: Ne pas installer des exemplaires d'origine Debian +Explanation: sauf ceux de la distribution stable +Package: * +Pin: release a=stable +Pin\-Priority: 900 + +Package: * +Pin: release o=Debian +Pin\-Priority: \-10 +.fi +.RE +.sp +.PP +Avec le fichier des préférences ci\-dessus et un fichier +\fBsources.list\fR(5)adéquat, les commandes suivantes utiliseront les versions les plus récentes de +stable +pour faire la mise à niveau\ : +.sp +.RS 3n +.nf +apt\-get install \fIpaquet\fR +apt\-get upgrade +apt\-get dist\-upgrade +.fi +.RE +.sp +.PP +La commande suivante utilisera la version la plus récente de la distribution +testing +pour mettre à niveau le paquet spécifié\ ; cependant les mises à niveau ultérieures du paquet ne se feront pas à moins de relancer la commande. +.sp +.RS 3n +.nf +apt\-get install \fIpaquet\fR/testing +.fi +.RE +.sp +.SS "Comment suivre Testing ou Unstable\ ?" +.PP +Le fichier des préférences suivant affecte une priorité haute aux versions des paquets appartenant à la distribution +testing, une priorité moindre aux versions appartenant à la distribution +unstable +et une priorité prohibitivement basse aux versions appartenant à d'autres distributions +Debian. +.sp +.RS 3n +.nf +Package: * +Pin: release a=testing +Pin\-Priority: 900 + +Package: * +Pin: release a=unstable +Pin\-Priority: 800 + +Package: * +Pin: release o=Debian +Pin\-Priority: \-10 +.fi +.RE +.sp +.PP +Avec un fichier +\fBsources.list\fR(5)approprié et le fichier des préférences ci\-dessus, les commandes suivantes utiliseront les versions les plus récentes de +testing +pour faire la mise à niveau\ : +.sp +.RS 3n +.nf +apt\-get install \fIpaquet\fR +apt\-get upgrade +apt\-get dist\-upgrade +.fi +.RE +.sp +.PP +La commande suivante utilisera la version la plus récente de la distribution +unstable +pour mettre à niveau le paquet spécifié\ ; Par la suite, +\fBapt\-get upgrade\fR +mettra le paquet à jour avec la plus récente version dans +testing +si elle est plus récente que la version installée ou avec la plus récente version dans +unstable +si elle est plus récente que la version installée. +.sp +.RS 3n +.nf +apt\-get install \fIpaquet\fR/unstable +.fi +.RE +.sp +.SH "SEE ALSO" +.PP + +\fBapt\-get\fR(8) +\fBapt\-cache\fR(8) +\fBapt.conf\fR(5) +\fBsources.list\fR(5) +.SH "BOGUES" +.PP +Voyez la +[1]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "TRADUCTION" +.PP +Philippe Batailler. +. 2005. +.SH "AUTEUR" +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "REFERENCES" +.TP 3 +1.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt_preferences.fr.5 b/doc/fr/apt_preferences.fr.5 new file mode 100644 index 0000000..f443c99 --- /dev/null +++ b/doc/fr/apt_preferences.fr.5 @@ -0,0 +1,516 @@ +.\" Title: apt_preferences +.\" Author: APT team +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 Février 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT_PREFERENCES" "5" "29 Février 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +apt_preferences \- Un fichier de contrôle des préférences pour APT +.SH "DESCRIPTION" +.PP +Le fichier d'APT, +\fI/etc/apt/preferences\fR, peut être utilisé pour choisir la version des paquets que l'on veut installer. +.PP +Quand le fichier +\fBsources.list\fR(5)contient des références à plusieurs distributions (par exemple, +stable +et +testing), plusieurs versions d'un paquet peuvent être installées. APT affecte une priorité à chaque version disponible. La commande +\fBapt\-get\fR, tenant compte des contraintes de dépendance, installe la version qui possède la priorité la plus haute. Le fichier des préférences annule les priorités assignées par défaut aux versions des paquets\ : ainsi l'utilisateur peut choisir la version qu'il veut installer. +.PP +Si le fichier +\fBsources.list\fR(5)contient, pour une même distribution, des références à plusieurs sites de téléchargement, il peut exister plusieurs exemplaires de la même version d'un paquet. Dans ce cas, +\fBapt\-get\fR +télécharge l'exemplaire qui apparaît en premier dans le fichier +\fBsources.list\fR(5). Le fichier des préférences n'influe pas sur le choix des exemplaires, seulement sur le choix de la version. +.SS "Les priorités affectées par défaut" +.PP +Quand le fichier des préférences n'existe pas, ou quand aucune entrée de ce fichier ne s'applique à une version précise, la priorité affectée à cette version est la priorité de la distribution à laquelle elle appartient. On peut distinguer une distribution et lui donner une priorité plus haute que celle des autres distributions\ : on l'appelle la distribution par défaut ou \(Fo\ target release\ \(Fc et elle peut être définie sur la ligne de commande de +\fBapt\-get\fR +ou dans le fichier de configuration d'APT, +\fI/etc/apt/apt.conf\fR. Par exemple\ : +.sp +.RS 3n +.nf +\fBapt\-get install \-t testing \fR\fB\fIpaquet\fR\fR +.fi +.RE +.sp + +.sp +.RS 3n +.nf +APT::Default\-Release "stable"; +.fi +.RE +.sp +.PP +Quand une distribution par défaut a été indiquée, APT utilise l'algorithme suivant pour déterminer la priorité des versions d'un paquet\ : +.PP +une priorité égale à 100 +.RS 3n +est affectée à la version déjà installée (si elle existe). +.RE +.PP +une priorité égale à 500 +.RS 3n +est affectée aux versions qui ne sont pas installées et qui n'appartiennent pas à la distribution par défaut. +.RE +.PP +une priorité égale à 990 +.RS 3n +est affectée aux versions qui ne sont pas installées et qui appartiennent à la distribution par défaut. +.RE +.PP +Quand aucune distribution par défaut n'a été indiquée, APT affecte simplement une priorité égale à 100 à toute version installée d'un paquet et une priorité égale à 500 à tout version non installée. +.PP +Puis APT applique les règles suivantes pour déterminer la version du paquet qu'il faut installer (elles sont listées par ordre de priorité)\ : +.TP 3n +\(bu +Ne jamais revenir en arrière, sauf si la priorité d'une version disponible dépasse 1000. \(Fo\ Revenir en arrière\ \(Fc signifie installer une version moins récente que la version installée. Il faut noter qu'aucune des priorités par défaut n'excède 1000\ ; de telles valeurs ne peuvent être définies que dans le fichier des préférences. Notez aussi qu'il est risqué de revenir en arrière. +.TP 3n +\(bu +Installer la version qui possède la priorité la plus haute. +.TP 3n +\(bu +Quand deux (ou plus) versions ont la même priorité, installer la version la plus récente (c.\-à\-d. celle dont le numéro de version est le plus grand). +.TP 3n +\(bu +Quand deux (ou plus) versions ont la même priorité et le même numéro de version, mais soit les paquets diffèrent par certaines métadonnées, soit l'option +\-\-reinstall +a été donnée, installer la version qui n'est pas installée. +.sp +.RE +.PP +En général, la version installée d'un paquet (priorité 100) n'est pas aussi récente que les versions disponibles dans les sources listées dans le fichier +\fBsources.list\fR(5)(priorité 500 ou 990). Et donc le paquet sera mis à niveau avec la commande\ : +\fBapt\-get install \fR\fB\fIpaquet\fR\fR +ou +\fBapt\-get dist\-upgrade\fR. +.PP +La version installée d'un paquet peut être \- rarement \- +\fIplus\fR +récente que tout autre version disponible. Les commandes +\fBapt\-get install \fR\fB\fIpaquet\fR\fR +ou +\fBapt\-get upgrade\fR +ne provoquent pas de retour en arrière. +.PP +Parfois, la version installée d'un paquet est plus récente que la version appartenant à la distribution par défaut, mais moins récente que la version appartenant à une autre distribution. Une telle version sera mise à niveau par les commandes +\fBapt\-get install \fR\fB\fIpaquet\fR\fR +ou +\fBapt\-get upgrade\fR +car au moins +\fIl'une\fR +des versions disponibles possède une plus haute priorité que celle de la version installée. +.SS "Conséquences des préférences" +.PP +Le fichier des préférences permet à l'administrateur système de contrôler l'affectation des priorités. Ce fichier est constitué d'une ou plusieurs entrées séparées par des lignes blanches. Ces entrées peuvent avoir deux formes, une forme particulière et une forme générale. +.TP 3n +\(bu +La forme particulière affecte une priorité (\fIPin\-Priority\fR) à un paquet précis, à une version précise ou à un intervalle spécifiant plusieurs versions. Par exemple, l'entrée suivante affecte une priorité haute à toutes les versions du paquet +\fIperl\fR +dont le numéro de version commence par +5.8. +.sp +.RS 3n +.nf +Package: perl +Pin: version 5.8* +Pin\-Priority: 1001 +.fi +.RE +.TP 3n +\(bu +La forme générale affecte une priorité à toutes les versions d'un paquet dans une distribution donnée (c'est\-à\-dire, à toutes les versions d'un paquet qui sont listées dans un fichier +\fIRelease\fR), ou à toutes les versions d'un paquet provenant d'un site internet identifié par un nom complètement qualifié. +.sp +Cette forme générale des entrées du fichier des préférences s'applique seulement aux groupes de paquets. Par exemple, l'entrée suivante affecte une priorité haute à toutes les versions disponibles dans le site local. +.sp +.RS 3n +.nf +Package: * +Pin: origin "" +Pin\-Priority: 999 +.fi +.RE +Attention ! le mot\-clé utilisé ici, +origin, ne doit pas être confondu avec l'Origine d'une distribution indiquée dans un fichier +\fIRelease\fR. Ce qui suit l'étiquette \(Fo\ Origin:\ \(Fc dans un fichier +\fIRelease\fR +n'est pas une adresse internet mais le nom d'un auteur ou d'un distributeur, comme Debian ou Ximian. +.sp +L'entrée suivante affecte une priorité basse à toutes les versions d'un paquet appartenant à toute distribution dont le nom d'\(Fo\ Archive\ \(Fc est +unstable. +.sp +.RS 3n +.nf +Package: * +Pin: release a=unstable +Pin\-Priority: 50 +.fi +.RE +L'entrée suivante affecte une priorité haute à toutes les versions d'un paquet appartenant à toute distribution dont le nom d'\(Fo\ Archive\ \(Fc est +stable +et dont le numéro de \(Fo\ Version\ \(Fc est +3.0. +.sp +.RS 3n +.nf +Package: * +Pin: release a=stable, v=3.0 +Pin\-Priority: 500 +.fi +.RE +.sp +.RE +.SS "Comment APT interprète\-t\-il les priorités\ ?" +.PP +Les priorités (P) indiquées dans le fichier des préférences doivent être des entiers positifs ou négatifs. Ils sont interprétés à peu près comme suit\ : +.PP +P > 1000 +.RS 3n +Cette priorité entraîne l'installation du paquet même s'il s'agit d'un retour en arrière. +.RE +.PP +990 < P <=1000 +.RS 3n +La version sera installée, même si elle n'appartient pas à la distribution par défaut\ ; mais elle ne sera pas installée si la version installée est plus récente. +.RE +.PP +500 < P <=990 +.RS 3n +La version sera installée, sauf s'il existe une version appartenant à la distribution par défaut ou si la version installée est plus récente. +.RE +.PP +100 < P <=500 +.RS 3n +La version sera installée, sauf s'il existe une version appartenant à une autre distribution ou si la version installée est plus récente. +.RE +.PP +0 < P <=100 +.RS 3n +La version sera installée si aucune version du paquet n'est installée. +.RE +.PP +P < 0 +.RS 3n +Cette priorité empêche l'installation de la version. +.RE +.PP +Si l'une des entrées de forme particulière correspond à la version disponible d'un paquet, la première entrée trouvée détermine la priorité de cette version. S'il n'en existe pas, et si l'une des entrées de forme générale correspond à la version disponible d'un paquet, la première entrée trouvée détermine la priorité. +.PP +Supposons par exemple que le fichier des préférences contienne les trois entrées décrites ci\-dessous\ : +.sp +.RS 3n +.nf +Package: perl +Pin: version 5.8* +Pin\-Priority: 1001 + +Package: * +Pin: origin "" +Pin\-Priority: 999 + +Package: * +Pin: release unstable +Pin\-Priority: 50 +.fi +.RE +.PP +Alors\ : +.TP 3n +\(bu +La version la plus récente du paquet +perl +sera installé pour autant que son numéro de version commence par +5.8. Si l'\fIune\fR +des versions 5.8* existe et si la version installée est une version 5.9*, il y aura un retour en arrière. +.TP 3n +\(bu +Les versions des paquets (autres que +perl) disponibles dans le site local ont priorité sur les autres versions, même celles appartenant à la distribution par défaut. +.TP 3n +\(bu +La version d'un paquet dont l'origine n'est pas le site local mais un site internet listé dans +\fBsources.list\fR(5)et qui appartient à une distribution +unstable, ne sera installée que si aucune version du paquet n'est déjà installée. +.sp +.RE +.SS "Détermination de la version des paquets et des propriétés des distributions" +.PP +Chaque source listée dans le fichier +\fBsources.list\fR(5)doit fournir les fichiers +\fIPackages\fR +et +\fIRelease\fR +qui décrivent les paquets disponibles à cet endroit. +.PP +Le fichier +\fIPackages\fR +se trouve normalement dans le répertoire +\fI.../dists/\fR\fI\fIdist\-name\fR\fR\fI/\fR\fI\fIcomponent\fR\fR\fI/\fR\fI\fIarch\fR\fR, par exemple, +\fI.../dists/stable/main/binary\-i386/Packages\fR. Il consiste en entrées composées de lignes, une pour chaque paquet disponible dans le répertoire. Seules deux lignes des entrées sont pertinentes pour la détermination des priorités\ : +.PP +La ligne Package: +.RS 3n +donne le nom du paquet +.RE +.PP +La ligne Version: +.RS 3n +donne le numéro de version du paquet +.RE +.PP +Le fichier +\fIRelease\fR +se trouve normalement dans le répertoire +\fI.../dists/\fR\fI\fIdist\-name\fR\fR, par exemple, +\fI.../dists/stable/Release\fR, ou +\fI.../dists/woody/Release\fR. Il consiste en une seule entrée composée de plusieurs lignes qui s'applique à +\fItous\fR +les paquets situés dans les répertoires sous le répertoire parent. Contrairement au fichier +\fIPackages\fR, presque toutes les lignes du fichier +\fIRelease\fR +sont pertinentes pour déterminer les priorités\ : +.PP +La ligne Archive: +.RS 3n +nomme l'archive à laquelle appartiennent tous les paquets situés dans les répertoires. Par exemple, la ligne +Archive: stable +indique que tous les paquets dans les répertoires situés sous le répertoire parent du fichier +\fIRelease\fR +appartiennent à l'archive +stable. Indiquer cette valeur dans le fichier des préférences demanderait cette ligne\ : +.sp +.RS 3n +.nf +Pin: release a=stable +.fi +.RE +.RE +.PP +La ligne Version: +.RS 3n +indique la version de la distribution. Par exemple, les paquets dans les répertoires peuvent appartenir à la distribution Debian GNU/Linux version 3.0. Il n'y a pas de numéro de version pour les distributions +testing +et +unstable +car elles n'ont pas encore été publiées. Indiquer cette valeur dans le fichier des préférences demanderait ces lignes\ : +.sp +.RS 3n +.nf +Pin: release v=3.0 +Pin: release a=stable, v=3.0 +Pin: release 3.0 +.fi +.RE +.RE +.PP +La ligne Component: +.RS 3n +nomme un composant qui indique le type de licence associée aux paquets situés dans les répertoires sous le fichier +\fIRelease\fR. Par exemple, la ligne +Component: main +indique que tous les exemplaires dans les répertoires appartiennent au composant +main, c'est\-à\-dire que leur licence est en accord avec les Directives Debian pour le logiciel libre. Indiquer ce composant dans le fichier des préférences demanderait cette ligne\ : +.sp +.RS 3n +.nf +Pin: release c=main +.fi +.RE +.RE +.PP +La ligne Origin: +.RS 3n +nomme l'origine des paquets situés dans les répertoires sous le fichier +\fIRelease\fR. En général, c'est +Debian. Indiquer cette origine dans le fichier des préférences demanderait cette ligne\ : +.sp +.RS 3n +.nf +Pin: release o=Debian +.fi +.RE +.RE +.PP +La ligne Label: +.RS 3n +indique un label pour les paquets qui se trouvent dans les répertoires sous le fichier +\fIRelease\fR. En général, c'est +Debian. Indiquer cette origine dans le fichier des préférences demanderait cette ligne\ : +.sp +.RS 3n +.nf +Pin: release l=Debian +.fi +.RE +.RE +.PP +Tous les fichiers +\fIPackages\fR +et +\fIRelease\fR +récupérés dans des sources listées par le fichier +\fBsources.list\fR(5)sont conservés dans le répertoire +\fI/var/lib/apt/lists\fR +ou dans le fichier spécifié par la variable +Dir::State::Lists +dans le fichier +\fIapt.conf\fR. Par exemple, le fichier +\fIdebian.lcs.mit.edu_debian_dists_unstable_contrib_binary\-i386_Release\fR +contient le fichier +\fIRelease\fR +du site +debian.lcs.mit.edu, architecture +binary\-i386 +et composant +contrib +de la distribution +unstable. +.SS "Lignes facultatives dans le fichier des préférences" +.PP +Toute entrée du fichier des préférences peut commencer par une ou plusieurs lignes contenant le mot +Explanation:. Cela permet des commentaires. +.PP +La ligne +Pin\-Priority: +d'une entrée est facultative. Si elle n'existe pas, APT affecte une priorité inférieure de 1 à la valeur spécifiée sur une ligne commençant par +Pin\-Priority: release .... +.SH "EXEMPLES" +.SS "Comment suivre Stable\ ?" +.PP +Le fichier des préférences suivant affecte une priorité plus haute que la priorité par défaut (500) à tous les exemplaires appartenant à la distribution +stable +et une priorité prohibitivement basse à tous les exemplaires appartenant à d'autres distributions +Debian. +.sp +.RS 3n +.nf +Explanation: Ne pas installer des exemplaires d'origine Debian +Explanation: sauf ceux de la distribution stable +Package: * +Pin: release a=stable +Pin\-Priority: 900 + +Package: * +Pin: release o=Debian +Pin\-Priority: \-10 +.fi +.RE +.sp +.PP +Avec le fichier des préférences ci\-dessus et un fichier +\fBsources.list\fR(5)adéquat, les commandes suivantes utiliseront les versions les plus récentes de +stable +pour faire la mise à niveau\ : +.sp +.RS 3n +.nf +apt\-get install \fIpaquet\fR +apt\-get upgrade +apt\-get dist\-upgrade +.fi +.RE +.sp +.PP +La commande suivante utilisera la version la plus récente de la distribution +testing +pour mettre à niveau le paquet spécifié\ ; cependant les mises à niveau ultérieures du paquet ne se feront pas à moins de relancer la commande. +.sp +.RS 3n +.nf +apt\-get install \fIpaquet\fR/testing +.fi +.RE +.sp +.SS "Comment suivre Testing ou Unstable\ ?" +.PP +Le fichier des préférences suivant affecte une priorité haute aux versions des paquets appartenant à la distribution +testing, une priorité moindre aux versions appartenant à la distribution +unstable +et une priorité prohibitivement basse aux versions appartenant à d'autres distributions +Debian. +.sp +.RS 3n +.nf +Package: * +Pin: release a=testing +Pin\-Priority: 900 + +Package: * +Pin: release a=unstable +Pin\-Priority: 800 + +Package: * +Pin: release o=Debian +Pin\-Priority: \-10 +.fi +.RE +.sp +.PP +Avec un fichier +\fBsources.list\fR(5)approprié et le fichier des préférences ci\-dessus, les commandes suivantes utiliseront les versions les plus récentes de +testing +pour faire la mise à niveau\ : +.sp +.RS 3n +.nf +apt\-get install \fIpaquet\fR +apt\-get upgrade +apt\-get dist\-upgrade +.fi +.RE +.sp +.PP +La commande suivante utilisera la version la plus récente de la distribution +unstable +pour mettre à niveau le paquet spécifié\ ; Par la suite, +\fBapt\-get upgrade\fR +mettra le paquet à jour avec la plus récente version dans +testing +si elle est plus récente que la version installée ou avec la plus récente version dans +unstable +si elle est plus récente que la version installée. +.sp +.RS 3n +.nf +apt\-get install \fIpaquet\fR/unstable +.fi +.RE +.sp +.SH "SEE ALSO" +.PP + +\fBapt\-get\fR(8) +\fBapt\-cache\fR(8) +\fBapt.conf\fR(5) +\fBsources.list\fR(5) +.SH "BOGUES" +.PP +Voyez la +[1]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "TRADUCTION" +.PP +Philippe Batailler. +. 2005. +.SH "AUTEUR" +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "REFERENCES" +.TP 3 +1.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/apt_preferences.fr.5.xml b/doc/fr/apt_preferences.fr.5.xml new file mode 100644 index 0000000..aba9f0d --- /dev/null +++ b/doc/fr/apt_preferences.fr.5.xml @@ -0,0 +1,581 @@ + + +%aptent; + +]> + + + + + &apt-author.team; + &apt-email; + &apt-product; + + 29 Février 2004 + + + +apt_preferences +5 + + + +apt_preferences +Un fichier de contrôle des préférences pour APT + + +Description + +Le fichier d'APT, /etc/apt/preferences, peut être utilisé pour +choisir la version des paquets que l'on veut installer. + +Quand le fichier &sources-list; contient des références à plusieurs +distributions (par exemple, stable et +testing), plusieurs versions d'un paquet peuvent être +installées. APT affecte une priorité à chaque version disponible. La commande +apt-get, tenant compte des contraintes de +dépendance, installe la version qui possède la priorité la plus haute. +Le fichier des préférences annule les priorités assignées par défaut +aux versions des paquets : ainsi l'utilisateur peut choisir la version +qu'il veut installer. + + +Si le fichier &sources-list; contient, pour une même distribution, +des références à plusieurs sites de téléchargement, il peut exister plusieurs +exemplaires de la même version d'un paquet. Dans ce cas, +apt-get télécharge l'exemplaire qui apparaît en premier +dans le fichier &sources-list;. Le fichier des préférences n'influe pas sur +le choix des exemplaires, seulement sur le choix de la version. + + +Les priorités affectées par défaut + +Quand le fichier des préférences n'existe pas, ou quand aucune entrée +de ce fichier ne s'applique à une version précise, la priorité affectée à +cette version est la priorité de la distribution à laquelle elle appartient. +On peut distinguer une distribution et lui donner une priorité plus haute +que celle des autres distributions : on l'appelle la distribution par +défaut ou « target release » et elle peut être définie sur la ligne +de commande de apt-get ou dans le fichier de configuration +d'APT, /etc/apt/apt.conf. +Par exemple : + + +apt-get install -t testing paquet + + + +APT::Default-Release "stable"; + + + +Quand une distribution par défaut a été indiquée, APT utilise +l'algorithme suivant pour déterminer la priorité des versions d'un +paquet : + + +une priorité égale à 100 +est affectée à la version déjà installée (si elle existe). + + +une priorité égale à 500 +est affectée aux versions qui ne sont pas installées et +qui n'appartiennent pas à la distribution par défaut. + + +une priorité égale à 990 +est affectée aux versions qui ne sont pas installées et +qui appartiennent à la distribution par défaut. + + + + +Quand aucune distribution par défaut n'a été indiquée, APT affecte +simplement une priorité égale à 100 à toute version installée d'un paquet +et une priorité égale à 500 à tout version non installée. + + +Puis APT applique les règles suivantes pour déterminer la version +du paquet qu'il faut installer (elles sont listées par ordre de priorité) : + + + +Ne jamais revenir en arrière, sauf si la priorité d'une +version disponible dépasse 1000. « Revenir en arrière » signifie +installer une version moins récente que la version installée. Il +faut noter qu'aucune des priorités par défaut n'excède 1000 ; de telles +valeurs ne peuvent être définies que dans le fichier des préférences. Notez +aussi qu'il est risqué de revenir en arrière. + + +Installer la version qui possède la priorité la plus +haute. + + +Quand deux (ou plus) versions ont la même priorité, +installer la version la plus récente (c.-à-d. celle dont le numéro de +version est le plus grand). + + +Quand deux (ou plus) versions ont la même priorité et le +même numéro de version, mais soit les paquets diffèrent par certaines +métadonnées, soit l'option --reinstall a été donnée, installer la +version qui n'est pas installée. + + + + +En général, la version installée d'un paquet (priorité 100) n'est +pas aussi récente que les versions disponibles dans les sources +listées dans le fichier &sources-list; (priorité 500 ou 990). Et donc le +paquet sera mis à niveau avec la commande : +apt-get install paquet ou +apt-get dist-upgrade. + + +La version installée d'un paquet peut être - rarement - +plus récente que tout autre version disponible. Les commandes +apt-get install paquet ou +apt-get upgrade ne provoquent pas de retour en arrière. + + +Parfois, la version installée d'un paquet est plus récente que la +version appartenant à la distribution par défaut, mais moins récente que +la version appartenant à une autre distribution. Une telle version sera mise +à niveau par les commandes +apt-get install paquet ou +apt-get upgrade car au moins l'une des versions +disponibles possède une plus haute priorité que celle de la version installée. + + + +Conséquences des préférences + +Le fichier des préférences permet à l'administrateur système de +contrôler l'affectation des priorités. Ce fichier est constitué d'une ou +plusieurs entrées séparées par des lignes blanches. Ces entrées peuvent avoir +deux formes, une forme particulière et une forme générale. + + +La forme particulière affecte une priorité +(Pin-Priority) à un paquet précis, à une version précise +ou à un intervalle spécifiant plusieurs versions. Par exemple, l'entrée +suivante affecte une priorité haute à toutes les versions du paquet +perl dont le numéro de version commence par 5.8. + + + +Package: perl +Pin: version 5.8* +Pin-Priority: 1001 + + + + +La forme générale affecte une priorité à toutes les versions d'un paquet dans +une distribution donnée (c'est-à-dire, à toutes les versions d'un paquet qui +sont listées dans un fichier Release), ou à toutes les versions +d'un paquet provenant d'un site internet identifié par un nom complètement +qualifié. + + +Cette forme générale des entrées du fichier des préférences +s'applique seulement aux groupes de paquets. Par exemple, l'entrée suivante +affecte une priorité haute à toutes les versions disponibles dans le +site local. + + + +Package: * +Pin: origin "" +Pin-Priority: 999 + + +Attention ! le mot-clé utilisé ici, origin, ne doit pas +être confondu avec l'Origine d'une distribution indiquée dans +un fichier Release. Ce qui suit l'étiquette « Origin: » +dans un fichier Release n'est pas une adresse internet +mais le nom d'un auteur ou d'un distributeur, comme Debian ou Ximian. + +L'entrée suivante affecte une priorité basse à toutes les versions +d'un paquet appartenant à toute distribution dont le nom +d'« Archive » est unstable. + + + +Package: * +Pin: release a=unstable +Pin-Priority: 50 + + +L'entrée suivante affecte une priorité haute à toutes les versions +d'un paquet appartenant à toute distribution dont le nom +d'« Archive » est stable et dont le numéro +de « Version » est 3.0. + + + +Package: * +Pin: release a=stable, v=3.0 +Pin-Priority: 500 + + + + + + + +Comment APT interprète-t-il les priorités ? + +Les priorités (P) indiquées dans le fichier des préférences doivent +être des entiers positifs ou négatifs. Ils sont interprétés à peu près +comme suit : + + +P > 1000 + +Cette priorité entraîne l'installation du paquet même s'il +s'agit d'un retour en arrière. + + + +990 < P <=1000 + +La version sera installée, même si elle n'appartient pas à +la distribution par défaut ; mais elle ne sera pas installée si la +version installée est plus récente. + + + +500 < P <=990 + +La version sera installée, sauf s'il existe une version +appartenant à la distribution par défaut ou si la version installée est plus +récente. + + + +100 < P <=500 + +La version sera installée, sauf s'il existe une version +appartenant à une autre distribution ou si la version installée est plus +récente. + + + +0 < P <=100 + +La version sera installée si aucune version du paquet +n'est installée. + + + +P < 0 + +Cette priorité empêche l'installation de la version. + + + + + +Si l'une des entrées de forme particulière correspond à la version +disponible d'un paquet, la première entrée trouvée détermine la priorité de +cette version. S'il n'en existe pas, et si l'une des entrées de forme générale +correspond à la version disponible d'un paquet, la première entrée trouvée +détermine la priorité. + + +Supposons par exemple que le fichier des préférences contienne les trois +entrées décrites ci-dessous : + + + +Package: perl +Pin: version 5.8* +Pin-Priority: 1001 + +Package: * +Pin: origin "" +Pin-Priority: 999 + +Package: * +Pin: release unstable +Pin-Priority: 50 + + + +Alors : + + + +La version la plus récente du paquet perl sera +installé pour autant que son numéro de version commence par 5.8. +Si l'une des versions 5.8* existe et si la version installée est +une version 5.9*, il y aura un retour en arrière. + + +Les versions des paquets (autres que perl) +disponibles dans le site local ont priorité sur les autres versions, +même celles appartenant à la distribution par défaut. + + +La version d'un paquet dont l'origine n'est pas le site +local mais un site internet listé dans &sources-list; et qui appartient à une +distribution unstable, ne sera installée que si aucune version +du paquet n'est déjà installée. + + + + + +Détermination de la version des paquets et des propriétés des +distributions + +Chaque source listée dans le fichier &sources-list; doit fournir +les fichiers Packages et Release +qui décrivent les paquets disponibles à cet endroit. + +Le fichier Packages se trouve normalement dans le +répertoire +.../dists/dist-name/component/arch, par exemple, +.../dists/stable/main/binary-i386/Packages. Il consiste +en entrées composées de lignes, une pour chaque paquet disponible dans le +répertoire. Seules deux lignes des entrées sont pertinentes pour la +détermination des priorités : + + +La ligne Package: + +donne le nom du paquet + + + +La ligne Version: + +donne le numéro de version du paquet + + + + + +Le fichier Release se trouve normalement dans le +répertoire +.../dists/dist-name, par exemple, .../dists/stable/Release, ou .../dists/woody/Release. +Il consiste en une seule entrée composée de plusieurs lignes qui s'applique à +tous les paquets situés dans les répertoires sous +le répertoire parent. Contrairement au fichier Packages, presque +toutes les lignes du fichier Release sont pertinentes pour +déterminer les priorités : + + + +La ligne Archive: + +nomme l'archive à laquelle appartiennent tous les +paquets situés dans les répertoires. Par exemple, la ligne +Archive: stable indique que tous les paquets dans les répertoires +situés sous le répertoire parent du fichier Release appartiennent +à l'archive stable. Indiquer cette valeur dans le fichier des +préférences demanderait cette ligne : + + +Pin: release a=stable + + + + + +La ligne Version: + +indique la version de la distribution. Par exemple, les +paquets dans les répertoires peuvent appartenir à la +distribution Debian GNU/Linux version 3.0. Il n'y a pas de numéro de version +pour les distributions testing et unstable car elles +n'ont pas encore été publiées. Indiquer cette valeur dans le fichier des préférences demanderait +ces lignes : + + +Pin: release v=3.0 +Pin: release a=stable, v=3.0 +Pin: release 3.0 + + + + + +La ligne Component: + +nomme un composant qui indique le type de licence associée +aux paquets situés dans les répertoires sous le fichier +Release. Par exemple, la ligne Component: main indique +que tous les exemplaires dans les répertoires appartiennent au composant +main, c'est-à-dire que leur licence est en accord avec les +Directives Debian pour le logiciel libre. Indiquer ce composant dans le +fichier des préférences demanderait cette ligne : + + +Pin: release c=main + + + + + +La ligne Origin: + +nomme l'origine des paquets situés +dans les répertoires sous le fichier Release. En général, c'est +Debian. Indiquer cette origine dans le fichier des préférences +demanderait cette ligne : + + +Pin: release o=Debian + + + + + +La ligne Label: + +indique un label pour les paquets qui se trouvent +dans les répertoires sous le fichier Release. En général, c'est +Debian. Indiquer cette origine dans le fichier des préférences +demanderait cette ligne : + + +Pin: release l=Debian + + + + + +Tous les fichiers Packages et +Release récupérés dans des sources listées par le +fichier &sources-list; sont conservés dans le répertoire +/var/lib/apt/lists ou dans le fichier spécifié par la +variable Dir::State::Lists dans le fichier apt.conf. +Par exemple, le fichier +debian.lcs.mit.edu_debian_dists_unstable_contrib_binary-i386_Release +contient le fichier Release du site +debian.lcs.mit.edu, architecture binary-i386 et +composant contrib de la distribution unstable. + + + +Lignes facultatives dans le fichier des préférences + +Toute entrée du fichier des préférences peut commencer par une ou +plusieurs lignes contenant le mot Explanation:. Cela permet des +commentaires. + +La ligne Pin-Priority: d'une entrée est facultative. Si elle +n'existe pas, APT affecte une priorité inférieure de 1 à la valeur spécifiée +sur une ligne commençant par Pin-Priority: release .... + + + + + +Exemples +Comment suivre Stable ? + +Le fichier des préférences suivant affecte une priorité plus haute que +la priorité par défaut (500) à tous les exemplaires appartenant à la +distribution stable et une priorité prohibitivement basse à tous +les exemplaires appartenant à d'autres distributions Debian. + + +Explanation: Ne pas installer des exemplaires d'origine Debian +Explanation: sauf ceux de la distribution stable +Package: * +Pin: release a=stable +Pin-Priority: 900 + +Package: * +Pin: release o=Debian +Pin-Priority: -10 + + + +Avec le fichier des préférences ci-dessus et un fichier &sources-list; +adéquat, les commandes suivantes utiliseront les versions les plus récentes +de stable pour faire la mise à niveau : + + +apt-get install paquet +apt-get upgrade +apt-get dist-upgrade + + + +La commande suivante utilisera la version la plus récente de la +distribution testing pour mettre à niveau le paquet spécifié ; +cependant les mises à niveau ultérieures du paquet ne se feront pas +à moins de relancer la commande. + + +apt-get install paquet/testing + + + + +Comment suivre Testing ou Unstable ? + +Le fichier des préférences suivant affecte une priorité haute aux +versions des paquets appartenant à la distribution testing, une +priorité moindre aux versions appartenant à la distribution unstable +et une priorité prohibitivement basse aux versions appartenant à d'autres +distributions Debian. + + +Package: * +Pin: release a=testing +Pin-Priority: 900 + +Package: * +Pin: release a=unstable +Pin-Priority: 800 + +Package: * +Pin: release o=Debian +Pin-Priority: -10 + + + +Avec un fichier &sources-list; approprié et le fichier des préférences +ci-dessus, les commandes suivantes +utiliseront les versions les plus récentes de testing pour faire +la mise à niveau : + + +apt-get install paquet +apt-get upgrade +apt-get dist-upgrade + + + +La commande suivante utilisera la version la plus récente de la +distribution unstable pour mettre à niveau le paquet spécifié ; +Par la suite, apt-get upgrade mettra le paquet à jour +avec la plus récente version dans testing si elle est plus récente +que la version installée ou avec la plus récente version dans +unstable si elle est plus récente que la version installée. + + +apt-get install paquet/unstable + + + + + +See Also + +&apt-get; &apt-cache; &apt-conf; &sources-list; + + + + &manbugs; +&traducteur; + diff --git a/doc/fr/makefile b/doc/fr/makefile new file mode 100644 index 0000000..c650dc0 --- /dev/null +++ b/doc/fr/makefile @@ -0,0 +1,63 @@ +# -*- make -*- +BASE=../.. +SUBDIR=doc/fr + +# Bring in the default rules +include ../../buildlib/defaults.mak + +# Do not use XMLTO, build the manpages directly with XSLTPROC +XSLTPROC=/usr/bin/xsltproc +STYLESHEET=./style.fr.xsl + + +# Man pages +SOURCE = apt-cache.fr.8 apt-get.fr.8 apt-cdrom.fr.8 apt.conf.fr.5 \ + sources.list.fr.5 apt-config.fr.8 apt-sortpkgs.fr.1 \ + apt-ftparchive.fr.1 apt_preferences.fr.5 apt-extracttemplates.fr.1 \ + apt-key.fr.8 apt-secure.fr.8 + +INCLUDES = apt.ent.fr + +doc: $(SOURCE) + +$(SOURCE) :: % : %.xml $(INCLUDES) + echo Creating man page $@ + $(XSLTPROC) -o $@ $(STYLESHEET) $< + +apt-cache.fr.8:: apt-cache.8 + cp $< $@ + +apt-get.fr.8:: apt-get.8 + cp $< $@ + +apt-cdrom.fr.8:: apt-cdrom.8 + cp $< $@ + +apt.conf.fr.5:: apt.conf.5 + cp $< $@ + +apt-config.fr.8:: apt-config.8 + cp $< $@ + +sources.list.fr.5:: sources.list.5 + cp $< $@ + +apt-sortpkgs.fr.1:: apt-sortpkgs.1 + cp $< $@ + +apt-ftparchive.fr.1:: apt-ftparchive.1 + cp $< $@ + +apt_preferences.fr.5:: apt_preferences.5 + cp $< $@ + +apt-extracttemplates.fr.1:: apt-extracttemplates.1 + cp $< $@ + +apt-key.fr.8:: apt-key.8 + cp $< $@ + +apt-secure.fr.8:: apt-secure.8 + cp $< $@ + + diff --git a/doc/fr/sources.list.5 b/doc/fr/sources.list.5 new file mode 100644 index 0000000..a77df4b --- /dev/null +++ b/doc/fr/sources.list.5 @@ -0,0 +1,259 @@ +.\" Title: sources.list +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "SOURCES.LIST" "5" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +sources.list \- Liste des sources de paquets +.SH "DESCRIPTION" +.PP +La liste des sources de paquets indique où trouver les archives du système de distribution de paquets utilisé. Pour l'instant, cette page de manuel ne documente que le système d'empaquetage utilisé par le système Debian GNU/Linux. Ce fichier de contrôle est +\fI/etc/apt/sources.list\fR. +.PP +La liste des sources est conçue pour prendre en compte un nombre quelconque de sources actives et différents média. Le fichier présente une source par ligne et la source préférée apparaît en premier. Le format de chaque ligne est\ : +type uri args. Le premier élément, +type, détermine le format des +args. +uri +est un identificateur universel de ressources (URI), qui est un sur\-ensemble du plus spécifique et bien connu repère universel de ressources, ou URL. La fin de la ligne peut être un commentaire commençant par un caractère #. +.SH "SOURCES.LIST.D" +.PP +Le répertoire +\fI/etc/apt/sources.list.d\fR +permet de lister des sources de paquets dans des fichiers distincts qui se terminent par +.list. Leur format est le même que celui du fichier +\fIsources.list\fR. +.SH "LES TYPES DEB ET DEB\-SRC." +.PP +Le type +deb +décrit une archive Debian classique à deux niveaux, +\fIdistribution/composant\fR. +distribution +peut prendre l'une des valeurs suivantes\ : +stable, +unstable, ou +testing, et composant\ : +main, +contrib, +non\-free, ou +non\-us. Le type +deb\-src +décrit le code source pour une distribution Debian dans le même format que le type +deb. Une ligne +deb\-src +est nécessaire pour récupérer les index des sources. +.PP +Le format d'une entrée dans +\fIsources.list\fR +utilisant les types +deb +et +deb\-src +est de la forme\ : +.sp +.RS 3n +.nf +deb uri distribution [composant1] [composant2] [...] +.fi +.RE +.PP +L'URI de type +deb +doit indiquer la base de la distribution Debian dans laquelle APT trouvera les informations dont il a besoin. +distribution +peut spécifier le chemin exact\ : dans ce cas, on doit omettre les composants et +distribution +doit se terminer par une barre oblique (/). C'est utile quand seule une sous\-section particulière de l'archive décrite par cet URI est intéressante. Quand +distribution +n'indique pas un chemin exact, un +composant +au moins doit être présent. +.PP + +distribution +peut aussi contenir une variable +$(ARCH), qui sera remplacée par l'architecture Debian (i386, m68k, powerpc, ...) sur laquelle s'exécute le système. On peut ainsi utiliser un fichier +\fIsources.list\fR +qui ne dépend pas d'une architecture. En général, ce n'est intéressant que si l'on indique un chemin exact\ ; sinon +APT +crée automatiquement un URI en fonction de l'architecture effective. +.PP +Puisqu'on ne peut indiquer qu'une seule distribution par ligne, il peut être nécessaire de disposer le même URI sur plusieurs lignes quand on veut accéder à un sous\-ensemble des distributions ou composants disponibles à cette adresse. APT trie les URI après avoir crée pour lui\-même la liste complète\ ; il regroupe les références multiples au même hôte Internet en vue d'une connexion unique et il évite ainsi, par exemple, d'établir une connexion FTP, de la fermer, faire autre chose, puis d'établir encore cette connexion. Cette fonctionnalité permet l'accès à des sites FTP surchargés qui limitent le nombre de connexions simultanées pour les utilisateurs anonymes. APT parallélise aussi les connexions à différents hôtes pour tirer plus efficacement parti des sites à faible bande passante. +.PP +Il est important d'indiquer les sources par ordre de préférence, la source principale apparaissant en premier. Un tri est fait, de la plus rapide à la plus lente\ ; par exemple, un cédérom suivi par les hôtes d'un réseau local, puis les hôtes distants. +.PP +Voici quelques exemples\ : +.sp +.RS 3n +.nf +deb http://http.us.debian.org/debian stable main contrib non\-free +deb http://http.us.debian.org/debian dists/stable\-updates/ + +.fi +.RE +.SH "LA SPÉCIFICATION DES URI" +.PP +Les URI actuellement reconnus sont\ : cdrom, file, http et ftp. +.PP +file +.RS 3n +Le procédé +file +permet qu'un répertoire arbitraire au sein du système de fichier soit considéré comme une archive. On s'en sert avec les montages NFS, les miroirs et les archives locaux. +.RE +.PP +cdrom +.RS 3n +Le procédé +cdrom +permet l'utilisation d'un lecteur de cédérom avec la possibilité de changer de media. Utilisez le programme +\fBapt\-cdrom\fR(8) +pour créer des entrées dans la liste des sources. +.RE +.PP +http +.RS 3n +Le procédé +http +indique un serveur HTTP comme archive. Si une variable d'environnement +\fBhttp_proxy\fR +(au format http://server:port/) existe, le serveur mandataire indiqué par +\fBhttp_proxy\fR +est utilisé. Quand un serveur mandataire HTTP/1.1 demande une authentification, on peut utiliser la chaîne http://user:pass@server:port/. Notez qu'il s'agit d'une méthode d'authentification peu sûre. +.RE +.PP +ftp +.RS 3n +Le procédé +ftp +indique un serveur FTP comme archive. Le fonctionnement en mode ftp est largement configurable\ ; référez\-vous à la page de manuel de +\fBapt\-cdrom\fR(8) +pour d'autres informations. On remarquera qu'on peut indiquer un mandataire ftp avec la variable d'environnement +\fBftp_proxy\fR. On peut aussi spécifier un mandataire http (les serveurs mandataires http comprennent souvent les URL ftp) en utilisant cette méthode et SEULEMENT cette méthode. Les mandataires ftp utilisant http et qui sont spécifiés dans le fichier de configuration seront ignorés. +.RE +.PP +copy +.RS 3n +Le procédé +copy +est identique au procédé +file +excepté que les paquets sont copiés dans le cache du répertoire au lieu d'être utilisés directement depuis leur emplacement. C'est utile aux gens qui utilisent un disque zip pour recopier des fichiers avec APT. +.RE +.PP +rsh, ssh +.RS 3n +Le procédé rsh/ssh utilise rsh/ssh pour se connecter à une machine distante en tant que tel utilisateur donné et pour accéder aux fichiers. Aucune authentification par mot de passe n'est possible\ : il faut au préalable régler ce problème avec des clés RSA ou bien rhosts. Pour l'accès aux fichiers de la machine distante et le transfert, on utilise les commandes standard +\fBfind\fR +et +\fBdd\fR. +.RE +.SH "EXEMPLES" +.PP +Utiliser l'archive stockée localement (ou montée via NFS) dans /home/jason/debian pour stable/main, stable/contrib et stable/non\-free. +.sp +.RS 3n +.nf +deb file:/home/jason/debian stable main contrib non\-free +.fi +.RE +.PP +Comme ci\-dessus, excepté que cette ligne utilise la distribution \(Fo\ unstable\ \(Fc (développement). +.sp +.RS 3n +.nf +deb file:/home/jason/debian unstable main contrib non\-free +.fi +.RE +.PP +La précédente ligne, mais pour les sources. +.sp +.RS 3n +.nf +deb\-src file:/home/jason/debian unstable main contrib non\-free +.fi +.RE +.PP +Utiliser HTTP pour accéder à l'archive située à archive.debian.org, et n'utiliser que la section hamm/main. +.sp +.RS 3n +.nf +deb http://archive.debian.org/debian\-archive hamm main +.fi +.RE +.PP +Utiliser FTP pour accéder à l'archive située à ftp.debian.org, dans le répertoire debian, et n'utiliser que la section stable/contrib. +.sp +.RS 3n +.nf +deb ftp://ftp.debian.org/debian stable contrib +.fi +.RE +.PP +Utiliser FTP pour accéder à l'archive située à ftp.debian.org, dans le répertoire debian, et n'utiliser que la section unstable/contrib. Si cette ligne et celle de l'exemple précédent dans +\fIsources.list\fR +apparaissent, une seule session FTP sera utilisée pour les deux lignes. +.sp +.RS 3n +.nf +deb ftp://ftp.debian.org/debian unstable contrib +.fi +.RE +.PP +Utiliser HTTP pour accéder à l'archive située à nonus.debian.org, dans le répertoire debian\-non\-US. +.sp +.RS 3n +.nf +deb http://nonus.debian.org/debian\-non\-US stable/non\-US main contrib non\-free +.fi +.RE +.PP +Utiliser HTTP pour accéder à l'archive située à nonus.debian.org, dans le répertoire debian\-non\-US, et n'utiliser que les fichiers trouvés dans +\fIunstable/binary\-i386\fR +pour les machines i386, dans +\fIunstable/binary\-m68k\fR +pour les machines m68k et ainsi de suite pour les autres architectures reconnues. [Notez que cet exemple montre seulement la manière d'utiliser la variable à substituer, non\-us n'étant plus structuré de cette manière.] +.sp +.RS 3n +.nf +deb http://ftp.de.debian.org/debian\-non\-US unstable/binary\-$(ARCH)/ +.fi +.RE +.SH "VOIR AUSSI" +.PP +\fBapt\-cache\fR(8) +\fBapt.conf\fR(5) +.SH "BOGUES" +.PP +Voyez la +[1]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "TRADUCTION" +.PP +Philippe Batailler. +. 2005. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "REFERENCES" +.TP 3 +1.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/sources.list.fr.5 b/doc/fr/sources.list.fr.5 new file mode 100644 index 0000000..a77df4b --- /dev/null +++ b/doc/fr/sources.list.fr.5 @@ -0,0 +1,259 @@ +.\" Title: sources.list +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "SOURCES.LIST" "5" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NOM" +sources.list \- Liste des sources de paquets +.SH "DESCRIPTION" +.PP +La liste des sources de paquets indique où trouver les archives du système de distribution de paquets utilisé. Pour l'instant, cette page de manuel ne documente que le système d'empaquetage utilisé par le système Debian GNU/Linux. Ce fichier de contrôle est +\fI/etc/apt/sources.list\fR. +.PP +La liste des sources est conçue pour prendre en compte un nombre quelconque de sources actives et différents média. Le fichier présente une source par ligne et la source préférée apparaît en premier. Le format de chaque ligne est\ : +type uri args. Le premier élément, +type, détermine le format des +args. +uri +est un identificateur universel de ressources (URI), qui est un sur\-ensemble du plus spécifique et bien connu repère universel de ressources, ou URL. La fin de la ligne peut être un commentaire commençant par un caractère #. +.SH "SOURCES.LIST.D" +.PP +Le répertoire +\fI/etc/apt/sources.list.d\fR +permet de lister des sources de paquets dans des fichiers distincts qui se terminent par +.list. Leur format est le même que celui du fichier +\fIsources.list\fR. +.SH "LES TYPES DEB ET DEB\-SRC." +.PP +Le type +deb +décrit une archive Debian classique à deux niveaux, +\fIdistribution/composant\fR. +distribution +peut prendre l'une des valeurs suivantes\ : +stable, +unstable, ou +testing, et composant\ : +main, +contrib, +non\-free, ou +non\-us. Le type +deb\-src +décrit le code source pour une distribution Debian dans le même format que le type +deb. Une ligne +deb\-src +est nécessaire pour récupérer les index des sources. +.PP +Le format d'une entrée dans +\fIsources.list\fR +utilisant les types +deb +et +deb\-src +est de la forme\ : +.sp +.RS 3n +.nf +deb uri distribution [composant1] [composant2] [...] +.fi +.RE +.PP +L'URI de type +deb +doit indiquer la base de la distribution Debian dans laquelle APT trouvera les informations dont il a besoin. +distribution +peut spécifier le chemin exact\ : dans ce cas, on doit omettre les composants et +distribution +doit se terminer par une barre oblique (/). C'est utile quand seule une sous\-section particulière de l'archive décrite par cet URI est intéressante. Quand +distribution +n'indique pas un chemin exact, un +composant +au moins doit être présent. +.PP + +distribution +peut aussi contenir une variable +$(ARCH), qui sera remplacée par l'architecture Debian (i386, m68k, powerpc, ...) sur laquelle s'exécute le système. On peut ainsi utiliser un fichier +\fIsources.list\fR +qui ne dépend pas d'une architecture. En général, ce n'est intéressant que si l'on indique un chemin exact\ ; sinon +APT +crée automatiquement un URI en fonction de l'architecture effective. +.PP +Puisqu'on ne peut indiquer qu'une seule distribution par ligne, il peut être nécessaire de disposer le même URI sur plusieurs lignes quand on veut accéder à un sous\-ensemble des distributions ou composants disponibles à cette adresse. APT trie les URI après avoir crée pour lui\-même la liste complète\ ; il regroupe les références multiples au même hôte Internet en vue d'une connexion unique et il évite ainsi, par exemple, d'établir une connexion FTP, de la fermer, faire autre chose, puis d'établir encore cette connexion. Cette fonctionnalité permet l'accès à des sites FTP surchargés qui limitent le nombre de connexions simultanées pour les utilisateurs anonymes. APT parallélise aussi les connexions à différents hôtes pour tirer plus efficacement parti des sites à faible bande passante. +.PP +Il est important d'indiquer les sources par ordre de préférence, la source principale apparaissant en premier. Un tri est fait, de la plus rapide à la plus lente\ ; par exemple, un cédérom suivi par les hôtes d'un réseau local, puis les hôtes distants. +.PP +Voici quelques exemples\ : +.sp +.RS 3n +.nf +deb http://http.us.debian.org/debian stable main contrib non\-free +deb http://http.us.debian.org/debian dists/stable\-updates/ + +.fi +.RE +.SH "LA SPÉCIFICATION DES URI" +.PP +Les URI actuellement reconnus sont\ : cdrom, file, http et ftp. +.PP +file +.RS 3n +Le procédé +file +permet qu'un répertoire arbitraire au sein du système de fichier soit considéré comme une archive. On s'en sert avec les montages NFS, les miroirs et les archives locaux. +.RE +.PP +cdrom +.RS 3n +Le procédé +cdrom +permet l'utilisation d'un lecteur de cédérom avec la possibilité de changer de media. Utilisez le programme +\fBapt\-cdrom\fR(8) +pour créer des entrées dans la liste des sources. +.RE +.PP +http +.RS 3n +Le procédé +http +indique un serveur HTTP comme archive. Si une variable d'environnement +\fBhttp_proxy\fR +(au format http://server:port/) existe, le serveur mandataire indiqué par +\fBhttp_proxy\fR +est utilisé. Quand un serveur mandataire HTTP/1.1 demande une authentification, on peut utiliser la chaîne http://user:pass@server:port/. Notez qu'il s'agit d'une méthode d'authentification peu sûre. +.RE +.PP +ftp +.RS 3n +Le procédé +ftp +indique un serveur FTP comme archive. Le fonctionnement en mode ftp est largement configurable\ ; référez\-vous à la page de manuel de +\fBapt\-cdrom\fR(8) +pour d'autres informations. On remarquera qu'on peut indiquer un mandataire ftp avec la variable d'environnement +\fBftp_proxy\fR. On peut aussi spécifier un mandataire http (les serveurs mandataires http comprennent souvent les URL ftp) en utilisant cette méthode et SEULEMENT cette méthode. Les mandataires ftp utilisant http et qui sont spécifiés dans le fichier de configuration seront ignorés. +.RE +.PP +copy +.RS 3n +Le procédé +copy +est identique au procédé +file +excepté que les paquets sont copiés dans le cache du répertoire au lieu d'être utilisés directement depuis leur emplacement. C'est utile aux gens qui utilisent un disque zip pour recopier des fichiers avec APT. +.RE +.PP +rsh, ssh +.RS 3n +Le procédé rsh/ssh utilise rsh/ssh pour se connecter à une machine distante en tant que tel utilisateur donné et pour accéder aux fichiers. Aucune authentification par mot de passe n'est possible\ : il faut au préalable régler ce problème avec des clés RSA ou bien rhosts. Pour l'accès aux fichiers de la machine distante et le transfert, on utilise les commandes standard +\fBfind\fR +et +\fBdd\fR. +.RE +.SH "EXEMPLES" +.PP +Utiliser l'archive stockée localement (ou montée via NFS) dans /home/jason/debian pour stable/main, stable/contrib et stable/non\-free. +.sp +.RS 3n +.nf +deb file:/home/jason/debian stable main contrib non\-free +.fi +.RE +.PP +Comme ci\-dessus, excepté que cette ligne utilise la distribution \(Fo\ unstable\ \(Fc (développement). +.sp +.RS 3n +.nf +deb file:/home/jason/debian unstable main contrib non\-free +.fi +.RE +.PP +La précédente ligne, mais pour les sources. +.sp +.RS 3n +.nf +deb\-src file:/home/jason/debian unstable main contrib non\-free +.fi +.RE +.PP +Utiliser HTTP pour accéder à l'archive située à archive.debian.org, et n'utiliser que la section hamm/main. +.sp +.RS 3n +.nf +deb http://archive.debian.org/debian\-archive hamm main +.fi +.RE +.PP +Utiliser FTP pour accéder à l'archive située à ftp.debian.org, dans le répertoire debian, et n'utiliser que la section stable/contrib. +.sp +.RS 3n +.nf +deb ftp://ftp.debian.org/debian stable contrib +.fi +.RE +.PP +Utiliser FTP pour accéder à l'archive située à ftp.debian.org, dans le répertoire debian, et n'utiliser que la section unstable/contrib. Si cette ligne et celle de l'exemple précédent dans +\fIsources.list\fR +apparaissent, une seule session FTP sera utilisée pour les deux lignes. +.sp +.RS 3n +.nf +deb ftp://ftp.debian.org/debian unstable contrib +.fi +.RE +.PP +Utiliser HTTP pour accéder à l'archive située à nonus.debian.org, dans le répertoire debian\-non\-US. +.sp +.RS 3n +.nf +deb http://nonus.debian.org/debian\-non\-US stable/non\-US main contrib non\-free +.fi +.RE +.PP +Utiliser HTTP pour accéder à l'archive située à nonus.debian.org, dans le répertoire debian\-non\-US, et n'utiliser que les fichiers trouvés dans +\fIunstable/binary\-i386\fR +pour les machines i386, dans +\fIunstable/binary\-m68k\fR +pour les machines m68k et ainsi de suite pour les autres architectures reconnues. [Notez que cet exemple montre seulement la manière d'utiliser la variable à substituer, non\-us n'étant plus structuré de cette manière.] +.sp +.RS 3n +.nf +deb http://ftp.de.debian.org/debian\-non\-US unstable/binary\-$(ARCH)/ +.fi +.RE +.SH "VOIR AUSSI" +.PP +\fBapt\-cache\fR(8) +\fBapt.conf\fR(5) +.SH "BOGUES" +.PP +Voyez la +[1]\&\fI page concernant les bogues d'APT\fR. Si vous voulez signaler un bogue, consultez le texte +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +ou utilisez la commande +\fBreportbug\fR(1). +.SH "TRADUCTION" +.PP +Philippe Batailler. +. 2005. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Auteur. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Auteur. +.SH "REFERENCES" +.TP 3 +1.\ page concernant les bogues d'APT +\%http://bugs.debian.org/src:apt diff --git a/doc/fr/sources.list.fr.5.xml b/doc/fr/sources.list.fr.5.xml new file mode 100644 index 0000000..4235480 --- /dev/null +++ b/doc/fr/sources.list.fr.5.xml @@ -0,0 +1,257 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 February 2004 + + + +sources.list +5 + + + +sources.list +Liste des sources de paquets + + +Description + +La liste des sources de paquets indique où trouver les archives +du système de distribution de paquets utilisé. Pour l'instant, cette page +de manuel ne documente que le système d'empaquetage utilisé par le système +Debian GNU/Linux. Ce fichier de contrôle est /etc/apt/sources.list. + + +La liste des sources est conçue pour prendre en compte un nombre quelconque +de sources actives et différents média. Le fichier présente +une source par ligne et la source préférée apparaît en premier. Le format de +chaque ligne est : type uri args. Le premier élément, +type, détermine le format des args. +uri est un +identificateur universel de ressources (URI), qui est un sur-ensemble du plus +spécifique et bien connu repère universel de ressources, ou URL. La fin de la +ligne peut être un commentaire commençant par un caractère #. + + + +sources.list.d + Le répertoire /etc/apt/sources.list.d permet de +lister des sources de paquets dans des fichiers distincts qui se terminent +par .list. Leur format est le même que celui du fichier +sources.list. + + + +Les types deb et deb-src. + +Le type deb décrit une archive Debian classique à deux niveaux, +distribution/composant. distribution peut prendre +l'une des valeurs suivantes : stable, unstable, ou +testing, et composant : main, +contrib, +non-free, ou non-us. +Le type deb-src décrit le +code source pour une distribution Debian dans le même format que le type +deb. Une ligne deb-src est nécessaire pour récupérer les +index des sources. + + +Le format d'une entrée dans sources.list utilisant les types +deb et deb-src est de la forme : + + deb uri distribution [composant1] [composant2] [...] + +L'URI de type deb doit indiquer la base de la distribution Debian +dans laquelle APT trouvera les informations dont il a besoin. +distribution peut spécifier le chemin exact : dans ce cas, on +doit omettre les composants et distribution doit se terminer par une +barre oblique (/). C'est utile quand seule une sous-section particulière de +l'archive décrite par cet URI est intéressante. Quand distribution +n'indique pas un chemin exact, un composant au moins doit être +présent. + + +distribution peut aussi contenir une variable $(ARCH), +qui sera remplacée par l'architecture Debian (i386, m68k, powerpc, ...) +sur laquelle s'exécute le système. On peut ainsi utiliser un fichier +sources.list qui ne dépend pas d'une architecture. En général, +ce n'est intéressant que si l'on indique un chemin exact ; sinon +APT crée automatiquement un URI en fonction de l'architecture +effective. + + +Puisqu'on ne peut indiquer qu'une seule distribution par ligne, il peut être +nécessaire de disposer le même URI sur plusieurs lignes quand on veut +accéder à un sous-ensemble des distributions ou composants disponibles à cette +adresse. APT trie les URI après avoir crée pour lui-même la liste +complète ; il regroupe les références multiples au même hôte Internet +en vue d'une connexion unique et il évite ainsi, par exemple, d'établir une +connexion FTP, de la fermer, faire autre chose, puis d'établir encore cette +connexion. Cette fonctionnalité permet l'accès à des sites FTP surchargés qui +limitent le nombre de connexions simultanées pour les utilisateurs anonymes. +APT parallélise aussi les connexions à différents hôtes pour tirer plus +efficacement parti des sites à faible bande passante. + + +Il est important d'indiquer les sources par ordre de préférence, +la source principale apparaissant en premier. Un tri est fait, de la plus +rapide à la plus lente ; par exemple, un cédérom suivi par les hôtes d'un +réseau local, puis les hôtes distants. + +Voici quelques exemples : + + + +deb http://http.us.debian.org/debian stable main contrib non-free +deb http://http.us.debian.org/debian dists/stable-updates/ + + + +La spécification des URI + +Les URI actuellement reconnus sont : cdrom, file, http et ftp. + +file + +Le procédé file permet qu'un répertoire arbitraire au sein du +système de fichier soit considéré comme une archive. On s'en sert avec les +montages NFS, les miroirs et les archives locaux. + + + +cdrom + +Le procédé cdrom permet l'utilisation d'un lecteur de cédérom +avec la possibilité de changer de media. Utilisez le programme &apt-cdrom; +pour créer des entrées dans la liste des sources. + + + + +http + +Le procédé http indique un serveur HTTP comme archive. Si une +variable d'environnement http_proxy (au format http://server:port/) +existe, le serveur mandataire indiqué par http_proxy est utilisé. +Quand un serveur mandataire HTTP/1.1 demande une authentification, on peut +utiliser la chaîne http://user:pass@server:port/. Notez qu'il s'agit d'une +méthode d'authentification peu sûre. + + + + +ftp + +Le procédé ftp indique un serveur FTP comme archive. Le +fonctionnement en mode ftp est largement configurable ; référez-vous +à la page de manuel de &apt-cdrom; pour d'autres informations. On +remarquera qu'on peut indiquer un mandataire ftp avec la variable +d'environnement ftp_proxy. On peut aussi spécifier un mandataire http +(les serveurs mandataires http comprennent souvent les URL ftp) en utilisant +cette méthode et SEULEMENT cette méthode. Les mandataires ftp utilisant http +et qui sont spécifiés dans le fichier de configuration seront ignorés. + + + + +copy + +Le procédé copy est identique au procédé file +excepté que +les paquets sont copiés dans le cache du répertoire au lieu d'être utilisés +directement depuis leur emplacement. C'est utile aux gens qui utilisent un +disque zip pour recopier des fichiers avec APT. + + + +rshssh + +Le procédé rsh/ssh utilise rsh/ssh pour se connecter à une +machine distante en tant que tel utilisateur donné et pour accéder aux +fichiers. Aucune authentification par mot de passe n'est possible : il +faut au préalable régler ce problème avec des clés RSA ou bien rhosts. Pour +l'accès aux fichiers de la machine distante et le transfert, on utilise les +commandes standard find et dd. + + + + + + +Exemples + +Utiliser l'archive stockée localement (ou montée via NFS) dans +/home/jason/debian pour stable/main, stable/contrib et stable/non-free. + + deb file:/home/jason/debian stable main contrib non-free + + +Comme ci-dessus, excepté que cette ligne utilise la distribution +« unstable » (développement). + + deb file:/home/jason/debian unstable main contrib non-free + + +La précédente ligne, mais pour les sources. + +deb-src file:/home/jason/debian unstable main contrib non-free + + +Utiliser HTTP pour accéder à l'archive située à archive.debian.org, et +n'utiliser que la section hamm/main. + + deb http://archive.debian.org/debian-archive hamm main + + +Utiliser FTP pour accéder à l'archive située à ftp.debian.org, dans le +répertoire debian, et n'utiliser que la section stable/contrib. + + deb ftp://ftp.debian.org/debian stable contrib + + +Utiliser FTP pour accéder à l'archive située à ftp.debian.org, dans le +répertoire debian, et n'utiliser que la section unstable/contrib. Si cette +ligne et celle de l'exemple précédent dans sources.list +apparaissent, une seule session FTP sera utilisée pour les deux lignes. + + deb ftp://ftp.debian.org/debian unstable contrib + + +Utiliser HTTP pour accéder à l'archive située à nonus.debian.org, dans le +répertoire debian-non-US. + + deb http://nonus.debian.org/debian-non-US stable/non-US main contrib non-free + + +Utiliser HTTP pour accéder à l'archive située à nonus.debian.org, dans le +répertoire debian-non-US, et n'utiliser que les fichiers trouvés dans +unstable/binary-i386 pour les machines i386, dans +unstable/binary-m68k pour les machines m68k et ainsi de suite +pour les autres architectures reconnues. [Notez que cet exemple montre +seulement la manière d'utiliser la variable à substituer, non-us n'étant plus +structuré de cette manière.] + + deb http://ftp.de.debian.org/debian-non-US unstable/binary-$(ARCH)/ + + +Voir aussi +&apt-cache; &apt-conf; + + +&manbugs; +&traducteur; + \ No newline at end of file diff --git a/doc/fr/style.fr.xsl b/doc/fr/style.fr.xsl new file mode 100644 index 0000000..11593bb --- /dev/null +++ b/doc/fr/style.fr.xsl @@ -0,0 +1,9 @@ + + + + + + + diff --git a/doc/guide.it.sgml b/doc/guide.it.sgml new file mode 100644 index 0000000..2dc46e2 --- /dev/null +++ b/doc/guide.it.sgml @@ -0,0 +1,585 @@ + + + +Guida dell'utente di APT + +Jason Gunthorpe jgg@debian.org +Traduzione di Eugenia Franzoni eugenia@linuxcare.com + +$Id: guide.it.sgml,v 1.5 2003/04/26 23:26:13 doogie Exp $ + + +Guida per l'uso del gestore di pacchetti APT. + + + +Copyright © Jason Gunthorpe, 1998. + +

Ed. italiana Copyright © Eugenia Franzoni, 2000. + +

+"APT" e questo documento sono software libero, e li si può ridistribuire +e/o modificare secondo i termini della Licenza Pubblica Generica GNU +(GPL), pubblicata dalla Free Software Foundation, nella versione 2 o +(se preferite) qualsiasi versione successiva. + +

"APT" and this document are free software; you can redistribute them and/or +modify them under the terms of the GNU General Public License as published +by the Free Software Foundation; either version 2 of the License, or (at your +option) any later version. + +

+Per ulteriori dettagli sui sistemi GNU/Linux si veda il testo +completo della licenza nel file +/usr/share/common-licenses/GPL. + + + + + + +Descrizione generale + +

+Il pacchetto APT al momento contiene due sezioni, il metodo APT +dselect e l'interfaccia utente a linea di comando apt-get; +entrambi danno modo di installare e rimuovere pacchetti, e di scaricarne +altri da Internet. + +Anatomia del sistema di pacchettizzazione +

+Il sistema di pacchettizzazione di Debian contiene un gran numero di +informazioni associate a ciascun pacchetto, per assicurarsi che si +integri facilmente ed in maniera pulita nel sistema; la più +importante di esse è il sistema di dipendenze. + +

+Il sistema di dipendenze permette ai singoli programmi di fare uso +degli elementi condivisi del sistema, quali le librerie; per +ridurre il numero di elementi che l'utente medio debba installare, +le porzioni di programmi che non vengono usate spesso vengono poste +in pacchetti separati. Inoltre, è possibile avere più di una scelta per +cose quali i programmi di posta elettronica, i server X e così via. + +

+Il primo passo per capire il sistema di dipendenze è la +comprensione del concetto di dipendenza semplice: un pacchetto richiede +che un altro sia installato insieme ad esso per poter +funzionare. + + +

+Ad esempio, mail-crypt è un'estensione di emacs che aiuta a criptare le +mail con PGP. Se PGP non è installato, mail-crypt è inutile, quindi +mail-crypt ha una dipendenza semplice da PGP. Inoltre, dato che si tratta +di un'estensione di emacs, mail-crypt dipende anche da emacs, senza il +quale è totalmente inutile. + +

+L'altro tipo di dipendenza importante da capire è la dipendenza di +conflitto; con questa, un pacchetto che venga installato insieme ad un +altro pacchetto non funziona, e si hanno seri problemi al sistema. +Come esempio, si consideri un programma di trasporto della posta, +quale sendmail, exim o qmail: non è possibile averne due contemporaneamente, +perché entrambi hanno bisogno di restare in ascolto sulla stessa porta di rete +per ricevere la posta. Tentare di installarne due danneggerebbe seriamente il +sistema, quindi ciascun programma di trasporto della posta ha una +dipendenza di conflitto con tutti gli altri. + +

+Come ulteriore complicazione, c'è la possibilità che un pacchetto +voglia prendere il posto di un altro; ad esempio, exim e sendmail per molte +cose sono identici, dato che entrambi gestiscono la posta e comprendono +un'interfaccia comune, quindi il sistema di pacchettizzazione deve dichiarare +che sono entrambi agenti di trasporto della posta, e che gli altri +pacchetti a cui serve uno dei due devono dipendere da un pacchetto +fittizio agente-di-trasporto-della-posta. Quando si modificano +a mano i pacchetti, questo può portare a moltissima confusione. + +

+In ciascun momento una singola dipendenza può essere soddisfatta o meno +dai pacchetti già installati; APT cerca di risolvere i problemi +di dipendenze con un buon numero di algoritmi automatici, che aiutano +a selezionare i pacchetti da installare. + + + + + + +apt-get + +

+apt-get fornisce un modo semplice di installare i pacchetti dalla +linea di comando. Diversamente da dpkg, apt-get non +capisce i nomi dei file .deb, ma utilizza il vero nome dei pacchetti, +e può installare archivi .deb solo da una fonte. + +

+La prima Se state usando un proxy server http, dovete prima ancora +impostare la variabile d'ambiente http_proxy; vedere +sources.list(5). +cosa da fare prima di usare apt-get è impostare l'elenco dei +pacchetti dalle fonti in modo che il programma sappia quali pacchetti +sono disponibili. Lo si fa con apt-get update. Ad esempio, + +

+ +# apt-get update +Get http://ftp.de.debian.org/debian-non-US/ stable/binary-i386/ Packages +Get http://llug.sep.bnl.gov/debian/ testing/contrib Packages +Reading Package Lists... Done +Building Dependency Tree... Done + + +

+Dopo aver aggiornato l'elenco si possono usare molti comandi: + +upgrade +Upgrade tenterà di fare un aggiornamento indolore del sistema completo, +senza installare nuovi pacchetti o rimuoverne di esistenti, e senza +aggiornare un pacchetto che possa rovinarne altri. Upgrade farà un elenco +di tutti i pacchetti che non avrà potuto aggiornare, cosa che in genere +significa che questi dipendono da nuovi pacchetti o vanno in conflitto +con altri. Per forzare la loro installazione si può usare +dselect o apt-get install. + +install +Install viene usato per installare i singoli pacchetti dando il loro nome. +Il pacchetto viene automaticamente scaricato ed installato, cosa molto utile +se già se ne conosce il nome e non si vuole entrare in grafica per +selezionarlo. Al comando si possono passare anche più pacchetti, che saranno +tutti scaricati. L'installazione automatica cerca di risolvere i problemi +di dipendenze con gli altri pacchetti elencati, stampa un riassunto e +chiede conferma se si devono modificare altri pacchetti che non siano quelli +sulla linea di comando. + +dist-upgrade +Dist-upgrade fa un aggiornamento completo, progettato in modo da rendere +semplici gli aggiornamenti tra versioni di Debian. Usa un algoritmo +sofisticato per determinare il miglior insieme di pacchetti da installare, +aggiornare e rimuovere per arrivare alla versione più aggiornata +del sistema possibile. In alcune situazioni può essere vantaggioso usare +dist-upgrade invece che sprecare tempo a risolvere manualmente le +dipendenze con dselect. Una volta completato dist-upgrade, si può +usare dselect per installare eventuali pacchetti che sono stati +tralasciati. + +

+È importante controllare attentamente cosa intende fare dist-upgrade, +dato che le sue decisioni a volte possono essere abbastanza sorprendenti. + + +

+apt-get ha diverse opzioni a linea di comando, che vengono +documentate dettagliatamente nella sua pagina man, +. L'opzione più utile è +-d, che non installa i file scaricati: se il sistema deve +scaricare un gran numero di pacchetti, non è bene farglieli installare +subito, in caso dovesse andare male qualcosa. Dopo aver usato -d, +gli archivi scaricati possono essere installati semplicemente dando di +nuovo lo stesso comando senza l'opzione -d. + + + + + +DSelect +

+Il metodo APT di dselect fornisce tutte le funzionalità di APT +all'interno dell'interfaccia grafica di selezione dei pacchetti +dselect. dselect viene usato per selezionare i pacchetti +da installare o rimuovere, ed APT li installa. + +

+Per abilitare il metodo APT dovete selezionare [A]ccess in dselect +e scegliere il metodo APT; vi verrà chiesto un insieme di fonti +(Sources), cioè di posti da cui scaricare gli archivi. +Tali fonti possono essere siti Internet remoti, mirror locali di Debian +o CDROM; ciascuna di esse può fornire una parte dell'archivio Debian, +ed APT le combinerà insieme in un set completo di pacchetti. Se avete un +CDROM è una buona idea indicare quello per primo, e poi i mirror, in modo +da avere accesso alle ultime versioni; APT userà in questo modo automaticamente +i pacchetti sul CDROM prima di scaricarli da Internet. + +

+ + Set up a list of distribution source locations + + Please give the base URL of the debian distribution. + The access schemes I know about are: http file + + For example: + file:/mnt/debian, + ftp://ftp.debian.org/debian, + http://ftp.de.debian.org/debian, + + + URL [http://llug.sep.bnl.gov/debian]: + + +

+La configurazione delle fonti inizia chiedendo la base dell'archivio Debian, +propone come default un mirror HTTP, e poi chiede la distribuzione +da scaricare. + +

+ + Please give the distribution tag to get or a path to the + package file ending in a /. The distribution + tags are typically something like: stable unstable testing non-US + + Distribution [stable]: + + +

+La distribuzione (``distribution'') fa riferimento alla versione Debian +dell'archivio: stable è l'ultima rilasciata, ed unstable +è quella di sviluppo. non-US è disponibile solo su alcuni mirror, +e contiene dei pacchetti in cui viene usata della tecnologia di criptazione +o altre cose che non possano essere esportate dagli Stati Uniti; importare +questi pacchetti negli US è però legale. + +

+ + Please give the components to get + The components are typically something like: main contrib non-free + + Components [main contrib non-free]: + + +

+L'elenco dei componenti (``components'') si riferisce alla lista di +sotto-distribuzioni da scaricare. Ciascuna distribuzione viene divisa in +base al copyright del software: la main contiene pacchetti la cui licenza +soddisfa le DFSG, mentre contrib e non-free contengono software che ha +diverse restrizioni sull'uso e sulla distribuzione. + +

+Si possono inserire un qualsiasi numero di fonti, e lo script di +configurazione continuerà a chiedere fino a che abbiate specificato tutti gli +elementi che volete. + +

+Prima di cominciare ad usare dselect è necessario aggiornare +l'elenco dei pacchetti disponibili selezionando [U]pdate dal menù: +si tratta di un sovrainsieme di ciò che fa apt-get update, +che rende l'informazione scaricata disponibile a +dselect. [U]pdate deve essere fatto anche se prima è stato dato +apt-get update. + +

+Si può a questo punto continuare selezionando i pacchetti desiderati +usando [S]elect e poi installando con [I]nstall. Se si usa il metodo APT, +i comandi [C]onfig e [R]emove non hanno significato, dato che entrambe le +fasi sono contenute in [I]nstall. + +

+Per default APT rimuoverà automaticamente i pacchetti che sono stati installati +con successo. Per modificare questo comportamento, si inserisca +Dselect::clean "prompt"; in /etc/apt/apt.conf. + + + + + +L'interfaccia + +

+Entrambi i metodi, dselect APT ed apt-get, condividono la +stessa interfaccia; si tratta di un sistema semplice che indica in genere +cosa sta per fare, e poi lo fa. + +Il metodo dselect è in realtà un insieme di script di wrapper ad +apt-get. Il metodo fornisce delle funzionalità maggiori del +solo apt-get. + +Dopo la stampa di un riassunto delle operazioni che saranno fatte, +APT stampa dei messaggi informativi sullo stato del sistema, in modo che +possiate avere davanti agli occhi a quale punto dell'operazione si trova, +e quanto ancora si deve aspettare. + + +Avvio + +

+Prima di ciascuna operazione, eccetto l'aggiornamento della lista, APT +compie alcune operazioni per prepararsi, oltre a dei controlli dello +stato del sistema. In qualsiasi momento le stesse operazioni possono essere +fatte con apt-get check +

+ +# apt-get check +Reading Package Lists... Done +Building Dependancy Tree... Done + + +

+La prima cosa che fa è leggere tutti i file dei pacchetti in memoria, +usando uno schema di caching in modo da rendere la stessa operazione più +veloce la seconda volta che la si fa. Se alcuni dei file dei pacchetti +non vengono trovati, sono ignorati e viene stampato un avvertimento +all'uscita di apt-get. + +

+L'operazione finale consiste in un'analisi dettagliata delle +dipendenze del sistema: viene controllato che tutte le dipendenze dei +singoli pacchetti installati o non scompattati siano soddisfatte. +Se vengono individuati dei problemi, viene stampato un resoconto, +ed apt-get esce senza eseguire alcuna operazione. + +

+ +# apt-get check +Reading Package Lists... Done +Building Dependancy Tree... Done +You might want to run apt-get -f install' to correct these. +Sorry, but the following packages have unmet dependencies: + 9fonts: Depends: xlib6g but it is not installed + uucp: Depends: mailx but it is not installed + blast: Depends: xlib6g (>= 3.3-5) but it is not installed + adduser: Depends: perl-base but it is not installed + aumix: Depends: libgpmg1 but it is not installed + debiandoc-sgml: Depends: sgml-base but it is not installed + bash-builtins: Depends: bash (>= 2.01) but 2.0-3 is installed + cthugha: Depends: svgalibg1 but it is not installed + Depends: xlib6g (>= 3.3-5) but it is not installed + libreadlineg2: Conflicts:libreadline2 (<< 2.1-2.1) + + +

+In questo esempio il sistema ha molti problemi, tra cui uno piuttosto serio +con la libreadlineg2. Per ciascun pacchetto che ha dipendenze non soddisfatte, +viene stampata una linea che indica il pacchetto che crea il problema e +quali problemi ci sono. Viene inclusa inoltre una breve spiegazione +del perché il pacchetto ha un problema di dipendenze. + +

+Ci sono due modi in cui un sistema possa arrivare in uno stato problematico +di questo genere: il primo è causato dal fatto che dpkg possa +mancare alcune relazioni sottili tra pacchetti durante un aggiornamento +del sistemaAPT considera comunque tutte le dipendenze note, +e cerca di prevenire problemi ai pacchetti; il secondo è possibile +se l'installazione di un pacchetto fallisce, ed in questo caso è possibile +che un pacchetto venga scompattato senza che tutti quelli da cui dipende +siano stati installati. + +

+La seconda possibilità è meno seria della prima, dato che APT gestisce +l'ordine di installazione dei pacchetti; in entrambi i casi l'opzione +-f di apt-get gli farà trovare una soluzione e lo farà +continuare. Il metodo APT di dselect comprende sempre l'opzione +-f per permettere di configurare facilmente anche i pacchetti con +script errati. + +

+Se viene usata però l'opzione -f per correggere un sistema in uno +stato molto problematico, è possibile che anche con l'opzione il programma +fallisca, subito o durante la sequenza di installazione. In entrambi i casi +è necessario usare dpkg a mano (probabilmente usando delle opzioni +di forzatura) per correggere quanto basta per poter fare continuare APT. + + + +Il resoconto sullo stato + +

+Prima di procedere, apt-get presenterà un resoconto delle operazioni +che sta per fare. In genere tale resoconto varierà con il tipo di operazioni +da fare, ma ci sono alcuni elementi comuni: in tutti i casi gli elenchi +dipendono dallo stato finale delle cose, e tengono conto dell'opzione +-f e di altre attività rilevanti per il comando da eseguire. + +L'elenco dei pacchetti Extra +

+ +The following extra packages will be installed: + libdbd-mysql-perl xlib6 zlib1 xzx libreadline2 libdbd-msql-perl + mailpgp xdpkg fileutils pinepgp zlib1g xlib6g perl-base + bin86 libgdbm1 libgdbmg1 quake-lib gmp2 bcc xbuffy + squake pgp-i python-base debmake ldso perl libreadlineg2 + ssh + + +

+L'elenco dei pacchetti Extra mostra tutti i pacchetti che verranno installati +o aggiornati oltre a quelli indicati sulla linea di comando. Viene generato +solo per il comando install. I pacchetti elencati sono spesso il +risultato di un'operazione di auto installazione (Auto Install). + + +I pacchetti da rimuovere +

+ +The following packages will be REMOVED: + xlib6-dev xpat2 tk40-dev xkeycaps xbattle xonix + xdaliclock tk40 tk41 xforms0.86 ghostview xloadimage xcolorsel + xadmin xboard perl-debug tkined xtetris libreadline2-dev perl-suid + nas xpilot xfig + + +

+L'elenco dei pacchetti da rimuovere (Remove) indica tutti i pacchetti che +verranno rimossi dal sistema. Può essere mostrato per una qualsiasi delle +operazioni, e deve sempre essere esaminato attentamente per assicurarsi +che non venga eliminato qualcosa di importante. Con l'opzione -f +è particolarmente probabile che vengano eliminati dei pacchetti, ed in questo +caso va fatta estrema attenzione. La lista può contenere dei pacchetti +che verranno rimossi perché sono già rimossi parzialmente, forse a causa +di un'installazione non terminata correttamente. + + +L'elenco dei nuovi pacchetti installati +

+ +The following NEW packages will installed: + zlib1g xlib6g perl-base libgdbmg1 quake-lib gmp2 pgp-i python-base + + +

+L'elenco dei nuovi pacchetti installati (New) è semplicemente un appunto +su quello che accadrà. I pacchetti nell'elenco non sono al momento installati +nel sistema, ma lo saranno alla fine delle operazioni di APT. + + +L'elenco dei pacchetti trattenuti +

+ +The following packages have been kept back + compface man-db tetex-base msql libpaper svgalib1 + gs snmp arena lynx xpat2 groff xscreensaver + + +

+In ogni caso in cui il sistema viene aggiornato nel suo insieme, c'è la +possibilità che non possano venire installate nuove versioni di alcuni +pacchetti, dato che potrebbero richiedere l'installazione di pacchetti non +presenti nel sistema, o entrare in conflitto con altri già presenti. +In questo caso, il pacchetto viene elencato nella lista di quelli +trattenuti (Kept Back). Il miglior modo per convincere i pacchetti +elencati in questa lista è di installarli con apt-get install o +usare dselect per risolvere i problemi. + + +Messaggi di attenzione sui pacchetti trattenuti +

+ +The following held packages will be changed: + cvs + + +

+A volte si può richiedere ad APT di installare un pacchetto +che è stato trattenuto; in questi casi viene stampato un messaggio di +attenzione, che avverte che il pacchetto verrà modificato. Questo +dovrebbe accadere solo durante operazioni di dist-upgrade o di install. + + +Resoconto finale +

+Infine, APT stamperà un riassunto di tutte le modifiche che accadranno. + +

+ +206 packages upgraded, 8 newly installed, 23 to remove and 51 not upgraded. +12 packages not fully installed or removed. +Need to get 65.7M/66.7M of archives. After unpacking 26.5M will be used. + + +

+La prima linea del riassunto è semplicemente una versione ridotta di tutte +le liste, ed include il numero di aggiornamenti -- cioè dei pacchetti +già installati per cui sono disponibili nuove versioni. La seconda +linea indica il numero di pacchetti con problemi di configurazione, +probabilmente in conseguenza di un'installazione non andata a buon fine. +La linea finale indica i requisiti di spazio dell'installazione: i primi +due numeri indicano rispettivamente il numero di byte che devono +essere trasferiti da posizioni remote, ed il secondo la dimensione totale +di tutti gli archivi necessari per l'installazione. Il numero successivo +indica la differenza in dimensione tra i pacchetti già installati +e quelli che lo saranno, ed è approssimativamente equivalente allo spazio +richiesto in /usr dopo l'installazione. Se si stanno rimuovendo dei +pacchetti, il valore può indicare lo spazio che verrà liberato. + +

+Si possono generare altri resoconti usando l'opzione -u per mostrare +i pacchetti da aggiornare, ma sono simili all'esempio precedente. + + + +La visualizzazione dello stato +

+Durante il download degli archivi e dei file dei pacchetti, APT +stampa una serie di messaggi di stato. + +

+ +# apt-get update +Get:1 http://ftp.de.debian.org/debian-non-US/ stable/non-US/ Packages +Get:2 http://llug.sep.bnl.gov/debian/ testing/contrib Packages +Hit http://llug.sep.bnl.gov/debian/ testing/main Packages +Get:4 http://ftp.de.debian.org/debian-non-US/ unstable/binary-i386/ Packages +Get:5 http://llug.sep.bnl.gov/debian/ testing/non-free Packages +11% [5 testing/non-free `Waiting for file' 0/32.1k 0%] 2203b/s 1m52s + + +

+Le linee che cominciano con Get vengono stampate quando APT inizia +a scaricare un file, e l'ultima linea indica il progresso dell'operazione. +Il primo valore in percentuale indica la percentuale totale di tutti i file; +dato che la dimensione dei file Package non è nota, purtroppo a volte +apt-get update fa una stima poco accurata. + +

+La sezione successiva della linea di stato viene ripetuta una volta per +ciascuna fase del download, ed indica l'operazione in corso, insieme +ad alcune informazioni utili su cosa stia accadendo. A volte questa +sezione contiene solamente Forking, che significa che il sistema +operativo sta caricando il modulo. La prima parola dopo la parentesi quadra +aperta è il nome breve dell'oggetto che si sta scaricando, che per gli archivi +è il nome del pacchetto. + +

+All'interno delle virgolette c'è una stringa informativa, che indica il +progresso della fase di negoziazione del download. Tipicamente comincia con +Connecting, procede con Waiting for file e poi con +Downloading o Resuming. Il valore finale è il numero di byte +che sono stati scaricati dal sito remoto: una volta cominciato il +download viene rappresentato come 102/10.2k, che indica che +sono stati scaricati 102 byte di 10.2 kilobyte. La dimensione totale +viene sempre espressa in notazione a quattro cifre, per risparmiare +spazio. Dopo la dimensione viene indicato un indicatore +progressivo della percentuale del file. Il penultimo elemento è la velocità +istantanea media, che viene aggiornata ogni 5 secondi, e riflette la +velocità di trasferimento dei dati in quel periodo. Infine, viene +visualizzato il tempo stimato per il trasferimento, che viene aggiornato +periodicamente e riflette il tempo necessario per completare tutte le +operazioni alla velocità di trasferimento mostrata. + +

+La visualizzazione dello stato viene aggiornata ogni mezzo secondo per +fornire un feedback costante del processo di download, e le linee Get +scorrono indietro quando viene cominciato il download di un nuovo file. +Dato che la visualizzazione dello stato viene costantemente +aggiornata, non è adatta per essere registrata in un file; per non +visualizzarla si può usare l'opzione -q. + + + +Dpkg + +

+APT usa dpkg per installare gli archivi e passerà all'interfaccia +dpkg una volta finito il download. +dpkg porrà anche alcune domande durante la manipolazione dei +pacchetti, ed i pacchetti stessi +potranno farne altre. Prima di ciascuna domanda viene +proposta una descrizione di quello che sta per chiedere, e le domande +sono troppo diverse per poter essere discusse in maniera completa in questa +occasione. + + + + + + diff --git a/doc/guide.sgml b/doc/guide.sgml new file mode 100644 index 0000000..1b7e1d8 --- /dev/null +++ b/doc/guide.sgml @@ -0,0 +1,547 @@ + + + +APT User's Guide + +Jason Gunthorpe jgg@debian.org +$Id: guide.sgml,v 1.7 2003/04/26 23:26:13 doogie Exp $ + + +This document provides an overview of how to use the the APT package manager. + + + +Copyright © Jason Gunthorpe, 1998. +

+"APT" and this document are free software; you can redistribute them and/or +modify them under the terms of the GNU General Public License as published +by the Free Software Foundation; either version 2 of the License, or (at your +option) any later version. + +

+For more details, on Debian GNU/Linux systems, see the file +/usr/share/common-licenses/GPL for the full license. + + + + + + +General + +

+The APT package currently contains two sections, the APT dselect +method and the apt-get command line user interface. Both provide +a way to install and remove packages as well as download new packages from +the Internet. + +Anatomy of the Package System +

+The Debian packaging system has a large amount of information associated with +each package to help assure that it integrates cleanly and easily into +the system. The most prominent of its features is the dependency system. + +

+The dependency system allows individual programs to make use of shared +elements in the system such as libraries. It simplifies placing infrequently +used portions of a program in separate packages to reduce the +number of things the average user is required to install. Also, it allows +for choices in mail transport agents, X servers and +so on. + +

+The first step to understanding the dependency system is to grasp the concept +of a simple dependency. The meaning of a simple dependency is that a package +requires another package to be installed at the same time to work properly. + +

+For instance, mailcrypt is an emacs extension that aids in encrypting email +with GPG. Without GPGP installed mail-crypt is useless, so mailcrypt has a +simple dependency on GPG. Also, because it is an emacs extension it has a +simple dependency on emacs, without emacs it is completely useless. + +

+The other important dependency to understand is a conflicting dependency. It +means that a package, when installed with another package, will not work and +may possibly be extremely harmful to the system. As an example consider a +mail transport agent such as sendmail, exim or qmail. It is not possible +to have two mail transport agents installed because both need to listen to +the network to receive mail. Attempting to install two will seriously +damage the system so all mail transport agents have a conflicting dependency +with all other mail transport agents. + +

+As an added complication there is the possibility for a package to pretend +to be another package. Consider that exim and sendmail for many intents are +identical, they both deliver mail and understand a common interface. Hence, +the package system has a way for them to declare that they are both +mail-transport-agents. So, exim and sendmail both declare that they provide a +mail-transport-agent and other packages that need a mail transport agent +depend on mail-transport-agent. This can add a great deal of confusion when +trying to manually fix packages. + +

+At any given time a single dependency may be met by packages that are already +installed or it may not be. APT attempts to help resolve dependency issues +by providing a number of automatic algorithms that help in selecting packages +for installation. + + + + + + +apt-get + +

+apt-get provides a simple way to install packages from the command +line. Unlike dpkg, apt-get does not understand .deb files, +it works with the package's proper name and can only install .deb archives from +a Source. + +

+The first If you are using an http proxy server you must set the +http_proxy environment variable first, see sources.list(5) thing that +should be done before using apt-get is to fetch the package lists +from the Sources so that it knows what packages are +available. This is done with apt-get update. For instance, + +

+ +# apt-get update +Get http://ftp.de.debian.org/debian-non-US/ stable/binary-i386/ Packages +Get http://llug.sep.bnl.gov/debian/ testing/contrib Packages +Reading Package Lists... Done +Building Dependency Tree... Done + + +

+Once updated there are several commands that can be used: + +upgrade +Upgrade will attempt to gently upgrade the whole system. Upgrade will +never install a new package or remove an existing package, nor will it +ever upgrade a package that might cause some other package to break. +This can be used daily to relatively safely upgrade the system. Upgrade +will list all of the packages that it could not upgrade, this usually +means that they depend on new packages or conflict with some other package. +dselect or apt-get install can be used to force these +packages to install. + +install +Install is used to install packages by name. The package is +automatically fetched and installed. This can be useful if you already +know the name of the package to install and do not want to go into a GUI +to select it. Any number of packages may be passed to install, they will +all be fetched. Install automatically attempts to resolve dependency problems +with the listed packages and will print a summary and ask for confirmation +if anything other than its arguments are changed. + +dist-upgrade +Dist-upgrade is a complete upgrader designed to simplify upgrading between +releases of Debian. It uses a sophisticated algorithm to determine the best +set of packages to install, upgrade and remove to get as much of the system +to the newest release. In some situations it may be desired to use dist-upgrade +rather than spend the time manually resolving dependencies in dselect. +Once dist-upgrade has completed then dselect can be used to install +any packages that may have been left out. + +

+It is important to closely look at what dist-upgrade is going to do, its +decisions may sometimes be quite surprising. + + +

+apt-get has several command line options that are detailed in its +man page, . The most useful option is +-d which does not install the fetched files. If the system has to +download a large number of package it would be undesired to start installing +them in case something goes wrong. When -d is used the downloaded +archives can be installed by simply running the command that caused them to +be downloaded again without -d. + + + + + +DSelect +

+The APT dselect method provides the complete APT system with +the dselect package selection GUI. dselect is used to +select the packages to be installed or removed and APT actually installs them. + +

+To enable the APT method you need to to select [A]ccess in dselect +and then choose the APT method. You will be prompted for a set of +Sources which are places to fetch archives from. These can be remote +Internet sites, local Debian mirrors or CDROMs. Each source can provide +a fragment of the total Debian archive, APT will automatically combine them +to form a complete set of packages. If you have a CDROM then it is a good idea +to specify it first and then specify a mirror so that you have access to +the latest bug fixes. APT will automatically use packages on your CDROM before +downloading from the Internet. + +

+ + Set up a list of distribution source locations + + Please give the base URL of the debian distribution. + The access schemes I know about are: http file + + For example: + file:/mnt/debian, + ftp://ftp.debian.org/debian, + http://ftp.de.debian.org/debian, + + + URL [http://llug.sep.bnl.gov/debian]: + + +

+The Sources setup starts by asking for the base of the Debian +archive, defaulting to a HTTP mirror. Next it asks for the distribution to +get. + +

+ + Please give the distribution tag to get or a path to the + package file ending in a /. The distribution + tags are typically something like: stable unstable testing non-US + + Distribution [stable]: + + +

+The distribution refers to the Debian version in the archive, stable +refers to the latest released version and unstable refers to the +developmental version. non-US is only available on some mirrors and +refers to packages that contain encryption technology or other things that +cannot be exported from the United States. Importing these packages into the +US is legal however. + +

+ + Please give the components to get + The components are typically something like: main contrib non-free + + Components [main contrib non-free]: + + +

+The components list refers to the list of sub distributions to fetch. The +distribution is split up based on software licenses, main being DFSG free +packages while contrib and non-free contain things that have various +restrictions placed on their use and distribution. + +

+Any number of sources can be added, the setup script will continue to +prompt until you have specified all that you want. + +

+Before starting to use dselect it is necessary to update the +available list by selecting [U]pdate from the menu. This is a super-set of +apt-get update that makes the fetched information available to +dselect. [U]pdate must be performed even if apt-get update +has been run before. + +

+You can then go on and make your selections using [S]elect and then +perform the installation using [I]nstall. When using the APT method +the [C]onfig and [R]emove commands have no meaning, the [I]nstall command +performs both of them together. + +

+By default APT will automatically remove the package (.deb) files once they have been +successfully installed. To change this behavior place Dselect::clean +"prompt"; in /etc/apt/apt.conf. + + + + + +The Interface + +

+Both that APT dselect method and apt-get share the same +interface. It is a simple system that generally tells you what it will do +and then goes and does it. + +The dselect method actually is a set of wrapper scripts +to apt-get. The method actually provides more functionality than +is present in apt-get alone. + +After printing out a summary of what will happen APT then will print out some +informative status messages so that you can estimate how far along it is and +how much is left to do. + + +Startup + +

+Before all operations except update, APT performs a number of actions to +prepare its internal state. It also does some checks of the system's state. +At any time these operations can be performed by running apt-get check. +

+ +# apt-get check +Reading Package Lists... Done +Building Dependency Tree... Done + + +

+The first thing it does is read all the package files into memory. APT +uses a caching scheme so this operation will be faster the second time it +is run. If some of the package files are not found then they will be ignored +and a warning will be printed when apt-get exits. + +

+The final operation performs a detailed analysis of the system's dependencies. +It checks every dependency of every installed or unpacked package and considers +if it is OK. Should this find a problem then a report will be printed out and +apt-get will refuse to run. + +

+ +# apt-get check +Reading Package Lists... Done +Building Dependency Tree... Done +You might want to run apt-get -f install' to correct these. +Sorry, but the following packages have unmet dependencies: + 9fonts: Depends: xlib6g but it is not installed + uucp: Depends: mailx but it is not installed + blast: Depends: xlib6g (>= 3.3-5) but it is not installed + adduser: Depends: perl-base but it is not installed + aumix: Depends: libgpmg1 but it is not installed + debiandoc-sgml: Depends: sgml-base but it is not installed + bash-builtins: Depends: bash (>= 2.01) but 2.0-3 is installed + cthugha: Depends: svgalibg1 but it is not installed + Depends: xlib6g (>= 3.3-5) but it is not installed + libreadlineg2: Conflicts:libreadline2 (<< 2.1-2.1) + + +

+In this example the system has many problems, including a serious problem +with libreadlineg2. For each package that has unmet dependencies a line +is printed out indicating the package with the problem and the dependencies +that are unmet. A short explanation of why the package has a dependency +problem is also included. + +

+There are two ways a system can get into a broken state like this. The +first is caused by dpkg missing some subtle relationships between +packages when performing upgrades. APT however considers all known +dependencies and attempts to prevent broken packages. The second is +if a package installation fails during an operation. In this situation a +package may have been unpacked without its dependents being installed. + +

+The second situation is much less serious than the first because APT places +certain constraints on the order that packages are installed. In both cases +supplying the -f option to apt-get will cause APT to deduce a +possible solution to the problem and then continue on. The APT dselect +method always supplies the -f option to allow for easy continuation +of failed maintainer scripts. + +

+However, if the -f option is used to correct a seriously broken system +caused by the first case then it is possible that it will either fail +immediately or the installation sequence will fail. In either case it is +necessary to manually use dpkg (possibly with forcing options) to correct +the situation enough to allow APT to proceed. + + + +The Status Report + +

+Before proceeding apt-get will present a report on what will happen. +Generally the report reflects the type of operation being performed but there +are several common elements. In all cases the lists reflect the final state +of things, taking into account the -f option and any other relevant +activities to the command being executed. + +The Extra Package list +

+ +The following extra packages will be installed: + libdbd-mysql-perl xlib6 zlib1 xzx libreadline2 libdbd-msql-perl + mailpgp xdpkg fileutils pinepgp zlib1g xlib6g perl-base + bin86 libgdbm1 libgdbmg1 quake-lib gmp2 bcc xbuffy + squake pgp-i python-base debmake ldso perl libreadlineg2 + ssh + + +

+The Extra Package list shows all of the packages that will be installed +or upgraded in excess of the ones mentioned on the command line. It is +only generated for an install command. The listed packages are +often the result of an Auto Install. + + +The Packages to Remove +

+ +The following packages will be REMOVED: + xlib6-dev xpat2 tk40-dev xkeycaps xbattle xonix + xdaliclock tk40 tk41 xforms0.86 ghostview xloadimage xcolorsel + xadmin xboard perl-debug tkined xtetris libreadline2-dev perl-suid + nas xpilot xfig + + +

+The Packages to Remove list shows all of the packages that will be +removed from the system. It can be shown for any of the operations and +should be given a careful inspection to ensure nothing important is to +be taken off. The -f option is especially good at generating packages +to remove so extreme care should be used in that case. The list may contain +packages that are going to be removed because they are only +partially installed, possibly due to an aborted installation. + + +The New Packages list +

+ +The following NEW packages will installed: + zlib1g xlib6g perl-base libgdbmg1 quake-lib gmp2 pgp-i python-base + + +

+The New Packages list is simply a reminder of what will happen. The packages +listed are not presently installed in the system but will be when APT is done. + + +The Kept Back list +

+ +The following packages have been kept back + compface man-db tetex-base msql libpaper svgalib1 + gs snmp arena lynx xpat2 groff xscreensaver + + +

+Whenever the whole system is being upgraded there is the possibility that +new versions of packages cannot be installed because they require new things +or conflict with already installed things. In this case the package will +appear in the Kept Back list. The best way to convince packages listed +there to install is with apt-get install or by using dselect +to resolve their problems. + + +Held Packages warning +

+ +The following held packages will be changed: + cvs + + +

+Sometimes you can ask APT to install a package that is on hold, in such a +case it prints out a warning that the held package is going to be +changed. This should only happen during dist-upgrade or install. + + +Final summary +

+Finally, APT will print out a summary of all the changes that will occur. + +

+ +206 packages upgraded, 8 newly installed, 23 to remove and 51 not upgraded. +12 packages not fully installed or removed. +Need to get 65.7M/66.7M of archives. After unpacking 26.5M will be used. + + +

+The first line of the summary simply is a reduced version of all of the +lists and includes the number of upgrades - that is packages already +installed that have new versions available. The second line indicates the +number of poorly configured packages, possibly the result of an aborted +installation. The final line shows the space requirements that the +installation needs. The first pair of numbers refer to the size of +the archive files. The first number indicates the number of bytes that +must be fetched from remote locations and the second indicates the +total size of all the archives required. The next number indicates the +size difference between the presently installed packages and the newly +installed packages. It is roughly equivalent to the space required in +/usr after everything is done. If a large number of packages are being +removed then the value may indicate the amount of space that will be +freed. + +

+Some other reports can be generated by using the -u option to show packages +to upgrade, they are similar to the previous examples. + + + +The Status Display +

+During the download of archives and package files APT prints out a series of +status messages. + +

+ +# apt-get update +Get:1 http://ftp.de.debian.org/debian-non-US/ stable/non-US/ Packages +Get:2 http://llug.sep.bnl.gov/debian/ testing/contrib Packages +Hit http://llug.sep.bnl.gov/debian/ testing/main Packages +Get:4 http://ftp.de.debian.org/debian-non-US/ unstable/binary-i386/ Packages +Get:5 http://llug.sep.bnl.gov/debian/ testing/non-free Packages +11% [5 testing/non-free `Waiting for file' 0/32.1k 0%] 2203b/s 1m52s + + +

+The lines starting with Get are printed out when APT begins to fetch +a file while the last line indicates the progress of the download. The first +percent value on the progress line indicates the total percent done of all +files. Unfortunately since the size of the Package files is unknown +apt-get update estimates the percent done which causes some +inaccuracies. + +

+The next section of the status line is repeated once for each download thread +and indicates the operation being performed and some useful information +about what is happening. Sometimes this section will simply read Forking +which means the OS is loading the download module. The first word after the [ +is the fetch number as shown on the history lines. The next word +is the short form name of the object being downloaded. For archives it will +contain the name of the package that is being fetched. + +

+Inside of the single quote is an informative string indicating the progress +of the negotiation phase of the download. Typically it progresses from +Connecting to Waiting for file to Downloading or +Resuming. The final value is the number of bytes downloaded from the +remote site. Once the download begins this is represented as 102/10.2k +indicating that 102 bytes have been fetched and 10.2 kilobytes is expected. +The total size is always shown in 4 figure notation to preserve space. After +the size display is a percent meter for the file itself. +The second last element is the instantaneous average speed. This values is +updated every 5 seconds and reflects the rate of data transfer for that +period. Finally is shown the estimated transfer time. This is updated +regularly and reflects the time to complete everything at the shown +transfer rate. + +

+The status display updates every half second to provide a constant feedback +on the download progress while the Get lines scroll back whenever a new +file is started. Since the status display is constantly updated it is +unsuitable for logging to a file, use the -q option to remove the +status display. + + + +Dpkg + +

+APT uses dpkg for installing the archives and will switch +over to the dpkg interface once downloading is completed. +dpkg will also ask a number of questions as it processes the packages +and the packages themselves may also ask several questions. Before each +question there is usually a description of what it is asking and the +questions are too varied to discuss completely here. + + + + + + diff --git a/doc/ja/apt-cache.8 b/doc/ja/apt-cache.8 new file mode 100644 index 0000000..ae3fa9e --- /dev/null +++ b/doc/ja/apt-cache.8 @@ -0,0 +1,378 @@ +.\" Title: apt\-cache +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-CACHE" "8" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-cache \- APT ¥Ñ¥Ã¥±¡¼¥¸Áàºî¥æ¡¼¥Æ¥£¥ê¥Æ¥£ \-\- ¥­¥ã¥Ã¥·¥åÁàºî +.SH "SYNOPSIS" +.HP 10 +\fBapt\-cache\fR [\fB\-hvsn\fR] [\fB\-o=\fR\fB\fIconfig\ string\fR\fR] [\fB\-c=\fR\fB\fIfile\fR\fR] {[add\ \fIfile\fR...] | [gencaches] | [showpkg\ \fIpkg\fR...] | [showsrc\ \fIpkg\fR...] | [stats] | [dump] | [dumpavail] | [unmet] | [search\ \fIregex\fR] | [show\ \fIpkg\fR...] | [depends\ \fIpkg\fR...] | [rdepends\ \fIpkg\fR...] | [pkgnames\ \fIprefix\fR] | [dotty\ \fIpkg\fR...] | [policy\ \fIpkgs\fR...] | [madison\ \fIpkgs\fR...]} +.SH "ÀâÌÀ" +.PP +\fBapt\-cache\fR +¤Ï APT ¤Î¥Ñ¥Ã¥±¡¼¥¸¥­¥ã¥Ã¥·¥å¤ËÂФ·¤Æ¡¢ ¤µ¤Þ¤¶¤Þ¤ÊÁàºî¤ò¹Ô¤¤¤Þ¤¹¡£ +\fBapt\-cache\fR +¤Ï¡¢¥·¥¹¥Æ¥à¾õÂÖ¤ÎÁàºî¤Ï¹Ô¤¤¤Þ¤»¤ó¤¬¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Î¥á¥¿¥Ç¡¼¥¿¤è¤ê¸¡º÷¤·¤¿¤ê¡¢ ¶½Ì£¿¼¤¤½ÐÎϤòÀ¸À®¤¹¤ë¤È¤¤¤Ã¤¿Áàºî¤òÄ󶡤·¤Þ¤¹¡£ +.PP +\fB\-h\fR +¥ª¥×¥·¥ç¥ó¤ä +\fB\-\-help\fR +¥ª¥×¥·¥ç¥ó¤ò½ü¤­¡¢ °Ê²¼¤Ëµó¤²¤ë¥³¥Þ¥ó¥É¤¬É¬ÍפǤ¹¡£ +.PP +add \fIfile(s)\fR +.RS 3n +add +¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¥­¥ã¥Ã¥·¥å¤Ë»ØÄꤷ¤¿¥Ñ¥Ã¥±¡¼¥¸¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤òÄɲä·¤Þ¤¹¡£ ¥Ç¥Ð¥Ã¥°ÀìÍѤǤ¹¡£ +.RE +.PP +gencaches +.RS 3n +gencaches +¤Ï¡¢ +\fBapt\-get check\fR +¤ÈƱ¤¸Æ°ºî¤òÄ󶡤·¤Þ¤¹¡£ ¤³¤ì¤Ï +\fBsources.list\fR(5) +Æâ¤Î¼èÆÀ¸µ¤È +\fI/var/lib/dpkg/status\fR¤«¤é¡¢ ¥½¡¼¥¹¤È¥Ñ¥Ã¥±¡¼¥¸¤Î¥­¥ã¥Ã¥·¥å¤ò¹½ÃÛ¤·¤Þ¤¹¡£ +.RE +.PP +showpkg \fIpkg(s)\fR +.RS 3n +showpkg +¤Ï¡¢ ¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤ËÎóµó¤·¤¿¥Ñ¥Ã¥±¡¼¥¸¤Î¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£ ¸å¤Ë³¤¯°ú¿ô¤Ï¥Ñ¥Ã¥±¡¼¥¸Ì¾¤È¤Ê¤ê¤Þ¤¹¡£ ³Æ¥Ñ¥Ã¥±¡¼¥¸¤Ë¤Ä¤¤¤Æ¡¢Í­¸ú¤Ê¥Ð¡¼¥¸¥ç¥ó¤ÈÈï°Í¸´Ø·¸¤òÎóµó¤·¡¢ ¤µ¤é¤Ë¤½¤Î³Æ¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ä¤¤¤Æ°Í¸´Ø·¸¤òɽ¼¨¤·¤Þ¤¹¡£ (Ä̾ï¤Î) °Í¸´Ø·¸¤È¤Ï¡¢ÂоݤΥѥ屡¼¥¸¤¬°Í¸¤·¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤ò»Ø¤·¤Þ¤¹¡£ ¤Þ¤¿¡¢Èï°Í¸´Ø·¸¤È¤Ï¡¢ÂоݤΥѥ屡¼¥¸¤Ë°Í¸¤·¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤ò»Ø¤·¤Þ¤¹¡£ ½¾¤Ã¤Æ¡¢¥Ñ¥Ã¥±¡¼¥¸¤Î°Í¸´Ø·¸¤ÏËþ¤¿¤µ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¤¬¡¢ Èï°Í¸´Ø·¸¤ÏËþ¤¿¤¹É¬ÍפϤ¢¤ê¤Þ¤»¤ó¡£ ¼ÂÎã¤È¤·¤Æ¡¢°Ê²¼¤Ë +\fBapt\-cache showpkg libreadline2\fR +¤Î ½ÐÎϤò·Ç¤²¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Package: libreadline2 +Versions: 2.1\-12(/var/state/apt/lists/foo_Packages), +Reverse Depends: + libreadlineg2,libreadline2 + libreadline2\-altdev,libreadline2 +Dependencies: +2.1\-12 \- libc5 (2 5.4.0\-0) ncurses3.0 (0 (null)) +Provides: +2.1\-12 \- +Reverse Provides: +.fi +.RE +¤Ä¤Þ¤ê¡¢libreadline2 ¤Î version 2.1\-12 ¤Ï¡¢ libc5 ¤È ncurses3.0 ¤Ë°Í¸¤·¤Æ¤¤¤Æ¡¢libreadline2 ¤¬Æ°ºî¤¹¤ë¤Ë¤Ï¡¢ ¤³¤ì¤é¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפ¬¤¢¤ë¤È¤¤¤¦¤³¤È¤¬È½¤ê¤Þ¤¹¡£ °ìÊý¡¢libreadlineg2 ¤È libreadline2\-altdev ¤Ï libreadline2 ¤Ë°Í¸¤·¤Æ¤¤¤Þ¤¹¡£ libreadline2 ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢libc5, ncurses3.0, ldso ¤ò ¤¹¤Ù¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¤¬¡¢libreadlineg2 ¤È libreadline2\-altdev ¤Ï¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£ ½ÐÎϤλĤê¤ÎÉôʬ¤Î°ÕÌ£¤Ë¤Ä¤¤¤Æ¤Ï¡¢ apt ¤Î¥½¡¼¥¹¥³¡¼¥É¤òÄ´¤Ù¤ë¤Î¤¬ºÇÎɤǤ·¤ç¤¦¡£ +.RE +.PP +stats +.RS 3n +stats +¤Ï¥­¥ã¥Ã¥·¥å¤Ë¤Ä¤¤¤Æ¤ÎÅý·×¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£ ¤½¤ì°Ê¾å¡¢°ú¿ô¤ÏɬÍפ¢¤ê¤Þ¤»¤ó¡£°Ê²¼¤ÎÅý·×¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RS 3n +.TP 3n +\(bu +¥Ñ¥Ã¥±¡¼¥¸Ì¾Áí¿ô¤Ï¡¢ ¥­¥ã¥Ã¥·¥å¤Ë¸ºß¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¿ô¤òɽ¤·¤Þ¤¹¡£ +.TP 3n +\(bu +Ä̾ï¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢ ¸ø¼°¤ÎÉáÄ̤Υѥ屡¼¥¸¿ô¤òɽ¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢Â¾¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î°Í¸´Ø·¸¤Ç»ÈÍѤµ¤ì¤¿Ì¾¾Î¤Ç¡¢¤½¤ì¤¬°ìÂаì¤ËÂбþ ¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ç¤¹¡£ Âç¿¿ô¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ï¤³¤Î¥«¥Æ¥´¥ê¤ËÆþ¤ê¤Þ¤¹¡£ +.TP 3n +\(bu +½ã¿è²¾Áۥѥ屡¼¥¸¤Ï¡¢ ²¾Áۥѥ屡¼¥¸Ì¾¤È¤·¤Æ¤Î¤ß¸ºß¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸ (²¾Áۥѥ屡¼¥¸Ì¾¤Î¤ß¤ò¡ÖÄ󶡡פ·¡¢ ¼ÂºÝ¤Ë¤Ï¤¤¤«¤Ê¤ë¥Ñ¥Ã¥±¡¼¥¸¤â¤½¤Î̾¾Î¤ò»ý¤¿¤Ê¤¤) ¤Î¿ô¤òɽ¤·¤Þ¤¹¡£ Î㤨¤Ð¡¢Debian GNU/Linux ¥·¥¹¥Æ¥à¤Ç¤Ï "mail\-transport\-agent" ¤Ï½ã¿è²¾Áۥѥ屡¼¥¸¤Ç¤¹¡£ "mail\-transport\-agent" ¤òÄ󶡤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ï¤¤¤¯¤Ä¤â¤¢¤ê¤Þ¤¹¤¬¡¢ "mail\-transport\-agent" ¤È¤¤¤¦Ì¾¾Î¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ï¤¢¤ê¤Þ¤»¤ó¡£ +.TP 3n +\(bu +ñ°ì²¾Áۥѥ屡¼¥¸¤Ï¡¢ ÆÃÄê¤Î²¾Áۥѥ屡¼¥¸Ì¾¤òÄ󶡤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤¬¡¢ ¤¿¤À°ì¤Ä¤Î¾ì¹ç¤Î¿ô¤òɽ¤·¤Þ¤¹¡£ Î㤨¤Ð¡¢Debian GNU/Linux ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢"X11\-text\-viewer" ¤Ï²¾Áۥѥ屡¼¥¸¤Ç¤¹¤¬¡¢"X11\-text\-viewer" ¤òÄ󶡤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢ xless ¥Ñ¥Ã¥±¡¼¥¸¤Î¤ß¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ +.TP 3n +\(bu +Ê£¹ç²¾Áۥѥ屡¼¥¸¤Ï¡¢ ¤½¤Î²¾Áۥѥ屡¼¥¸Ì¾¤òÄ󶡤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤¬Ê£¿ô¤¢¤ë¤«¡¢ ¤Þ¤¿¥Ñ¥Ã¥±¡¼¥¸Ì¾¤ÈƱ¤¸²¾Áۥѥ屡¼¥¸Ì¾¤ò»ý¤Ä¥Ñ¥Ã¥±¡¼¥¸¿ô¤òɽ¤·¤Þ¤¹¡£ Î㤨¤Ð¡¢Debian GNU/Linux ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ debconf ¤Ï¼ÂºÝ¤Î¥Ñ¥Ã¥±¡¼¥¸Ì¾¤Ç¤â¤¢¤ê¤Þ¤¹¤¬¡¢ debconf\-tiny ¤Ë¤è¤Ã¤ÆÄ󶡤⤵¤ì¤Æ¤¤¤Þ¤¹¡£ +.TP 3n +\(bu +·çÍî¤Ï¡¢°Í¸´Ø·¸Ãæ¤Ë¤Ï¸ºß¤¹¤ë¤Î¤Ë¡¢ ¤É¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ë¤âÄ󶡤µ¤ì¤Æ¤¤¤Ê¤¤¥Ñ¥Ã¥±¡¼¥¸Ì¾¤Î¿ô¤òɽ¤·¤Þ¤¹¡£ ¤³¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬¤¢¤ë¤È¤¤¤¦¤³¤È¤Ï¡¢ Á´¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Æ¤¤¤Ê¤¤¤«¡¢ (¼Â¤Ê¤¤¤·²¾ÁÛ) ¥Ñ¥Ã¥±¡¼¥¸¤¬¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤«¤é¤Ï¤º¤µ¤ì¤Æ¤·¤Þ¤Ã¤¿²ÄǽÀ­¤â¤¢¤ê¤Þ¤¹¡£ Ä̾ï¤Ç¤Ï¡¢¹½Ê¸¤¬Ì·½â¤¹¤ë¤È¤³¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ +.TP 3n +\(bu +¸ÄÊ̥С¼¥¸¥ç¥óÁí¿ô¤Ï¡¢ ¥­¥ã¥Ã¥·¥å¤Ë¸ºß¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¿ô¤òɽ¤·¤Þ¤¹¡£ ¤½¤Î¤¿¤á¡¢¤³¤ÎÃͤϺǾ®¤Ç¤â¥Ñ¥Ã¥±¡¼¥¸Ì¾Áí¿ô¤È°ìÃפ·¤Þ¤¹¡£ ¤â¤·Ê£¿ô¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó (Îã "stable" ¤È "unstable" ¤ÎξÊý) ¤òÍøÍѤ·¤¿¾ì¹ç¡¢ ¤³¤ÎÃͤϥѥ屡¼¥¸Ì¾Áí¿ô¤è¤ê¤â¤«¤Ê¤êÂ礭¤¤¿ô¤Ë¤Ê¤ê¤Þ¤¹¡£ +.TP 3n +\(bu +°Í¸´Ø·¸Áí¿ô¤Ï¡¢ ¥­¥ã¥Ã¥·¥å¤Ë¤¢¤ë¤¹¤Ù¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸¤ÇÍ׵ᤵ¤ì¤¿°Í¸´Ø·¸¤Î¿ô¤Ç¤¹¡£ +.RE +.IP "" 3n +.RE +.PP +showsrc \fIpkg(s)\fR +.RS 3n +showsrc +¤Ï¡¢ »ØÄꤷ¤¿¥Ñ¥Ã¥±¡¼¥¸Ì¾¤Ë°ìÃפ¹¤ë¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤ò¡¢¤¹¤Ù¤Æɽ¼¨¤·¤Þ¤¹¡£ ¥Ð¥¤¥Ê¥ê¤Ë¤Ê¤ë¤È¤­¤Î̾¾Î¤òÀë¸À¤·¤¿¥ì¥³¡¼¥É¤ÈƱÍͤˡ¢ ¤¹¤Ù¤Æ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ä¤¤¤Æɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +dump +.RS 3n +dump +¤Ï¡¢ ¥­¥ã¥Ã¥·¥åÆâ¤Î¥Ñ¥Ã¥±¡¼¥¸¤½¤ì¤¾¤ì¤Ë¤Ä¤¤¤Æ¡¢Ã»¤¤°ìÍ÷¤òɽ¼¨¤·¤Þ¤¹¡£ ¼ç¤Ë¥Ç¥Ð¥Ã¥°ÍѤǤ¹¡£ +.RE +.PP +dumpavail +.RS 3n +dumpavail +¤Ï¡¢ ɸ½à½ÐÎϤËÍøÍѲÄǽ¤Ê¤â¤Î¤Î°ìÍ÷¤ò½ÐÎϤ·¤Þ¤¹¡£ +\fBdpkg\fR(8) +¤È¶¦¤Ë»ÈÍѤ¹¤ë¤ÈÊØÍø¤Ç¤¹¤·¡¢ +\fBdselect\fR(8) +¤Ç¤â»ÈÍѤµ¤ì¤Þ¤¹¡£ +.RE +.PP +unmet +.RS 3n +unmet +¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¥­¥ã¥Ã¥·¥åÆâ¤Ë¤¢¤ë¡¢ ÉÔŬÅö¤Ê°Í¸´Ø·¸¤Î³µÍפòɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +show \fIpkg(s)\fR +.RS 3n +show +¤Ï¡¢ +\fBdpkg \-\-print\-avail\fR +¤ÈƱÍͤε¡Ç½¤ò¼Â¹Ô¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢»ØÄꤷ¤¿¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ñ¥Ã¥±¡¼¥¸¥ì¥³¡¼¥É¤Îɽ¼¨¤Ç¤¹¡£ +.RE +.PP +search \fIregex [ regex ... ]\fR +.RS 3n +search +¤Ï¡¢Í¿¤¨¤é¤ì¤¿Àµµ¬É½¸½¤Ë¤è¤Ã¤Æ¡¢ ¤¹¤Ù¤Æ¤ÎÍøÍѲÄǽ¤Ê¥Ñ¥Ã¥±¡¼¥¸¤ËÂФ·¤ÆÁ´Ê¸¸¡º÷¤ò¹Ô¤¤¤Þ¤¹¡£ ¥Ñ¥Ã¥±¡¼¥¸Ì¾¤ÈÀâÌÀ¤ËÂФ·¤Æ¸¡º÷¤ò¹Ô¤¤¡¢ ¥Ñ¥Ã¥±¡¼¥¸Ì¾¤Èû¤¤ÀâÌÀʸ¤òɽ¼¨¤·¤Þ¤¹¡£ +\fB\-\-full\fR +¤¬Í¿¤¨¤é¤ì¤¿¾ì¹ç¡¢¥Þ¥Ã¥Á¤·¤¿¥Ñ¥Ã¥±¡¼¥¸¤ËÂФ· +show +¤ÈƱ¤¸¾ðÊó¤ò½ÐÎϤ·¤Þ¤¹¡£ +\fB\-\-names\-only\fR +¤¬Í¿¤¨¤é¤ì¤¿¾ì¹ç¤Ï¡¢ ÀâÌÀʸ¤ËÂФ·¤Æ¸¡º÷¤ò¹Ô¤ï¤º¡¢¥Ñ¥Ã¥±¡¼¥¸Ì¾¤ËÂФ·¤Æ¤Î¤ßÂоݤȤ·¤Þ¤¹¡£ +.sp + +¶õÇò¤Ç¶èÀڤä¿°ú¿ô¤Ç¡¢ Ê£¿ô¤Î¸¡º÷¥Ñ¥¿¡¼¥ó¤Î and ¤ò¤È¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +depends \fIpkg(s)\fR +.RS 3n +depends +¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤¬»ý¤Ã¤Æ¤¤¤ë°Í¸´Ø·¸¤È¡¢ ¤½¤Î°Í¸´Ø·¸¤òËþ¤¿¤¹Â¾¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î°ìÍ÷¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +rdepends \fIpkg(s)\fR +.RS 3n +rdepends +¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤¬»ý¤ÄÈï°Í¸´Ø·¸¤ò°ìÍ÷ɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +pkgnames \fI[ prefix ]\fR +.RS 3n +¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢ ¥·¥¹¥Æ¥à¤Ç¤Î³Æ¥Ñ¥Ã¥±¡¼¥¸¤Î̾¾Î¤òɽ¼¨¤·¤Þ¤¹¡£ ¥ª¥×¥·¥ç¥ó¤Î°ú¿ô¤Ë¤è¤ê¡¢¼èÆÀ¤¹¤ë°ìÍ÷¤è¤êÀèƬ°ìÃפÇÃê½Ð¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¤³¤Î½ÐÎϤϥ·¥§¥ë¤Î¥¿¥Ö¤Ë¤è¤ëÊä´°µ¡Ç½¤Ë»È¤¤¤ä¤¹¤¯¡¢ ¤Þ¤¿Èó¾ï¤Ë®¤¯À¸À®¤µ¤ì¤Þ¤¹¡£ ¤³¤Î¥³¥Þ¥ó¥É¤Ï +\fB\-\-generate\fR +¥ª¥×¥·¥ç¥ó¤È¶¦¤Ë»ÈÍѤ¹¤ë¤È¡¢ Èó¾ï¤ËÊØÍø¤Ç¤¹¡£ +.RE +.PP +dotty \fIpkg(s)\fR +.RS 3n +dotty +¤Ï¡¢ ¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤Î¥Ñ¥Ã¥±¡¼¥¸Ì¾¤«¤é¡¢ +[1]\&\fIGraphViz\fR +¥Ñ¥Ã¥±¡¼¥¸¤Î dotty ¥³¥Þ¥ó¥É¤ÇÍøÍѤ¹¤ë¤Î¤ËÊØÍø¤Ê½ÐÎϤòÀ¸À®¤·¤Þ¤¹¡£ ·ë²Ì¤Ï¥Ñ¥Ã¥±¡¼¥¸¤Î´Ø·¸¤òɽ¤ï¤¹¡¢¥Î¡¼¥É¡¦¥¨¥Ã¥¸¤Î¥»¥Ã¥È¤Çɽ¸½¤µ¤ì¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤¹¤Ù¤Æ¤Î°Í¸¥Ñ¥Ã¥±¡¼¥¸¤ò¥È¥ì¡¼¥¹¤¹¤ë¤Î¤Ç¡¢ Èó¾ï¤ËÂ礭¤¤¿Þ¤¬ÆÀ¤é¤ì¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢APT::Cache::GivenOnly +¥ª¥×¥·¥ç¥ó¤òÀßÄꤷ¤Æ²ò½ü¤Ç¤­¤Þ¤¹¡£ +.sp +·ë²Ì¤Î¥Î¡¼¥É¤Ï¿ô¼ï¤Î·Á¾õ¤ò¤È¤ê¤Þ¤¹¡£ Ä̾ï¥Ñ¥Ã¥±¡¼¥¸¤Ï»Í³Ñ¡¢½ã¿è²¾Áۥѥ屡¼¥¸¤Ï»°³Ñ¡¢Ê£¹ç²¾Áۥѥ屡¼¥¸¤ÏÉ©·Á¡¢ Ï»³Ñ·Á¤Ï·çÍî¥Ñ¥Ã¥±¡¼¥¸¤ò¤½¤ì¤¾¤ìɽ¤·¤Þ¤¹¡£ ¥ª¥ì¥ó¥¸¤Î»Í³Ñ¤ÏºÆµ¢¤¬½ªÎ»¤·¤¿¡Ö¥ê¡¼¥Õ¥Ñ¥Ã¥±¡¼¥¸¡×¡¢ÀĤ¤Àþ¤ÏÀè¹Ô°Í¸¡¢ ÎФÎÀþ¤Ï¶¥¹ç¤òɽ¤·¤Þ¤¹¡£ +.sp +Ãí°Õ) dotty ¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Î¤è¤êÂ礭¤Ê¥»¥Ã¥È¤Î¥°¥é¥Õ¤ÏÉÁ¤±¤Þ¤»¤ó¡£ +.RE +.PP +policy \fI[ pkg(s) ]\fR +.RS 3n +policy +¤Ï¡¢ ÀßÄê¥Õ¥¡¥¤¥ë´Ø·¸¤ÎÌäÂê¤Ë¤Ä¤¤¤Æ¡¢¥Ç¥Ð¥Ã¥°¤ò»Ù±ç¤·¤Þ¤¹¡£ °ú¿ô¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¼èÆÀ¸µ¤´¤È¤ÎÍ¥Àè½ç°Ì¤òɽ¼¨¤·¤Þ¤¹¡£ °ìÊý¡¢¥Ñ¥Ã¥±¡¼¥¸Ì¾¤ò»ØÄꤷ¤¿¾ì¹ç¡¢ Í¥Àè½ç¤Î¾ÜºÙ¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +madison \fI/[ pkg(s) ]\fR +.RS 3n +apt\-cache +¤Î +madison +¥³¥Þ¥ó¥É¤Ï¡¢Debian ¥¢¡¼¥«¥¤¥Ö´ÉÍý¥Ä¡¼¥ë +madison +¤Îµ¡Ç½¤Î¥µ¥Ö¥»¥Ã¥È¤Ç¡¢½ÐÎÏ¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¿¿»÷¤è¤¦¤È¤·¤Þ¤¹¡£ ¥Ñ¥Ã¥±¡¼¥¸¤ÎÍøÍѲÄǽ¥Ð¡¼¥¸¥ç¥ó¤òɽ·Á¼°¤Çɽ¼¨¤·¤Þ¤¹¡£ ¥ª¥ê¥¸¥Ê¥ë¤Î +madison +¤È°ã¤¤¡¢ APT ¤¬¥Ñ¥Ã¥±¡¼¥¸°ìÍ÷¤ò¸¡º÷¤·¤¿¥¢¡¼¥­¥Æ¥¯¥Á¥ã (APT::Architecture) ¤Î¾ðÊó¤òɽ¼¨¤¹¤ë¤À¤±¤Ç¤¹¡£ +.RE +.SH "¥ª¥×¥·¥ç¥ó" +.PP +¤³¤ÎÀâÌÀ¤Ç¼¨¤·¤¿¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¤¹¤Ù¤ÆÀßÄê¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤ÆÀßÄê¤Ç¤­¤Þ¤¹¡£ ÀßÄê¥Õ¥¡¥¤¥ë¤Ë½ñ¤¤¤¿¿¿µ¶Ãͤò¤È¤ë¥ª¥×¥·¥ç¥ó¤Ï +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +¤Ê¤É¤Î¤è¤¦¤Ë¤·¤Æ¾å½ñ¤­¤Ç¤­¤Þ¤¹¡£ +.PP +\fB\-p\fR, \fB\-\-pkg\-cache\fR +.RS 3n +¥Ñ¥Ã¥±¡¼¥¸¥­¥ã¥Ã¥·¥å¤ò³ÊǼ¤¹¤ë¥Õ¥¡¥¤¥ë¤òÁªÂò¤·¤Þ¤¹¡£ ¥Ñ¥Ã¥±¡¼¥¸¥­¥ã¥Ã¥·¥å¤Ï¡¢¤¹¤Ù¤Æ¤ÎÁàºî¤Ç»ÈÍѤµ¤ì¤ë°ì¼¡¥­¥ã¥Ã¥·¥å¤Ç¤¹¡£ ÀßÄê¹àÌÜ \- +Dir::Cache::pkgcache +.RE +.PP +\fB\-s\fR, \fB\-\-src\-cache\fR +.RS 3n +¥½¡¼¥¹¥­¥ã¥Ã¥·¥å¤ò³ÊǼ¤¹¤ë¥Õ¥¡¥¤¥ë¤òÁªÂò¤·¤Þ¤¹¡£ ¤³¤Î¥½¡¼¥¹¥­¥ã¥Ã¥·¥å¤Ï +gencaches +¤Ç¤Î¤ß»ÈÍѤµ¤ì¡¢ ¤³¤³¤Ë²òÀϤµ¤ì¤¿¼èÆÀ¸µ¤Î¥Ñ¥Ã¥±¡¼¥¸¾ðÊ󤬳ÊǼ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¥Ñ¥Ã¥±¡¼¥¸¥­¥ã¥Ã¥·¥å¤ò¹½ÃÛ¤¹¤ëºÝ¤Ë¡¢¥½¡¼¥¹¥­¥ã¥Ã¥·¥å¤Ï¡¢ Á´¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤òºÆ²òÀϤòÈò¤±¤ë¾å¤ÇÊØÍø¤Ç¤¹¡£ +ÀßÄê¹àÌÜ \- +Dir::Cache::srcpkgcache +.RE +.PP +\fB\-q\fR, \fB\-\-quiet\fR +.RS 3n +ÀÅ½Í \- ¿ÊĽɽ¼¨¤ò¾Êά¤·¡¢ ¥í¥°¤ò¤È¤ë¤Î¤ËÊØÍø¤Ê½ÐÎϤò¹Ô¤¤¤Þ¤¹¡£ ºÇÂç 2 ¤Ä¤Þ¤Ç q ¤ò½Å¤Í¤ë¤³¤È¤Ç¤µ¤é¤ËÀŽͤˤǤ­¤Þ¤¹¡£ ¤Þ¤¿¡¢\fB\-q=#\fR +¤Î¤è¤¦¤ËÀŽͥì¥Ù¥ë¤ò»ØÄꤷ¤Æ¡¢ ÀßÄê¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +quiet +.RE +.PP +\fB\-i\fR, \fB\-\-important\fR +.RS 3n +¡Ö½ÅÍסװ͸´Ø·¸¤Î¤ßɽ¼¨ \- unmet ¤È¶¦¤Ë»ÈÍѤ·¤Þ¤¹¡£ ¤³¤ì¤Ï¡Ö°Í¸¡×´Ø·¸¤È¡ÖÀè¹Ô°Í¸¡×´Ø·¸¤Î¤ß¤òɽ¼¨¤¹¤ë¤¿¤á¤Ç¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Cache::Important +.RE +.PP +\fB\-f\fR, \fB\-\-full\fR +.RS 3n +search »þ¤ËÁ´¥Ñ¥Ã¥±¡¼¥¸¥ì¥³¡¼¥É¤òɽ¼¨¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Cache::ShowFull +.RE +.PP +\fB\-a\fR, \fB\-\-all\-versions\fR +.RS 3n +Á´ÍøÍѲÄǽ¥Ð¡¼¥¸¥ç¥ó¤Î¥ì¥³¡¼¥ÉÁ´ÂΤòɽ¼¨¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ç¡¢ ̵¸ú¤Ë¤¹¤ë¤Ë¤Ï +\fB\-\-no\-all\-versions\fR +¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£ +\fB\-\-no\-all\-versions\fR +¤ò»ØÄꤹ¤ë¤È¡¢ ¸õÊä¥Ð¡¼¥¸¥ç¥ó (¥¤¥ó¥¹¥È¡¼¥ë¤ÎºÝ¤ËÁªÂò¤µ¤ì¤ë¤â¤Î) ¤À¤±É½¼¨¤·¤Þ¤¹¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢show ¥³¥Þ¥ó¥É¤Ç¤Î¤ßŬÍѤǤ­¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Cache::AllVersions +.RE +.PP +\fB\-g\fR, \fB\-\-generate\fR +.RS 3n +¤½¤Î¤Þ¤Þ¥­¥ã¥Ã¥·¥å¤ò»ÈÍѤ¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ ¼«Æ°Åª¤Ë¥Ñ¥Ã¥±¡¼¥¸¥­¥ã¥Ã¥·¥å¤òºÆÀ¸À®¤·¤Þ¤¹¡£¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ç¡¢ ̵¸ú¤Ë¤¹¤ë¤Ë¤Ï +\fB\-\-no\-generate\fR +¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£ ÀßÄê¹àÌÜ \- +APT::Cache::Generate +.RE +.PP +\fB\-\-names\-only\fR, \fB\-n\fR +.RS 3n +ÀâÌÀʸ¤Ç¤Ï¤Ê¤¯¡¢¥Ñ¥Ã¥±¡¼¥¸Ì¾¤«¤é¤Î¤ß¸¡º÷¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Cache::NamesOnly +.RE +.PP +\fB\-\-all\-names\fR +.RS 3n +pkgnames +¤Ç¡¢ ²¾Áۥѥ屡¼¥¸¤ä·çÍî°Í¸´Ø·¸¤ò´Þ¤á¤¿Á´Ì¾¾Î¤òɽ¼¨¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Cache::AllNames +.RE +.PP +\fB\-\-recurse\fR +.RS 3n +depends +¤ä +rdepends +¤Ç¡¢»ØÄꤷ¤¿Á´¥Ñ¥Ã¥±¡¼¥¸¤òºÆµ¢Åª¤Ë°ìÅÙ¤Ëɽ¼¨¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Cache::RecurseDepends +.RE +.PP +\fB\-\-installed\fR +.RS 3n + +depends +¤ä +rdepends +¤Î½ÐÎϤò¡¢ ¸½ºß¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ë¸ÂÄꤷ¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Cache::Installed +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +»È¤¤Êý¤Îû¤¤Í×Ìó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +ÀßÄê¥Õ¥¡¥¤¥ë¡£ »ÈÍѤ¹¤ëÀßÄê¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤¬Æɤá¤Ê¤¤¾ì¹ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¤Þ¤¹¡£ ʸˡ¤Ë¤Ä¤¤¤Æ¤Ï +\fBapt.conf\fR(5) +¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +ÀßÄꥪ¥×¥·¥ç¥ó¤Î¥»¥Ã¥È¡£Ç¤°Õ¤ÎÀßÄꥪ¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£ ʸˡ¤Ï +\fB\-o Foo::Bar=bar\fR +¤È¤Ê¤ê¤Þ¤¹¡£ +.RE +.SH "¥Õ¥¡¥¤¥ë" +.PP +\fI/etc/apt/sources.list\fR +.RS 3n +¥Ñ¥Ã¥±¡¼¥¸¤Î¼èÆÀ¸µ¡£ ÀßÄê¹àÌÜ \- +Dir::Etc::SourceList +.RE +.PP +\fI/var/lib/apt/lists/\fR +.RS 3n +\fBsources.list\fR(5) +¤Ë»ØÄꤷ¤¿¡¢ ¥Ñ¥Ã¥±¡¼¥¸¥ê¥½¡¼¥¹¤´¤È¤Î¾õÂÖ¾ðÊó³ÊǼ¥¨¥ê¥¢¡£ ÀßÄê¹àÌÜ \- +Dir::State::Lists +.RE +.PP +\fI/var/lib/apt/lists/partial/\fR +.RS 3n +¼èÆÀÃæ¾õÂÖ¾ðÊó³ÊǼ¥¨¥ê¥¢¡£ ÀßÄê¹àÌÜ \- +Dir::State::Lists +(ɬÁ³Åª¤ËÉÔ´°Á´) +.RE +.SH "´ØÏ¢¹àÌÜ" +.PP +\fBapt.conf\fR(5), +\fBsources.list\fR(5), +\fBapt\-get\fR(8) +.SH "¿ÇÃÇ¥á¥Ã¥»¡¼¥¸" +.PP +\fBapt\-cache\fR +¤ÏÀµ¾ï½ªÎ»»þ¤Ë 0 ¤òÊÖ¤·¤Þ¤¹¡£ ¥¨¥é¡¼»þ¤Ë¤Ï½½¿Ê¤Î 100 ¤òÊÖ¤·¤Þ¤¹¡£ +.SH "¥Ð¥°" +.PP +[2]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ GraphViz +\%http://www.research.att.com/sw/tools/graphviz/ +.TP 3 +2.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt-cache.ja.8 b/doc/ja/apt-cache.ja.8 new file mode 100644 index 0000000..ae3fa9e --- /dev/null +++ b/doc/ja/apt-cache.ja.8 @@ -0,0 +1,378 @@ +.\" Title: apt\-cache +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-CACHE" "8" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-cache \- APT ¥Ñ¥Ã¥±¡¼¥¸Áàºî¥æ¡¼¥Æ¥£¥ê¥Æ¥£ \-\- ¥­¥ã¥Ã¥·¥åÁàºî +.SH "SYNOPSIS" +.HP 10 +\fBapt\-cache\fR [\fB\-hvsn\fR] [\fB\-o=\fR\fB\fIconfig\ string\fR\fR] [\fB\-c=\fR\fB\fIfile\fR\fR] {[add\ \fIfile\fR...] | [gencaches] | [showpkg\ \fIpkg\fR...] | [showsrc\ \fIpkg\fR...] | [stats] | [dump] | [dumpavail] | [unmet] | [search\ \fIregex\fR] | [show\ \fIpkg\fR...] | [depends\ \fIpkg\fR...] | [rdepends\ \fIpkg\fR...] | [pkgnames\ \fIprefix\fR] | [dotty\ \fIpkg\fR...] | [policy\ \fIpkgs\fR...] | [madison\ \fIpkgs\fR...]} +.SH "ÀâÌÀ" +.PP +\fBapt\-cache\fR +¤Ï APT ¤Î¥Ñ¥Ã¥±¡¼¥¸¥­¥ã¥Ã¥·¥å¤ËÂФ·¤Æ¡¢ ¤µ¤Þ¤¶¤Þ¤ÊÁàºî¤ò¹Ô¤¤¤Þ¤¹¡£ +\fBapt\-cache\fR +¤Ï¡¢¥·¥¹¥Æ¥à¾õÂÖ¤ÎÁàºî¤Ï¹Ô¤¤¤Þ¤»¤ó¤¬¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Î¥á¥¿¥Ç¡¼¥¿¤è¤ê¸¡º÷¤·¤¿¤ê¡¢ ¶½Ì£¿¼¤¤½ÐÎϤòÀ¸À®¤¹¤ë¤È¤¤¤Ã¤¿Áàºî¤òÄ󶡤·¤Þ¤¹¡£ +.PP +\fB\-h\fR +¥ª¥×¥·¥ç¥ó¤ä +\fB\-\-help\fR +¥ª¥×¥·¥ç¥ó¤ò½ü¤­¡¢ °Ê²¼¤Ëµó¤²¤ë¥³¥Þ¥ó¥É¤¬É¬ÍפǤ¹¡£ +.PP +add \fIfile(s)\fR +.RS 3n +add +¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¥­¥ã¥Ã¥·¥å¤Ë»ØÄꤷ¤¿¥Ñ¥Ã¥±¡¼¥¸¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤òÄɲä·¤Þ¤¹¡£ ¥Ç¥Ð¥Ã¥°ÀìÍѤǤ¹¡£ +.RE +.PP +gencaches +.RS 3n +gencaches +¤Ï¡¢ +\fBapt\-get check\fR +¤ÈƱ¤¸Æ°ºî¤òÄ󶡤·¤Þ¤¹¡£ ¤³¤ì¤Ï +\fBsources.list\fR(5) +Æâ¤Î¼èÆÀ¸µ¤È +\fI/var/lib/dpkg/status\fR¤«¤é¡¢ ¥½¡¼¥¹¤È¥Ñ¥Ã¥±¡¼¥¸¤Î¥­¥ã¥Ã¥·¥å¤ò¹½ÃÛ¤·¤Þ¤¹¡£ +.RE +.PP +showpkg \fIpkg(s)\fR +.RS 3n +showpkg +¤Ï¡¢ ¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤ËÎóµó¤·¤¿¥Ñ¥Ã¥±¡¼¥¸¤Î¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£ ¸å¤Ë³¤¯°ú¿ô¤Ï¥Ñ¥Ã¥±¡¼¥¸Ì¾¤È¤Ê¤ê¤Þ¤¹¡£ ³Æ¥Ñ¥Ã¥±¡¼¥¸¤Ë¤Ä¤¤¤Æ¡¢Í­¸ú¤Ê¥Ð¡¼¥¸¥ç¥ó¤ÈÈï°Í¸´Ø·¸¤òÎóµó¤·¡¢ ¤µ¤é¤Ë¤½¤Î³Æ¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ä¤¤¤Æ°Í¸´Ø·¸¤òɽ¼¨¤·¤Þ¤¹¡£ (Ä̾ï¤Î) °Í¸´Ø·¸¤È¤Ï¡¢ÂоݤΥѥ屡¼¥¸¤¬°Í¸¤·¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤ò»Ø¤·¤Þ¤¹¡£ ¤Þ¤¿¡¢Èï°Í¸´Ø·¸¤È¤Ï¡¢ÂоݤΥѥ屡¼¥¸¤Ë°Í¸¤·¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤ò»Ø¤·¤Þ¤¹¡£ ½¾¤Ã¤Æ¡¢¥Ñ¥Ã¥±¡¼¥¸¤Î°Í¸´Ø·¸¤ÏËþ¤¿¤µ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¤¬¡¢ Èï°Í¸´Ø·¸¤ÏËþ¤¿¤¹É¬ÍפϤ¢¤ê¤Þ¤»¤ó¡£ ¼ÂÎã¤È¤·¤Æ¡¢°Ê²¼¤Ë +\fBapt\-cache showpkg libreadline2\fR +¤Î ½ÐÎϤò·Ç¤²¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Package: libreadline2 +Versions: 2.1\-12(/var/state/apt/lists/foo_Packages), +Reverse Depends: + libreadlineg2,libreadline2 + libreadline2\-altdev,libreadline2 +Dependencies: +2.1\-12 \- libc5 (2 5.4.0\-0) ncurses3.0 (0 (null)) +Provides: +2.1\-12 \- +Reverse Provides: +.fi +.RE +¤Ä¤Þ¤ê¡¢libreadline2 ¤Î version 2.1\-12 ¤Ï¡¢ libc5 ¤È ncurses3.0 ¤Ë°Í¸¤·¤Æ¤¤¤Æ¡¢libreadline2 ¤¬Æ°ºî¤¹¤ë¤Ë¤Ï¡¢ ¤³¤ì¤é¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפ¬¤¢¤ë¤È¤¤¤¦¤³¤È¤¬È½¤ê¤Þ¤¹¡£ °ìÊý¡¢libreadlineg2 ¤È libreadline2\-altdev ¤Ï libreadline2 ¤Ë°Í¸¤·¤Æ¤¤¤Þ¤¹¡£ libreadline2 ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢libc5, ncurses3.0, ldso ¤ò ¤¹¤Ù¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¤¬¡¢libreadlineg2 ¤È libreadline2\-altdev ¤Ï¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£ ½ÐÎϤλĤê¤ÎÉôʬ¤Î°ÕÌ£¤Ë¤Ä¤¤¤Æ¤Ï¡¢ apt ¤Î¥½¡¼¥¹¥³¡¼¥É¤òÄ´¤Ù¤ë¤Î¤¬ºÇÎɤǤ·¤ç¤¦¡£ +.RE +.PP +stats +.RS 3n +stats +¤Ï¥­¥ã¥Ã¥·¥å¤Ë¤Ä¤¤¤Æ¤ÎÅý·×¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£ ¤½¤ì°Ê¾å¡¢°ú¿ô¤ÏɬÍפ¢¤ê¤Þ¤»¤ó¡£°Ê²¼¤ÎÅý·×¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RS 3n +.TP 3n +\(bu +¥Ñ¥Ã¥±¡¼¥¸Ì¾Áí¿ô¤Ï¡¢ ¥­¥ã¥Ã¥·¥å¤Ë¸ºß¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¿ô¤òɽ¤·¤Þ¤¹¡£ +.TP 3n +\(bu +Ä̾ï¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢ ¸ø¼°¤ÎÉáÄ̤Υѥ屡¼¥¸¿ô¤òɽ¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢Â¾¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î°Í¸´Ø·¸¤Ç»ÈÍѤµ¤ì¤¿Ì¾¾Î¤Ç¡¢¤½¤ì¤¬°ìÂаì¤ËÂбþ ¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ç¤¹¡£ Âç¿¿ô¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ï¤³¤Î¥«¥Æ¥´¥ê¤ËÆþ¤ê¤Þ¤¹¡£ +.TP 3n +\(bu +½ã¿è²¾Áۥѥ屡¼¥¸¤Ï¡¢ ²¾Áۥѥ屡¼¥¸Ì¾¤È¤·¤Æ¤Î¤ß¸ºß¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸ (²¾Áۥѥ屡¼¥¸Ì¾¤Î¤ß¤ò¡ÖÄ󶡡פ·¡¢ ¼ÂºÝ¤Ë¤Ï¤¤¤«¤Ê¤ë¥Ñ¥Ã¥±¡¼¥¸¤â¤½¤Î̾¾Î¤ò»ý¤¿¤Ê¤¤) ¤Î¿ô¤òɽ¤·¤Þ¤¹¡£ Î㤨¤Ð¡¢Debian GNU/Linux ¥·¥¹¥Æ¥à¤Ç¤Ï "mail\-transport\-agent" ¤Ï½ã¿è²¾Áۥѥ屡¼¥¸¤Ç¤¹¡£ "mail\-transport\-agent" ¤òÄ󶡤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ï¤¤¤¯¤Ä¤â¤¢¤ê¤Þ¤¹¤¬¡¢ "mail\-transport\-agent" ¤È¤¤¤¦Ì¾¾Î¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ï¤¢¤ê¤Þ¤»¤ó¡£ +.TP 3n +\(bu +ñ°ì²¾Áۥѥ屡¼¥¸¤Ï¡¢ ÆÃÄê¤Î²¾Áۥѥ屡¼¥¸Ì¾¤òÄ󶡤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤¬¡¢ ¤¿¤À°ì¤Ä¤Î¾ì¹ç¤Î¿ô¤òɽ¤·¤Þ¤¹¡£ Î㤨¤Ð¡¢Debian GNU/Linux ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢"X11\-text\-viewer" ¤Ï²¾Áۥѥ屡¼¥¸¤Ç¤¹¤¬¡¢"X11\-text\-viewer" ¤òÄ󶡤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢ xless ¥Ñ¥Ã¥±¡¼¥¸¤Î¤ß¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ +.TP 3n +\(bu +Ê£¹ç²¾Áۥѥ屡¼¥¸¤Ï¡¢ ¤½¤Î²¾Áۥѥ屡¼¥¸Ì¾¤òÄ󶡤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤¬Ê£¿ô¤¢¤ë¤«¡¢ ¤Þ¤¿¥Ñ¥Ã¥±¡¼¥¸Ì¾¤ÈƱ¤¸²¾Áۥѥ屡¼¥¸Ì¾¤ò»ý¤Ä¥Ñ¥Ã¥±¡¼¥¸¿ô¤òɽ¤·¤Þ¤¹¡£ Î㤨¤Ð¡¢Debian GNU/Linux ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ debconf ¤Ï¼ÂºÝ¤Î¥Ñ¥Ã¥±¡¼¥¸Ì¾¤Ç¤â¤¢¤ê¤Þ¤¹¤¬¡¢ debconf\-tiny ¤Ë¤è¤Ã¤ÆÄ󶡤⤵¤ì¤Æ¤¤¤Þ¤¹¡£ +.TP 3n +\(bu +·çÍî¤Ï¡¢°Í¸´Ø·¸Ãæ¤Ë¤Ï¸ºß¤¹¤ë¤Î¤Ë¡¢ ¤É¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ë¤âÄ󶡤µ¤ì¤Æ¤¤¤Ê¤¤¥Ñ¥Ã¥±¡¼¥¸Ì¾¤Î¿ô¤òɽ¤·¤Þ¤¹¡£ ¤³¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬¤¢¤ë¤È¤¤¤¦¤³¤È¤Ï¡¢ Á´¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Æ¤¤¤Ê¤¤¤«¡¢ (¼Â¤Ê¤¤¤·²¾ÁÛ) ¥Ñ¥Ã¥±¡¼¥¸¤¬¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤«¤é¤Ï¤º¤µ¤ì¤Æ¤·¤Þ¤Ã¤¿²ÄǽÀ­¤â¤¢¤ê¤Þ¤¹¡£ Ä̾ï¤Ç¤Ï¡¢¹½Ê¸¤¬Ì·½â¤¹¤ë¤È¤³¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ +.TP 3n +\(bu +¸ÄÊ̥С¼¥¸¥ç¥óÁí¿ô¤Ï¡¢ ¥­¥ã¥Ã¥·¥å¤Ë¸ºß¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¿ô¤òɽ¤·¤Þ¤¹¡£ ¤½¤Î¤¿¤á¡¢¤³¤ÎÃͤϺǾ®¤Ç¤â¥Ñ¥Ã¥±¡¼¥¸Ì¾Áí¿ô¤È°ìÃפ·¤Þ¤¹¡£ ¤â¤·Ê£¿ô¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó (Îã "stable" ¤È "unstable" ¤ÎξÊý) ¤òÍøÍѤ·¤¿¾ì¹ç¡¢ ¤³¤ÎÃͤϥѥ屡¼¥¸Ì¾Áí¿ô¤è¤ê¤â¤«¤Ê¤êÂ礭¤¤¿ô¤Ë¤Ê¤ê¤Þ¤¹¡£ +.TP 3n +\(bu +°Í¸´Ø·¸Áí¿ô¤Ï¡¢ ¥­¥ã¥Ã¥·¥å¤Ë¤¢¤ë¤¹¤Ù¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸¤ÇÍ׵ᤵ¤ì¤¿°Í¸´Ø·¸¤Î¿ô¤Ç¤¹¡£ +.RE +.IP "" 3n +.RE +.PP +showsrc \fIpkg(s)\fR +.RS 3n +showsrc +¤Ï¡¢ »ØÄꤷ¤¿¥Ñ¥Ã¥±¡¼¥¸Ì¾¤Ë°ìÃפ¹¤ë¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤ò¡¢¤¹¤Ù¤Æɽ¼¨¤·¤Þ¤¹¡£ ¥Ð¥¤¥Ê¥ê¤Ë¤Ê¤ë¤È¤­¤Î̾¾Î¤òÀë¸À¤·¤¿¥ì¥³¡¼¥É¤ÈƱÍͤˡ¢ ¤¹¤Ù¤Æ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ä¤¤¤Æɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +dump +.RS 3n +dump +¤Ï¡¢ ¥­¥ã¥Ã¥·¥åÆâ¤Î¥Ñ¥Ã¥±¡¼¥¸¤½¤ì¤¾¤ì¤Ë¤Ä¤¤¤Æ¡¢Ã»¤¤°ìÍ÷¤òɽ¼¨¤·¤Þ¤¹¡£ ¼ç¤Ë¥Ç¥Ð¥Ã¥°ÍѤǤ¹¡£ +.RE +.PP +dumpavail +.RS 3n +dumpavail +¤Ï¡¢ ɸ½à½ÐÎϤËÍøÍѲÄǽ¤Ê¤â¤Î¤Î°ìÍ÷¤ò½ÐÎϤ·¤Þ¤¹¡£ +\fBdpkg\fR(8) +¤È¶¦¤Ë»ÈÍѤ¹¤ë¤ÈÊØÍø¤Ç¤¹¤·¡¢ +\fBdselect\fR(8) +¤Ç¤â»ÈÍѤµ¤ì¤Þ¤¹¡£ +.RE +.PP +unmet +.RS 3n +unmet +¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¥­¥ã¥Ã¥·¥åÆâ¤Ë¤¢¤ë¡¢ ÉÔŬÅö¤Ê°Í¸´Ø·¸¤Î³µÍפòɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +show \fIpkg(s)\fR +.RS 3n +show +¤Ï¡¢ +\fBdpkg \-\-print\-avail\fR +¤ÈƱÍͤε¡Ç½¤ò¼Â¹Ô¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢»ØÄꤷ¤¿¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ñ¥Ã¥±¡¼¥¸¥ì¥³¡¼¥É¤Îɽ¼¨¤Ç¤¹¡£ +.RE +.PP +search \fIregex [ regex ... ]\fR +.RS 3n +search +¤Ï¡¢Í¿¤¨¤é¤ì¤¿Àµµ¬É½¸½¤Ë¤è¤Ã¤Æ¡¢ ¤¹¤Ù¤Æ¤ÎÍøÍѲÄǽ¤Ê¥Ñ¥Ã¥±¡¼¥¸¤ËÂФ·¤ÆÁ´Ê¸¸¡º÷¤ò¹Ô¤¤¤Þ¤¹¡£ ¥Ñ¥Ã¥±¡¼¥¸Ì¾¤ÈÀâÌÀ¤ËÂФ·¤Æ¸¡º÷¤ò¹Ô¤¤¡¢ ¥Ñ¥Ã¥±¡¼¥¸Ì¾¤Èû¤¤ÀâÌÀʸ¤òɽ¼¨¤·¤Þ¤¹¡£ +\fB\-\-full\fR +¤¬Í¿¤¨¤é¤ì¤¿¾ì¹ç¡¢¥Þ¥Ã¥Á¤·¤¿¥Ñ¥Ã¥±¡¼¥¸¤ËÂФ· +show +¤ÈƱ¤¸¾ðÊó¤ò½ÐÎϤ·¤Þ¤¹¡£ +\fB\-\-names\-only\fR +¤¬Í¿¤¨¤é¤ì¤¿¾ì¹ç¤Ï¡¢ ÀâÌÀʸ¤ËÂФ·¤Æ¸¡º÷¤ò¹Ô¤ï¤º¡¢¥Ñ¥Ã¥±¡¼¥¸Ì¾¤ËÂФ·¤Æ¤Î¤ßÂоݤȤ·¤Þ¤¹¡£ +.sp + +¶õÇò¤Ç¶èÀڤä¿°ú¿ô¤Ç¡¢ Ê£¿ô¤Î¸¡º÷¥Ñ¥¿¡¼¥ó¤Î and ¤ò¤È¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +depends \fIpkg(s)\fR +.RS 3n +depends +¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤¬»ý¤Ã¤Æ¤¤¤ë°Í¸´Ø·¸¤È¡¢ ¤½¤Î°Í¸´Ø·¸¤òËþ¤¿¤¹Â¾¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î°ìÍ÷¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +rdepends \fIpkg(s)\fR +.RS 3n +rdepends +¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤¬»ý¤ÄÈï°Í¸´Ø·¸¤ò°ìÍ÷ɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +pkgnames \fI[ prefix ]\fR +.RS 3n +¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢ ¥·¥¹¥Æ¥à¤Ç¤Î³Æ¥Ñ¥Ã¥±¡¼¥¸¤Î̾¾Î¤òɽ¼¨¤·¤Þ¤¹¡£ ¥ª¥×¥·¥ç¥ó¤Î°ú¿ô¤Ë¤è¤ê¡¢¼èÆÀ¤¹¤ë°ìÍ÷¤è¤êÀèƬ°ìÃפÇÃê½Ð¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¤³¤Î½ÐÎϤϥ·¥§¥ë¤Î¥¿¥Ö¤Ë¤è¤ëÊä´°µ¡Ç½¤Ë»È¤¤¤ä¤¹¤¯¡¢ ¤Þ¤¿Èó¾ï¤Ë®¤¯À¸À®¤µ¤ì¤Þ¤¹¡£ ¤³¤Î¥³¥Þ¥ó¥É¤Ï +\fB\-\-generate\fR +¥ª¥×¥·¥ç¥ó¤È¶¦¤Ë»ÈÍѤ¹¤ë¤È¡¢ Èó¾ï¤ËÊØÍø¤Ç¤¹¡£ +.RE +.PP +dotty \fIpkg(s)\fR +.RS 3n +dotty +¤Ï¡¢ ¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤Î¥Ñ¥Ã¥±¡¼¥¸Ì¾¤«¤é¡¢ +[1]\&\fIGraphViz\fR +¥Ñ¥Ã¥±¡¼¥¸¤Î dotty ¥³¥Þ¥ó¥É¤ÇÍøÍѤ¹¤ë¤Î¤ËÊØÍø¤Ê½ÐÎϤòÀ¸À®¤·¤Þ¤¹¡£ ·ë²Ì¤Ï¥Ñ¥Ã¥±¡¼¥¸¤Î´Ø·¸¤òɽ¤ï¤¹¡¢¥Î¡¼¥É¡¦¥¨¥Ã¥¸¤Î¥»¥Ã¥È¤Çɽ¸½¤µ¤ì¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤¹¤Ù¤Æ¤Î°Í¸¥Ñ¥Ã¥±¡¼¥¸¤ò¥È¥ì¡¼¥¹¤¹¤ë¤Î¤Ç¡¢ Èó¾ï¤ËÂ礭¤¤¿Þ¤¬ÆÀ¤é¤ì¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢APT::Cache::GivenOnly +¥ª¥×¥·¥ç¥ó¤òÀßÄꤷ¤Æ²ò½ü¤Ç¤­¤Þ¤¹¡£ +.sp +·ë²Ì¤Î¥Î¡¼¥É¤Ï¿ô¼ï¤Î·Á¾õ¤ò¤È¤ê¤Þ¤¹¡£ Ä̾ï¥Ñ¥Ã¥±¡¼¥¸¤Ï»Í³Ñ¡¢½ã¿è²¾Áۥѥ屡¼¥¸¤Ï»°³Ñ¡¢Ê£¹ç²¾Áۥѥ屡¼¥¸¤ÏÉ©·Á¡¢ Ï»³Ñ·Á¤Ï·çÍî¥Ñ¥Ã¥±¡¼¥¸¤ò¤½¤ì¤¾¤ìɽ¤·¤Þ¤¹¡£ ¥ª¥ì¥ó¥¸¤Î»Í³Ñ¤ÏºÆµ¢¤¬½ªÎ»¤·¤¿¡Ö¥ê¡¼¥Õ¥Ñ¥Ã¥±¡¼¥¸¡×¡¢ÀĤ¤Àþ¤ÏÀè¹Ô°Í¸¡¢ ÎФÎÀþ¤Ï¶¥¹ç¤òɽ¤·¤Þ¤¹¡£ +.sp +Ãí°Õ) dotty ¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Î¤è¤êÂ礭¤Ê¥»¥Ã¥È¤Î¥°¥é¥Õ¤ÏÉÁ¤±¤Þ¤»¤ó¡£ +.RE +.PP +policy \fI[ pkg(s) ]\fR +.RS 3n +policy +¤Ï¡¢ ÀßÄê¥Õ¥¡¥¤¥ë´Ø·¸¤ÎÌäÂê¤Ë¤Ä¤¤¤Æ¡¢¥Ç¥Ð¥Ã¥°¤ò»Ù±ç¤·¤Þ¤¹¡£ °ú¿ô¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¼èÆÀ¸µ¤´¤È¤ÎÍ¥Àè½ç°Ì¤òɽ¼¨¤·¤Þ¤¹¡£ °ìÊý¡¢¥Ñ¥Ã¥±¡¼¥¸Ì¾¤ò»ØÄꤷ¤¿¾ì¹ç¡¢ Í¥Àè½ç¤Î¾ÜºÙ¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +madison \fI/[ pkg(s) ]\fR +.RS 3n +apt\-cache +¤Î +madison +¥³¥Þ¥ó¥É¤Ï¡¢Debian ¥¢¡¼¥«¥¤¥Ö´ÉÍý¥Ä¡¼¥ë +madison +¤Îµ¡Ç½¤Î¥µ¥Ö¥»¥Ã¥È¤Ç¡¢½ÐÎÏ¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¿¿»÷¤è¤¦¤È¤·¤Þ¤¹¡£ ¥Ñ¥Ã¥±¡¼¥¸¤ÎÍøÍѲÄǽ¥Ð¡¼¥¸¥ç¥ó¤òɽ·Á¼°¤Çɽ¼¨¤·¤Þ¤¹¡£ ¥ª¥ê¥¸¥Ê¥ë¤Î +madison +¤È°ã¤¤¡¢ APT ¤¬¥Ñ¥Ã¥±¡¼¥¸°ìÍ÷¤ò¸¡º÷¤·¤¿¥¢¡¼¥­¥Æ¥¯¥Á¥ã (APT::Architecture) ¤Î¾ðÊó¤òɽ¼¨¤¹¤ë¤À¤±¤Ç¤¹¡£ +.RE +.SH "¥ª¥×¥·¥ç¥ó" +.PP +¤³¤ÎÀâÌÀ¤Ç¼¨¤·¤¿¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¤¹¤Ù¤ÆÀßÄê¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤ÆÀßÄê¤Ç¤­¤Þ¤¹¡£ ÀßÄê¥Õ¥¡¥¤¥ë¤Ë½ñ¤¤¤¿¿¿µ¶Ãͤò¤È¤ë¥ª¥×¥·¥ç¥ó¤Ï +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +¤Ê¤É¤Î¤è¤¦¤Ë¤·¤Æ¾å½ñ¤­¤Ç¤­¤Þ¤¹¡£ +.PP +\fB\-p\fR, \fB\-\-pkg\-cache\fR +.RS 3n +¥Ñ¥Ã¥±¡¼¥¸¥­¥ã¥Ã¥·¥å¤ò³ÊǼ¤¹¤ë¥Õ¥¡¥¤¥ë¤òÁªÂò¤·¤Þ¤¹¡£ ¥Ñ¥Ã¥±¡¼¥¸¥­¥ã¥Ã¥·¥å¤Ï¡¢¤¹¤Ù¤Æ¤ÎÁàºî¤Ç»ÈÍѤµ¤ì¤ë°ì¼¡¥­¥ã¥Ã¥·¥å¤Ç¤¹¡£ ÀßÄê¹àÌÜ \- +Dir::Cache::pkgcache +.RE +.PP +\fB\-s\fR, \fB\-\-src\-cache\fR +.RS 3n +¥½¡¼¥¹¥­¥ã¥Ã¥·¥å¤ò³ÊǼ¤¹¤ë¥Õ¥¡¥¤¥ë¤òÁªÂò¤·¤Þ¤¹¡£ ¤³¤Î¥½¡¼¥¹¥­¥ã¥Ã¥·¥å¤Ï +gencaches +¤Ç¤Î¤ß»ÈÍѤµ¤ì¡¢ ¤³¤³¤Ë²òÀϤµ¤ì¤¿¼èÆÀ¸µ¤Î¥Ñ¥Ã¥±¡¼¥¸¾ðÊ󤬳ÊǼ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¥Ñ¥Ã¥±¡¼¥¸¥­¥ã¥Ã¥·¥å¤ò¹½ÃÛ¤¹¤ëºÝ¤Ë¡¢¥½¡¼¥¹¥­¥ã¥Ã¥·¥å¤Ï¡¢ Á´¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤òºÆ²òÀϤòÈò¤±¤ë¾å¤ÇÊØÍø¤Ç¤¹¡£ +ÀßÄê¹àÌÜ \- +Dir::Cache::srcpkgcache +.RE +.PP +\fB\-q\fR, \fB\-\-quiet\fR +.RS 3n +ÀÅ½Í \- ¿ÊĽɽ¼¨¤ò¾Êά¤·¡¢ ¥í¥°¤ò¤È¤ë¤Î¤ËÊØÍø¤Ê½ÐÎϤò¹Ô¤¤¤Þ¤¹¡£ ºÇÂç 2 ¤Ä¤Þ¤Ç q ¤ò½Å¤Í¤ë¤³¤È¤Ç¤µ¤é¤ËÀŽͤˤǤ­¤Þ¤¹¡£ ¤Þ¤¿¡¢\fB\-q=#\fR +¤Î¤è¤¦¤ËÀŽͥì¥Ù¥ë¤ò»ØÄꤷ¤Æ¡¢ ÀßÄê¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +quiet +.RE +.PP +\fB\-i\fR, \fB\-\-important\fR +.RS 3n +¡Ö½ÅÍסװ͸´Ø·¸¤Î¤ßɽ¼¨ \- unmet ¤È¶¦¤Ë»ÈÍѤ·¤Þ¤¹¡£ ¤³¤ì¤Ï¡Ö°Í¸¡×´Ø·¸¤È¡ÖÀè¹Ô°Í¸¡×´Ø·¸¤Î¤ß¤òɽ¼¨¤¹¤ë¤¿¤á¤Ç¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Cache::Important +.RE +.PP +\fB\-f\fR, \fB\-\-full\fR +.RS 3n +search »þ¤ËÁ´¥Ñ¥Ã¥±¡¼¥¸¥ì¥³¡¼¥É¤òɽ¼¨¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Cache::ShowFull +.RE +.PP +\fB\-a\fR, \fB\-\-all\-versions\fR +.RS 3n +Á´ÍøÍѲÄǽ¥Ð¡¼¥¸¥ç¥ó¤Î¥ì¥³¡¼¥ÉÁ´ÂΤòɽ¼¨¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ç¡¢ ̵¸ú¤Ë¤¹¤ë¤Ë¤Ï +\fB\-\-no\-all\-versions\fR +¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£ +\fB\-\-no\-all\-versions\fR +¤ò»ØÄꤹ¤ë¤È¡¢ ¸õÊä¥Ð¡¼¥¸¥ç¥ó (¥¤¥ó¥¹¥È¡¼¥ë¤ÎºÝ¤ËÁªÂò¤µ¤ì¤ë¤â¤Î) ¤À¤±É½¼¨¤·¤Þ¤¹¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢show ¥³¥Þ¥ó¥É¤Ç¤Î¤ßŬÍѤǤ­¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Cache::AllVersions +.RE +.PP +\fB\-g\fR, \fB\-\-generate\fR +.RS 3n +¤½¤Î¤Þ¤Þ¥­¥ã¥Ã¥·¥å¤ò»ÈÍѤ¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ ¼«Æ°Åª¤Ë¥Ñ¥Ã¥±¡¼¥¸¥­¥ã¥Ã¥·¥å¤òºÆÀ¸À®¤·¤Þ¤¹¡£¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ç¡¢ ̵¸ú¤Ë¤¹¤ë¤Ë¤Ï +\fB\-\-no\-generate\fR +¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£ ÀßÄê¹àÌÜ \- +APT::Cache::Generate +.RE +.PP +\fB\-\-names\-only\fR, \fB\-n\fR +.RS 3n +ÀâÌÀʸ¤Ç¤Ï¤Ê¤¯¡¢¥Ñ¥Ã¥±¡¼¥¸Ì¾¤«¤é¤Î¤ß¸¡º÷¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Cache::NamesOnly +.RE +.PP +\fB\-\-all\-names\fR +.RS 3n +pkgnames +¤Ç¡¢ ²¾Áۥѥ屡¼¥¸¤ä·çÍî°Í¸´Ø·¸¤ò´Þ¤á¤¿Á´Ì¾¾Î¤òɽ¼¨¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Cache::AllNames +.RE +.PP +\fB\-\-recurse\fR +.RS 3n +depends +¤ä +rdepends +¤Ç¡¢»ØÄꤷ¤¿Á´¥Ñ¥Ã¥±¡¼¥¸¤òºÆµ¢Åª¤Ë°ìÅÙ¤Ëɽ¼¨¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Cache::RecurseDepends +.RE +.PP +\fB\-\-installed\fR +.RS 3n + +depends +¤ä +rdepends +¤Î½ÐÎϤò¡¢ ¸½ºß¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ë¸ÂÄꤷ¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Cache::Installed +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +»È¤¤Êý¤Îû¤¤Í×Ìó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +ÀßÄê¥Õ¥¡¥¤¥ë¡£ »ÈÍѤ¹¤ëÀßÄê¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤¬Æɤá¤Ê¤¤¾ì¹ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¤Þ¤¹¡£ ʸˡ¤Ë¤Ä¤¤¤Æ¤Ï +\fBapt.conf\fR(5) +¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +ÀßÄꥪ¥×¥·¥ç¥ó¤Î¥»¥Ã¥È¡£Ç¤°Õ¤ÎÀßÄꥪ¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£ ʸˡ¤Ï +\fB\-o Foo::Bar=bar\fR +¤È¤Ê¤ê¤Þ¤¹¡£ +.RE +.SH "¥Õ¥¡¥¤¥ë" +.PP +\fI/etc/apt/sources.list\fR +.RS 3n +¥Ñ¥Ã¥±¡¼¥¸¤Î¼èÆÀ¸µ¡£ ÀßÄê¹àÌÜ \- +Dir::Etc::SourceList +.RE +.PP +\fI/var/lib/apt/lists/\fR +.RS 3n +\fBsources.list\fR(5) +¤Ë»ØÄꤷ¤¿¡¢ ¥Ñ¥Ã¥±¡¼¥¸¥ê¥½¡¼¥¹¤´¤È¤Î¾õÂÖ¾ðÊó³ÊǼ¥¨¥ê¥¢¡£ ÀßÄê¹àÌÜ \- +Dir::State::Lists +.RE +.PP +\fI/var/lib/apt/lists/partial/\fR +.RS 3n +¼èÆÀÃæ¾õÂÖ¾ðÊó³ÊǼ¥¨¥ê¥¢¡£ ÀßÄê¹àÌÜ \- +Dir::State::Lists +(ɬÁ³Åª¤ËÉÔ´°Á´) +.RE +.SH "´ØÏ¢¹àÌÜ" +.PP +\fBapt.conf\fR(5), +\fBsources.list\fR(5), +\fBapt\-get\fR(8) +.SH "¿ÇÃÇ¥á¥Ã¥»¡¼¥¸" +.PP +\fBapt\-cache\fR +¤ÏÀµ¾ï½ªÎ»»þ¤Ë 0 ¤òÊÖ¤·¤Þ¤¹¡£ ¥¨¥é¡¼»þ¤Ë¤Ï½½¿Ê¤Î 100 ¤òÊÖ¤·¤Þ¤¹¡£ +.SH "¥Ð¥°" +.PP +[2]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ GraphViz +\%http://www.research.att.com/sw/tools/graphviz/ +.TP 3 +2.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt-cache.ja.8.xml b/doc/ja/apt-cache.ja.8.xml new file mode 100644 index 0000000..1d30e22 --- /dev/null +++ b/doc/ja/apt-cache.ja.8.xml @@ -0,0 +1,701 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 February 2004 + + + + apt-cache + 8 + + + + + apt-cache + + APT パッケージ操作ユーティリティ -- キャッシュ操作 + + + + + + apt-cache + + + + + add file + gencaches + showpkg pkg + showsrc pkg + stats + dump + dumpavail + unmet + search regex + show pkg + depends pkg + rdepends pkg + pkgnames prefix + dotty pkg + policy pkgs + madison pkgs + + + + + + 説明 + + apt-cache は APT のパッケージキャッシュに対して、 + さまざまな操作を行います。 + apt-cache は、システム状態の操作は行いませんが、 + パッケージのメタデータより検索したり、 + 興味深い出力を生成するといった操作を提供します。 + + + オプションや オプションを除き、 + 以下に挙げるコマンドが必要です。 + + + + add file(s) + add は、 + パッケージキャッシュに指定したパッケージインデックスファイルを追加します。 + デバッグ専用です。 + + + gencaches + + gencaches は、 + apt-get check と同じ動作を提供します。 + これは &sources-list; 内の取得元と + /var/lib/dpkg/statusから、 + ソースとパッケージのキャッシュを構築します。 + + + showpkg pkg(s) + + showpkg は、 + コマンドライン上に列挙したパッケージの情報を表示します。 + 後に続く引数はパッケージ名となります。 + 各パッケージについて、有効なバージョンと被依存関係を列挙し、 + さらにその各バージョンについて依存関係を表示します。 + (通常の) 依存関係とは、対象のパッケージが依存しているパッケージを指します。 + また、被依存関係とは、対象のパッケージに依存しているパッケージを指します。 + 従って、パッケージの依存関係は満たさなければなりませんが、 + 被依存関係は満たす必要はありません。 + 実例として、以下に apt-cache showpkg libreadline2 の + 出力を掲げます。 + + +Package: libreadline2 +Versions: 2.1-12(/var/state/apt/lists/foo_Packages), +Reverse Depends: + libreadlineg2,libreadline2 + libreadline2-altdev,libreadline2 +Dependencies: +2.1-12 - libc5 (2 5.4.0-0) ncurses3.0 (0 (null)) +Provides: +2.1-12 - +Reverse Provides: + + + + つまり、libreadline2 の version 2.1-12 は、 + libc5 と ncurses3.0 に依存していて、libreadline2 が動作するには、 + これらをインストールする必要があるということが判ります。 + 一方、libreadlineg2 と libreadline2-altdev は libreadline2 に依存しています。 + libreadline2 をインストールするためには、libc5, ncurses3.0, ldso を + すべてインストールしなければなりませんが、libreadlineg2 と + libreadline2-altdev はインストールする必要はありません。 + 出力の残りの部分の意味については、 + apt のソースコードを調べるのが最良でしょう。 + + + + statsstats + はキャッシュについての統計情報を表示します。 + それ以上、引数は必要ありません。以下の統計情報を表示します。 + + + パッケージ名総数は、 + キャッシュに存在するパッケージ数を表します。 + + + + 通常パッケージは、 + 公式の普通のパッケージ数を表します。 + これは、他のパッケージの依存関係で使用された名称で、それが一対一に対応 + するパッケージです。 + 大多数のパッケージはこのカテゴリに入ります。 + + + + 純粋仮想パッケージは、 + 仮想パッケージ名としてのみ存在するパッケージ + (仮想パッケージ名のみを「提供」し、 + 実際にはいかなるパッケージもその名称を持たない) の数を表します。 + 例えば、Debian GNU/Linux システムでは "mail-transport-agent" + は純粋仮想パッケージです。 + "mail-transport-agent" を提供するパッケージはいくつもありますが、 + "mail-transport-agent" という名称のパッケージはありません。 + + + + 単一仮想パッケージは、 + 特定の仮想パッケージ名を提供するパッケージが、 + ただ一つの場合の数を表します。 + 例えば、Debian GNU/Linux システムでは、"X11-text-viewer" + は仮想パッケージですが、"X11-text-viewer" を提供するパッケージは、 + xless パッケージのみということです。 + + + + 複合仮想パッケージは、 + その仮想パッケージ名を提供するパッケージが複数あるか、 + またパッケージ名と同じ仮想パッケージ名を持つパッケージ数を表します。 + 例えば、Debian GNU/Linux システムでは、 + debconf は実際のパッケージ名でもありますが、 + debconf-tiny によって提供もされています。 + + + + 欠落は、依存関係中には存在するのに、 + どのパッケージにも提供されていないパッケージ名の数を表します。 + このパッケージがあるということは、 + 全ディストリビューションにアクセスできていないか、 + (実ないし仮想) パッケージがディストリビューションからはずされてしまった可能性もあります。 + 通常では、構文が矛盾するとこのようになります。 + + + + 個別バージョン総数は、 + キャッシュに存在するパッケージのバージョンの数を表します。 + そのため、この値は最小でもパッケージ名総数と一致します。 + もし複数のディストリビューション (例 "stable" と "unstable" の両方) + を利用した場合、 + この値はパッケージ名総数よりもかなり大きい数になります。 + + + + 依存関係総数は、 + キャッシュにあるすべてのパッケージで要求された依存関係の数です。 + + + + + + showsrc pkg(s) + + showsrc は、 + 指定したパッケージ名に一致するソースパッケージを、すべて表示します。 + バイナリになるときの名称を宣言したレコードと同様に、 + すべてのバージョンについて表示します。 + + + dump + + dump は、 + キャッシュ内のパッケージそれぞれについて、短い一覧を表示します。 + 主にデバッグ用です。 + + + dumpavail + + dumpavail は、 + 標準出力に利用可能なものの一覧を出力します。 + &dpkg; と共に使用すると便利ですし、 + &dselect; でも使用されます。 + + + unmet + + unmet は、 + パッケージキャッシュ内にある、 + 不適当な依存関係の概要を表示します。 + + + show pkg(s) + + show は、 + dpkg --print-avail と同様の機能を実行します。 + これは、指定したパッケージのパッケージレコードの表示です。 + + + + search regex [ regex ... ] + + search は、与えられた正規表現によって、 + すべての利用可能なパッケージに対して全文検索を行います。 + パッケージ名と説明に対して検索を行い、 + パッケージ名と短い説明文を表示します。 + が与えられた場合、マッチしたパッケージに対し + show と同じ情報を出力します。 + が与えられた場合は、 + 説明文に対して検索を行わず、パッケージ名に対してのみ対象とします。 + + + 空白で区切った引数で、 + 複数の検索パターンの and をとることができます。 + + + depends pkg(s) + + depends は、 + パッケージが持っている依存関係と、 + その依存関係を満たす他のパッケージの一覧を表示します。 + + + rdepends pkg(s) + + rdepends は、 + パッケージが持つ被依存関係を一覧表示します。 + + + pkgnames [ prefix ] + + このコマンドは、 + システムでの各パッケージの名称を表示します。 + オプションの引数により、取得する一覧より先頭一致で抽出することができます。 + この出力はシェルのタブによる補完機能に使いやすく、 + また非常に速く生成されます。 + このコマンドは オプションと共に使用すると、 + 非常に便利です。 + + + dotty pkg(s) + + dotty は、 + コマンドライン上のパッケージ名から、 + GraphViz + パッケージの dotty コマンドで利用するのに便利な出力を生成します。 + 結果はパッケージの関係を表わす、ノード・エッジのセットで表現されます。 + デフォルトでは、すべての依存パッケージをトレースするので、 + 非常に大きい図が得られます。 + これは、APT::Cache::GivenOnly + オプションを設定して解除できます。 + + + 結果のノードは数種の形状をとります。 + 通常パッケージは四角、純粋仮想パッケージは三角、複合仮想パッケージは菱形、 + 六角形は欠落パッケージをそれぞれ表します。 + オレンジの四角は再帰が終了した「リーフパッケージ」、青い線は先行依存、 + 緑の線は競合を表します。 + + + 注意) dotty は、 + パッケージのより大きなセットのグラフは描けません。 + + + policy [ pkg(s) ] + + policy は、 + 設定ファイル関係の問題について、デバッグを支援します。 + 引数を指定しなかった場合、取得元ごとの優先順位を表示します。 + 一方、パッケージ名を指定した場合、 + 優先順の詳細情報を表示します。 + + + madison /[ pkg(s) ] + + apt-cache の madison + コマンドは、Debian アーカイブ管理ツール madison + の機能のサブセットで、出力フォーマットを真似ようとします。 + パッケージの利用可能バージョンを表形式で表示します。 + オリジナルの madison と違い、 + APT がパッケージ一覧を検索したアーキテクチャ + (APT::Architecture) + の情報を表示するだけです。 + + + + + + オプション + &apt-cmdblurb; + + + + + パッケージキャッシュを格納するファイルを選択します。 + パッケージキャッシュは、すべての操作で使用される一次キャッシュです。 + 設定項目 - Dir::Cache::pkgcache + + + + + ソースキャッシュを格納するファイルを選択します。 + このソースキャッシュは gencaches でのみ使用され、 + ここに解析された取得元のパッケージ情報が格納されています。 + パッケージキャッシュを構築する際に、ソースキャッシュは、 + 全パッケージファイルを再解析を避ける上で便利です。 + + 設定項目 - Dir::Cache::srcpkgcache + + + + + 静粛 - 進捗表示を省略し、 + ログをとるのに便利な出力を行います。 + 最大 2 つまで q を重ねることでさらに静粛にできます。 + また、 のように静粛レベルを指定して、 + 設定ファイルを上書きすることもできます。 + 設定項目 - quiet + + + + + 「重要」依存関係のみ表示 - unmet と共に使用します。 + これは「依存」関係と「先行依存」関係のみを表示するためです。 + 設定項目 - APT::Cache::Important + + + + + search 時に全パッケージレコードを表示します。 + 設定項目 - APT::Cache::ShowFull + + + + + 全利用可能バージョンのレコード全体を表示します。 + これはデフォルトの動作で、 + 無効にするには を使用してください。 + を指定すると、 + 候補バージョン (インストールの際に選択されるもの) だけ表示します。 + このオプションは、show コマンドでのみ適用できます。 + 設定項目 - APT::Cache::AllVersions + + + + + そのままキャッシュを使用するのではなく、 + 自動的にパッケージキャッシュを再生成します。これはデフォルトの動作で、 + 無効にするには を使用してください。 + 設定項目 - APT::Cache::Generate + + + + + 説明文ではなく、パッケージ名からのみ検索します。 + 設定項目 - APT::Cache::NamesOnly + + + + + pkgnames で、 + 仮想パッケージや欠落依存関係を含めた全名称を表示します。 + 設定項目 - APT::Cache::AllNames + + + + + depends や rdepends + で、指定した全パッケージを再帰的に一度に表示します。 + 設定項目 - APT::Cache::RecurseDepends + + + + + + depends や rdepends の出力を、 + 現在インストールされているパッケージに限定します。 + 設定項目 - APT::Cache::Installed + + + &apt-commonoptions; + + + + + + ファイル + + /etc/apt/sources.list + + パッケージの取得元。 + 設定項目 - Dir::Etc::SourceList + + + &statedir;/lists/ + + &sources-list; に指定した、 + パッケージリソースごとの状態情報格納エリア。 + 設定項目 - Dir::State::Lists + + + &statedir;/lists/partial/ + + 取得中状態情報格納エリア。 + 設定項目 - Dir::State::Lists (必然的に不完全) + + + + + + 関連項目 + &apt-conf;, &sources-list;, &apt-get; + + + + + 診断メッセージ + + apt-cache は正常終了時に 0 を返します。 + エラー時には十進の 100 を返します。 + + + + &manbugs; + &translator; + diff --git a/doc/ja/apt-cdrom.8 b/doc/ja/apt-cdrom.8 new file mode 100644 index 0000000..2046bc3 --- /dev/null +++ b/doc/ja/apt-cdrom.8 @@ -0,0 +1,161 @@ +.\" Title: apt\-cdrom +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 14 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-CDROM" "8" "14 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-cdrom \- APT CDROM ´ÉÍý¥æ¡¼¥Æ¥£¥ê¥Æ¥£ +.SH "SYNOPSIS" +.HP 10 +\fBapt\-cdrom\fR [\fB\-hvrmfan\fR] [\fB\-d=\fR\fB\fIcdrom\ mount\ point\fR\fR] [\fB\-o=\fR\fB\fIconfig\ string\fR\fR] [\fB\-c=\fR\fB\fIfile\fR\fR] [[add] | [ident]] +.SH "ÀâÌÀ" +.PP +\fBapt\-cdrom\fR +¤ÏÍøÍѲÄǽ¤Ê¼èÆÀ¸µ¤È¤·¤Æ¡¢ APT ¤Î¥ê¥¹¥È¤Ë¿·¤·¤¤ CDROM ¤òÄɲ乤ë¤Î¤ËÊØÍø¤Ç¤¹¡£ +\fBapt\-cdrom\fR +¤Ï¾Æ¤­Â»¤¸¤ò²Äǽ¤Ê¸Â¤êÊäÀµ¤·¡¢ ¥Ç¥£¥¹¥¯¹½Â¤¤Î³Îǧ¤ò½õ¤±¤Þ¤¹¡£¤Þ¤¿¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤Î³Îǧ¤ò¹Ô¤¤¤Þ¤¹¡£ +.PP +APT ¥·¥¹¥Æ¥à¤Ë¼êºî¶È¤Ç CD ¤òÄɲ乤ë¤Î¤ÏÆñ¤·¤¤¤¿¤á¡¢ +\fBapt\-cdrom\fR +¤¬É¬Íפˤʤê¤Þ¤¹¡£ ¤½¤Î¾å¡¢CD ¥»¥Ã¥È¤Î¥Ç¥£¥¹¥¯¤ò 1 Ëç¤Å¤Ä¡¢ ¾Æ¤­Â»¤¸¤òÊäÀµ¤Ç¤­¤ë¤«É¾²Á¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ +.PP +\fB\-h\fR +¥ª¥×¥·¥ç¥ó¤ä +\fB\-\-help\fR +¥ª¥×¥·¥ç¥ó¤ò½ü¤­¡¢ °Ê²¼¤Ëµó¤²¤ë¥³¥Þ¥ó¥É¤¬É¬ÍפǤ¹¡£ +.PP +add +.RS 3n +add +¤Ï¡¢ ¿·¤·¤¤¥Ç¥£¥¹¥¯¤ò¼èÆÀ¸µ¥ê¥¹¥È¤ËÄɲä·¤Þ¤¹¡£ CDROM ¥Ç¥Ð¥¤¥¹¤Î¥¢¥ó¥Þ¥¦¥ó¥È¡¢¥Ç¥£¥¹¥¯ÁÞÆþ¤Î¥×¥í¥ó¥×¥È¤Îɽ¼¨¤Î¸å¤Ë¡¢ ¥Ç¥£¥¹¥¯¤Î¥¹¥­¥ã¥ó¤È¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤Î¥³¥Ô¡¼¤ò¹Ô¤¤¤Þ¤¹¡£ ¥Ç¥£¥¹¥¯¤ËÀµ¤·¤¤ +\fIdisk\fR +¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢ ¥¿¥¤¥È¥ë¤òÆþÎϤ¹¤ë¤è¤¦Â¥¤·¤Þ¤¹¡£ +.sp +APT ¤Ï¡¢¸½ºß¥É¥é¥¤¥Ö¤Ë¤¢¤ë¥Ç¥£¥¹¥¯¤Î¥È¥é¥Ã¥¯¤«¤é¼èÆÀ¤·¤¿¡¢ CDROM ID ¤ò»ÈÍѤ·¤Þ¤¹¡£¤Þ¤¿¤½¤Î ID ¤ò¡¢ +\fI/var/lib/apt/cdroms.list\fR +Æâ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ç´ÉÍý¤·¤Þ¤¹¡£ +.RE +.PP +ident +.RS 3n +³ÊǼ¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë̾¤È¡¢ ¸½ºß¤Î¥Ç¥£¥¹¥¯¤¬Æ±°ì¤«¤É¤¦¤«¤ò¥ì¥Ý¡¼¥È¤¹¤ë¡¢¥Ç¥Ð¥Ã¥°¥Ä¡¼¥ë¤Ç¤¹¡£ +.RE +.SH "OPTIONS" +.PP +¤³¤ÎÀâÌÀ¤Ç¼¨¤·¤¿¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¤¹¤Ù¤ÆÀßÄê¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤ÆÀßÄê¤Ç¤­¤Þ¤¹¡£ ÀßÄê¥Õ¥¡¥¤¥ë¤Ë½ñ¤¤¤¿¿¿µ¶Ãͤò¤È¤ë¥ª¥×¥·¥ç¥ó¤Ï +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +¤Ê¤É¤Î¤è¤¦¤Ë¤·¤Æ¾å½ñ¤­¤Ç¤­¤Þ¤¹¡£ +.PP +\fB\-d\fR, \fB\-\-cdrom\fR +.RS 3n +¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È \- cdrom ¤ò¥Þ¥¦¥ó¥È¤¹¤ë¾ì½ê¤ò»ØÄꤷ¤Þ¤¹¡£ ¤³¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ï¡¢ +\fI/etc/fstab\fR +¤ËÀµ¤·¤¯ÀßÄꤵ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +Acquire::cdrom::mount +.RE +.PP +\fB\-r\fR, \fB\-\-rename\fR +.RS 3n +¥Ç¥£¥¹¥¯¤Î̾Á°Êѹ¹ \- »ØÄꤷ¤¿Ì¾Á°¤Ç¥Ç¥£¥¹¥¯¤Î¥é¥Ù¥ë¤òÊѹ¹¡¦¹¹¿·¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤è¤ê¡¢ +\fBapt\-cdrom\fR +¤¬¿·¤·¤¤¥é¥Ù¥ë¤òÆþÎϤ¹¤ë¤è¤¦Â¥¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::CDROM::Rename +.RE +.PP +\fB\-m\fR, \fB\-\-no\-mount\fR +.RS 3n +¥Þ¥¦¥ó¥È¤Ê¤· \- +\fBapt\-cdrom\fR +¤¬¡¢ ¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ë¥Þ¥¦¥ó¥È¡¦¥¢¥ó¥Þ¥¦¥ó¥È¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::CDROM::NoMount +.RE +.PP +\fB\-f\fR, \fB\-\-fast\fR +.RS 3n +¹â®¥³¥Ô¡¼ \- ¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤¬ÂÅÅö¤Ç¤¢¤ë¤È²¾Äꤷ¡¢ ¥Á¥§¥Ã¥¯¤òÁ´¤¯¹Ô¤¤¤Þ¤»¤ó¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¤³¤Î¥Ç¥£¥¹¥¯¤Ç°ÊÁ° +\fBapt\-cdrom\fR +¤ò¹Ô¤Ã¤Æ¤ª¤ê¡¢ ¥¨¥é¡¼¤ò¸¡½Ð¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤Î¤ß»ÈÍѤ¹¤Ù¤­¤Ç¤¹¡£ ÀßÄê¹àÌÜ \- +APT::CDROM::Fast +.RE +.PP +\fB\-a\fR, \fB\-\-thorough\fR +.RS 3n +´°Á´¥Ñ¥Ã¥±¡¼¥¸¥¹¥­¥ã¥ó \- ¸Å¤¤ Debian 1.1/1.2 ¤Î¥Ç¥£¥¹¥¯¤Ï¡¢¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤¬°ã¤¦¾ì½ê¤Ë¤¢¤ë¤¿¤á¡¢ ¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦É¬Íפ¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ CD ¤ò¥¹¥­¥ã¥ó¤¹¤ë¤Î¤ËÈó¾ï¤Ë»þ´Ö¤¬¤«¤«¤ê¤Þ¤¹¤¬¡¢ Á´¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤òÃê½Ð¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +\fB\-n\fR, \fB\-\-just\-print\fR, \fB\-\-recon\fR, \fB\-\-no\-act\fR +.RS 3n +Êѹ¹¤Ê¤· \- +\fBsources.list\fR(5) +¥Õ¥¡¥¤¥ë¤ÎÊѹ¹¤ä¡¢ ¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤Î½ñ¤­¹þ¤ß¤ò¹Ô¤¤¤Þ¤»¤ó¡£ ¤È¤Ï¤¤¤¨¡¢¤¹¤Ù¤Æ¤Î¥Á¥§¥Ã¥¯¤Ï¹Ô¤¤¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::CDROM::NoAct +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +»È¤¤Êý¤Îû¤¤Í×Ìó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +ÀßÄê¥Õ¥¡¥¤¥ë¡£ »ÈÍѤ¹¤ëÀßÄê¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤¬Æɤá¤Ê¤¤¾ì¹ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¤Þ¤¹¡£ ʸˡ¤Ë¤Ä¤¤¤Æ¤Ï +\fBapt.conf\fR(5) +¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +ÀßÄꥪ¥×¥·¥ç¥ó¤Î¥»¥Ã¥È¡£Ç¤°Õ¤ÎÀßÄꥪ¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£ ʸˡ¤Ï +\fB\-o Foo::Bar=bar\fR +¤È¤Ê¤ê¤Þ¤¹¡£ +.RE +.SH "´ØÏ¢¹àÌÜ" +.PP +\fBapt.conf\fR(5), +\fBapt\-get\fR(8), +\fBsources.list\fR(5) +.SH "¿ÇÃÇ¥á¥Ã¥»¡¼¥¸" +.PP +\fBapt\-cdrom\fR +¤ÏÀµ¾ï½ªÎ»»þ¤Ë 0 ¤òÊÖ¤·¤Þ¤¹¡£ ¥¨¥é¡¼»þ¤Ë¤Ï½½¿Ê¤Î 100 ¤òÊÖ¤·¤Þ¤¹¡£ +.SH "¥Ð¥°" +.PP +[1]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt-cdrom.ja.8 b/doc/ja/apt-cdrom.ja.8 new file mode 100644 index 0000000..2046bc3 --- /dev/null +++ b/doc/ja/apt-cdrom.ja.8 @@ -0,0 +1,161 @@ +.\" Title: apt\-cdrom +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 14 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-CDROM" "8" "14 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-cdrom \- APT CDROM ´ÉÍý¥æ¡¼¥Æ¥£¥ê¥Æ¥£ +.SH "SYNOPSIS" +.HP 10 +\fBapt\-cdrom\fR [\fB\-hvrmfan\fR] [\fB\-d=\fR\fB\fIcdrom\ mount\ point\fR\fR] [\fB\-o=\fR\fB\fIconfig\ string\fR\fR] [\fB\-c=\fR\fB\fIfile\fR\fR] [[add] | [ident]] +.SH "ÀâÌÀ" +.PP +\fBapt\-cdrom\fR +¤ÏÍøÍѲÄǽ¤Ê¼èÆÀ¸µ¤È¤·¤Æ¡¢ APT ¤Î¥ê¥¹¥È¤Ë¿·¤·¤¤ CDROM ¤òÄɲ乤ë¤Î¤ËÊØÍø¤Ç¤¹¡£ +\fBapt\-cdrom\fR +¤Ï¾Æ¤­Â»¤¸¤ò²Äǽ¤Ê¸Â¤êÊäÀµ¤·¡¢ ¥Ç¥£¥¹¥¯¹½Â¤¤Î³Îǧ¤ò½õ¤±¤Þ¤¹¡£¤Þ¤¿¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤Î³Îǧ¤ò¹Ô¤¤¤Þ¤¹¡£ +.PP +APT ¥·¥¹¥Æ¥à¤Ë¼êºî¶È¤Ç CD ¤òÄɲ乤ë¤Î¤ÏÆñ¤·¤¤¤¿¤á¡¢ +\fBapt\-cdrom\fR +¤¬É¬Íפˤʤê¤Þ¤¹¡£ ¤½¤Î¾å¡¢CD ¥»¥Ã¥È¤Î¥Ç¥£¥¹¥¯¤ò 1 Ëç¤Å¤Ä¡¢ ¾Æ¤­Â»¤¸¤òÊäÀµ¤Ç¤­¤ë¤«É¾²Á¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ +.PP +\fB\-h\fR +¥ª¥×¥·¥ç¥ó¤ä +\fB\-\-help\fR +¥ª¥×¥·¥ç¥ó¤ò½ü¤­¡¢ °Ê²¼¤Ëµó¤²¤ë¥³¥Þ¥ó¥É¤¬É¬ÍפǤ¹¡£ +.PP +add +.RS 3n +add +¤Ï¡¢ ¿·¤·¤¤¥Ç¥£¥¹¥¯¤ò¼èÆÀ¸µ¥ê¥¹¥È¤ËÄɲä·¤Þ¤¹¡£ CDROM ¥Ç¥Ð¥¤¥¹¤Î¥¢¥ó¥Þ¥¦¥ó¥È¡¢¥Ç¥£¥¹¥¯ÁÞÆþ¤Î¥×¥í¥ó¥×¥È¤Îɽ¼¨¤Î¸å¤Ë¡¢ ¥Ç¥£¥¹¥¯¤Î¥¹¥­¥ã¥ó¤È¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤Î¥³¥Ô¡¼¤ò¹Ô¤¤¤Þ¤¹¡£ ¥Ç¥£¥¹¥¯¤ËÀµ¤·¤¤ +\fIdisk\fR +¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢ ¥¿¥¤¥È¥ë¤òÆþÎϤ¹¤ë¤è¤¦Â¥¤·¤Þ¤¹¡£ +.sp +APT ¤Ï¡¢¸½ºß¥É¥é¥¤¥Ö¤Ë¤¢¤ë¥Ç¥£¥¹¥¯¤Î¥È¥é¥Ã¥¯¤«¤é¼èÆÀ¤·¤¿¡¢ CDROM ID ¤ò»ÈÍѤ·¤Þ¤¹¡£¤Þ¤¿¤½¤Î ID ¤ò¡¢ +\fI/var/lib/apt/cdroms.list\fR +Æâ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ç´ÉÍý¤·¤Þ¤¹¡£ +.RE +.PP +ident +.RS 3n +³ÊǼ¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë̾¤È¡¢ ¸½ºß¤Î¥Ç¥£¥¹¥¯¤¬Æ±°ì¤«¤É¤¦¤«¤ò¥ì¥Ý¡¼¥È¤¹¤ë¡¢¥Ç¥Ð¥Ã¥°¥Ä¡¼¥ë¤Ç¤¹¡£ +.RE +.SH "OPTIONS" +.PP +¤³¤ÎÀâÌÀ¤Ç¼¨¤·¤¿¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¤¹¤Ù¤ÆÀßÄê¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤ÆÀßÄê¤Ç¤­¤Þ¤¹¡£ ÀßÄê¥Õ¥¡¥¤¥ë¤Ë½ñ¤¤¤¿¿¿µ¶Ãͤò¤È¤ë¥ª¥×¥·¥ç¥ó¤Ï +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +¤Ê¤É¤Î¤è¤¦¤Ë¤·¤Æ¾å½ñ¤­¤Ç¤­¤Þ¤¹¡£ +.PP +\fB\-d\fR, \fB\-\-cdrom\fR +.RS 3n +¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È \- cdrom ¤ò¥Þ¥¦¥ó¥È¤¹¤ë¾ì½ê¤ò»ØÄꤷ¤Þ¤¹¡£ ¤³¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ï¡¢ +\fI/etc/fstab\fR +¤ËÀµ¤·¤¯ÀßÄꤵ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +Acquire::cdrom::mount +.RE +.PP +\fB\-r\fR, \fB\-\-rename\fR +.RS 3n +¥Ç¥£¥¹¥¯¤Î̾Á°Êѹ¹ \- »ØÄꤷ¤¿Ì¾Á°¤Ç¥Ç¥£¥¹¥¯¤Î¥é¥Ù¥ë¤òÊѹ¹¡¦¹¹¿·¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤è¤ê¡¢ +\fBapt\-cdrom\fR +¤¬¿·¤·¤¤¥é¥Ù¥ë¤òÆþÎϤ¹¤ë¤è¤¦Â¥¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::CDROM::Rename +.RE +.PP +\fB\-m\fR, \fB\-\-no\-mount\fR +.RS 3n +¥Þ¥¦¥ó¥È¤Ê¤· \- +\fBapt\-cdrom\fR +¤¬¡¢ ¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ë¥Þ¥¦¥ó¥È¡¦¥¢¥ó¥Þ¥¦¥ó¥È¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::CDROM::NoMount +.RE +.PP +\fB\-f\fR, \fB\-\-fast\fR +.RS 3n +¹â®¥³¥Ô¡¼ \- ¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤¬ÂÅÅö¤Ç¤¢¤ë¤È²¾Äꤷ¡¢ ¥Á¥§¥Ã¥¯¤òÁ´¤¯¹Ô¤¤¤Þ¤»¤ó¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¤³¤Î¥Ç¥£¥¹¥¯¤Ç°ÊÁ° +\fBapt\-cdrom\fR +¤ò¹Ô¤Ã¤Æ¤ª¤ê¡¢ ¥¨¥é¡¼¤ò¸¡½Ð¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤Î¤ß»ÈÍѤ¹¤Ù¤­¤Ç¤¹¡£ ÀßÄê¹àÌÜ \- +APT::CDROM::Fast +.RE +.PP +\fB\-a\fR, \fB\-\-thorough\fR +.RS 3n +´°Á´¥Ñ¥Ã¥±¡¼¥¸¥¹¥­¥ã¥ó \- ¸Å¤¤ Debian 1.1/1.2 ¤Î¥Ç¥£¥¹¥¯¤Ï¡¢¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤¬°ã¤¦¾ì½ê¤Ë¤¢¤ë¤¿¤á¡¢ ¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦É¬Íפ¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ CD ¤ò¥¹¥­¥ã¥ó¤¹¤ë¤Î¤ËÈó¾ï¤Ë»þ´Ö¤¬¤«¤«¤ê¤Þ¤¹¤¬¡¢ Á´¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤òÃê½Ð¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +\fB\-n\fR, \fB\-\-just\-print\fR, \fB\-\-recon\fR, \fB\-\-no\-act\fR +.RS 3n +Êѹ¹¤Ê¤· \- +\fBsources.list\fR(5) +¥Õ¥¡¥¤¥ë¤ÎÊѹ¹¤ä¡¢ ¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤Î½ñ¤­¹þ¤ß¤ò¹Ô¤¤¤Þ¤»¤ó¡£ ¤È¤Ï¤¤¤¨¡¢¤¹¤Ù¤Æ¤Î¥Á¥§¥Ã¥¯¤Ï¹Ô¤¤¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::CDROM::NoAct +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +»È¤¤Êý¤Îû¤¤Í×Ìó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +ÀßÄê¥Õ¥¡¥¤¥ë¡£ »ÈÍѤ¹¤ëÀßÄê¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤¬Æɤá¤Ê¤¤¾ì¹ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¤Þ¤¹¡£ ʸˡ¤Ë¤Ä¤¤¤Æ¤Ï +\fBapt.conf\fR(5) +¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +ÀßÄꥪ¥×¥·¥ç¥ó¤Î¥»¥Ã¥È¡£Ç¤°Õ¤ÎÀßÄꥪ¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£ ʸˡ¤Ï +\fB\-o Foo::Bar=bar\fR +¤È¤Ê¤ê¤Þ¤¹¡£ +.RE +.SH "´ØÏ¢¹àÌÜ" +.PP +\fBapt.conf\fR(5), +\fBapt\-get\fR(8), +\fBsources.list\fR(5) +.SH "¿ÇÃÇ¥á¥Ã¥»¡¼¥¸" +.PP +\fBapt\-cdrom\fR +¤ÏÀµ¾ï½ªÎ»»þ¤Ë 0 ¤òÊÖ¤·¤Þ¤¹¡£ ¥¨¥é¡¼»þ¤Ë¤Ï½½¿Ê¤Î 100 ¤òÊÖ¤·¤Þ¤¹¡£ +.SH "¥Ð¥°" +.PP +[1]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt-cdrom.ja.8.xml b/doc/ja/apt-cdrom.ja.8.xml new file mode 100644 index 0000000..bf84b47 --- /dev/null +++ b/doc/ja/apt-cdrom.ja.8.xml @@ -0,0 +1,255 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + 14 February 2004 + + + + apt-cdrom + 8 + + + + + apt-cdrom + + APT CDROM 管理ユーティリティ + + + + + + apt-cdrom + + + + + + add + ident + + + + + + 説明 + + apt-cdrom は利用可能な取得元として、 + APT のリストに新しい CDROM を追加するのに便利です。 + apt-cdrom は焼き損じを可能な限り補正し、 + ディスク構造の確認を助けます。また、インデックスファイルの確認を行います。 + + + + APT システムに手作業で CD を追加するのは難しいため、 + apt-cdrom が必要になります。 + その上、CD セットのディスクを 1 枚づつ、 + 焼き損じを補正できるか評価しなければなりません。 + + + + オプションや オプションを除き、 + 以下に挙げるコマンドが必要です。 + + + add + + add は、 + 新しいディスクを取得元リストに追加します。 + CDROM デバイスのアンマウント、ディスク挿入のプロンプトの表示の後に、 + ディスクのスキャンとインデックスファイルのコピーを行います。 + ディスクに正しい disk ディレクトリが存在しない場合、 + タイトルを入力するよう促します。 + + + + APT は、現在ドライブにあるディスクのトラックから取得した、 + CDROM ID を使用します。またその ID を、 + &statedir;/cdroms.list 内のデータベースで管理します。 + + + + + ident + + 格納されているファイル名と、 + 現在のディスクが同一かどうかをレポートする、デバッグツールです。 + + + + + + + + Options + &apt-cmdblurb; + + + + + マウントポイント - cdrom をマウントする場所を指定します。 + このマウントポイントは、 + /etc/fstab に正しく設定されている必要があります。 + 設定項目 - Acquire::cdrom::mount + + + + + + + ディスクの名前変更 - + 指定した名前でディスクのラベルを変更・更新します。このオプションにより、 + apt-cdrom が新しいラベルを入力するよう促します。 + 設定項目 - APT::CDROM::Rename + + + + + + + マウントなし - apt-cdrom が、 + マウントポイントにマウント・アンマウントしないようにします。 + 設定項目 - APT::CDROM::NoMount + + + + + + + 高速コピー - パッケージファイルが妥当であると仮定し、 + チェックを全く行いません。このオプションは、 + このディスクで以前 apt-cdrom を行っており、 + エラーを検出しなかった場合のみ使用すべきです。 + 設定項目 - APT::CDROM::Fast + + + + + + + 完全パッケージスキャン - + 古い Debian 1.1/1.2 のディスクは、パッケージファイルが違う場所にあるため、 + このオプションを使う必要があるかもしれません。 + CD をスキャンするのに非常に時間がかかりますが、 + 全パッケージファイルを抽出することができます。 + + + + + + + + + + 変更なし - &sources-list; ファイルの変更や、 + インデックスファイルの書き込みを行いません。 + とはいえ、すべてのチェックは行います。 + 設定項目 - APT::CDROM::NoAct + + + + + &apt-commonoptions; + + + + + + 関連項目 + &apt-conf;, &apt-get;, &sources-list; + + + + + 診断メッセージ + + apt-cdrom は正常終了時に 0 を返します。 + エラー時には十進の 100 を返します。 + + + + &manbugs; + &translator; + + diff --git a/doc/ja/apt-config.8 b/doc/ja/apt-config.8 new file mode 100644 index 0000000..b92f860 --- /dev/null +++ b/doc/ja/apt-config.8 @@ -0,0 +1,118 @@ +.\" Title: apt\-config +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-CONFIG" "8" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-config \- APT ÀßÄê¼èÆÀ¥×¥í¥°¥é¥à +.SH "SYNOPSIS" +.HP 11 +\fBapt\-config\fR [\fB\-hv\fR] [\fB\-o=\fR\fB\fIconfig\ string\fR\fR] [\fB\-c=\fR\fB\fIfile\fR\fR] {[shell] | [dump]} +.SH "ÀâÌÀ" +.PP +\fBapt\-config\fR +¤Ï¡¢ APT ¥¹¥¤¡¼¥È¤ÎÍÍ¡¹¤Ê½ê¤Ç°ì´Ó¤·¤¿ÀßÄê¤ò¹Ô¤¦¤¿¤á¤Ë»ÈÍѤ¹¤ë¡¢ÆâÉô¥Ä¡¼¥ë¤Ç¤¹¡£ ¥¹¥¯¥ê¥×¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç»È¤¤¤ä¤¹¤¤ÊýË¡¤Ç¡¢ ¥á¥¤¥óÀßÄê¥Õ¥¡¥¤¥ë +\fI/etc/apt/apt.conf\fR +¤Ë¥¢¥¯¥»¥¹¤·¤Þ¤¹¡£ +.PP +\fB\-h\fR +¤ä +\fB\-\-help\fR +¥ª¥×¥·¥ç¥ó¤ò½ü¤­¡¢ °Ê²¼¤Ëµó¤²¤ë¥³¥Þ¥ó¥É¤¬É¬ÍפǤ¹¡£ +.PP +shell +.RS 3n + +shell ¤Ï¡¢¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤«¤éÀßÄê¾ðÊó¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤Î¤Ë»ÈÍѤ·¤Þ¤¹¡£ °ú¿ô¤È¤·¤Æ¡¢¤Þ¤º¥·¥§¥ëÊÑ¿ô¡¢¼¡¤Ë¼èÆÀ¤·¤¿¤¤ÀßÄêÃͤò¥Ú¥¢¤ÇÍ¿¤¨¤Þ¤¹¡£ ½ÐÎϤȤ·¤Æ¡¢¸½ºß¤ÎÃͤ´¤È¤Ë¥·¥§¥ëÂåÆþ¥³¥Þ¥ó¥É¤Î°ìÍ÷¤òɽ¼¨¤·¤Þ¤¹¡£ ¥·¥§¥ë¥¹¥¯¥ê¥×¥ÈÆâ¤Ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ +.sp +.RS 3n +.nf +OPTS="\-f" +RES=`apt\-config shell OPTS MyApp::options` +eval $RES +.fi +.RE +¤³¤ì¤Ï¡¢MyApp::options ¤ÎÃͤò¥·¥§¥ë´Ä¶­ÊÑ¿ô $OPTS ¤Ë¥»¥Ã¥È¤·¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï +\fB\-f\fR +¤È¤Ê¤ê¤Þ¤¹¡£ +.sp +ÀßÄê¹àÌÜ¤Ï /[fdbi] ¤ò¸å¤í¤ËÉÕ¤±¤é¤ì¤Þ¤¹¡£ f ¤Ï¥Õ¥¡¥¤¥ë̾¤ò¡¢d ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ò¡¢b ¤Ï true ¤« false ¤ò¡¢ i ¤ÏÀ°¿ô¤òÊÖ¤·¤Þ¤¹¡£ ÊÖ¤êÃͤ´¤È¤ËÆâÉô¤ÇÀµµ¬²½¤È¸¡¾Ú¤ò¹Ô¤¤¤Þ¤¹¡£ +.RE +.PP +dump +.RS 3n + +ÀßÄê²Õ½ê¤ÎÆâÍƤòɽ¼¨¤¹¤ë¤À¤±¤Ç¤¹¡£ +.RE +.SH "¥ª¥×¥·¥ç¥ó" +.PP +¤³¤ÎÀâÌÀ¤Ç¼¨¤·¤¿¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¤¹¤Ù¤ÆÀßÄê¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤ÆÀßÄê¤Ç¤­¤Þ¤¹¡£ ÀßÄê¥Õ¥¡¥¤¥ë¤Ë½ñ¤¤¤¿¿¿µ¶Ãͤò¤È¤ë¥ª¥×¥·¥ç¥ó¤Ï +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +¤Ê¤É¤Î¤è¤¦¤Ë¤·¤Æ¾å½ñ¤­¤Ç¤­¤Þ¤¹¡£ +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +»È¤¤Êý¤Îû¤¤Í×Ìó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +ÀßÄê¥Õ¥¡¥¤¥ë¡£ »ÈÍѤ¹¤ëÀßÄê¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤¬Æɤá¤Ê¤¤¾ì¹ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¤Þ¤¹¡£ ʸˡ¤Ë¤Ä¤¤¤Æ¤Ï +\fBapt.conf\fR(5) +¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +ÀßÄꥪ¥×¥·¥ç¥ó¤Î¥»¥Ã¥È¡£Ç¤°Õ¤ÎÀßÄꥪ¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£ ʸˡ¤Ï +\fB\-o Foo::Bar=bar\fR +¤È¤Ê¤ê¤Þ¤¹¡£ +.RE +.SH "´ØÏ¢¹àÌÜ" +.PP +\fBapt.conf\fR(5) +.SH "¿ÇÃÇ¥á¥Ã¥»¡¼¥¸" +.PP +\fBapt\-config\fR +¤ÏÀµ¾ï½ªÎ»»þ¤Ë 0 ¤òÊÖ¤·¤Þ¤¹¡£ ¥¨¥é¡¼»þ¤Ë¤Ï½½¿Ê¤Î 100 ¤òÊÖ¤·¤Þ¤¹¡£ +.SH "¥Ð¥°" +.PP +[1]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt-config.ja.8 b/doc/ja/apt-config.ja.8 new file mode 100644 index 0000000..b92f860 --- /dev/null +++ b/doc/ja/apt-config.ja.8 @@ -0,0 +1,118 @@ +.\" Title: apt\-config +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-CONFIG" "8" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-config \- APT ÀßÄê¼èÆÀ¥×¥í¥°¥é¥à +.SH "SYNOPSIS" +.HP 11 +\fBapt\-config\fR [\fB\-hv\fR] [\fB\-o=\fR\fB\fIconfig\ string\fR\fR] [\fB\-c=\fR\fB\fIfile\fR\fR] {[shell] | [dump]} +.SH "ÀâÌÀ" +.PP +\fBapt\-config\fR +¤Ï¡¢ APT ¥¹¥¤¡¼¥È¤ÎÍÍ¡¹¤Ê½ê¤Ç°ì´Ó¤·¤¿ÀßÄê¤ò¹Ô¤¦¤¿¤á¤Ë»ÈÍѤ¹¤ë¡¢ÆâÉô¥Ä¡¼¥ë¤Ç¤¹¡£ ¥¹¥¯¥ê¥×¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç»È¤¤¤ä¤¹¤¤ÊýË¡¤Ç¡¢ ¥á¥¤¥óÀßÄê¥Õ¥¡¥¤¥ë +\fI/etc/apt/apt.conf\fR +¤Ë¥¢¥¯¥»¥¹¤·¤Þ¤¹¡£ +.PP +\fB\-h\fR +¤ä +\fB\-\-help\fR +¥ª¥×¥·¥ç¥ó¤ò½ü¤­¡¢ °Ê²¼¤Ëµó¤²¤ë¥³¥Þ¥ó¥É¤¬É¬ÍפǤ¹¡£ +.PP +shell +.RS 3n + +shell ¤Ï¡¢¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤«¤éÀßÄê¾ðÊó¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤Î¤Ë»ÈÍѤ·¤Þ¤¹¡£ °ú¿ô¤È¤·¤Æ¡¢¤Þ¤º¥·¥§¥ëÊÑ¿ô¡¢¼¡¤Ë¼èÆÀ¤·¤¿¤¤ÀßÄêÃͤò¥Ú¥¢¤ÇÍ¿¤¨¤Þ¤¹¡£ ½ÐÎϤȤ·¤Æ¡¢¸½ºß¤ÎÃͤ´¤È¤Ë¥·¥§¥ëÂåÆþ¥³¥Þ¥ó¥É¤Î°ìÍ÷¤òɽ¼¨¤·¤Þ¤¹¡£ ¥·¥§¥ë¥¹¥¯¥ê¥×¥ÈÆâ¤Ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ +.sp +.RS 3n +.nf +OPTS="\-f" +RES=`apt\-config shell OPTS MyApp::options` +eval $RES +.fi +.RE +¤³¤ì¤Ï¡¢MyApp::options ¤ÎÃͤò¥·¥§¥ë´Ä¶­ÊÑ¿ô $OPTS ¤Ë¥»¥Ã¥È¤·¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï +\fB\-f\fR +¤È¤Ê¤ê¤Þ¤¹¡£ +.sp +ÀßÄê¹àÌÜ¤Ï /[fdbi] ¤ò¸å¤í¤ËÉÕ¤±¤é¤ì¤Þ¤¹¡£ f ¤Ï¥Õ¥¡¥¤¥ë̾¤ò¡¢d ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ò¡¢b ¤Ï true ¤« false ¤ò¡¢ i ¤ÏÀ°¿ô¤òÊÖ¤·¤Þ¤¹¡£ ÊÖ¤êÃͤ´¤È¤ËÆâÉô¤ÇÀµµ¬²½¤È¸¡¾Ú¤ò¹Ô¤¤¤Þ¤¹¡£ +.RE +.PP +dump +.RS 3n + +ÀßÄê²Õ½ê¤ÎÆâÍƤòɽ¼¨¤¹¤ë¤À¤±¤Ç¤¹¡£ +.RE +.SH "¥ª¥×¥·¥ç¥ó" +.PP +¤³¤ÎÀâÌÀ¤Ç¼¨¤·¤¿¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¤¹¤Ù¤ÆÀßÄê¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤ÆÀßÄê¤Ç¤­¤Þ¤¹¡£ ÀßÄê¥Õ¥¡¥¤¥ë¤Ë½ñ¤¤¤¿¿¿µ¶Ãͤò¤È¤ë¥ª¥×¥·¥ç¥ó¤Ï +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +¤Ê¤É¤Î¤è¤¦¤Ë¤·¤Æ¾å½ñ¤­¤Ç¤­¤Þ¤¹¡£ +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +»È¤¤Êý¤Îû¤¤Í×Ìó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +ÀßÄê¥Õ¥¡¥¤¥ë¡£ »ÈÍѤ¹¤ëÀßÄê¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤¬Æɤá¤Ê¤¤¾ì¹ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¤Þ¤¹¡£ ʸˡ¤Ë¤Ä¤¤¤Æ¤Ï +\fBapt.conf\fR(5) +¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +ÀßÄꥪ¥×¥·¥ç¥ó¤Î¥»¥Ã¥È¡£Ç¤°Õ¤ÎÀßÄꥪ¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£ ʸˡ¤Ï +\fB\-o Foo::Bar=bar\fR +¤È¤Ê¤ê¤Þ¤¹¡£ +.RE +.SH "´ØÏ¢¹àÌÜ" +.PP +\fBapt.conf\fR(5) +.SH "¿ÇÃÇ¥á¥Ã¥»¡¼¥¸" +.PP +\fBapt\-config\fR +¤ÏÀµ¾ï½ªÎ»»þ¤Ë 0 ¤òÊÖ¤·¤Þ¤¹¡£ ¥¨¥é¡¼»þ¤Ë¤Ï½½¿Ê¤Î 100 ¤òÊÖ¤·¤Þ¤¹¡£ +.SH "¥Ð¥°" +.PP +[1]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt-config.ja.8.xml b/doc/ja/apt-config.ja.8.xml new file mode 100644 index 0000000..b1d90f5 --- /dev/null +++ b/doc/ja/apt-config.ja.8.xml @@ -0,0 +1,165 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 February 2004 + + + + apt-config + 8 + + + + + apt-config + + APT 設定取得プログラム + + + + + + apt-config + + + + + shell + dump + + + + + + 説明 + + apt-config は、 + APT スイートの様々な所で一貫した設定を行うために使用する、内部ツールです。 + スクリプトアプリケーションで使いやすい方法で、 + メイン設定ファイル /etc/apt/apt.conf + にアクセスします。 + + + や オプションを除き、 + 以下に挙げるコマンドが必要です。 + + + shell + + + shell は、シェルスクリプトから設定情報にアクセスするのに使用します。 + 引数として、まずシェル変数、次に取得したい設定値をペアで与えます。 + 出力として、現在の値ごとにシェル代入コマンドの一覧を表示します。 + シェルスクリプト内では、以下のようにしてください。 + + + +OPTS="-f" +RES=`apt-config shell OPTS MyApp::options` +eval $RES + + + + これは、MyApp::options の値をシェル環境変数 $OPTS にセットします。 + デフォルト値は となります。 + + + 設定項目は /[fdbi] を後ろに付けられます。 + f はファイル名を、d はディレクトリを、b は true か false を、 + i は整数を返します。 + 返り値ごとに内部で正規化と検証を行います。 + + + + + dump + + + 設定箇所の内容を表示するだけです。 + + + + + + + + オプション + &apt-cmdblurb; + + + + &apt-commonoptions; + + + + + + 関連項目 + &apt-conf; + + + + + 診断メッセージ + + apt-config は正常終了時に 0 を返します。 + エラー時には十進の 100 を返します。 + + + + &manbugs; + &translator; + + + diff --git a/doc/ja/apt-extracttemplates.1 b/doc/ja/apt-extracttemplates.1 new file mode 100644 index 0000000..f099574 --- /dev/null +++ b/doc/ja/apt-extracttemplates.1 @@ -0,0 +1,99 @@ +.\" Title: apt\-extracttemplates +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-EXTRACTTEMPLATES" "1" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-extracttemplates \- Debian ¥Ñ¥Ã¥±¡¼¥¸¤«¤é DebConf ÀßÄê¤È¥Æ¥ó¥×¥ì¡¼¥È¤òÃê½Ð¤¹¤ë¥æ¡¼¥Æ¥£¥ê¥Æ¥£ +.SH "SYNOPSIS" +.HP 21 +\fBapt\-extracttemplates\fR [\fB\-hv\fR] [\fB\-t=\fR\fB\fItemporary\ directory\fR\fR] \fIfile\fR... +.SH "ÀâÌÀ" +.PP +\fBapt\-extracttemplates\fR +¤Ï¡¢ ÆþÎϤËÊ£¿ô¤Î Debian ¥Ñ¥Ã¥±¡¼¥¸¤ò¤È¤ê¡¢ ´ØÏ¢¤¹¤ëÀßÄꥹ¥¯¥ê¥×¥È¤È¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ò (°ì»þ¥Ç¥£¥ì¥¯¥È¥ê¤Ë) ½ÐÎϤ·¤Þ¤¹¡£ ÀßÄꥹ¥¯¥ê¥×¥È¡¦¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ò»ý¤Ä¡¢ ÅϤµ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤½¤ì¤¾¤ì¤ËÂФ·¡¢°Ê²¼¤Î·Á¼°¤Ç 1 ¹Ô¤º¤Ä½ÐÎϤ·¤Þ¤¹¡£ +.PP +package version template\-file config\-script +.PP +¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ä¡¢ÀßÄꥹ¥¯¥ê¥×¥È¤Ï¡¢ \-t ¤ä \-\-tempdir ¤Ç»ØÄꤷ¤¿°ì»þ¥Ç¥£¥ì¥¯¥È¥ê (APT::ExtractTemplates::TempDir) ¤Ë½ñ¤­½Ð¤µ¤ì¡¢ ¥Õ¥¡¥¤¥ë̾¤Ï¡¢\fIpackage.template.XXXX\fR +¤ä +\fIpackage.config.XXXX\fR +¤È¸À¤Ã¤¿·Á¤Ë¤Ê¤ê¤Þ¤¹¡£ +.SH "¥ª¥×¥·¥ç¥ó" +.PP +¤³¤ÎÀâÌÀ¤Ç¼¨¤·¤¿¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¤¹¤Ù¤ÆÀßÄê¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤ÆÀßÄê¤Ç¤­¤Þ¤¹¡£ ÀßÄê¥Õ¥¡¥¤¥ë¤Ë½ñ¤¤¤¿¿¿µ¶Ãͤò¤È¤ë¥ª¥×¥·¥ç¥ó¤Ï +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +¤Ê¤É¤Î¤è¤¦¤Ë¤·¤Æ¾å½ñ¤­¤Ç¤­¤Þ¤¹¡£ +.PP +\fB\-t\fR, \fB\-\-tempdir\fR +.RS 3n +Ãê½Ð¤·¤¿ debconf ¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤äÀßÄꥹ¥¯¥ê¥×¥È¤ò½ñ¤­½Ð¤¹¡¢ °ì»þ¥Ç¥£¥ì¥¯¥È¥ê¡£ ÀßÄê¹àÌÜ \- +APT::ExtractTemplates::TempDir +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +»È¤¤Êý¤Îû¤¤Í×Ìó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +ÀßÄê¥Õ¥¡¥¤¥ë¡£ »ÈÍѤ¹¤ëÀßÄê¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤¬Æɤá¤Ê¤¤¾ì¹ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¤Þ¤¹¡£ ʸˡ¤Ë¤Ä¤¤¤Æ¤Ï +\fBapt.conf\fR(5) +¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +ÀßÄꥪ¥×¥·¥ç¥ó¤Î¥»¥Ã¥È¡£Ç¤°Õ¤ÎÀßÄꥪ¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£ ʸˡ¤Ï +\fB\-o Foo::Bar=bar\fR +¤È¤Ê¤ê¤Þ¤¹¡£ +.RE +.SH "´ØÏ¢¹àÌÜ" +.PP +\fBapt.conf\fR(5) +.SH "¿ÇÃÇ¥á¥Ã¥»¡¼¥¸" +.PP +\fBapt\-extracttemplates\fR +¤ÏÀµ¾ï½ªÎ»»þ¤Ë 0 ¤òÊÖ¤·¤Þ¤¹¡£ ¥¨¥é¡¼»þ¤Ë¤Ï½½¿Ê¤Î 100 ¤òÊÖ¤·¤Þ¤¹¡£ +.SH "¥Ð¥°" +.PP +[1]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt-extracttemplates.ja.1 b/doc/ja/apt-extracttemplates.ja.1 new file mode 100644 index 0000000..f099574 --- /dev/null +++ b/doc/ja/apt-extracttemplates.ja.1 @@ -0,0 +1,99 @@ +.\" Title: apt\-extracttemplates +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-EXTRACTTEMPLATES" "1" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-extracttemplates \- Debian ¥Ñ¥Ã¥±¡¼¥¸¤«¤é DebConf ÀßÄê¤È¥Æ¥ó¥×¥ì¡¼¥È¤òÃê½Ð¤¹¤ë¥æ¡¼¥Æ¥£¥ê¥Æ¥£ +.SH "SYNOPSIS" +.HP 21 +\fBapt\-extracttemplates\fR [\fB\-hv\fR] [\fB\-t=\fR\fB\fItemporary\ directory\fR\fR] \fIfile\fR... +.SH "ÀâÌÀ" +.PP +\fBapt\-extracttemplates\fR +¤Ï¡¢ ÆþÎϤËÊ£¿ô¤Î Debian ¥Ñ¥Ã¥±¡¼¥¸¤ò¤È¤ê¡¢ ´ØÏ¢¤¹¤ëÀßÄꥹ¥¯¥ê¥×¥È¤È¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ò (°ì»þ¥Ç¥£¥ì¥¯¥È¥ê¤Ë) ½ÐÎϤ·¤Þ¤¹¡£ ÀßÄꥹ¥¯¥ê¥×¥È¡¦¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ò»ý¤Ä¡¢ ÅϤµ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤½¤ì¤¾¤ì¤ËÂФ·¡¢°Ê²¼¤Î·Á¼°¤Ç 1 ¹Ô¤º¤Ä½ÐÎϤ·¤Þ¤¹¡£ +.PP +package version template\-file config\-script +.PP +¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ä¡¢ÀßÄꥹ¥¯¥ê¥×¥È¤Ï¡¢ \-t ¤ä \-\-tempdir ¤Ç»ØÄꤷ¤¿°ì»þ¥Ç¥£¥ì¥¯¥È¥ê (APT::ExtractTemplates::TempDir) ¤Ë½ñ¤­½Ð¤µ¤ì¡¢ ¥Õ¥¡¥¤¥ë̾¤Ï¡¢\fIpackage.template.XXXX\fR +¤ä +\fIpackage.config.XXXX\fR +¤È¸À¤Ã¤¿·Á¤Ë¤Ê¤ê¤Þ¤¹¡£ +.SH "¥ª¥×¥·¥ç¥ó" +.PP +¤³¤ÎÀâÌÀ¤Ç¼¨¤·¤¿¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¤¹¤Ù¤ÆÀßÄê¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤ÆÀßÄê¤Ç¤­¤Þ¤¹¡£ ÀßÄê¥Õ¥¡¥¤¥ë¤Ë½ñ¤¤¤¿¿¿µ¶Ãͤò¤È¤ë¥ª¥×¥·¥ç¥ó¤Ï +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +¤Ê¤É¤Î¤è¤¦¤Ë¤·¤Æ¾å½ñ¤­¤Ç¤­¤Þ¤¹¡£ +.PP +\fB\-t\fR, \fB\-\-tempdir\fR +.RS 3n +Ãê½Ð¤·¤¿ debconf ¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤äÀßÄꥹ¥¯¥ê¥×¥È¤ò½ñ¤­½Ð¤¹¡¢ °ì»þ¥Ç¥£¥ì¥¯¥È¥ê¡£ ÀßÄê¹àÌÜ \- +APT::ExtractTemplates::TempDir +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +»È¤¤Êý¤Îû¤¤Í×Ìó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +ÀßÄê¥Õ¥¡¥¤¥ë¡£ »ÈÍѤ¹¤ëÀßÄê¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤¬Æɤá¤Ê¤¤¾ì¹ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¤Þ¤¹¡£ ʸˡ¤Ë¤Ä¤¤¤Æ¤Ï +\fBapt.conf\fR(5) +¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +ÀßÄꥪ¥×¥·¥ç¥ó¤Î¥»¥Ã¥È¡£Ç¤°Õ¤ÎÀßÄꥪ¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£ ʸˡ¤Ï +\fB\-o Foo::Bar=bar\fR +¤È¤Ê¤ê¤Þ¤¹¡£ +.RE +.SH "´ØÏ¢¹àÌÜ" +.PP +\fBapt.conf\fR(5) +.SH "¿ÇÃÇ¥á¥Ã¥»¡¼¥¸" +.PP +\fBapt\-extracttemplates\fR +¤ÏÀµ¾ï½ªÎ»»þ¤Ë 0 ¤òÊÖ¤·¤Þ¤¹¡£ ¥¨¥é¡¼»þ¤Ë¤Ï½½¿Ê¤Î 100 ¤òÊÖ¤·¤Þ¤¹¡£ +.SH "¥Ð¥°" +.PP +[1]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt-extracttemplates.ja.1.xml b/doc/ja/apt-extracttemplates.ja.1.xml new file mode 100644 index 0000000..079c894 --- /dev/null +++ b/doc/ja/apt-extracttemplates.ja.1.xml @@ -0,0 +1,121 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 February 2004 + + + + apt-extracttemplates + 1 + + + + + apt-extracttemplates + + Debian パッケージから DebConf 設定とテンプレートを抽出するユーティリティ + + + + + + apt-extracttemplates + + + file + + + + + 説明 + + apt-extracttemplates は、 + 入力に複数の Debian パッケージをとり、 + 関連する設定スクリプトとテンプレートファイルを + (一時ディレクトリに) 出力します。 + 設定スクリプト・テンプレートファイルを持つ、 + 渡されたパッケージそれぞれに対し、以下の形式で 1 行ずつ出力します。 + package version template-file config-script + + テンプレートファイルや、設定スクリプトは、 + -t や --tempdir で指定した一時ディレクトリ + (APT::ExtractTemplates::TempDir) に書き出され、 + ファイル名は、package.template.XXXX や + package.config.XXXX と言った形になります。 + + + + オプション + &apt-cmdblurb; + + + + + + 抽出した debconf テンプレートファイルや設定スクリプトを書き出す、 + 一時ディレクトリ。 + 設定項目 - APT::ExtractTemplates::TempDir + + + &apt-commonoptions; + + + + + + + + 関連項目 + &apt-conf; + + + + 診断メッセージ + apt-extracttemplates は正常終了時に 0 を返します。 + エラー時には十進の 100 を返します。 + + + &manbugs; + &translator; + + diff --git a/doc/ja/apt-ftparchive.1 b/doc/ja/apt-ftparchive.1 new file mode 100644 index 0000000..6501838 --- /dev/null +++ b/doc/ja/apt-ftparchive.1 @@ -0,0 +1,612 @@ +.\" Title: apt\-ftparchive +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-FTPARCHIVE" "1" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-ftparchive \- ¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ëÀ¸À®¥æ¡¼¥Æ¥£¥ê¥Æ¥£ +.SH "SYNOPSIS" +.HP 15 +\fBapt\-ftparchive\fR [\fB\-hvdsq\fR] [\fB\-\-md5\fR] [\fB\-\-delink\fR] [\fB\-\-readonly\fR] [\fB\-\-contents\fR] [\fB\-o=\fR\fB\fIconfig\ string\fR\fR] [\fB\-c=\fR\fB\fIfile\fR\fR] {[packages\ \fIpath\fR...\ [\fIoverride\fR\ [\fIpathprefix\fR]]] | [sources\ \fIpath\fR...\ [\fIoverride\fR\ [\fIpathprefix\fR]]] | [contents\ \fIpath\fR] | [release\ \fIpath\fR] | [generate\ \fIconfig\-file\fR\ \fIsection\fR...] | [clean\ \fIconfig\-file\fR]} +.SH "ÀâÌÀ" +.PP +\fBapt\-ftparchive\fR +¤Ï¡¢ APT ¤¬¼èÆÀ¸µ¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤Î¤ËɬÍפʡ¢ ¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¥³¥Þ¥ó¥É¥é¥¤¥ó¥Ä¡¼¥ë¤Ç¤¹¡£ ¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤Ï¡¢¸µ¤Î¥µ¥¤¥È¤ÎÆâÍƤ˴ð¤Å¤­À¸À®¤µ¤ì¤ë¤Ù¤­¤Ç¤¹¡£ +.PP +\fBapt\-ftparchive\fR +¤Ï¡¢ +\fBdpkg\-scanpackages\fR(8) +¥×¥í¥°¥é¥à¤Î¥¹¡¼¥Ñ¡¼¥»¥Ã¥È¤Ç¡¢ +packages +¥³¥Þ¥ó¥É·Ðͳ¤Çµ¡Ç½Á´ÂΤò¼è¤ê¹þ¤ó¤Ç¤¤¤Þ¤¹¡£ ¤Þ¤¿¡¢contents ¥Õ¥¡¥¤¥ë¥¸¥§¥Í¥ì¡¼¥¿ +contents +¤È ´°Á´¤Ê¥¢¡¼¥«¥¤¥Ö¤ÎÀ¸À®¥×¥í¥»¥¹¡Ö¥¹¥¯¥ê¥×¥È¡×¤Ç¤¢¤ëÌÊÌ©¤Ê¼êÃʤò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£ +.PP +ËܼÁŪ¤Ë +\fBapt\-ftparchive\fR +¤Ï¡¢ .deb ¥Õ¥¡¥¤¥ë¤ÎÆâÍƤò¥­¥ã¥Ã¥·¥å¤¹¤ë¤Î¤Ë¥Ð¥¤¥Ê¥ê¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»ÈÍѤǤ­¤Þ¤¹¡£ ¤Þ¤¿¡¢\fBgzip\fR(1) +°Ê³°¤Î¤¤¤«¤Ê¤ë³°Éô¥×¥í¥°¥é¥à¤Ë¤â°Í¸¤·¤Þ¤»¤ó¡£ ¤¹¤Ù¤ÆÀ¸À®¤¹¤ëºÝ¤Ë¤Ï¡¢ ¥Õ¥¡¥¤¥ëÊѹ¹ÅÀ¤Î¸¡½Ð¤È´õ˾¤·¤¿°µ½Ì½ÐÎÏ¥Õ¥¡¥¤¥ë¤ÎºîÀ®¤ò¼«Æ°Åª¤Ë¼Â¹Ô¤·¤Þ¤¹¡£ +.PP +\fB\-h\fR +¥ª¥×¥·¥ç¥ó¤ä +\fB\-\-help\fR +¥ª¥×¥·¥ç¥ó¤ò½ü¤­¡¢ °Ê²¼¤Ëµó¤²¤ë¥³¥Þ¥ó¥É¤¬É¬ÍפǤ¹¡£ +.PP +packages +.RS 3n + +packages ¥³¥Þ¥ó¥É¤Ï¡¢ ¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤«¤é¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤Þ¤¹¡£ Í¿¤¨¤é¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤«¤éºÆµ¢¸¡º÷¤·¡¢.deb ¥Õ¥¡¥¤¥ë¤ò¼èÆÀ¤·¤Þ¤¹¡£ ¤Þ¤¿¥Ñ¥Ã¥±¡¼¥¸¥ì¥³¡¼¥É¤òɸ½à½ÐÎϤˤ½¤ì¤¾¤ì½ÐÎϤ·¤Þ¤¹¡£ ¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢\fBdpkg\-scanpackages\fR(8) +¤È¤Û¤ÜƱ¤¸¤Ç¤¹¡£ +.sp +\fB\-\-db\fR +¥ª¥×¥·¥ç¥ó¤Ç¡¢ ¥­¥ã¥Ã¥·¥å DB ¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +sources +.RS 3n + + +sources +¥³¥Þ¥ó¥É¤Ï¡¢ ¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤«¤é¥½¡¼¥¹¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤Þ¤¹¡£ Í¿¤¨¤é¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤«¤éºÆµ¢¸¡º÷¤·¡¢.dsc ¥Õ¥¡¥¤¥ë¤ò¼èÆÀ¤·¤Þ¤¹¡£ ¤Þ¤¿¥½¡¼¥¹¥ì¥³¡¼¥É¤òɸ½à½ÐÎϤˤ½¤ì¤¾¤ì½ÐÎϤ·¤Þ¤¹¡£ ¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢\fBdpkg\-scansources\fR(8) +¤È¤Û¤ÜƱ¤¸¤Ç¤¹¡£ +.sp + +override ¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤¿¾ì¹ç¡¢ src ³ÈÄ¥»Ò¤¬¤Ä¤¤¤¿¥½¡¼¥¹¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òõ¤·¤Þ¤¹¡£ »ÈÍѤ¹¤ë¥½¡¼¥¹¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òÊѹ¹¤¹¤ë¤Î¤Ë¤Ï¡¢ \-\-source\-override ¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Þ¤¹¡£ +.RE +.PP +contents +.RS 3n + + +contents +¥³¥Þ¥ó¥É¤Ï¡¢ ¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤«¤é¥³¥ó¥Æ¥ó¥Ä¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤Þ¤¹¡£ Í¿¤¨¤é¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤«¤éºÆµ¢¸¡º÷¤·¡¢.deb ¥Õ¥¡¥¤¥ë¤ò¼èÆÀ¤·¤Þ¤¹¡£ ¤Þ¤¿¥Õ¥¡¥¤¥ë¤´¤È¤Ë¥Õ¥¡¥¤¥ë°ìÍ÷¤òÆɤ߼è¤ê¤Þ¤¹¡£ ¤½¤Î¸å¡¢¥Ñ¥Ã¥±¡¼¥¸¤ËÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë°ìÍ÷¤òɸ½à½ÐÎϤ˥½¡¼¥È¤·¤Æ½ÐÎϤ·¤Þ¤¹¡£ ¥Ç¥£¥ì¥¯¥È¥ê¤Ï½ÐÎϤ˴ޤޤì¤Þ¤»¤ó¡£ Ê£¿ô¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬Æ±¤¸¥Õ¥¡¥¤¥ë¤ò»ý¤Ä¾ì¹ç¡¢ ¥Ñ¥Ã¥±¡¼¥¸Ì¾¤ò¥«¥ó¥Þ¶èÀÚ¤ê¤Ç½ÐÎϤ·¤Þ¤¹¡£ +.sp + + +\fB\-\-db\fR +¥ª¥×¥·¥ç¥ó¤Ç¡¢ ¥­¥ã¥Ã¥·¥å DB ¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +release +.RS 3n + + +release +¥³¥Þ¥ó¥É¤Ï¡¢ ¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤«¤é Release ¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤Þ¤¹¡£ Í¿¤¨¤é¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¡¢Packages, Packages.gz, Packages.bz2, Sources, Sources.gz, Sources.bz2, Release, md5sum.txt ¤È¤¤¤Ã¤¿¥Õ¥¡¥¤¥ë¤òºÆµ¢¸¡º÷¤·¤Þ¤¹¡£ ¤½¤Î¸å¡¢¥Õ¥¡¥¤¥ë¤´¤È¤Î MD5 ¥À¥¤¥¸¥§¥¹¥È¤È SHA1 ¥À¥¤¥¸¥§¥¹¥È¤ò´Þ¤ó¤À Release ¥Õ¥¡¥¤¥ë¤ò¡¢É¸½à½ÐÎϤ˽ñ¤­½Ð¤·¤Þ¤¹¡£ +.sp + +Release ¥Õ¥¡¥¤¥ë¤ÎÄɲå᥿¥Ç¡¼¥¿¥Õ¥£¡¼¥ë¥É¤ÎÃͤϡ¢ +APT::FTPArchive::Release +°Ê²¼¤ÎÁêÅö¤¹¤ëÃÍ (Îã: +APT::FTPArchive::Release::Origin) ¤ò¤È¤ê¤Þ¤¹¡£ ¥µ¥Ý¡¼¥È¤¹¤ë¥Õ¥£¡¼¥ë¥É¤Ï¡¢ +Origin, +Label, +Suite, +Version, +Codename, +Date, +Architectures, +Components, +Description +¤Ç¤¹¡£ +.RE +.PP +generate +.RS 3n + + +generate +¥³¥Þ¥ó¥É¤Ï¡¢ cron ¥¹¥¯¥ê¥×¥È¤«¤é¼Â¹Ô¤Ç¤­¤ë¤è¤¦À߷פµ¤ì¤Æ¤ª¤ê¡¢ Í¿¤¨¤é¤ì¤¿ÀßÄê¥Õ¥¡¥¤¥ë¤Ë½¾¤Ã¤Æ¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÀ¸À®¤·¤Þ¤¹¡£ ÀßÄê¸À¸ì¤Ï¡¢É¬ÍפÊÀßÄê¤ò°Ý»ý¤¹¤ë´Êñ¤ÊÊýË¡¤òÄ󶡤¹¤ë¤È¶¦¤Ë¡¢ ¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤ò¤É¤Î¥Ç¥£¥ì¥¯¥È¥ê¤«¤éºîÀ®¤¹¤ë¤«¤ò»ØÄꤹ¤ë¡¢ ½ÀÆð¤ÊÊýË¡¤òÄ󶡤·¤Þ¤¹¡£ +.RE +.PP +clean +.RS 3n + + +clean +¥³¥Þ¥ó¥É¤Ï¡¢ ÀßÄê¥Õ¥¡¥¤¥ë¤ÇÍ¿¤¨¤é¤ì¤¿¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¡¢ ¤â¤¦É¬Íפʤ¤¥ì¥³¡¼¥É¤òºï½ü¤·¤ÆÀ°Íý¤·¤Þ¤¹¡£ +.RE +.SH "GENERATE ÀßÄê" +.PP + + +generate +¥³¥Þ¥ó¥É¤Ï¡¢ À¸À®¤¹¤ë¥¢¡¼¥«¥¤¥Ö¤Ë´Ø¤¹¤ëµ­½Ò¤ò¤·¤¿ÀßÄê¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤Þ¤¹¡£ ÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢bind 8 ¤ä dhcpd ¤È¤¤¤Ã¤¿ ISC ¥Ä¡¼¥ë¤Ë¸«¤é¤ì¤ë¤è¤¦¤Ê¡¢ ISC ÀßÄê¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë½¾¤¤¤Þ¤¹¡£ +\fBapt.conf\fR(5) +¤Ë¡¢Ê¸Ë¡¤ÎÀâÌÀ¤¬¤¢¤ê¤Þ¤¹¡£ generate ÀßÄê¤Ï¥»¥¯¥·¥ç¥óË¡¤Ç²òÀϤ·¤Þ¤¹¤¬¡¢ +\fBapt.conf\fR(5) +¤Ï¥Ä¥ê¡¼Ë¡¤Ç²òÀϤ¹¤ë¤Î¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ ¤³¤ì¤Ï¥¹¥³¡¼¥×¥¿¥°¤Î°·¤¤Êý¤Ë°ã¤¤¤¬¤¢¤ë¤À¤±¤Ç¤¹¡£ +.PP + +generate ÀßÄê¤Ë¤Ï 4 ¸Ä¤ÎÆÈΩ¤·¤¿¥»¥¯¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡£ °Ê²¼¤½¤ì¤¾¤ìÀâÌÀ¤·¤Þ¤¹¡£ +.SS "Dir ¥»¥¯¥·¥ç¥ó" +.PP + + +Dir +¥»¥¯¥·¥ç¥ó¤Ï¡¢ À¸À®¥×¥í¥»¥¹¤ÇɬÍפʥե¡¥¤¥ë¤òÇÛÃÖ¤¹¤ë¤¿¤á¤Î¡¢ ɸ½à¥Ç¥£¥ì¥¯¥È¥ê¤òÄêµÁ¤·¤Þ¤¹¡£ ¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢´°Á´¤ÊÀäÂХѥ¹¤òÀ¸À®¤¹¤ë¤¿¤á¡¢ ¸å¤Î¥»¥¯¥·¥ç¥ó¤ÇÄêµÁ¤µ¤ì¤ëÁêÂХѥ¹¤ÎÁ°¤Ë·ë¹ç¤·¤Þ¤¹¡£ +.PP +ArchiveDir +.RS 3n + +FTP ¥¢¡¼¥«¥¤¥Ö¤Î¥ë¡¼¥È¤ò»ØÄꤷ¤Þ¤¹¡£ ɸ½àŪ¤Ê Debian ÀßÄê¤Ç¤Ï¡¢¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï +\fIls\-LR\fR +¤È dist ¥Î¡¼¥É¤¬¤¢¤ê¤Þ¤¹¡£ +.RE +.PP +OverrideDir +.RS 3n + +¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤Î¾ì½ê¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +CacheDir +.RS 3n + +¥­¥ã¥Ã¥·¥å¥Õ¥¡¥¤¥ë¤Î¾ì½ê¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +FileListDir +.RS 3n + + +FileList +ÀßÄ꤬°Ê²¼¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ ¥Õ¥¡¥¤¥ë¥ê¥¹¥È¥Õ¥¡¥¤¥ë¤Î¾ì½ê¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.SS "Default ¥»¥¯¥·¥ç¥ó" +.PP + + +Default +¥»¥¯¥·¥ç¥ó¤Ç¤Ï¥Ç¥Õ¥©¥ë¥ÈÃͤò»ØÄꤷ¤Þ¤¹¡£ ¤Þ¤¿¡¢À¸À®´ï¤ÎÆ°ºî¤òÀ©¸æ¤¹¤ëÀßÄê¤â¹Ô¤¤¤Þ¤¹¡£ ¾¤Î¥»¥¯¥·¥ç¥ó¤Ç¤Ï¡¢¤³¤³¤Ë¤¢¤ë¥Ç¥Õ¥©¥ë¥ÈÃͤò¡¢ ¥»¥¯¥·¥ç¥ó¤´¤È¤ÎÀßÄê¤Ç¾å½ñ¤­¤·¤Þ¤¹¡£ +.PP +Packages::Compress +.RS 3n + +Package ¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤Î°µ½ÌÊýË¡¤òÀßÄꤷ¤Þ¤¹¡£ ¾¯¤Ê¤¯¤È¤â¤Ò¤È¤Ä¤Ï '.' (°µ½Ì¤Ê¤·), 'gzip', 'bzip2' ¤¬Æþ¤ë¡¢ ¶õÇò¶èÀÚ¤ê¤Îʸ»úÎó¤Ç¤¹¡£ °µ½ÌÊýË¡¤Î¥Ç¥Õ¥©¥ë¥È¤Ï¤¹¤Ù¤Æ '. gzip' ¤Ç¤¹¡£ +.RE +.PP +Packages::Extensions +.RS 3n + +¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë³ÈÄ¥»Ò¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤòÎóµó¤·¤Þ¤¹¡£ ¤³¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï '.deb' ¤Ç¤¹¡£ +.RE +.PP +Sources::Compress +.RS 3n + + +Packages::Compress +¤ÈƱÍͤˡ¢ Sources ¥Õ¥¡¥¤¥ë¤Î°µ½ÌÊýË¡¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +Sources::Extensions +.RS 3n + +¥½¡¼¥¹¥Õ¥¡¥¤¥ë³ÈÄ¥»Ò¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤòÎóµó¤·¤Þ¤¹¡£ ¤³¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï '.dsc' ¤Ç¤¹¡£ +.RE +.PP +Contents::Compress +.RS 3n + + +Packages::Compress +¤ÈƱÍͤˡ¢ Contents ¥Õ¥¡¥¤¥ë¤Î°µ½ÌÊýË¡¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +DeLinkLimit +.RS 3n + +¼Â¹Ô¤¹¤ë¤´¤È¤Ë delink (µÚ¤Ó¥Ï¡¼¥É¥ê¥ó¥¯¤ÎÃÖ¤­´¹¤¨) ¤¹¤ëÎ̤ò¡¢ ¥­¥í¥Ð¥¤¥Èñ°Ì¤Ç»ØÄꤷ¤Þ¤¹¡£¥»¥¯¥·¥ç¥ó¤´¤È¤Î +External\-Links +ÀßÄê¤È¹ç¤ï¤»¤Æ»È¤¤¤Þ¤¹¡£ +.RE +.PP +FileMode +.RS 3n + +ºîÀ®¤·¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤Î¥â¡¼¥É¤ò»ØÄꤷ¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ï 0644 ¤Ç¤¹¡£Á´¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤Ï¡¢ umask ¤ò̵»ë¤·¤Æ¤³¤Î¥â¡¼¥É¤ò»ÈÍѤ·¤Þ¤¹¡£ +.RE +.SS "TreeDefault ¥»¥¯¥·¥ç¥ó" +.PP + +ÆÃÄê¤Î +Tree +¥»¥¯¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥È¤òÀßÄꤷ¤Þ¤¹¡£ ¤³¤ì¤é¤ÎÊÑ¿ô¤Ï¤¹¤Ù¤ÆÃÖ´¹ÊÑ¿ô¤Ç¤¢¤ê¡¢ ʸ»úÎó $(DIST), $(SECTION), $(ARCH) ¤ò¤½¤ì¤¾¤ì¤ÎÃͤËŸ³«¤·¤Þ¤¹¡£ +.PP +MaxContentsChange +.RS 3n + +ÆüËè¤ËÀ¸À®¤¹¤ë contents ¥Õ¥¡¥¤¥ë¤ò¥­¥í¥Ð¥¤¥Èñ°Ì¤ÇÀßÄꤷ¤Þ¤¹¡£ contents ¥Õ¥¡¥¤¥ë¤ò¥é¥¦¥ó¥É¥í¥Ó¥ó¤·¡¢¿ôÆü·Ð¤Ä¤È¤¹¤Ù¤ÆºÆÀ¸À®¤·¤Þ¤¹¡£ +.RE +.PP +ContentsAge +.RS 3n + +Êѹ¹¤¬¤Ê¤¤ contents ¥Õ¥¡¥¤¥ë¤ò¥Á¥§¥Ã¥¯¤¹¤ëÆü¿ô¤ò»ØÄꤷ¤Þ¤¹¡£ ¤³¤ÎÀ©¸Â¤ò±Û¤¨¤¿ contents ¥Õ¥¡¥¤¥ë¤Î mtime ¤ò¡¢¹¹¿·¤·¤Þ¤¹¡£ ¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤¬Êѹ¹¤µ¤ì¤Æ¤â¡¢ [Î㤨¤Ð¾å½ñ¤­ÊÔ½¸¤Ç] contents ¥Õ¥¡¥¤¥ë¤¬¹¹¿·¤µ¤ì¤Ê¤¤¤è¤¦¤Ê¾ì¹ç¡¢ ¤³¤¦¤¤¤Ã¤¿¤³¤È¤¬È¯À¸¤·¤Þ¤¹¡£ ¿·¤·¤¤ .deb ¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤¤¾ì¹ç¡¢ÊÝα¤ò²ò½ü¤Ç¤­¡¢ ¾¯¤Ê¤¯¤È¤â¿·¤·¤¤¥Õ¥¡¥¤¥ë¤¬É¬ÍפǤ¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ï 10 ¤Ç¡¢Ã±°Ì¤ÏÆü¤Ç¤¹¡£ +.RE +.PP +Directory +.RS 3n +.deb ¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤ÎÀèƬ¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï +\fI$(DIST)/$(SECTION)/binary\-$(ARCH)/\fR +¤Ç¤¹¡£ +.RE +.PP +SrcDirectory +.RS 3n + +¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤ÎÀèƬ¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï +\fI$(DIST)/$(SECTION)/source/\fR +¤Ç¤¹¡£ +.RE +.PP +Packages +.RS 3n + +Packages ¥Õ¥¡¥¤¥ë¤Î½ÐÎÏÀè¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï +\fI$(DIST)/$(SECTION)/binary\-$(ARCH)/Packages\fR +¤Ç¤¹¡£ +.RE +.PP +Sources +.RS 3n + +Packages ¥Õ¥¡¥¤¥ë¤Î½ÐÎÏÀè¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï +\fI$(DIST)/$(SECTION)/source/Sources\fR +¤Ç¤¹¡£ +.RE +.PP +InternalPrefix +.RS 3n + +³°Éô¥ê¥ó¥¯¤Ç¤Ï¤Ê¤¯¡¢ÆâÉô¥ê¥ó¥¯¤È¸«¤Ê¤¹È½ÃǺàÎÁ¤È¤Ê¤ë¡¢ ¥Ñ¥¹¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï¡¢ +\fI$(DIST)/$(SECTION)/\fR +¤Ç¤¹¡£ +.RE +.PP +Contents +.RS 3n + +Contents ¥Õ¥¡¥¤¥ë¤Î½ÐÎÏÀè¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï¡¢ +\fI$(DIST)/Contents\-$(ARCH)\fR +¤Ç¤¹¡£ Ê£¿ô¤Î Packages ¥Õ¥¡¥¤¥ë¤ò ¤Ò¤È¤Ä¤Î Contents ¥Õ¥¡¥¤¥ë¤Ë¤Þ¤È¤á¤é¤ì¤ëÀßÄê (¥Ç¥Õ¥©¥ë¥È) ¤Î¾ì¹ç¡¢\fBapt\-ftparchive\fR +¤Ï¼«Æ°¤Ç¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤ò¤Þ¤È¤á¤Þ¤¹¡£ +.RE +.PP +Contents::Header +.RS 3n + +contents ¤Î½ÐÎϤËÉÕ¤±¤ë¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤òÀßÄꤷ¤Þ¤¹¡£ +.RE +.PP +BinCacheDB +.RS 3n + +¤³¤Î¥»¥¯¥·¥ç¥ó¤Ç»ÈÍѤ¹¤ë¥Ð¥¤¥Ê¥ê¥­¥ã¥Ã¥·¥å¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÀßÄꤷ¤Þ¤¹¡£ Ê£¿ô¤Î¥»¥¯¥·¥ç¥ó¤ÇƱ¤¸¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¶¦Í­¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +FileList +.RS 3n + +¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤òÁöºº¤¹¤ëÂå¤ï¤ê¤Ë¡¢\fBapt\-ftparchive\fR +¤¬Æɤ߹þ¤à¥Õ¥¡¥¤¥ë°ìÍ÷¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ ÁêÂÐ¥Õ¥¡¥¤¥ë̾¤Ï¡¢¥¢¡¼¥«¥¤¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤¬ÀèƬ¤Ë¤Ä¤­¤Þ¤¹¡£ +.RE +.PP +SourceFileList +.RS 3n + +¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤òÁöºº¤¹¤ëÂå¤ï¤ê¤Ë¡¢\fBapt\-ftparchive\fR +¤¬Æɤ߹þ¤à¥Õ¥¡¥¤¥ë°ìÍ÷¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ ÁêÂÐ¥Õ¥¡¥¤¥ë̾¤Ï¡¢¥¢¡¼¥«¥¤¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤¬ÀèƬ¤Ë¤Ä¤­¤Þ¤¹¡£ ¥½¡¼¥¹¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò½èÍý¤¹¤ëºÝ¤Ë»ÈÍѤ·¤Þ¤¹¡£ +.RE +.SS "Tree ¥»¥¯¥·¥ç¥ó" +.PP + + +Tree +¥»¥¯¥·¥ç¥ó¤Ç¤Ï¡¢ ¥Ù¡¼¥¹¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤Îɸ½à Debian ¥Õ¥¡¥¤¥ë¥Ä¥ê¡¼¡¢ ¥Ù¡¼¥¹¥Ç¥£¥ì¥¯¥È¥ê¤ÎÊ£¿ô¤Î¥»¥¯¥·¥ç¥ó¡¢ ºÇ½ªÅª¤Ë¤Ï¥»¥¯¥·¥ç¥ó¤´¤È¤ÎÊ£¿ô¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤òÄêµÁ¤·¤Þ¤¹¡£ »ÈÍѤ¹¤ëÀµ³Î¤Ê¥Ñ¥¹¤Ï¡¢Directory +ÊÑ¿ô¤ÇÄêµÁ¤µ¤ì¤Þ¤¹¡£ +.PP + + +Tree +¥»¥¯¥·¥ç¥ó¤Ï¡¢ +$(DIST) +ÊÑ¿ô¤ÇÀßÄꤵ¤ì¤Æ¤¤¤ë¥¹¥³¡¼¥×¥¿¥°¤ò¤È¤ê¡¢ ¥Ä¥ê¡¼¤Î¥ë¡¼¥È (ArchiveDir¤¬ÀèƬ¤Ë¤Ä¤¯¥Ñ¥¹) ¤òÄêµÁ¤·¤Þ¤¹¡£ Ä̾¤³¤ÎÀßÄê¤Ï +\fIdists/woody\fR +¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ +.PP + + +TreeDefault +¥»¥¯¥·¥ç¥ó¤ÇÄêµÁ¤µ¤ì¤ëÀßÄê¤Ï¤¹¤Ù¤Æ¡¢ 3 ¸Ä¤Î¿·¤·¤¤ÊÑ¿ô¤ÈƱÍͤˡ¢ +Tree +¥»¥¯¥·¥ç¥ó¤Ç»ÈÍѤǤ­¤Þ¤¹¡£ +.PP + + +Tree +¥»¥¯¥·¥ç¥ó¤ò½èÍý¤¹¤ëºÝ¡¢ +\fBapt\-ftparchive\fR +¤Ï°Ê²¼¤Î¤è¤¦¤ÊÁàºî¤ò¹Ô¤¤¤Þ¤¹¡£ +.sp .RS 3n .nf for i in Sections do for j in Architectures do Generate for DIST=scope SECTION=i ARCH=j .fi .RE +.PP +Sections +.RS 3n + +distribution °Ê²¼¤Ë¸½¤ì¤ë¥»¥¯¥·¥ç¥ó¤ò¡¢¶õÇò¶èÀÚ¤ê¤Ç»ØÄꤷ¤¿¥ê¥¹¥È¤Ç¤¹¡£ Ä̾main contrib non\-free¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ +.RE +.PP +Architectures +.RS 3n + +search ¥»¥¯¥·¥ç¥ó°Ê²¼¤Ë¸½¤ì¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò¡¢ ¶õÇò¶èÀÚ¤ê¤Ç»ØÄꤷ¤¿¥ê¥¹¥È¤Ç¤¹¡£ Æü쥢¡¼¥­¥Æ¥¯¥Á¥ã 'source' ¤Ï¡¢ ¥½¡¼¥¹¥¢¡¼¥«¥¤¥Ö¤Î¥Ä¥ê¡¼¤Ç¤¢¤ë¤³¤È¤ò¼¨¤·¤Þ¤¹¡£ +.RE +.PP +BinOverride +.RS 3n + +¥Ð¥¤¥Ê¥ê¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òÀßÄꤷ¤Þ¤¹¡£ ¤³¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¥»¥¯¥·¥ç¥ó¡¢Í¥ÀèÅÙ¡¢ ¥á¥ó¥Æ¥Ê¤Î¥¢¥É¥ì¥¹¤È¤¤¤Ã¤¿¾ðÊ󤬴ޤޤì¤Æ¤¤¤Þ¤¹¡£ +.RE +.PP +SrcOverride +.RS 3n + +¥½¡¼¥¹¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òÀßÄꤷ¤Þ¤¹¡£ ¤³¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢ ¥»¥¯¥·¥ç¥ó¤Î¾ðÊ󤬴ޤޤì¤Æ¤¤¤Þ¤¹¡£ +.RE +.PP +ExtraOverride +.RS 3n + +¥Ð¥¤¥Ê¥êÆÃÊÌ¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òÀßÄꤷ¤Þ¤¹¡£ +.RE +.PP +SrcExtraOverride +.RS 3n + +¥½¡¼¥¹ÆÃÊÌ¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òÀßÄꤷ¤Þ¤¹¡£ +.RE +.SS "BinDirectory ¥»¥¯¥·¥ç¥ó" +.PP + + +bindirectory +¥»¥¯¥·¥ç¥ó¤Ç¤Ï¡¢ Æüì¤Ê¹½Â¤¤ò»ý¤¿¤Ê¤¤¥Ð¥¤¥Ê¥ê¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤òÄêµÁ¤·¤Þ¤¹¡£ ¥¹¥³¡¼¥×¥¿¥°¤Ï¥Ð¥¤¥Ê¥ê¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ì½ê¤ò»ØÄꤷ¡¢ ÀßÄê¤Ï¡¢ÊÑ¿ôŸ³«¤Î¤Ê¤¤ +Tree +¥»¥¯¥·¥ç¥ó¤ä +SectionArchitecture +ÀßÄê¤Ë»÷¤Æ¤¤¤Þ¤¹¡£ +.PP +Packages +.RS 3n + +Packages ¥Õ¥¡¥¤¥ë¤Î½ÐÎÏÀè¤òÀßÄꤷ¤Þ¤¹¡£ +.RE +.PP +SrcPackages +.RS 3n + +Sources ¥Õ¥¡¥¤¥ë¤Î½ÐÎÏÀè¤òÀßÄꤷ¤Þ¤¹¡£ ¾¯¤Ê¤¯¤È¤â +Packages +¤ä +SrcPackages +¤ÏÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ +.RE +.PP +Contents +.RS 3n + +Contents ¥Õ¥¡¥¤¥ë¤Î½ÐÎÏÀè¤òÀßÄꤷ¤Þ¤¹¡£(¥ª¥×¥·¥ç¥ó) +.RE +.PP +BinOverride +.RS 3n + +¥Ð¥¤¥Ê¥ê¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òÀßÄꤷ¤Þ¤¹¡£ +.RE +.PP +SrcOverride +.RS 3n + +¥½¡¼¥¹¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òÀßÄꤷ¤Þ¤¹¡£ +.RE +.PP +ExtraOverride +.RS 3n + +¥Ð¥¤¥Ê¥êÆÃÊÌ¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òÀßÄꤷ¤Þ¤¹¡£ +.RE +.PP +SrcExtraOverride +.RS 3n + +¥½¡¼¥¹ÆÃÊÌ¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òÀßÄꤷ¤Þ¤¹¡£ +.RE +.PP +BinCacheDB +.RS 3n + +¥­¥ã¥Ã¥·¥å DB ¤òÀßÄꤷ¤Þ¤¹¡£ +.RE +.PP +PathPrefix +.RS 3n + +Á´½ÐÎϥѥ¹¤ËÉղ乤ë¥Ñ¥¹¡£ +.RE +.PP +FileList, SourceFileList +.RS 3n + +¥Õ¥¡¥¤¥ë°ìÍ÷¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.SH "¥Ð¥¤¥Ê¥ê¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë" +.PP +¥Ð¥¤¥Ê¥ê¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤Ï¡¢ +\fBdpkg\-scanpackages\fR(8) +¤È´°Á´¤Ë¸ß´¹À­¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤³¤Ë¤Ï¡¢¶õÇò¶èÀÚ¤ê¤Ç¥Õ¥£¡¼¥ë¥É¤¬ 4 ¸Ä¤¢¤ê¤Þ¤¹¡£ ÀèƬ¤Î¥Õ¥£¡¼¥ë¥É¤Ï¥Ñ¥Ã¥±¡¼¥¸Ì¾¡¢ 2 ÈÖÌܤΥե£¡¼¥ë¥É¤Ï¥Ñ¥Ã¥±¡¼¥¸¤Ë¶¯À©¤¹¤ëÍ¥ÀèÅÙ¡¢ 3 ÈÖÌܤΥե£¡¼¥ë¥É¤Ï¥Ñ¥Ã¥±¡¼¥¸¤Ë¶¯À©¤¹¤ë¥»¥¯¥·¥ç¥ó¡¢ ºÇ¸å¤Î¥Õ¥£¡¼¥ë¥É¤Ï¥á¥ó¥Æ¥Ê½çÎó¥Õ¥£¡¼¥ë¥É¤Ç¤¹¡£ +.PP +¥á¥ó¥Æ¥Ê¥Õ¥£¡¼¥ë¥É¤Ï°ìÈÌŪ¤Ë¤Ï¡¢ +.sp +.RS 3n +.nf +old [// oldn]* => new +.fi +.RE +.sp +¤È¤¤¤¦·Á¼°¤«¡¢Ã±½ã¤Ë +.sp +.RS 3n +.nf +new +.fi +.RE +.sp +¤È¤Ê¤ê¤Þ¤¹¡£ ºÇ½é¤Î·Á¼°¤Ï¡¢// ¤Ç¶èÀÚ¤é¤ì¤¿¸Å¤¤ email ¥¢¥É¥ì¥¹¤Î¥ê¥¹¥È¤òµö²Ä¤·¤Þ¤¹¡£ ¤³¤Î·Á¼°¤¬¤¢¤ë¾ì¹ç¤Ï¡¢¥á¥ó¥Æ¥Ê¥Õ¥£¡¼¥ë¥É¤Ë¤Ê¤ë¤è¤¦ new ¤ËÃÖ´¹¤·¤Æ¤¯¤À¤µ¤¤¡£ 2 ÈÖÌܤηÁ¼°¤Ï̵¾ò·ï¤Ë¥á¥ó¥Æ¥Ê¥Õ¥£¡¼¥ë¥É¤ËÃÖ´¹¤·¤Þ¤¹¡£ +.SH "¥½¡¼¥¹¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë" +.PP + +¥½¡¼¥¹¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤Ï¡¢ +\fBdpkg\-scansources\fR(8) +¤È´°Á´¤Ë¸ß´¹À­¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤³¤Ë¤Ï¡¢¶õÇò¶èÀÚ¤ê¤Ç¥Õ¥£¡¼¥ë¥É¤¬ 2 ¸Ä¤¢¤ê¤Þ¤¹¡£ ÀèƬ¤Î¥Õ¥£¡¼¥ë¥É¤Ï¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸Ì¾¡¢ 2 ÈÖÌܤΥե£¡¼¥ë¥É¤Ï³ä¤êÅö¤Æ¤ë¥»¥¯¥·¥ç¥ó¤Ç¤¹¡£ +.SH "ÆÃÊÌ¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë" +.PP + +ÆÃÊÌ¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤Ï¡¢ ½ÐÎÏÃæ¤ËǤ°Õ¤Î¥¿¥°¤òÄɲá¦ÃÖ´¹¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£ 3 Î󤫤é¤Ê¤ê¡¢ÀèƬ¤Ï¥Ñ¥Ã¥±¡¼¥¸¡¢2ÈÖÌܤϥ¿¥°¡¢»Ä¤ê¤Ï¿·¤·¤¤ÃͤǤ¹¡£ +.SH "¥ª¥×¥·¥ç¥ó" +.PP +¤³¤ÎÀâÌÀ¤Ç¼¨¤·¤¿¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¤¹¤Ù¤ÆÀßÄê¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤ÆÀßÄê¤Ç¤­¤Þ¤¹¡£ ÀßÄê¥Õ¥¡¥¤¥ë¤Ë½ñ¤¤¤¿¿¿µ¶Ãͤò¤È¤ë¥ª¥×¥·¥ç¥ó¤Ï +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +¤Ê¤É¤Î¤è¤¦¤Ë¤·¤Æ¾å½ñ¤­¤Ç¤­¤Þ¤¹¡£ +.PP +\fB\-\-md5\fR +.RS 3n + +MD5 sum ¤òÀ¸À®¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç on ¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ off ¤Ë¤¹¤ë¤ÈÀ¸À®¤·¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤Ë MD5Sum ¥Õ¥£¡¼¥ë¥É¤¬¤¢¤ê¤Þ¤»¤ó¡£ ÀßÄê¹àÌÜ \- +APT::FTPArchive::MD5 +.RE +.PP +\fB\-d\fR, \fB\-\-db\fR +.RS 3n + +¥Ð¥¤¥Ê¥ê¥­¥ã¥Ã¥·¥å DB ¤ò»ÈÍѤ·¤Þ¤¹¡£ generate ¥³¥Þ¥ó¥É¤Ë¤Ï±Æ¶Á¤·¤Þ¤»¤ó¡£ ÀßÄê¹àÌÜ \- +APT::FTPArchive::DB +.RE +.PP +\fB\-q\fR, \fB\-\-quiet\fR +.RS 3n + +ÀÅ½Í \- ¿ÊĽɽ¼¨¤ò¾Êά¤·¡¢¥í¥°¤ò¤È¤ë¤Î¤ËÊØÍø¤Ê½ÐÎϤò¹Ô¤¤¤Þ¤¹¡£ ºÇÂç 2 ¤Ä¤Þ¤Ç q ¤ò½Å¤Í¤ë¤³¤È¤Ç¤è¤êÀŽͤˤǤ­¤Þ¤¹¡£ ¤Þ¤¿¡¢\fB\-q=#\fR +¤Î¤è¤¦¤ËÀŽͥì¥Ù¥ë¤ò»ØÄꤷ¤Æ¡¢ ÀßÄê¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +quiet +.RE +.PP +\fB\-\-delink\fR +.RS 3n + +Delink ¤ò¼Â¹Ô¤·¤Þ¤¹¡£ +External\-Links +ÀßÄê¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¢ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Õ¥¡¥¤¥ë¤Î delink ¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ï on ¤Ç¡¢ off ¤Ë¤¹¤ë¤Ë¤Ï +\fB\-\-no\-delink\fR +¤È¤·¤Æ¤¯¤À¤µ¤¤¡£ ÀßÄê¹àÌÜ \- +APT::FTPArchive::DeLinkAct +.RE +.PP +\fB\-\-contents\fR +.RS 3n + +contents ¤ÎÀ¸À®¤ò¹Ô¤¤¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¡¢ ¥Ñ¥Ã¥±¡¼¥¸¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò¥­¥ã¥Ã¥·¥å DB ¤È¶¦¤ËÀ¸À®¤¹¤ëºÝ¡¢ ¥Õ¥¡¥¤¥ë¥ê¥¹¥È¤ò¸å¤Ç»ÈÍѤ¹¤ë¤è¤¦¤Ë¡¢Ãê½Ð¤· DB ¤Ë³ÊǼ¤·¤Þ¤¹¡£ generate ¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ëºÝ¡¢ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç¤¤¤º¤ì¤Î Contents ¥Õ¥¡¥¤¥ë¤âºîÀ®¤Ç¤­¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ï on ¤Ç¤¹¡£ ÀßÄê¹àÌÜ \- +APT::FTPArchive::Contents +.RE +.PP +\fB\-s\fR, \fB\-\-source\-override\fR +.RS 3n + + +sources +¥³¥Þ¥ó¥É¤Ç»ÈÍѤ¹¤ë¡¢ ¥½¡¼¥¹¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òÁªÂò¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::FTPArchive::SourceOverride +.RE +.PP +\fB\-\-readonly\fR +.RS 3n + +¥­¥ã¥Ã¥·¥å¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÆɤ߼è¤êÀìÍѤˤ·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::FTPArchive::ReadOnlyDB +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +»È¤¤Êý¤Îû¤¤Í×Ìó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +ÀßÄê¥Õ¥¡¥¤¥ë¡£ »ÈÍѤ¹¤ëÀßÄê¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤¬Æɤá¤Ê¤¤¾ì¹ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¤Þ¤¹¡£ ʸˡ¤Ë¤Ä¤¤¤Æ¤Ï +\fBapt.conf\fR(5) +¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +ÀßÄꥪ¥×¥·¥ç¥ó¤Î¥»¥Ã¥È¡£Ç¤°Õ¤ÎÀßÄꥪ¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£ ʸˡ¤Ï +\fB\-o Foo::Bar=bar\fR +¤È¤Ê¤ê¤Þ¤¹¡£ +.RE +.SH "¥µ¥ó¥×¥ë" +.PP +¥Ð¥¤¥Ê¥ê¥Ñ¥Ã¥±¡¼¥¸ (.deb) ¤¬¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î Packages ¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£ +.sp +.RS 3n +.nf +\fBapt\-ftparchive\fR packages \fIdirectory\fR | \fBgzip\fR > \fIPackages.gz\fR +.fi +.RE +.SH "´ØÏ¢¹àÌÜ" +.PP +\fBapt.conf\fR(5) +.SH "¿ÇÃÇ¥á¥Ã¥»¡¼¥¸" +.PP +\fBapt\-ftparchive\fR +¤ÏÀµ¾ï½ªÎ»»þ¤Ë 0 ¤òÊÖ¤·¤Þ¤¹¡£ ¥¨¥é¡¼»þ¤Ë¤Ï½½¿Ê¤Î 100 ¤òÊÖ¤·¤Þ¤¹¡£ +.SH "¥Ð¥°" +.PP +[1]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt-ftparchive.ja.1 b/doc/ja/apt-ftparchive.ja.1 new file mode 100644 index 0000000..6501838 --- /dev/null +++ b/doc/ja/apt-ftparchive.ja.1 @@ -0,0 +1,612 @@ +.\" Title: apt\-ftparchive +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-FTPARCHIVE" "1" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-ftparchive \- ¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ëÀ¸À®¥æ¡¼¥Æ¥£¥ê¥Æ¥£ +.SH "SYNOPSIS" +.HP 15 +\fBapt\-ftparchive\fR [\fB\-hvdsq\fR] [\fB\-\-md5\fR] [\fB\-\-delink\fR] [\fB\-\-readonly\fR] [\fB\-\-contents\fR] [\fB\-o=\fR\fB\fIconfig\ string\fR\fR] [\fB\-c=\fR\fB\fIfile\fR\fR] {[packages\ \fIpath\fR...\ [\fIoverride\fR\ [\fIpathprefix\fR]]] | [sources\ \fIpath\fR...\ [\fIoverride\fR\ [\fIpathprefix\fR]]] | [contents\ \fIpath\fR] | [release\ \fIpath\fR] | [generate\ \fIconfig\-file\fR\ \fIsection\fR...] | [clean\ \fIconfig\-file\fR]} +.SH "ÀâÌÀ" +.PP +\fBapt\-ftparchive\fR +¤Ï¡¢ APT ¤¬¼èÆÀ¸µ¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤Î¤ËɬÍפʡ¢ ¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¥³¥Þ¥ó¥É¥é¥¤¥ó¥Ä¡¼¥ë¤Ç¤¹¡£ ¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤Ï¡¢¸µ¤Î¥µ¥¤¥È¤ÎÆâÍƤ˴ð¤Å¤­À¸À®¤µ¤ì¤ë¤Ù¤­¤Ç¤¹¡£ +.PP +\fBapt\-ftparchive\fR +¤Ï¡¢ +\fBdpkg\-scanpackages\fR(8) +¥×¥í¥°¥é¥à¤Î¥¹¡¼¥Ñ¡¼¥»¥Ã¥È¤Ç¡¢ +packages +¥³¥Þ¥ó¥É·Ðͳ¤Çµ¡Ç½Á´ÂΤò¼è¤ê¹þ¤ó¤Ç¤¤¤Þ¤¹¡£ ¤Þ¤¿¡¢contents ¥Õ¥¡¥¤¥ë¥¸¥§¥Í¥ì¡¼¥¿ +contents +¤È ´°Á´¤Ê¥¢¡¼¥«¥¤¥Ö¤ÎÀ¸À®¥×¥í¥»¥¹¡Ö¥¹¥¯¥ê¥×¥È¡×¤Ç¤¢¤ëÌÊÌ©¤Ê¼êÃʤò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£ +.PP +ËܼÁŪ¤Ë +\fBapt\-ftparchive\fR +¤Ï¡¢ .deb ¥Õ¥¡¥¤¥ë¤ÎÆâÍƤò¥­¥ã¥Ã¥·¥å¤¹¤ë¤Î¤Ë¥Ð¥¤¥Ê¥ê¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»ÈÍѤǤ­¤Þ¤¹¡£ ¤Þ¤¿¡¢\fBgzip\fR(1) +°Ê³°¤Î¤¤¤«¤Ê¤ë³°Éô¥×¥í¥°¥é¥à¤Ë¤â°Í¸¤·¤Þ¤»¤ó¡£ ¤¹¤Ù¤ÆÀ¸À®¤¹¤ëºÝ¤Ë¤Ï¡¢ ¥Õ¥¡¥¤¥ëÊѹ¹ÅÀ¤Î¸¡½Ð¤È´õ˾¤·¤¿°µ½Ì½ÐÎÏ¥Õ¥¡¥¤¥ë¤ÎºîÀ®¤ò¼«Æ°Åª¤Ë¼Â¹Ô¤·¤Þ¤¹¡£ +.PP +\fB\-h\fR +¥ª¥×¥·¥ç¥ó¤ä +\fB\-\-help\fR +¥ª¥×¥·¥ç¥ó¤ò½ü¤­¡¢ °Ê²¼¤Ëµó¤²¤ë¥³¥Þ¥ó¥É¤¬É¬ÍפǤ¹¡£ +.PP +packages +.RS 3n + +packages ¥³¥Þ¥ó¥É¤Ï¡¢ ¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤«¤é¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤Þ¤¹¡£ Í¿¤¨¤é¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤«¤éºÆµ¢¸¡º÷¤·¡¢.deb ¥Õ¥¡¥¤¥ë¤ò¼èÆÀ¤·¤Þ¤¹¡£ ¤Þ¤¿¥Ñ¥Ã¥±¡¼¥¸¥ì¥³¡¼¥É¤òɸ½à½ÐÎϤˤ½¤ì¤¾¤ì½ÐÎϤ·¤Þ¤¹¡£ ¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢\fBdpkg\-scanpackages\fR(8) +¤È¤Û¤ÜƱ¤¸¤Ç¤¹¡£ +.sp +\fB\-\-db\fR +¥ª¥×¥·¥ç¥ó¤Ç¡¢ ¥­¥ã¥Ã¥·¥å DB ¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +sources +.RS 3n + + +sources +¥³¥Þ¥ó¥É¤Ï¡¢ ¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤«¤é¥½¡¼¥¹¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤Þ¤¹¡£ Í¿¤¨¤é¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤«¤éºÆµ¢¸¡º÷¤·¡¢.dsc ¥Õ¥¡¥¤¥ë¤ò¼èÆÀ¤·¤Þ¤¹¡£ ¤Þ¤¿¥½¡¼¥¹¥ì¥³¡¼¥É¤òɸ½à½ÐÎϤˤ½¤ì¤¾¤ì½ÐÎϤ·¤Þ¤¹¡£ ¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢\fBdpkg\-scansources\fR(8) +¤È¤Û¤ÜƱ¤¸¤Ç¤¹¡£ +.sp + +override ¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤¿¾ì¹ç¡¢ src ³ÈÄ¥»Ò¤¬¤Ä¤¤¤¿¥½¡¼¥¹¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òõ¤·¤Þ¤¹¡£ »ÈÍѤ¹¤ë¥½¡¼¥¹¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òÊѹ¹¤¹¤ë¤Î¤Ë¤Ï¡¢ \-\-source\-override ¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Þ¤¹¡£ +.RE +.PP +contents +.RS 3n + + +contents +¥³¥Þ¥ó¥É¤Ï¡¢ ¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤«¤é¥³¥ó¥Æ¥ó¥Ä¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤Þ¤¹¡£ Í¿¤¨¤é¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤«¤éºÆµ¢¸¡º÷¤·¡¢.deb ¥Õ¥¡¥¤¥ë¤ò¼èÆÀ¤·¤Þ¤¹¡£ ¤Þ¤¿¥Õ¥¡¥¤¥ë¤´¤È¤Ë¥Õ¥¡¥¤¥ë°ìÍ÷¤òÆɤ߼è¤ê¤Þ¤¹¡£ ¤½¤Î¸å¡¢¥Ñ¥Ã¥±¡¼¥¸¤ËÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë°ìÍ÷¤òɸ½à½ÐÎϤ˥½¡¼¥È¤·¤Æ½ÐÎϤ·¤Þ¤¹¡£ ¥Ç¥£¥ì¥¯¥È¥ê¤Ï½ÐÎϤ˴ޤޤì¤Þ¤»¤ó¡£ Ê£¿ô¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬Æ±¤¸¥Õ¥¡¥¤¥ë¤ò»ý¤Ä¾ì¹ç¡¢ ¥Ñ¥Ã¥±¡¼¥¸Ì¾¤ò¥«¥ó¥Þ¶èÀÚ¤ê¤Ç½ÐÎϤ·¤Þ¤¹¡£ +.sp + + +\fB\-\-db\fR +¥ª¥×¥·¥ç¥ó¤Ç¡¢ ¥­¥ã¥Ã¥·¥å DB ¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +release +.RS 3n + + +release +¥³¥Þ¥ó¥É¤Ï¡¢ ¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤«¤é Release ¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤Þ¤¹¡£ Í¿¤¨¤é¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¡¢Packages, Packages.gz, Packages.bz2, Sources, Sources.gz, Sources.bz2, Release, md5sum.txt ¤È¤¤¤Ã¤¿¥Õ¥¡¥¤¥ë¤òºÆµ¢¸¡º÷¤·¤Þ¤¹¡£ ¤½¤Î¸å¡¢¥Õ¥¡¥¤¥ë¤´¤È¤Î MD5 ¥À¥¤¥¸¥§¥¹¥È¤È SHA1 ¥À¥¤¥¸¥§¥¹¥È¤ò´Þ¤ó¤À Release ¥Õ¥¡¥¤¥ë¤ò¡¢É¸½à½ÐÎϤ˽ñ¤­½Ð¤·¤Þ¤¹¡£ +.sp + +Release ¥Õ¥¡¥¤¥ë¤ÎÄɲå᥿¥Ç¡¼¥¿¥Õ¥£¡¼¥ë¥É¤ÎÃͤϡ¢ +APT::FTPArchive::Release +°Ê²¼¤ÎÁêÅö¤¹¤ëÃÍ (Îã: +APT::FTPArchive::Release::Origin) ¤ò¤È¤ê¤Þ¤¹¡£ ¥µ¥Ý¡¼¥È¤¹¤ë¥Õ¥£¡¼¥ë¥É¤Ï¡¢ +Origin, +Label, +Suite, +Version, +Codename, +Date, +Architectures, +Components, +Description +¤Ç¤¹¡£ +.RE +.PP +generate +.RS 3n + + +generate +¥³¥Þ¥ó¥É¤Ï¡¢ cron ¥¹¥¯¥ê¥×¥È¤«¤é¼Â¹Ô¤Ç¤­¤ë¤è¤¦À߷פµ¤ì¤Æ¤ª¤ê¡¢ Í¿¤¨¤é¤ì¤¿ÀßÄê¥Õ¥¡¥¤¥ë¤Ë½¾¤Ã¤Æ¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÀ¸À®¤·¤Þ¤¹¡£ ÀßÄê¸À¸ì¤Ï¡¢É¬ÍפÊÀßÄê¤ò°Ý»ý¤¹¤ë´Êñ¤ÊÊýË¡¤òÄ󶡤¹¤ë¤È¶¦¤Ë¡¢ ¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤ò¤É¤Î¥Ç¥£¥ì¥¯¥È¥ê¤«¤éºîÀ®¤¹¤ë¤«¤ò»ØÄꤹ¤ë¡¢ ½ÀÆð¤ÊÊýË¡¤òÄ󶡤·¤Þ¤¹¡£ +.RE +.PP +clean +.RS 3n + + +clean +¥³¥Þ¥ó¥É¤Ï¡¢ ÀßÄê¥Õ¥¡¥¤¥ë¤ÇÍ¿¤¨¤é¤ì¤¿¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¡¢ ¤â¤¦É¬Íפʤ¤¥ì¥³¡¼¥É¤òºï½ü¤·¤ÆÀ°Íý¤·¤Þ¤¹¡£ +.RE +.SH "GENERATE ÀßÄê" +.PP + + +generate +¥³¥Þ¥ó¥É¤Ï¡¢ À¸À®¤¹¤ë¥¢¡¼¥«¥¤¥Ö¤Ë´Ø¤¹¤ëµ­½Ò¤ò¤·¤¿ÀßÄê¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤Þ¤¹¡£ ÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢bind 8 ¤ä dhcpd ¤È¤¤¤Ã¤¿ ISC ¥Ä¡¼¥ë¤Ë¸«¤é¤ì¤ë¤è¤¦¤Ê¡¢ ISC ÀßÄê¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë½¾¤¤¤Þ¤¹¡£ +\fBapt.conf\fR(5) +¤Ë¡¢Ê¸Ë¡¤ÎÀâÌÀ¤¬¤¢¤ê¤Þ¤¹¡£ generate ÀßÄê¤Ï¥»¥¯¥·¥ç¥óË¡¤Ç²òÀϤ·¤Þ¤¹¤¬¡¢ +\fBapt.conf\fR(5) +¤Ï¥Ä¥ê¡¼Ë¡¤Ç²òÀϤ¹¤ë¤Î¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ ¤³¤ì¤Ï¥¹¥³¡¼¥×¥¿¥°¤Î°·¤¤Êý¤Ë°ã¤¤¤¬¤¢¤ë¤À¤±¤Ç¤¹¡£ +.PP + +generate ÀßÄê¤Ë¤Ï 4 ¸Ä¤ÎÆÈΩ¤·¤¿¥»¥¯¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡£ °Ê²¼¤½¤ì¤¾¤ìÀâÌÀ¤·¤Þ¤¹¡£ +.SS "Dir ¥»¥¯¥·¥ç¥ó" +.PP + + +Dir +¥»¥¯¥·¥ç¥ó¤Ï¡¢ À¸À®¥×¥í¥»¥¹¤ÇɬÍפʥե¡¥¤¥ë¤òÇÛÃÖ¤¹¤ë¤¿¤á¤Î¡¢ ɸ½à¥Ç¥£¥ì¥¯¥È¥ê¤òÄêµÁ¤·¤Þ¤¹¡£ ¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢´°Á´¤ÊÀäÂХѥ¹¤òÀ¸À®¤¹¤ë¤¿¤á¡¢ ¸å¤Î¥»¥¯¥·¥ç¥ó¤ÇÄêµÁ¤µ¤ì¤ëÁêÂХѥ¹¤ÎÁ°¤Ë·ë¹ç¤·¤Þ¤¹¡£ +.PP +ArchiveDir +.RS 3n + +FTP ¥¢¡¼¥«¥¤¥Ö¤Î¥ë¡¼¥È¤ò»ØÄꤷ¤Þ¤¹¡£ ɸ½àŪ¤Ê Debian ÀßÄê¤Ç¤Ï¡¢¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï +\fIls\-LR\fR +¤È dist ¥Î¡¼¥É¤¬¤¢¤ê¤Þ¤¹¡£ +.RE +.PP +OverrideDir +.RS 3n + +¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤Î¾ì½ê¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +CacheDir +.RS 3n + +¥­¥ã¥Ã¥·¥å¥Õ¥¡¥¤¥ë¤Î¾ì½ê¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +FileListDir +.RS 3n + + +FileList +ÀßÄ꤬°Ê²¼¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ ¥Õ¥¡¥¤¥ë¥ê¥¹¥È¥Õ¥¡¥¤¥ë¤Î¾ì½ê¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.SS "Default ¥»¥¯¥·¥ç¥ó" +.PP + + +Default +¥»¥¯¥·¥ç¥ó¤Ç¤Ï¥Ç¥Õ¥©¥ë¥ÈÃͤò»ØÄꤷ¤Þ¤¹¡£ ¤Þ¤¿¡¢À¸À®´ï¤ÎÆ°ºî¤òÀ©¸æ¤¹¤ëÀßÄê¤â¹Ô¤¤¤Þ¤¹¡£ ¾¤Î¥»¥¯¥·¥ç¥ó¤Ç¤Ï¡¢¤³¤³¤Ë¤¢¤ë¥Ç¥Õ¥©¥ë¥ÈÃͤò¡¢ ¥»¥¯¥·¥ç¥ó¤´¤È¤ÎÀßÄê¤Ç¾å½ñ¤­¤·¤Þ¤¹¡£ +.PP +Packages::Compress +.RS 3n + +Package ¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤Î°µ½ÌÊýË¡¤òÀßÄꤷ¤Þ¤¹¡£ ¾¯¤Ê¤¯¤È¤â¤Ò¤È¤Ä¤Ï '.' (°µ½Ì¤Ê¤·), 'gzip', 'bzip2' ¤¬Æþ¤ë¡¢ ¶õÇò¶èÀÚ¤ê¤Îʸ»úÎó¤Ç¤¹¡£ °µ½ÌÊýË¡¤Î¥Ç¥Õ¥©¥ë¥È¤Ï¤¹¤Ù¤Æ '. gzip' ¤Ç¤¹¡£ +.RE +.PP +Packages::Extensions +.RS 3n + +¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë³ÈÄ¥»Ò¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤòÎóµó¤·¤Þ¤¹¡£ ¤³¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï '.deb' ¤Ç¤¹¡£ +.RE +.PP +Sources::Compress +.RS 3n + + +Packages::Compress +¤ÈƱÍͤˡ¢ Sources ¥Õ¥¡¥¤¥ë¤Î°µ½ÌÊýË¡¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +Sources::Extensions +.RS 3n + +¥½¡¼¥¹¥Õ¥¡¥¤¥ë³ÈÄ¥»Ò¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤòÎóµó¤·¤Þ¤¹¡£ ¤³¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï '.dsc' ¤Ç¤¹¡£ +.RE +.PP +Contents::Compress +.RS 3n + + +Packages::Compress +¤ÈƱÍͤˡ¢ Contents ¥Õ¥¡¥¤¥ë¤Î°µ½ÌÊýË¡¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +DeLinkLimit +.RS 3n + +¼Â¹Ô¤¹¤ë¤´¤È¤Ë delink (µÚ¤Ó¥Ï¡¼¥É¥ê¥ó¥¯¤ÎÃÖ¤­´¹¤¨) ¤¹¤ëÎ̤ò¡¢ ¥­¥í¥Ð¥¤¥Èñ°Ì¤Ç»ØÄꤷ¤Þ¤¹¡£¥»¥¯¥·¥ç¥ó¤´¤È¤Î +External\-Links +ÀßÄê¤È¹ç¤ï¤»¤Æ»È¤¤¤Þ¤¹¡£ +.RE +.PP +FileMode +.RS 3n + +ºîÀ®¤·¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤Î¥â¡¼¥É¤ò»ØÄꤷ¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ï 0644 ¤Ç¤¹¡£Á´¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤Ï¡¢ umask ¤ò̵»ë¤·¤Æ¤³¤Î¥â¡¼¥É¤ò»ÈÍѤ·¤Þ¤¹¡£ +.RE +.SS "TreeDefault ¥»¥¯¥·¥ç¥ó" +.PP + +ÆÃÄê¤Î +Tree +¥»¥¯¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥È¤òÀßÄꤷ¤Þ¤¹¡£ ¤³¤ì¤é¤ÎÊÑ¿ô¤Ï¤¹¤Ù¤ÆÃÖ´¹ÊÑ¿ô¤Ç¤¢¤ê¡¢ ʸ»úÎó $(DIST), $(SECTION), $(ARCH) ¤ò¤½¤ì¤¾¤ì¤ÎÃͤËŸ³«¤·¤Þ¤¹¡£ +.PP +MaxContentsChange +.RS 3n + +ÆüËè¤ËÀ¸À®¤¹¤ë contents ¥Õ¥¡¥¤¥ë¤ò¥­¥í¥Ð¥¤¥Èñ°Ì¤ÇÀßÄꤷ¤Þ¤¹¡£ contents ¥Õ¥¡¥¤¥ë¤ò¥é¥¦¥ó¥É¥í¥Ó¥ó¤·¡¢¿ôÆü·Ð¤Ä¤È¤¹¤Ù¤ÆºÆÀ¸À®¤·¤Þ¤¹¡£ +.RE +.PP +ContentsAge +.RS 3n + +Êѹ¹¤¬¤Ê¤¤ contents ¥Õ¥¡¥¤¥ë¤ò¥Á¥§¥Ã¥¯¤¹¤ëÆü¿ô¤ò»ØÄꤷ¤Þ¤¹¡£ ¤³¤ÎÀ©¸Â¤ò±Û¤¨¤¿ contents ¥Õ¥¡¥¤¥ë¤Î mtime ¤ò¡¢¹¹¿·¤·¤Þ¤¹¡£ ¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤¬Êѹ¹¤µ¤ì¤Æ¤â¡¢ [Î㤨¤Ð¾å½ñ¤­ÊÔ½¸¤Ç] contents ¥Õ¥¡¥¤¥ë¤¬¹¹¿·¤µ¤ì¤Ê¤¤¤è¤¦¤Ê¾ì¹ç¡¢ ¤³¤¦¤¤¤Ã¤¿¤³¤È¤¬È¯À¸¤·¤Þ¤¹¡£ ¿·¤·¤¤ .deb ¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤¤¾ì¹ç¡¢ÊÝα¤ò²ò½ü¤Ç¤­¡¢ ¾¯¤Ê¤¯¤È¤â¿·¤·¤¤¥Õ¥¡¥¤¥ë¤¬É¬ÍפǤ¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ï 10 ¤Ç¡¢Ã±°Ì¤ÏÆü¤Ç¤¹¡£ +.RE +.PP +Directory +.RS 3n +.deb ¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤ÎÀèƬ¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï +\fI$(DIST)/$(SECTION)/binary\-$(ARCH)/\fR +¤Ç¤¹¡£ +.RE +.PP +SrcDirectory +.RS 3n + +¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤ÎÀèƬ¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï +\fI$(DIST)/$(SECTION)/source/\fR +¤Ç¤¹¡£ +.RE +.PP +Packages +.RS 3n + +Packages ¥Õ¥¡¥¤¥ë¤Î½ÐÎÏÀè¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï +\fI$(DIST)/$(SECTION)/binary\-$(ARCH)/Packages\fR +¤Ç¤¹¡£ +.RE +.PP +Sources +.RS 3n + +Packages ¥Õ¥¡¥¤¥ë¤Î½ÐÎÏÀè¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï +\fI$(DIST)/$(SECTION)/source/Sources\fR +¤Ç¤¹¡£ +.RE +.PP +InternalPrefix +.RS 3n + +³°Éô¥ê¥ó¥¯¤Ç¤Ï¤Ê¤¯¡¢ÆâÉô¥ê¥ó¥¯¤È¸«¤Ê¤¹È½ÃǺàÎÁ¤È¤Ê¤ë¡¢ ¥Ñ¥¹¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï¡¢ +\fI$(DIST)/$(SECTION)/\fR +¤Ç¤¹¡£ +.RE +.PP +Contents +.RS 3n + +Contents ¥Õ¥¡¥¤¥ë¤Î½ÐÎÏÀè¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï¡¢ +\fI$(DIST)/Contents\-$(ARCH)\fR +¤Ç¤¹¡£ Ê£¿ô¤Î Packages ¥Õ¥¡¥¤¥ë¤ò ¤Ò¤È¤Ä¤Î Contents ¥Õ¥¡¥¤¥ë¤Ë¤Þ¤È¤á¤é¤ì¤ëÀßÄê (¥Ç¥Õ¥©¥ë¥È) ¤Î¾ì¹ç¡¢\fBapt\-ftparchive\fR +¤Ï¼«Æ°¤Ç¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤ò¤Þ¤È¤á¤Þ¤¹¡£ +.RE +.PP +Contents::Header +.RS 3n + +contents ¤Î½ÐÎϤËÉÕ¤±¤ë¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤òÀßÄꤷ¤Þ¤¹¡£ +.RE +.PP +BinCacheDB +.RS 3n + +¤³¤Î¥»¥¯¥·¥ç¥ó¤Ç»ÈÍѤ¹¤ë¥Ð¥¤¥Ê¥ê¥­¥ã¥Ã¥·¥å¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÀßÄꤷ¤Þ¤¹¡£ Ê£¿ô¤Î¥»¥¯¥·¥ç¥ó¤ÇƱ¤¸¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¶¦Í­¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +FileList +.RS 3n + +¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤òÁöºº¤¹¤ëÂå¤ï¤ê¤Ë¡¢\fBapt\-ftparchive\fR +¤¬Æɤ߹þ¤à¥Õ¥¡¥¤¥ë°ìÍ÷¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ ÁêÂÐ¥Õ¥¡¥¤¥ë̾¤Ï¡¢¥¢¡¼¥«¥¤¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤¬ÀèƬ¤Ë¤Ä¤­¤Þ¤¹¡£ +.RE +.PP +SourceFileList +.RS 3n + +¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤òÁöºº¤¹¤ëÂå¤ï¤ê¤Ë¡¢\fBapt\-ftparchive\fR +¤¬Æɤ߹þ¤à¥Õ¥¡¥¤¥ë°ìÍ÷¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ ÁêÂÐ¥Õ¥¡¥¤¥ë̾¤Ï¡¢¥¢¡¼¥«¥¤¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤¬ÀèƬ¤Ë¤Ä¤­¤Þ¤¹¡£ ¥½¡¼¥¹¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò½èÍý¤¹¤ëºÝ¤Ë»ÈÍѤ·¤Þ¤¹¡£ +.RE +.SS "Tree ¥»¥¯¥·¥ç¥ó" +.PP + + +Tree +¥»¥¯¥·¥ç¥ó¤Ç¤Ï¡¢ ¥Ù¡¼¥¹¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤Îɸ½à Debian ¥Õ¥¡¥¤¥ë¥Ä¥ê¡¼¡¢ ¥Ù¡¼¥¹¥Ç¥£¥ì¥¯¥È¥ê¤ÎÊ£¿ô¤Î¥»¥¯¥·¥ç¥ó¡¢ ºÇ½ªÅª¤Ë¤Ï¥»¥¯¥·¥ç¥ó¤´¤È¤ÎÊ£¿ô¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤òÄêµÁ¤·¤Þ¤¹¡£ »ÈÍѤ¹¤ëÀµ³Î¤Ê¥Ñ¥¹¤Ï¡¢Directory +ÊÑ¿ô¤ÇÄêµÁ¤µ¤ì¤Þ¤¹¡£ +.PP + + +Tree +¥»¥¯¥·¥ç¥ó¤Ï¡¢ +$(DIST) +ÊÑ¿ô¤ÇÀßÄꤵ¤ì¤Æ¤¤¤ë¥¹¥³¡¼¥×¥¿¥°¤ò¤È¤ê¡¢ ¥Ä¥ê¡¼¤Î¥ë¡¼¥È (ArchiveDir¤¬ÀèƬ¤Ë¤Ä¤¯¥Ñ¥¹) ¤òÄêµÁ¤·¤Þ¤¹¡£ Ä̾¤³¤ÎÀßÄê¤Ï +\fIdists/woody\fR +¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ +.PP + + +TreeDefault +¥»¥¯¥·¥ç¥ó¤ÇÄêµÁ¤µ¤ì¤ëÀßÄê¤Ï¤¹¤Ù¤Æ¡¢ 3 ¸Ä¤Î¿·¤·¤¤ÊÑ¿ô¤ÈƱÍͤˡ¢ +Tree +¥»¥¯¥·¥ç¥ó¤Ç»ÈÍѤǤ­¤Þ¤¹¡£ +.PP + + +Tree +¥»¥¯¥·¥ç¥ó¤ò½èÍý¤¹¤ëºÝ¡¢ +\fBapt\-ftparchive\fR +¤Ï°Ê²¼¤Î¤è¤¦¤ÊÁàºî¤ò¹Ô¤¤¤Þ¤¹¡£ +.sp .RS 3n .nf for i in Sections do for j in Architectures do Generate for DIST=scope SECTION=i ARCH=j .fi .RE +.PP +Sections +.RS 3n + +distribution °Ê²¼¤Ë¸½¤ì¤ë¥»¥¯¥·¥ç¥ó¤ò¡¢¶õÇò¶èÀÚ¤ê¤Ç»ØÄꤷ¤¿¥ê¥¹¥È¤Ç¤¹¡£ Ä̾main contrib non\-free¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ +.RE +.PP +Architectures +.RS 3n + +search ¥»¥¯¥·¥ç¥ó°Ê²¼¤Ë¸½¤ì¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò¡¢ ¶õÇò¶èÀÚ¤ê¤Ç»ØÄꤷ¤¿¥ê¥¹¥È¤Ç¤¹¡£ Æü쥢¡¼¥­¥Æ¥¯¥Á¥ã 'source' ¤Ï¡¢ ¥½¡¼¥¹¥¢¡¼¥«¥¤¥Ö¤Î¥Ä¥ê¡¼¤Ç¤¢¤ë¤³¤È¤ò¼¨¤·¤Þ¤¹¡£ +.RE +.PP +BinOverride +.RS 3n + +¥Ð¥¤¥Ê¥ê¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òÀßÄꤷ¤Þ¤¹¡£ ¤³¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¥»¥¯¥·¥ç¥ó¡¢Í¥ÀèÅÙ¡¢ ¥á¥ó¥Æ¥Ê¤Î¥¢¥É¥ì¥¹¤È¤¤¤Ã¤¿¾ðÊ󤬴ޤޤì¤Æ¤¤¤Þ¤¹¡£ +.RE +.PP +SrcOverride +.RS 3n + +¥½¡¼¥¹¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òÀßÄꤷ¤Þ¤¹¡£ ¤³¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢ ¥»¥¯¥·¥ç¥ó¤Î¾ðÊ󤬴ޤޤì¤Æ¤¤¤Þ¤¹¡£ +.RE +.PP +ExtraOverride +.RS 3n + +¥Ð¥¤¥Ê¥êÆÃÊÌ¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òÀßÄꤷ¤Þ¤¹¡£ +.RE +.PP +SrcExtraOverride +.RS 3n + +¥½¡¼¥¹ÆÃÊÌ¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òÀßÄꤷ¤Þ¤¹¡£ +.RE +.SS "BinDirectory ¥»¥¯¥·¥ç¥ó" +.PP + + +bindirectory +¥»¥¯¥·¥ç¥ó¤Ç¤Ï¡¢ Æüì¤Ê¹½Â¤¤ò»ý¤¿¤Ê¤¤¥Ð¥¤¥Ê¥ê¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤òÄêµÁ¤·¤Þ¤¹¡£ ¥¹¥³¡¼¥×¥¿¥°¤Ï¥Ð¥¤¥Ê¥ê¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ì½ê¤ò»ØÄꤷ¡¢ ÀßÄê¤Ï¡¢ÊÑ¿ôŸ³«¤Î¤Ê¤¤ +Tree +¥»¥¯¥·¥ç¥ó¤ä +SectionArchitecture +ÀßÄê¤Ë»÷¤Æ¤¤¤Þ¤¹¡£ +.PP +Packages +.RS 3n + +Packages ¥Õ¥¡¥¤¥ë¤Î½ÐÎÏÀè¤òÀßÄꤷ¤Þ¤¹¡£ +.RE +.PP +SrcPackages +.RS 3n + +Sources ¥Õ¥¡¥¤¥ë¤Î½ÐÎÏÀè¤òÀßÄꤷ¤Þ¤¹¡£ ¾¯¤Ê¤¯¤È¤â +Packages +¤ä +SrcPackages +¤ÏÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ +.RE +.PP +Contents +.RS 3n + +Contents ¥Õ¥¡¥¤¥ë¤Î½ÐÎÏÀè¤òÀßÄꤷ¤Þ¤¹¡£(¥ª¥×¥·¥ç¥ó) +.RE +.PP +BinOverride +.RS 3n + +¥Ð¥¤¥Ê¥ê¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òÀßÄꤷ¤Þ¤¹¡£ +.RE +.PP +SrcOverride +.RS 3n + +¥½¡¼¥¹¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òÀßÄꤷ¤Þ¤¹¡£ +.RE +.PP +ExtraOverride +.RS 3n + +¥Ð¥¤¥Ê¥êÆÃÊÌ¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òÀßÄꤷ¤Þ¤¹¡£ +.RE +.PP +SrcExtraOverride +.RS 3n + +¥½¡¼¥¹ÆÃÊÌ¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òÀßÄꤷ¤Þ¤¹¡£ +.RE +.PP +BinCacheDB +.RS 3n + +¥­¥ã¥Ã¥·¥å DB ¤òÀßÄꤷ¤Þ¤¹¡£ +.RE +.PP +PathPrefix +.RS 3n + +Á´½ÐÎϥѥ¹¤ËÉղ乤ë¥Ñ¥¹¡£ +.RE +.PP +FileList, SourceFileList +.RS 3n + +¥Õ¥¡¥¤¥ë°ìÍ÷¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.SH "¥Ð¥¤¥Ê¥ê¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë" +.PP +¥Ð¥¤¥Ê¥ê¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤Ï¡¢ +\fBdpkg\-scanpackages\fR(8) +¤È´°Á´¤Ë¸ß´¹À­¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤³¤Ë¤Ï¡¢¶õÇò¶èÀÚ¤ê¤Ç¥Õ¥£¡¼¥ë¥É¤¬ 4 ¸Ä¤¢¤ê¤Þ¤¹¡£ ÀèƬ¤Î¥Õ¥£¡¼¥ë¥É¤Ï¥Ñ¥Ã¥±¡¼¥¸Ì¾¡¢ 2 ÈÖÌܤΥե£¡¼¥ë¥É¤Ï¥Ñ¥Ã¥±¡¼¥¸¤Ë¶¯À©¤¹¤ëÍ¥ÀèÅÙ¡¢ 3 ÈÖÌܤΥե£¡¼¥ë¥É¤Ï¥Ñ¥Ã¥±¡¼¥¸¤Ë¶¯À©¤¹¤ë¥»¥¯¥·¥ç¥ó¡¢ ºÇ¸å¤Î¥Õ¥£¡¼¥ë¥É¤Ï¥á¥ó¥Æ¥Ê½çÎó¥Õ¥£¡¼¥ë¥É¤Ç¤¹¡£ +.PP +¥á¥ó¥Æ¥Ê¥Õ¥£¡¼¥ë¥É¤Ï°ìÈÌŪ¤Ë¤Ï¡¢ +.sp +.RS 3n +.nf +old [// oldn]* => new +.fi +.RE +.sp +¤È¤¤¤¦·Á¼°¤«¡¢Ã±½ã¤Ë +.sp +.RS 3n +.nf +new +.fi +.RE +.sp +¤È¤Ê¤ê¤Þ¤¹¡£ ºÇ½é¤Î·Á¼°¤Ï¡¢// ¤Ç¶èÀÚ¤é¤ì¤¿¸Å¤¤ email ¥¢¥É¥ì¥¹¤Î¥ê¥¹¥È¤òµö²Ä¤·¤Þ¤¹¡£ ¤³¤Î·Á¼°¤¬¤¢¤ë¾ì¹ç¤Ï¡¢¥á¥ó¥Æ¥Ê¥Õ¥£¡¼¥ë¥É¤Ë¤Ê¤ë¤è¤¦ new ¤ËÃÖ´¹¤·¤Æ¤¯¤À¤µ¤¤¡£ 2 ÈÖÌܤηÁ¼°¤Ï̵¾ò·ï¤Ë¥á¥ó¥Æ¥Ê¥Õ¥£¡¼¥ë¥É¤ËÃÖ´¹¤·¤Þ¤¹¡£ +.SH "¥½¡¼¥¹¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë" +.PP + +¥½¡¼¥¹¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤Ï¡¢ +\fBdpkg\-scansources\fR(8) +¤È´°Á´¤Ë¸ß´¹À­¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤³¤Ë¤Ï¡¢¶õÇò¶èÀÚ¤ê¤Ç¥Õ¥£¡¼¥ë¥É¤¬ 2 ¸Ä¤¢¤ê¤Þ¤¹¡£ ÀèƬ¤Î¥Õ¥£¡¼¥ë¥É¤Ï¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸Ì¾¡¢ 2 ÈÖÌܤΥե£¡¼¥ë¥É¤Ï³ä¤êÅö¤Æ¤ë¥»¥¯¥·¥ç¥ó¤Ç¤¹¡£ +.SH "ÆÃÊÌ¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë" +.PP + +ÆÃÊÌ¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤Ï¡¢ ½ÐÎÏÃæ¤ËǤ°Õ¤Î¥¿¥°¤òÄɲá¦ÃÖ´¹¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£ 3 Î󤫤é¤Ê¤ê¡¢ÀèƬ¤Ï¥Ñ¥Ã¥±¡¼¥¸¡¢2ÈÖÌܤϥ¿¥°¡¢»Ä¤ê¤Ï¿·¤·¤¤ÃͤǤ¹¡£ +.SH "¥ª¥×¥·¥ç¥ó" +.PP +¤³¤ÎÀâÌÀ¤Ç¼¨¤·¤¿¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¤¹¤Ù¤ÆÀßÄê¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤ÆÀßÄê¤Ç¤­¤Þ¤¹¡£ ÀßÄê¥Õ¥¡¥¤¥ë¤Ë½ñ¤¤¤¿¿¿µ¶Ãͤò¤È¤ë¥ª¥×¥·¥ç¥ó¤Ï +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +¤Ê¤É¤Î¤è¤¦¤Ë¤·¤Æ¾å½ñ¤­¤Ç¤­¤Þ¤¹¡£ +.PP +\fB\-\-md5\fR +.RS 3n + +MD5 sum ¤òÀ¸À®¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç on ¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ off ¤Ë¤¹¤ë¤ÈÀ¸À®¤·¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤Ë MD5Sum ¥Õ¥£¡¼¥ë¥É¤¬¤¢¤ê¤Þ¤»¤ó¡£ ÀßÄê¹àÌÜ \- +APT::FTPArchive::MD5 +.RE +.PP +\fB\-d\fR, \fB\-\-db\fR +.RS 3n + +¥Ð¥¤¥Ê¥ê¥­¥ã¥Ã¥·¥å DB ¤ò»ÈÍѤ·¤Þ¤¹¡£ generate ¥³¥Þ¥ó¥É¤Ë¤Ï±Æ¶Á¤·¤Þ¤»¤ó¡£ ÀßÄê¹àÌÜ \- +APT::FTPArchive::DB +.RE +.PP +\fB\-q\fR, \fB\-\-quiet\fR +.RS 3n + +ÀÅ½Í \- ¿ÊĽɽ¼¨¤ò¾Êά¤·¡¢¥í¥°¤ò¤È¤ë¤Î¤ËÊØÍø¤Ê½ÐÎϤò¹Ô¤¤¤Þ¤¹¡£ ºÇÂç 2 ¤Ä¤Þ¤Ç q ¤ò½Å¤Í¤ë¤³¤È¤Ç¤è¤êÀŽͤˤǤ­¤Þ¤¹¡£ ¤Þ¤¿¡¢\fB\-q=#\fR +¤Î¤è¤¦¤ËÀŽͥì¥Ù¥ë¤ò»ØÄꤷ¤Æ¡¢ ÀßÄê¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +quiet +.RE +.PP +\fB\-\-delink\fR +.RS 3n + +Delink ¤ò¼Â¹Ô¤·¤Þ¤¹¡£ +External\-Links +ÀßÄê¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¢ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Õ¥¡¥¤¥ë¤Î delink ¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ï on ¤Ç¡¢ off ¤Ë¤¹¤ë¤Ë¤Ï +\fB\-\-no\-delink\fR +¤È¤·¤Æ¤¯¤À¤µ¤¤¡£ ÀßÄê¹àÌÜ \- +APT::FTPArchive::DeLinkAct +.RE +.PP +\fB\-\-contents\fR +.RS 3n + +contents ¤ÎÀ¸À®¤ò¹Ô¤¤¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¡¢ ¥Ñ¥Ã¥±¡¼¥¸¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò¥­¥ã¥Ã¥·¥å DB ¤È¶¦¤ËÀ¸À®¤¹¤ëºÝ¡¢ ¥Õ¥¡¥¤¥ë¥ê¥¹¥È¤ò¸å¤Ç»ÈÍѤ¹¤ë¤è¤¦¤Ë¡¢Ãê½Ð¤· DB ¤Ë³ÊǼ¤·¤Þ¤¹¡£ generate ¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ëºÝ¡¢ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç¤¤¤º¤ì¤Î Contents ¥Õ¥¡¥¤¥ë¤âºîÀ®¤Ç¤­¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ï on ¤Ç¤¹¡£ ÀßÄê¹àÌÜ \- +APT::FTPArchive::Contents +.RE +.PP +\fB\-s\fR, \fB\-\-source\-override\fR +.RS 3n + + +sources +¥³¥Þ¥ó¥É¤Ç»ÈÍѤ¹¤ë¡¢ ¥½¡¼¥¹¥ª¡¼¥Ð¡¼¥é¥¤¥É¥Õ¥¡¥¤¥ë¤òÁªÂò¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::FTPArchive::SourceOverride +.RE +.PP +\fB\-\-readonly\fR +.RS 3n + +¥­¥ã¥Ã¥·¥å¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÆɤ߼è¤êÀìÍѤˤ·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::FTPArchive::ReadOnlyDB +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +»È¤¤Êý¤Îû¤¤Í×Ìó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +ÀßÄê¥Õ¥¡¥¤¥ë¡£ »ÈÍѤ¹¤ëÀßÄê¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤¬Æɤá¤Ê¤¤¾ì¹ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¤Þ¤¹¡£ ʸˡ¤Ë¤Ä¤¤¤Æ¤Ï +\fBapt.conf\fR(5) +¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +ÀßÄꥪ¥×¥·¥ç¥ó¤Î¥»¥Ã¥È¡£Ç¤°Õ¤ÎÀßÄꥪ¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£ ʸˡ¤Ï +\fB\-o Foo::Bar=bar\fR +¤È¤Ê¤ê¤Þ¤¹¡£ +.RE +.SH "¥µ¥ó¥×¥ë" +.PP +¥Ð¥¤¥Ê¥ê¥Ñ¥Ã¥±¡¼¥¸ (.deb) ¤¬¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î Packages ¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£ +.sp +.RS 3n +.nf +\fBapt\-ftparchive\fR packages \fIdirectory\fR | \fBgzip\fR > \fIPackages.gz\fR +.fi +.RE +.SH "´ØÏ¢¹àÌÜ" +.PP +\fBapt.conf\fR(5) +.SH "¿ÇÃÇ¥á¥Ã¥»¡¼¥¸" +.PP +\fBapt\-ftparchive\fR +¤ÏÀµ¾ï½ªÎ»»þ¤Ë 0 ¤òÊÖ¤·¤Þ¤¹¡£ ¥¨¥é¡¼»þ¤Ë¤Ï½½¿Ê¤Î 100 ¤òÊÖ¤·¤Þ¤¹¡£ +.SH "¥Ð¥°" +.PP +[1]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt-ftparchive.ja.1.xml b/doc/ja/apt-ftparchive.ja.1.xml new file mode 100644 index 0000000..be6bbd7 --- /dev/null +++ b/doc/ja/apt-ftparchive.ja.1.xml @@ -0,0 +1,1020 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 February 2004 + + + + apt-ftparchive + 1 + + + + + apt-ftparchive + + インデックスファイル生成ユーティリティ + + + + + + apt-ftparchive + + + + + + + + + packagespathoverridepathprefix + sourcespathoverridepathprefix + contents path + release path + generate config-file section + clean config-file + + + + + + 説明 + + apt-ftparchive は、 + APT が取得元にアクセスするのに必要な、 + インデックスファイルを生成するコマンドラインツールです。 + インデックスファイルは、元のサイトの内容に基づき生成されるべきです。 + + + apt-ftparchive は、 + &dpkg-scanpackages; プログラムのスーパーセットで、 + packages コマンド経由で機能全体を取り込んでいます。 + また、contents ファイルジェネレータ contents と + 完全なアーカイブの生成プロセス「スクリプト」である綿密な手段を含んでいます。 + + + 本質的に apt-ftparchive は、 + .deb ファイルの内容をキャッシュするのにバイナリデータベースを使用できます。 + また、&gzip; 以外のいかなる外部プログラムにも依存しません。 + すべて生成する際には、 + ファイル変更点の検出と希望した圧縮出力ファイルの作成を自動的に実行します。 + + + オプションや オプションを除き、 + 以下に挙げるコマンドが必要です。 + + + packages + + + packages コマンドは、 + ディレクトリツリーからパッケージファイルを生成します。 + 与えられたディレクトリから再帰検索し、.deb ファイルを取得します。 + またパッケージレコードを標準出力にそれぞれ出力します。 + このコマンドは、&dpkg-scanpackages; とほぼ同じです。 + + + オプションで、 + キャッシュ DB を指定できます。 + + + sources + + + sources コマンドは、 + ディレクトリツリーからソースインデックスファイルを生成します。 + 与えられたディレクトリから再帰検索し、.dsc ファイルを取得します。 + またソースレコードを標準出力にそれぞれ出力します。 + このコマンドは、&dpkg-scansources; とほぼ同じです。 + + + override ファイルを指定した場合、 + src 拡張子がついたソースオーバーライドファイルを探します。 + 使用するソースオーバーライドファイルを変更するのには、 + --source-override オプションを使用します。 + + + contents + + + contents コマンドは、 + ディレクトリツリーからコンテンツファイルを生成します。 + 与えられたディレクトリから再帰検索し、.deb ファイルを取得します。 + またファイルごとにファイル一覧を読み取ります。 + その後、パッケージに対応するファイル一覧を標準出力にソートして出力します。 + ディレクトリは出力に含まれません。 + 複数のパッケージが同じファイルを持つ場合、 + パッケージ名をカンマ区切りで出力します。 + + + オプションで、 + キャッシュ DB を指定できます。 + + + release + + + release コマンドは、 + ディレクトリツリーから Release ファイルを生成します。 + 与えられたディレクトリから、Packages, Packages.gz, Packages.bz2, Sources, + Sources.gz, Sources.bz2, Release, md5sum.txt + といったファイルを再帰検索します。 + その後、ファイルごとの MD5 ダイジェストと SHA1 ダイジェストを含んだ + Release ファイルを、標準出力に書き出します。 + + + Release ファイルの追加メタデータフィールドの値は、 + APT::FTPArchive::Release 以下の相当する値 + (例: APT::FTPArchive::Release::Origin) をとります。 + サポートするフィールドは、 + Origin, Label, Suite, + Version, Codename, Date, + Architectures, Components, Description です。 + + + + generate + + + generate コマンドは、 + cron スクリプトから実行できるよう設計されており、 + 与えられた設定ファイルに従ってインデックスを生成します。 + 設定言語は、必要な設定を維持する簡単な方法を提供すると共に、 + インデックスファイルをどのディレクトリから作成するかを指定する、 + 柔軟な方法を提供します。 + + + clean + + + clean コマンドは、 + 設定ファイルで与えられたデータベースを、 + もう必要ないレコードを削除して整理します。 + + + + + + generate 設定 + + + generate コマンドは、 + 生成するアーカイブに関する記述をした設定ファイルを使用します。 + 設定ファイルは、bind 8 や dhcpd といった ISC ツールに見られるような、 + ISC 設定フォーマットに従います。 + &apt-conf; に、文法の説明があります。 + generate 設定はセクション法で解析しますが、 + &apt-conf; はツリー法で解析するのに注意してください。 + これはスコープタグの扱い方に違いがあるだけです。 + + + + generate 設定には 4 個の独立したセクションがあります。 + 以下それぞれ説明します。 + + + Dir セクション + + + Dir セクションは、 + 生成プロセスで必要なファイルを配置するための、 + 標準ディレクトリを定義します。 + このディレクトリは、完全な絶対パスを生成するため、 + 後のセクションで定義される相対パスの前に結合します。 + + ArchiveDir + + + FTP アーカイブのルートを指定します。 + 標準的な Debian 設定では、このディレクトリには + ls-LR と dist ノードがあります。 + + + OverrideDir + + + オーバーライドファイルの場所を指定します。 + + + CacheDir + + + キャッシュファイルの場所を指定します。 + + + FileListDir + + + FileList 設定が以下で使用されている場合、 + ファイルリストファイルの場所を指定します。 + + + + + + Default セクション + + + Default セクションではデフォルト値を指定します。 + また、生成器の動作を制御する設定も行います。 + 他のセクションでは、ここにあるデフォルト値を、 + セクションごとの設定で上書きします。 + + Packages::Compress + + + Package インデックスファイルのデフォルトの圧縮方法を設定します。 + 少なくともひとつは '.' (圧縮なし), 'gzip', 'bzip2' が入る、 + 空白区切りの文字列です。 + 圧縮方法のデフォルトはすべて '. gzip' です。 + + + Packages::Extensions + + + パッケージファイル拡張子のデフォルト値を列挙します。 + このデフォルト値は '.deb' です。 + + + Sources::Compress + + + Packages::Compress と同様に、 + Sources ファイルの圧縮方法を指定します。 + + + Sources::Extensions + + + ソースファイル拡張子のデフォルト値を列挙します。 + このデフォルト値は '.dsc' です。 + + + Contents::Compress + + + Packages::Compress と同様に、 + Contents ファイルの圧縮方法を指定します。 + + + DeLinkLimit + + + 実行するごとに delink (及びハードリンクの置き換え) する量を、 + キロバイト単位で指定します。セクションごとの + External-Links 設定と合わせて使います。 + + + FileMode + + + 作成したインデックスファイルのモードを指定します。 + デフォルトは 0644 です。全インデックスファイルは、 + umask を無視してこのモードを使用します。 + + + + + + TreeDefault セクション + + + 特定の Tree セクションのデフォルトを設定します。 + これらの変数はすべて置換変数であり、 + 文字列 $(DIST), $(SECTION), $(ARCH) をそれぞれの値に展開します。 + + + MaxContentsChange + + + 日毎に生成する contents ファイルをキロバイト単位で設定します。 + contents ファイルをラウンドロビンし、数日経つとすべて再生成します。 + + + ContentsAge + + + 変更がない contents ファイルをチェックする日数を指定します。 + この制限を越えた contents ファイルの mtime を、更新します。 + パッケージファイルが変更されても、 + [例えば上書き編集で] contents ファイルが更新されないような場合、 + こういったことが発生します。 + 新しい .deb ファイルをインストールしたい場合、保留を解除でき、 + 少なくとも新しいファイルが必要です。 + デフォルトは 10 で、単位は日です。 + + + Directory + + + .deb ディレクトリツリーの先頭を設定します。デフォルトは + $(DIST)/$(SECTION)/binary-$(ARCH)/ です。 + + + SrcDirectory + + + ソースパッケージディレクトリツリーの先頭を設定します。デフォルトは + $(DIST)/$(SECTION)/source/ です。 + + + Packages + + + Packages ファイルの出力先を設定します。デフォルトは + $(DIST)/$(SECTION)/binary-$(ARCH)/Packages です。 + + + Sources + + + Packages ファイルの出力先を設定します。デフォルトは + $(DIST)/$(SECTION)/source/Sources です。 + + + InternalPrefix + + + 外部リンクではなく、内部リンクと見なす判断材料となる、 + パスのプレフィックスを設定します。デフォルトは、 + $(DIST)/$(SECTION)/ です。 + + + Contents + + + Contents ファイルの出力先を設定します。デフォルトは、 + $(DIST)/Contents-$(ARCH) です。 + 複数の Packages ファイルを ひとつの Contents ファイルにまとめられる設定 + (デフォルト) の場合、apt-ftparchive + は自動でパッケージファイルをまとめます。 + + + Contents::Header + + + contents の出力に付けるヘッダファイルを設定します。 + + + BinCacheDB + + + このセクションで使用するバイナリキャッシュデータベースを設定します。 + 複数のセクションで同じデータベースを共有できます。 + + + FileList + + + ディレクトリツリーを走査する代わりに、apt-ftparchive + が読み込むファイル一覧ファイルを指定します。 + 相対ファイル名は、アーカイブディレクトリが先頭につきます。 + + + SourceFileList + + + ディレクトリツリーを走査する代わりに、apt-ftparchive + が読み込むファイル一覧ファイルを指定します。 + 相対ファイル名は、アーカイブディレクトリが先頭につきます。 + ソースインデックスを処理する際に使用します。 + + + + + + Tree セクション + + + Tree セクションでは、 + ベースディレクトリからの標準 Debian ファイルツリー、 + ベースディレクトリの複数のセクション、 + 最終的にはセクションごとの複数のアーキテクチャを定義します。 + 使用する正確なパスは、Directory 変数で定義されます。 + + + Tree セクションは、 + $(DIST) 変数で設定されているスコープタグをとり、 + ツリーのルート (ArchiveDirが先頭につくパス) + を定義します。 + 通常、この設定は dists/woody のようになります。 + + + TreeDefault セクションで定義される設定はすべて、 + 3 個の新しい変数と同様に、 + Tree セクションで使用できます。 + + + Tree セクションを処理する際、 + apt-ftparchive は以下のような操作を行います。 + +for i in Sections do + for j in Architectures do + Generate for DIST=scope SECTION=i ARCH=j + + + + Sections + + + distribution 以下に現れるセクションを、空白区切りで指定したリストです。 + 通常、main contrib non-freeのようになります。 + + + Architectures + + + search セクション以下に現れるアーキテクチャを、 + 空白区切りで指定したリストです。 + 特殊アーキテクチャ 'source' は、 + ソースアーカイブのツリーであることを示します。 + + + BinOverride + + + バイナリオーバーライドファイルを設定します。 + このオーバーライドファイルには、セクション、優先度、 + メンテナのアドレスといった情報が含まれています。 + + + SrcOverride + + + ソースオーバーライドファイルを設定します。 + このオーバーライドファイルには、 + セクションの情報が含まれています。 + + + ExtraOverride + + + バイナリ特別オーバーライドファイルを設定します。 + + + SrcExtraOverride + + + ソース特別オーバーライドファイルを設定します。 + + + + + + BinDirectory セクション + + + bindirectory セクションでは、 + 特殊な構造を持たないバイナリディレクトリツリーを定義します。 + スコープタグはバイナリディレクトリの場所を指定し、 + 設定は、変数展開のない Tree セクションや + SectionArchitecture 設定に似ています。 + + Packages + + + Packages ファイルの出力先を設定します。 + + + SrcPackages + + + Sources ファイルの出力先を設定します。 + 少なくとも Packages や SrcPackages + は設定されていなければなりません。 + + + Contents + + + Contents ファイルの出力先を設定します。(オプション) + + + BinOverride + + + バイナリオーバーライドファイルを設定します。 + + + SrcOverride + + + ソースオーバーライドファイルを設定します。 + + + ExtraOverride + + + バイナリ特別オーバーライドファイルを設定します。 + + + SrcExtraOverride + + + ソース特別オーバーライドファイルを設定します。 + + + BinCacheDB + + + キャッシュ DB を設定します。 + + + PathPrefix + + + 全出力パスに付加するパス。 + + + FileList, SourceFileList + + + ファイル一覧ファイルを指定します。 + + + + + + + + バイナリオーバーライドファイル + + バイナリオーバーライドファイルは、 + &dpkg-scanpackages; と完全に互換性があります。 + ここには、空白区切りでフィールドが 4 個あります。 + 先頭のフィールドはパッケージ名、 + 2 番目のフィールドはパッケージに強制する優先度、 + 3 番目のフィールドはパッケージに強制するセクション、 + 最後のフィールドはメンテナ順列フィールドです。 + + メンテナフィールドは一般的には、 + old [// oldn]* => new + という形式か、単純に + new + となります。 + 最初の形式は、// で区切られた古い email アドレスのリストを許可します。 + この形式がある場合は、メンテナフィールドになるよう new に置換してください。 + 2 番目の形式は無条件にメンテナフィールドに置換します。 + + + + + ソースオーバーライドファイル + + + ソースオーバーライドファイルは、 + &dpkg-scansources; と完全に互換性があります。 + ここには、空白区切りでフィールドが 2 個あります。 + 先頭のフィールドはソースパッケージ名、 + 2 番目のフィールドは割り当てるセクションです。 + + + + 特別オーバーライドファイル + + + 特別オーバーライドファイルは、 + 出力中に任意のタグを追加・置換できるようにします。 + 3 列からなり、先頭はパッケージ、2番目はタグ、残りは新しい値です。 + + + + オプション + &apt-cmdblurb; + + + + + + MD5 sum を生成します。デフォルトで on になっており、 + off にすると生成したインデックスファイルに MD5Sum フィールドがありません。 + 設定項目 - APT::FTPArchive::MD5 + + + + + + バイナリキャッシュ DB を使用します。 + generate コマンドには影響しません。 + 設定項目 - APT::FTPArchive::DB + + + + + + 静粛 - 進捗表示を省略し、ログをとるのに便利な出力を行います。 + 最大 2 つまで q を重ねることでより静粛にできます。 + また、 のように静粛レベルを指定して、 + 設定ファイルを上書きすることもできます。 + 設定項目 - quiet + + + + + + Delink を実行します。 + External-Links 設定を使用している場合、 + このオプションはファイルの delink を有効にします。 + デフォルトは on で、 + off にするには としてください。 + 設定項目 - APT::FTPArchive::DeLinkAct + + + + + + contents の生成を行います。このオプションを指定し、 + パッケージインデックスをキャッシュ DB と共に生成する際、 + ファイルリストを後で使用するように、抽出し DB に格納します。 + generate コマンドを使用する際、 + このオプションでいずれの Contents ファイルも作成できます。 + デフォルトは on です。 + 設定項目 - APT::FTPArchive::Contents + + + + + + sources コマンドで使用する、 + ソースオーバーライドファイルを選択します。 + 設定項目 - APT::FTPArchive::SourceOverride + + + + + + キャッシュデータベースを読み取り専用にします。 + 設定項目 - APT::FTPArchive::ReadOnlyDB + + + &apt-commonoptions; + + + + + +サンプル + + +バイナリパッケージ (.deb) があるディレクトリの +Packages ファイルを生成するには、以下のようにします。 + + +apt-ftparchive packages directory | gzip > Packages.gz + + + + + + 関連項目 + &apt-conf; + + + + 診断メッセージ + + apt-ftparchive は正常終了時に 0 を返します。 + エラー時には十進の 100 を返します。 + + + &manbugs; + &translator; + + diff --git a/doc/ja/apt-get.8 b/doc/ja/apt-get.8 new file mode 100644 index 0000000..db74af4 --- /dev/null +++ b/doc/ja/apt-get.8 @@ -0,0 +1,484 @@ +.\" Title: apt\-get +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-GET" "8" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-get \- APT package handling utility \-\- ¥³¥Þ¥ó¥É¥é¥¤¥ó¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +.SH "SYNOPSIS" +.HP 8 +\fBapt\-get\fR [\fB\-hvs\fR] [\fB\-o=\fR\fB\fIconfig\ string\fR\fR] [\fB\-c=\fR\fB\fIfile\fR\fR] {[update] | [upgrade] | [dselect\-upgrade] | [install\ \fIpkg\fR...] | [remove\ \fIpkg\fR...] | [source\ \fIpkg\fR...] | [build\-dep\ \fIpkg\fR...] | [check] | [clean] | [autoclean]} +.SH "ÀâÌÀ" +.PP +\fBapt\-get\fR +¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤òÁàºî¤¹¤ë¥³¥Þ¥ó¥É¥é¥¤¥ó¥Ä¡¼¥ë¤Ç¡¢ APT ¥é¥¤¥Ö¥é¥ê¤òÍѤ¤¤ë¾¤Î¥Ä¡¼¥ë¤Î¥æ¡¼¥¶Â¦¡Ö¥Ð¥Ã¥¯¥¨¥ó¥É¡×¤È¤¤¤¨¤ë¤â¤Î¤Ç¤¹¡£ ¡Ö¥Õ¥í¥ó¥È¥¨¥ó¥É¡×¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ï¡¢dselect(8), aptitude, synaptic, gnome\-apt, wajig ¤Ê¤É¤¬¤¢¤ê¤Þ¤¹¡£ +.PP +\fB\-h\fR +¥ª¥×¥·¥ç¥ó¤ä +\fB\-\-help\fR +¥ª¥×¥·¥ç¥ó¤ò½ü¤­¡¢ °Ê²¼¤Ëµó¤²¤ë¥³¥Þ¥ó¥É¤¬É¬ÍפǤ¹¡£ +.PP +update +.RS 3n +update¤Ï¡¢ ¼èÆÀ¸µ¤«¤é¥Ñ¥Ã¥±¡¼¥¸¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤ÎºÆƱ´ü¤ò¹Ô¤¦¤Î¤Ë»ÈÍѤ·¤Þ¤¹¡£ ÍøÍѲÄǽ¤Ê¥Ñ¥Ã¥±¡¼¥¸¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¡¢ +\fI/etc/apt/sources.list\fR +¤Ëµ­½Ò¤·¤¿¾ì½ê¤«¤é¼èÆÀ¤·¤Þ¤¹¡£ Î㤨¤Ð Debian ¥¢¡¼¥«¥¤¥Ö¤òÍøÍѤ¹¤ëºÝ¡¢ ¤³¤Î¥³¥Þ¥ó¥É¤¬ +\fIPackages.gz\fR +¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë¤³¤È¤Ç¡¢ ¿·µ¬¤Þ¤¿¤Ï¹¹¿·¤µ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤Î¾ðÊó¤¬ÍøÍѲÄǽ¤È¤Ê¤ê¤Þ¤¹¡£ +update +¤Ï¡¢upgrade +¤ä +dist\-upgrade +¤ò¹Ô¤¦Á°¤Ë¾ï¤Ë¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£ Á°¤â¤Ã¤Æ¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤òÃΤ뤳¤È¤¬¤Ç¤­¤Ê¤¤¤¿¤á¡¢ Á´ÂΤοÊĽ¥á¡¼¥¿¤ÏÀµ¤·¤¯É½¼¨¤µ¤ì¤Þ¤»¤ó¡£ +.RE +.PP +upgrade +.RS 3n +upgrade +¤Ï¡¢ ¸½ºß¥·¥¹¥Æ¥à¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ëÁ´¥Ñ¥Ã¥±¡¼¥¸¤ÎºÇ¿·¥Ð¡¼¥¸¥ç¥ó¤ò¡¢ +\fI/etc/apt/sources.list\fR +¤ËÎóµó¤·¤¿¼èÆÀ¸µ¤«¤é¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤Î¤Ë»ÈÍѤ·¤Þ¤¹¡£ ¸½ºß¥¤¥ó¥¹¥È¡¼¥ëÃæ¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ë¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤¬¤¢¤ì¤Ð¹¹¿·¤·¤Þ¤¹¤¬¡¢ ¤¤¤«¤Ê¤ë»þ¤â¸½ºß¥¤¥ó¥¹¥È¡¼¥ëÃæ¤Î¥Ñ¥Ã¥±¡¼¥¸¤Îºï½ü¤Ï¹Ô¤¤¤Þ¤»¤ó¡£ ÂоݤΥѥ屡¼¥¸¤¬¡¢ ¾¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥¤¥ó¥¹¥È¡¼¥ë¾õÂÖ¤òÊѹ¹¤»¤º¤Ë¹¹¿·¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¡¢ ¸½ºß¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¤Þ¤Þ¤È¤Ê¤ê¤Þ¤¹¡£ ºÇ½é¤Ë +update +¤ò¼Â¹Ô¤·¤Æ¤ª¤­¡¢ +\fBapt\-get\fR +¤Ë¥Ñ¥Ã¥±¡¼¥¸¤Î¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤¬¤¢¤ë¤³¤È¤ò ÃΤ餻¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.RE +.PP +dselect\-upgrade +.RS 3n +dselect\-upgrade +¤Ï¡¢ ÅÁÅýŪ¤Ê Debian GNU/Linux ¥Ñ¥Ã¥±¡¼¥¸´ÉÍý¥Õ¥í¥ó¥È¥¨¥ó¥É¤Î +\fBdselect\fR(8) +¤È¶¦¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£ +dselect\-upgrade +¤Ï¡¢ +\fBdselect\fR(8) +¤Çºî¤é¤ì¤¿ÍøÍѲÄǽ¥Ñ¥Ã¥±¡¼¥¸¤Î +Status +¥Õ¥£¡¼¥ë¥É¤ÎÊѹ¹¤òÄÉÀפ·¡¢ ¤½¤Î¾õÂÖ¤òÈ¿±Ç¤µ¤»¤ë¤Î¤ËɬÍפʥ¢¥¯¥·¥ç¥ó¤ò¼Â¹Ô¤·¤Þ¤¹¡£ (Î㤨¤Ð¡¢¸Å¤¤¥Ñ¥Ã¥±¡¼¥¸¤Îºï½ü¤ä¿·¤·¤¤¥Ñ¥Ã¥±¡¼¥¸¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Ê¤É) +.RE +.PP +dist\-upgrade +.RS 3n +dist\-upgrade +¤Ï¡¢ +upgrade +¤Îµ¡Ç½¤Ë²Ã¤¨¡¢ ¿·¥Ð¡¼¥¸¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤ËÂФ¹¤ë°Í¸´Ø·¸¤ÎÊѹ¹¤òÃÎŪ¤ËÁàºî¤·¤Þ¤¹¡£ +\fBapt\-get\fR +¤Ï¡ÖÀöÎý¤µ¤ì¤¿¡×¶¥¹ç²ò·è¥·¥¹¥Æ¥à¤ò»ý¤Á¡¢ ɬÍפȤ¢¤é¤ÐÈæ³ÓŪ½ÅÍפǤʤ¤¥Ñ¥Ã¥±¡¼¥¸¤òµ¾À·¤Ë¤·¤Æ¡¢ ºÇ½ÅÍץѥ屡¼¥¸¤Î¹¹¿·¤ò»î¤ß¤Þ¤¹¡£ +\fI/etc/apt/sources.list\fR +¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢ ɬÍפʥѥ屡¼¥¸¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë¾ì½ê¤Î¥ê¥¹¥È¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ ÆÃÄê¤Î¥Ñ¥Ã¥±¡¼¥¸¸þ¤±¤Ë¡¢°ìÈÌŪ¤ÊÀßÄê¤ò¾å½ñ¤­¤¹¤ëµ¡¹½¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +\fBapt_preferences\fR(5) +¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.RE +.PP +install +.RS 3n +install +¤Î¸å¤Ë¤Ï¡¢ ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤ò 1 ¤Ä°Ê¾å»ØÄꤷ¤Þ¤¹¡£ »ØÄꤹ¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢´°Á´¤Ê¥Õ¥¡¥¤¥ë̾¤Ç¤Ï¤Ê¤¯¥Ñ¥Ã¥±¡¼¥¸Ì¾¤Ç¤¹¡£ (Î㤨¤Ð Debian GNU/Linux ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +libc6_1.9.6\-2.deb +¤Ç¤Ï¤Ê¤¯ libc6 ¤ò°ú¿ô¤È¤·¤ÆÍ¿¤¨¤Þ¤¹) ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤è¤¦»ØÄꤷ¤¿¤¹¤Ù¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸¤ËÂФ·¡¢ ¸¡º÷¡¦¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤¤¤Þ¤¹¡£ +\fI/etc/apt/sources.list\fR +¥Õ¥¡¥¤¥ë¤ò¡¢ Í׵᤹¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¾ì½ê¤òÆÃÄꤹ¤ë¤Î¤Ë»ÈÍѤ·¤Þ¤¹¡£ ¥Ñ¥Ã¥±¡¼¥¸Ì¾¤Î¸å¤í¤Ë (¶õÇò¤ò´Þ¤Þ¤º) ¥Ï¥¤¥Õ¥ó¤¬Äɲ䵤ì¤Æ¤¤¤ë¾ì¹ç¡¢ ¤½¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ì¤Ðºï½ü¤·¤Þ¤¹¡£ ƱÍͤˡ¢¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤òÌÀ¼¨¤¹¤ë¤Î¤Ë¥×¥é¥¹µ­¹æ¤â»ÈÍѤǤ­¤Þ¤¹¡£ ¤³¤Îµ­¹æ¤Ï apt\-get ¤Î¶¥¹ç²ò·è¥·¥¹¥Æ¥à¤ÎȽÃǤËÍøÍѤµ¤ì¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ +.sp +¥Ñ¥Ã¥±¡¼¥¸¤Ë¥¤¥³¡¼¥ëµ­¹æ¤È¥Ð¡¼¥¸¥ç¥ó¤ò³¤±¤ë¤³¤È¤Ç¡¢ ÁªÂò¤·¤¿¥Ð¡¼¥¸¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¤Ä¤Þ¤ê¡¢»ØÄê¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤è¤¦¤ËÁªÂò¤¹¤ë¡¢ ¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ Ê̤ÎÊýË¡¤È¤·¤Æ¤Ï¡¢¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤òÆÃÄꤹ¤ë¤Î¤Ë¡¢ ¥Ñ¥Ã¥±¡¼¥¸Ì¾¤Ë³¤±¤Æ¡¢ ¥¹¥é¥Ã¥·¥å¤È¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î¥Ð¡¼¥¸¥ç¥ó¤ä¥¢¡¼¥«¥¤¥Ö̾ (stable, testing, unstable) ¤òµ­½Ò¤Ç¤­¤Þ¤¹¡£ +.sp +¥Ð¡¼¥¸¥ç¥óÁªÂòµ¡¹½¤Ï¥À¥¦¥ó¥°¥ì¡¼¥É»þ¤Ë¤â»ÈÍѤǤ­¤ë¤¿¤á¡¢ Ãí°Õ¤·¤Æ»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ +.sp +ºÇ¸å¤Ë¡¢\fBapt_preferences\fR(5) +µ¡¹½¤Ë¤è¤ê¡¢ ÆÃÄê¤Î¥Ñ¥Ã¥±¡¼¥¸¤ËÂФ¹¤ë¥¤¥ó¥¹¥È¡¼¥ë¥Ý¥ê¥·¡¼¤òºîÀ®¤Ç¤­¤Þ¤¹¡£ +.sp +¹½Ê¸¤Ë '.', '?', '*' ¤ò´Þ¤ß¡¢¥Ñ¥Ã¥±¡¼¥¸Ì¾¤¬¥Þ¥Ã¥Á¤·¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ POSIX Àµµ¬É½¸½¤Ç¤¢¤ë¤È¸«¤Ê¤·¡¢ ¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤ÎÁ´¥Ñ¥Ã¥±¡¼¥¸Ì¾¤ËÂФ·¤ÆŬÍѤ·¤Þ¤¹¡£ ¥Þ¥Ã¥Á¤·¤¿¥Ñ¥Ã¥±¡¼¥¸¤¹¤Ù¤Æ¤¬¥¤¥ó¥¹¥È¡¼¥ë(¤â¤·¤¯¤Ïºï½ü)¤µ¤ì¤Þ¤¹¡£ 'lo.*' ¤Î¤è¤¦¤Êʸ»úÎó¤Ï¡¢ 'how\-lo' ¤ä 'lowest' ¤Ë¥Þ¥Ã¥Á¤¹¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ ¤½¤¦¤·¤¿¤¯¤Ê¤±¤ì¤Ð¡¢'^' ¤ä '$' ¤òÉÕ¤±¤ë¤«¡¢ ¤â¤Ã¤È¾Ü¤·¤¤Àµµ¬É½¸½¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +remove +.RS 3n +remove +¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤¬ºï½ü¤µ¤ì¤ë¤³¤È¤ò½ü¤­¡¢install +¤ÈƱÍͤǤ¹¡£ ¥×¥é¥¹µ­¹æ¤¬¥Ñ¥Ã¥±¡¼¥¸Ì¾¤Ë (´Ö¤Ë¶õÇò¤ò´Þ¤Þ¤º¤Ë) Éղ䵤ì¤ë¤È¡¢ ¼±Ê̤µ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤ò¡¢ºï½ü¤Ç¤Ï¤Ê¤¯¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ +.RE +.PP +source +.RS 3n +source +¤Ï¡¢ ¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤ò¼èÆÀ¤¹¤ë¤Î¤Ë +\fBapt\-get\fR +¤·¤Þ¤¹¡£ APT ¤Ï¤É¤Î¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤ò¼èÆÀ¤¹¤ë¤«·èÄꤹ¤ë¤è¤¦¡¢ ÍøÍѲÄǽ¤Ê¥Ñ¥Ã¥±¡¼¥¸¤ò¸¡Æ¤¤·¤Þ¤¹¡£ ¤½¤Î¸å¡¢ºÇ¿·¤ÎÍøÍѲÄǽ¤Ê¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤ò¸«¤Ä¤±¡¢ ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ø¥À¥¦¥ó¥í¡¼¥É¤·¤Þ¤¹¡£ ¥Ð¥¤¥Ê¥ê¥Ñ¥Ã¥±¡¼¥¸¤È¤ÏÊÌ¤Ë +\fBsources.list\fR(5) +¥Õ¥¡¥¤¥ë¤Î +deb\-src +¹Ô¤«¤é¡¢¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤òÄÉÀפ·¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿ (¤Þ¤¿¤Ï¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­¤ë) ¥Ñ¥Ã¥±¡¼¥¸¤È¡¢ ¼èÆÀ¸µ¤òÊѤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë¤³¤È¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£ \-\-compile ¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢dpkg\-buildpackage ¤òÍѤ¤¤Æ ¥Ð¥¤¥Ê¥ê .deb ¥Õ¥¡¥¤¥ë¤Ø¥³¥ó¥Ñ¥¤¥ë¤ò¹Ô¤¤¤Þ¤¹¡£ \-\-download\-only ¤Î¾ì¹ç¤Ï¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤òŸ³«¤·¤Þ¤»¤ó¡£ +.sp +¥Ñ¥Ã¥±¡¼¥¸¤ÈƱÍͤˡ¢ ¥½¡¼¥¹Ì¾¤Î¸å¤í¤Ë¥¤¥³¡¼¥ë¤È¼èÆÀ¤·¤¿¤¤¥Ð¡¼¥¸¥ç¥ó¤òÃÖ¤¯¤È¡¢ »ØÄꤷ¤¿¥Ð¡¼¥¸¥ç¥ó¤Î¥½¡¼¥¹¤ò¼èÆÀ¤Ç¤­¤Þ¤¹¡£ +APT::Get::Only\-Source +¥ª¥×¥·¥ç¥ó¤¬°ÅÌۤΤ¦¤Á¤ËÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¿¤á¡¢ ¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸Ì¾¤È¥Ð¡¼¥¸¥ç¥ó¤Ë¸·Ì©¤Ë°ìÃפµ¤»¤Æ¤¤¤Þ¤¹¡£ +.sp +tar ball ¤Ï¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Î¤ß¥À¥¦¥ó¥í¡¼¥É¤µ¤ì¡¢ ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤ËŸ³«¤µ¤ì¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +build\-dep +.RS 3n +build\-dep +¤Ï¡¢ ¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤Î¹½Ã۰͸´Ø·¸¤òËþ¤¿¤¹¤è¤¦¤Ë¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Î¥¤¥ó¥¹¥È¡¼¥ë¡¦ºï½ü¤ò¹Ô¤¤¤Þ¤¹¡£ +.RE +.PP +check +.RS 3n +check +¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¥­¥ã¥Ã¥·¥å¤Î¹¹¿·¤ä²õ¤ì¤¿°Í¸´Ø·¸¤ò¥Á¥§¥Ã¥¯¤¹¤ë¿ÇÃǥġ¼¥ë¤Ç¤¹¡£ +.RE +.PP +clean +.RS 3n +clean +¤Ï¡¢ ¼èÆÀ¤·¤¿¥Ñ¥Ã¥±¡¼¥¸¤Î¥í¡¼¥«¥ë¥ê¥Ý¥¸¥È¥ê¤òÁݽü¤·¤Þ¤¹¡£ +\fI/var/cache/apt/archives/\fR +¤È +\fI/var/cache/apt/archives/partial/\fR +¤«¤é¥í¥Ã¥¯¥Õ¥¡¥¤¥ë°Ê³°¤¹¤Ù¤Æºï½ü¤·¤Þ¤¹¡£ APT ¤¬ +\fBdselect\fR(8) +¤«¤é¸Æ¤Ð¤ì¤ë¤È¤­¤Ë¤Ï¡¢ ¼«Æ°Åª¤Ë +clean +¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ dselect¤ò»ÈÍѤ·¤Ê¤¤¾ì¹ç¤Ï¡¢¥Ç¥£¥¹¥¯¥¹¥Ú¡¼¥¹¤ò²òÊü¤¹¤ë¤¿¤á¡¢»þ¡¹ +apt\-get clean +¤ò¼Â¹Ô¤·¤¿¤¯¤Ê¤ë¤Ç¤·¤ç¤¦¡£ +.RE +.PP +autoclean +.RS 3n +clean +¤ÈƱÍͤˡ¢ +autoclean +¤Ï¼èÆÀ¤·¤¿¥Ñ¥Ã¥±¡¼¥¸¤Î¥í¡¼¥«¥ë¥ê¥Ý¥¸¥È¥ê¤òÁݽü¤·¤Þ¤¹¡£ °ã¤¤¤Ï¡¢¤â¤¦¥À¥¦¥ó¥í¡¼¥É¤µ¤ì¤ë¤³¤È¤¬¤Ê¤¤¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤ä¡¢ ¤Û¤È¤ó¤ÉÉÔÍפʥѥ屡¼¥¸¥Õ¥¡¥¤¥ë¤Î¤ß¤òºï½ü¤¹¤ë¤³¤È¤Ç¤¹¡£ ¤³¤Î¤¿¤á¡¢Ä¹¤¤´ü´Ö¡¢¥­¥ã¥Ã¥·¥å¤¬´ÉÍý¤Ç¤­¤º¤ËÈîÂç²½¤¹¤ë¤³¤È¤Ê¤¯¡¢ °Ý»ý¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ÀßÄꥪ¥×¥·¥ç¥ó +APT::Clean\-Installed +¤Ë off ¤ò¥»¥Ã¥È¤·¤Æ¤¤¤ì¤Ð¡¢ ¥¤¥ó¥¹¥È¡¼¥ëºÑ¤Î¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤¬ºï½ü¤µ¤ì¤ë¤Î¤òËɤ²¤Þ¤¹¡£ +.RE +.SH "¥ª¥×¥·¥ç¥ó" +.PP +¤³¤ÎÀâÌÀ¤Ç¼¨¤·¤¿¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¤¹¤Ù¤ÆÀßÄê¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤ÆÀßÄê¤Ç¤­¤Þ¤¹¡£ ÀßÄê¥Õ¥¡¥¤¥ë¤Ë½ñ¤¤¤¿¿¿µ¶Ãͤò¤È¤ë¥ª¥×¥·¥ç¥ó¤Ï +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +¤Ê¤É¤Î¤è¤¦¤Ë¤·¤Æ¾å½ñ¤­¤Ç¤­¤Þ¤¹¡£ +.PP +\fB\-d\fR, \fB\-\-download\-only\fR +.RS 3n +¥À¥¦¥ó¥í¡¼¥É¤Î¤ß \- ¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤Î¼èÆÀ¤Î¤ß¤ò¹Ô¤¤¡¢ Ÿ³«¡¦¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤¤¤Þ¤»¤ó¡£ ÀßÄê¹àÌÜ \- +APT::Get::Download\-Only +.RE +.PP +\fB\-f\fR, \fB\-\-fix\-broken\fR +.RS 3n +½¤Éü \- °Í¸´Ø·¸¤¬²õ¤ì¤¿¥·¥¹¥Æ¥à¤Î½¤Àµ¤ò»î¤ß¤Þ¤¹¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤ò install ¤ä remove ¤È°ì½ï¤Ë»È¤¦¤È¤­¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤ò»ØÄꤷ¤Ê¤¯¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£ ¤É¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò»ØÄꤷ¤Æ¤â¡¢´°Á´¤ËÌäÂê¤ò²ò·è¤·¤Þ¤¹¡£APT ¼«ÂΤϡ¢ ¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë²õ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸°Í¸´Ø·¸¤òµö¤¹¤³¤È¤¬¤Ç¤­¤Ê¤¤¤Î¤Ç¡¢ ½é¤á¤Æ APT ¤ò¼Â¹Ô¤¹¤ë¾ì¹ç¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤¬É¬Íפˤʤ뤳¤È¤¬¤¢¤ê¤Þ¤¹¡£ ¥·¥¹¥Æ¥à¤Î°Í¸´Ø·¸¹½Â¤¤Ë¤«¤Ê¤êÌäÂ꤬¤¢¤ë¾ì¹ç¤Ï¡¢ ¼êÆ°¤Ç½¤Àµ¤¹¤ë¤è¤¦Í׵᤹¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¡£ (Ä̾ï¤Ï¡¢ÌäÂê¤Î¤¢¤ë¥Ñ¥Ã¥±¡¼¥¸¤ò¼è¤ê½ü¤¯¤Î¤Ë +\fBdselect\fR(8) +¤ä +\fBdpkg \-\-remove\fR +¤ò»ÈÍѤ·¤Þ¤¹) ¤³¤Î¥ª¥×¥·¥ç¥ó¤ò +\fB\-m\fR +¥ª¥×¥·¥ç¥ó¤ÈƱ»þ¤Ë»ÈÍѤ¹¤ë¤È¡¢ ¥¨¥é¡¼¤Ë¤Ê¤ë¾õ¶·¤¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ÀßÄê¹àÌÜ \- +APT::Get::Fix\-Broken +.RE +.PP +\fB\-m\fR, \fB\-\-ignore\-missing\fR, \fB\-\-fix\-missing\fR +.RS 3n +·çÍî¥Ñ¥Ã¥±¡¼¥¸¤Î̵»ë \- ¥Ñ¥Ã¥±¡¼¥¸¤¬¼èÆÀ¤Ç¤­¤Ê¤«¤Ã¤¿¤ê¡¢ (¥Ñ¥Ã¥±¡¼¥¸¤ÎÇË»¤Ç) ¼èÆÀ¤·¤¿¸å¤ÎÀ°¹çÀ­¥Á¥§¥Ã¥¯¤òÄ̤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ ¤½¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î½èÍý¤òÊÝα¤·ºÇ¸å¤Þ¤Ç½èÍý¤ò³¤±¤Þ¤¹¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤ò +\fB\-f\fR +¥ª¥×¥·¥ç¥ó¤ÈƱ»þ¤Ë»ÈÍѤ¹¤ë¤È¡¢ ¥¨¥é¡¼¤Ë¤Ê¤ë¾õ¶·¤¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤è¤¦ÁªÂò¤·¤Æ¤¤¤ë¾ì¹ç (Æä˥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç¤ÎÁàºî»þ) ¤ä¡¢ ¥À¥¦¥ó¥í¡¼¥É¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¡¢¤Ê¤Ë¤âɽ¼¨¤»¤ºÊÝα¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Fix\-Missing +.RE +.PP +\fB\-\-no\-download\fR +.RS 3n +¥Ñ¥Ã¥±¡¼¥¸¤Î¥À¥¦¥ó¥í¡¼¥É¤ò̵¸ú¤Ë¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¤¹¤Ç¤Ë¥À¥¦¥ó¥í¡¼¥É¤·¤¿ .deb ¤ËÂФ·¤Æ¤Î¤ß APT ¤ò¹Ô¤¦¾ì¹ç¤Ë¡¢ +\fB\-\-ignore\-missing\fR +¤ÈÊ»¤»¤Æ»È¤¦¤Î¤¬¤è¤¤¤Ç¤·¤ç¤¦¡£ ÀßÄê¹àÌÜ \- +APT::Get::Download +.RE +.PP +\fB\-q\fR, \fB\-\-quiet\fR +.RS 3n +ÀÅ½Í \- ¿ÊĽɽ¼¨¤ò¾Êά¤·¡¢ ¥í¥°¤ò¤È¤ë¤Î¤ËÊØÍø¤Ê½ÐÎϤò¹Ô¤¤¤Þ¤¹¡£ ºÇÂç 2 ¤Ä¤Þ¤Ç q ¤ò½Å¤Í¤ë¤³¤È¤Ç¤è¤êÀŽͤˤǤ­¤Þ¤¹¡£ ¤Þ¤¿¡¢\fB\-q=#\fR +¤Î¤è¤¦¤ËÀŽͥì¥Ù¥ë¤ò»ØÄꤷ¤Æ¡¢ ÀßÄê¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ ÀŽͥì¥Ù¥ë 2 ¤Ï +\fB\-y\fR +¤ò´Þ¤ó¤Ç¤¤¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ APT ¤¬°Õ¿Þ¤·¤Ê¤¤·èÄê¤ò¹Ô¤¦¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç \-d, \-\-print\-uris, \-s ¤Î¤è¤¦¤Ê Áàºî¤ò¹Ô¤ï¤Ê¤¤¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤º¤Ë \-qq ¤ò»ÈÍѤ¹¤ë¤Ù¤­¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ÀßÄê¹àÌÜ \- +quiet +.RE +.PP +\fB\-s\fR, \fB\-\-simulate\fR, \fB\-\-just\-print\fR, \fB\-\-dry\-run\fR, \fB\-\-recon\fR, \fB\-\-no\-act\fR +.RS 3n +Æ°ºî¤Ê¤· \- ¤Ê¤Ë¤¬µ¯¤³¤ë¤Î¤«¤Î¥·¥ß¥å¥ì¡¼¥·¥ç¥ó¤ò¹Ô¤¤¡¢ ¼ÂºÝ¤Ë¤Ï¥·¥¹¥Æ¥à¤ÎÊѹ¹¤ò¹Ô¤¤¤Þ¤»¤ó¡£ ÀßÄê¹àÌÜ \- +APT::Get::Simulate +.sp +¥·¥ß¥å¥ì¡¼¥È¤Î·ë²Ì¡¢dpkg ¤ÎÆ°ºî¤òɽ¤¹°ìÏ¢¤Î¹Ô¤Î¤½¤ì¤¾¤ì¤Ë¡¢ ÀßÄê (Conf)¡¢ºï½ü (Remv)¡¢Å¸³« (Inst) ¤òɽ¼¨¤·¤Þ¤¹¡£ ³Ñ¥«¥Ã¥³¤Ï²õ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤òɽ¤·¡¢(¤Þ¤ì¤Ë) ¶õ¤Î³Ñ¥«¥Ã¥³¤ÏÂ礷¤¿ÌäÂê¤Ç¤Ï¤Ê¤¤¤³¤È¤òɽ¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-y\fR, \fB\-\-yes\fR, \fB\-\-assume\-yes\fR +.RS 3n +¥×¥í¥ó¥×¥È¤Ø¤Î¼«Æ°¾µÂú \- ¤¹¤Ù¤Æ¤Î¥×¥í¥ó¥×¥È¤Ë¼«Æ°Åª¤Ë "yes" ¤ÈÅú¤¨¡¢ÈóÂÐÏÃŪ¤Ë¼Â¹Ô¤·¤Þ¤¹¡£ ÊÝα¤·¤¿¥Ñ¥Ã¥±¡¼¥¸¤Î¾õÂÖ¤òÊѹ¹¤·¤¿¤ê¡¢ ɬ¿Ü¥Ñ¥Ã¥±¡¼¥¸¤òºï½ü¤¹¤ë¤è¤¦¤ÊÉÔŬÀڤʾõ¶·¤Î¾ì¹ç¡¢ +apt\-get +¤Ï½èÍý¤òÃæÃǤ·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Assume\-Yes +.RE +.PP +\fB\-u\fR, \fB\-\-show\-upgraded\fR +.RS 3n +¹¹¿·¥Ñ¥Ã¥±¡¼¥¸É½¼¨ \- ¹¹¿·¤µ¤ì¤ëÁ´¥Ñ¥Ã¥±¡¼¥¸¤ò°ìÍ÷ɽ¼¨¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Show\-Upgraded +.RE +.PP +\fB\-V\fR, \fB\-\-verbose\-versions\fR +.RS 3n +¹¹¿·¡¦¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¥ô¥¡¡¼¥¸¥ç¥ó¤ò¡¢ ¤¹¤Ù¤Æɽ¼¨¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Show\-Versions +.RE +.PP +\fB\-b\fR, \fB\-\-compile\fR, \fB\-\-build\fR +.RS 3n +¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤ò¥À¥¦¥ó¥í¡¼¥É¸å¡¢¥³¥ó¥Ñ¥¤¥ë¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Compile +.RE +.PP +\fB\-\-ignore\-hold\fR +.RS 3n +ÊÝα¥Ñ¥Ã¥±¡¼¥¸¤Î̵»ë \- ¥Ñ¥Ã¥±¡¼¥¸¤ÎÊÝα»Ø¼¨¤ò̵»ë¤·¤Æ +\fBapt\-get\fR +¤ò¹Ô¤¤¤Þ¤¹¡£ +dist\-upgrade +¤È¶¦¤Ë¡¢ ÂçÎ̤Υѥ屡¼¥¸¤òÊÝα¤Î²ò½ü¤ò¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë¤ÈÊØÍø¤Ç¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Ignore\-Hold +.RE +.PP +\fB\-\-no\-upgrade\fR +.RS 3n +¥Ñ¥Ã¥±¡¼¥¸¹¹¿·¤Ê¤· \- +install +¤ÈƱ»þ¤Ë»ÈÍѤ¹¤ë¤È¡¢no\-upgrade +¤Ï¡¢ »ØÄꤷ¤¿¥Ñ¥Ã¥±¡¼¥¸¤¬¤¹¤Ç¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¢¤ë¾ì¹ç¤Ë¹¹¿·¤ò¹Ô¤¤¤Þ¤»¤ó¡£ ÀßÄê¹àÌÜ \- +APT::Get::Upgrade +.RE +.PP +\fB\-\-force\-yes\fR +.RS 3n +¶¯À©¾µÂú \- APT ¤¬²¿¤«Â»½ý¤òÍ¿¤¨¤«¤Í¤Ê¤¤Æ°ºî¤ò¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ç¤â¡¢ ³Îǧ¤ÎÆþÎϤʤ·¤Ç¼Â¹Ô¤·¤Æ¤·¤Þ¤¦´í¸±¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£ ¤è¤Û¤É¤Î¾õ¶·¤Ç¤Ê¤±¤ì¤Ð¡¢»ÈÍѤ·¤Ê¤¤Êý¤¬¤¤¤¤¤Ç¤·¤ç¤¦¡£ +force\-yes +¤Ï¡¢¤¢¤Ê¤¿¤Î¥·¥¹¥Æ¥à¤òÇ˲õ¤·¤«¤Í¤Þ¤»¤ó! ÀßÄê¹àÌÜ \- +APT::Get::force\-yes +.RE +.PP +\fB\-\-print\-uris\fR +.RS 3n +¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Õ¥¡¥¤¥ë¤ò¼èÆÀ¤¹¤ëÂå¤ï¤ê¤Ë¡¢ ¤½¤Î URI ¤òɽ¼¨¤·¤Þ¤¹¡£ URI ¤Ë¤Ï¡¢¥Ñ¥¹¡¢Âоݥե¡¥¤¥ë̾¡¢¥Õ¥¡¥¤¥ë¥µ¥¤¥º¡¢ ͽ¬¤µ¤ì¤ë md5 ¥Ï¥Ã¥·¥å¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ ½ÐÎϤ·¤¿¥Õ¥¡¥¤¥ë̾¤¬¡¢ ¾ï¤Ë¥ê¥â¡¼¥È¥µ¥¤¥È¤Î¥Õ¥¡¥¤¥ë̾¤È°ìÃפ¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡¢ ¤È¤¤¤¦¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤! ¤³¤ì¤Ï +source +¥³¥Þ¥ó¥É¡¢ +update +¥³¥Þ¥ó¥É¤Ç¤âÆ°ºî¤·¤Þ¤¹¡£ +update +¤Ç»ÈÍѤ·¤¿¤È¤­¤Ë¤Ï¡¢ MD5 ¤ä¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤ò´Þ¤ß¤Þ¤»¤ó¡£ ¤³¤Î¤È¤­¡¢°µ½Ì¥Õ¥¡¥¤¥ë¤ÎŸ³«¤Ï¥æ¡¼¥¶¤ÎÀÕǤ¤Ë¤ª¤¤¤Æ¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£ ÀßÄê¹àÌÜ \- +APT::Get::Print\-URIs +.RE +.PP +\fB\-\-purge\fR +.RS 3n +ºï½ü¤¹¤ëºÝ¡¢¡Öºï½ü¡×¤Ç¤Ï¤Ê¤¯¡Ö´°Á´ºï½ü¡×¤ò¹Ô¤¤¤Þ¤¹¡£ ¡Ö´°Á´ºï½ü¡×¤ò¹Ô¤¦¤È»Ø¼¨¤·¤¿¥Ñ¥Ã¥±¡¼¥¸Ì¾¤Î¸å¤Ë¤Ï¡¢ ¥¢¥¹¥¿¥ê¥¹¥¯ ("*") ¤¬ÉÕ¤­¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Purge +.RE +.PP +\fB\-\-reinstall\fR +.RS 3n +¤¹¤Ç¤ËºÇ¿·ÈǤ¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Æ¤â¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤òºÆ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::ReInstall. +.RE +.PP +\fB\-\-list\-cleanup\fR +.RS 3n +¤³¤Îµ¡Ç½¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç ON ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ OFF ¤Ë¤¹¤ë¤Ë¤Ï +\-\-no\-list\-cleanup +¤È¤·¤Æ¤¯¤À¤µ¤¤¡£ ON ¤Î¾ì¹ç¡¢ +\fBapt\-get\fR +¤Ï¸Å¤¯¤Ê¤Ã¤¿¥Õ¥¡¥¤¥ë¤ò³Î¼Â¤Ë¾Ãµî¤¹¤ë¤¿¤á¡¢ ¼«Æ°Åª¤Ë +\fI/var/lib/apt/lists\fR +¤ÎÃæ¿È¤ò´ÉÍý¤·¤Þ¤¹¡£ ¤³¤ì¤ò OFF ¤Ë¤¹¤ë¤Î¤Ï¡¢¼èÆÀ¸µ¥ê¥¹¥È¤òÉÑÈˤËÊѹ¹¤¹¤ë»þ¤°¤é¤¤¤Ç¤·¤ç¤¦¡£ ÀßÄê¹àÌÜ \- +APT::Get::List\-Cleanup. +.RE +.PP +\fB\-t\fR, \fB\-\-target\-release\fR, \fB\-\-default\-release\fR +.RS 3n +¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¥Ý¥ê¥·¡¼¥¨¥ó¥¸¥ó¤Ø¤Î¥Ç¥Õ¥©¥ë¥ÈÆþÎϤòÀ©¸æ¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢»ØÄꤵ¤ì¤¿¥ê¥ê¡¼¥¹Ê¸»úÎó¤ò»ÈÍѤ·¡¢ ¥Ç¥Õ¥©¥ë¥È pin ¤òÍ¥ÀèÅÙ 990 ¤ÇºîÀ®¤¹¤ë¤³¤È¤Ç¤¹¡£ Í¥Àè¥Õ¥¡¥¤¥ë¤Ï¤³¤ÎÀßÄê¤ò¾å½ñ¤­¤·¤Þ¤¹¡£ Íפ¹¤ë¤Ë¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç¡¢ ¤É¤ÎÇÛÉۥѥ屡¼¥¸¤ò¼èÆÀ¤¹¤ë¤«¤ò´Êñ¤Ë´ÉÍý¤·¤Þ¤¹¡£ °ìÈÌŪ¤ÊÎã¤È¤·¤Æ¤Ï¡¢ +\fB\-t '2.1*'\fR +¤ä +\fB\-t unstable\fR +¤Ç¤·¤ç¤¦¡£ ÀßÄê¹àÌÜ \- +APT::Default\-Release +\fBapt_preferences\fR(5) +¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤â¤´Í÷¤¯¤À¤µ¤¤¡£ +.RE +.PP +\fB\-\-trivial\-only\fR +.RS 3n +¡Ö½ÅÍפǤʤ¤¡×Áàºî¤Î¤ß¤ò¹Ô¤¤¤Þ¤¹¡£ ¤³¤ì¤ÏÏÀÍýŪ¤Ë +\fB\-\-assume\-yes\fR +¤ÎÃç´Ö¤È¸«¤Ê¤»¤Þ¤¹¡£ +\fB\-\-assume\-yes\fR +¤Ï¼ÁÌä¤Ë¤¹¤Ù¤Æ yes ¤ÈÅú¤¨¤Þ¤¹¤¬¡¢ +\fB\-\-trivial\-only\fR +¤Ï¤¹¤Ù¤Æ no ¤ÈÅú¤¨¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Trivial\-Only +.RE +.PP +\fB\-\-no\-remove\fR +.RS 3n +¥Ñ¥Ã¥±¡¼¥¸¤¬ºï½ü¤µ¤ì¤ë¾õ¶·¤Ë¤Ê¤Ã¤¿¤È¤­¡¢ ¥×¥í¥ó¥×¥È¤òɽ¼¨¤»¤ºÃæÃǤ·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Remove +.RE +.PP +\fB\-\-only\-source\fR +.RS 3n +source +¥³¥Þ¥ó¥É¤È +build\-dep +¥³¥Þ¥ó¥É¤Ç¤Î¤ß°ÕÌ£¤¬¤¢¤ê¤Þ¤¹¡£ »ØÄꤵ¤ì¤¿¥½¡¼¥¹Ì¾¤¬¥Ð¥¤¥Ê¥ê¥Æ¡¼¥Ö¥ë¤Ë¥Þ¥Ã¥×¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢ ¥Ð¥¤¥Ê¥ê¥Ñ¥Ã¥±¡¼¥¸Ì¾¤ò¼õ¤±ÉÕ¤±¤ÆÂбþ¤¹¤ë¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤òõ¤¹¤Î¤Ç¤Ï¤Ê¤¯¡¢ °ú¿ô¤Ë¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸Ì¾¤·¤«¼õ¤±ÉÕ¤±¤Ê¤¯¤Ê¤ë¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Only\-Source +.RE +.PP +\fB\-\-diff\-only\fR, \fB\-\-tar\-only\fR +.RS 3n +¥½¡¼¥¹¥¢¡¼¥«¥¤¥Ö¤Î diff ¥Õ¥¡¥¤¥ë¤ä tar ¥Õ¥¡¥¤¥ë¤Î¥À¥¦¥ó¥í¡¼¥É¤Î¤ß¤ò¹Ô¤¤¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Diff\-Only, +APT::Get::Tar\-Only +.RE +.PP +\fB\-\-arch\-only\fR +.RS 3n +¹½Ã۰͸´Ø·¸¤Î²ò·è¤ò¡¢ ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë°Í¸¤·¤¿¤â¤Î¤Î¤ß¹Ô¤¤¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Arch\-Only +.RE +.PP +\fB\-\-allow\-unauthenticated\fR +.RS 3n +¥Ñ¥Ã¥±¡¼¥¸¤ò³Îǧ¤Ç¤­¤Ê¤¤¾ì¹ç¤Ë̵»ë¤·¡¢ ¤½¤ì¤Ë¤Ä¤¤¤Æ¼ÁÌ䤷¤Þ¤»¤ó¡£ pbuilder ¤Î¤è¤¦¤Ê¥Ä¡¼¥ë¤ÇÊØÍø¤Ç¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::AllowUnauthenticated +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +»È¤¤Êý¤Îû¤¤Í×Ìó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +ÀßÄê¥Õ¥¡¥¤¥ë¡£ »ÈÍѤ¹¤ëÀßÄê¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤¬Æɤá¤Ê¤¤¾ì¹ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¤Þ¤¹¡£ ʸˡ¤Ë¤Ä¤¤¤Æ¤Ï +\fBapt.conf\fR(5) +¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +ÀßÄꥪ¥×¥·¥ç¥ó¤Î¥»¥Ã¥È¡£Ç¤°Õ¤ÎÀßÄꥪ¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£ ʸˡ¤Ï +\fB\-o Foo::Bar=bar\fR +¤È¤Ê¤ê¤Þ¤¹¡£ +.RE +.SH "¥Õ¥¡¥¤¥ë" +.PP +\fI/etc/apt/sources.list\fR +.RS 3n +¥Ñ¥Ã¥±¡¼¥¸¤Î¼èÆÀ¸µ¡£ ÀßÄê¹àÌÜ \- +Dir::Etc::SourceList +.RE +.PP +\fI/etc/apt/apt.conf\fR +.RS 3n +APT ÀßÄê¥Õ¥¡¥¤¥ë¡£ ÀßÄê¹àÌÜ \- +Dir::Etc::Main +.RE +.PP +\fI/etc/apt/apt.conf.d/\fR +.RS 3n +APT ÀßÄê¥Õ¥¡¥¤¥ë¤ÎÃÇÊÒ¡£ ÀßÄê¹àÌÜ \- +Dir::Etc::Parts +.RE +.PP +\fI/etc/apt/preferences\fR +.RS 3n +¥Ð¡¼¥¸¥ç¥óÍ¥Àè¥Õ¥¡¥¤¥ë¡£ ¤³¤³¤Ë "pin" ¤ÎÀßÄê¤ò¹Ô¤¤¤Þ¤¹¡£ ¤Ä¤Þ¤ê¡¢ÊÌ¡¹¤Î¼èÆÀ¸µ¤ä°Û¤Ê¤ë¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¡¢ ¤É¤³¤«¤é¥Ñ¥Ã¥±¡¼¥¸¤ò¼èÆÀ¤¹¤ë¤«¤òÀßÄꤷ¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +Dir::Etc::Preferences +.RE +.PP +\fI/var/cache/apt/archives/\fR +.RS 3n +¼èÆÀºÑ¤ß¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë³ÊǼ¥¨¥ê¥¢¡£ ÀßÄê¹àÌÜ \- +Dir::Cache::Archives +.RE +.PP +\fI/var/cache/apt/archives/partial/\fR +.RS 3n +¼èÆÀÃæ¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë³ÊǼ¥¨¥ê¥¢¡£ ÀßÄê¹àÌÜ \- +Dir::Cache::Archives +(ɬÁ³Åª¤ËÉÔ´°Á´) +.RE +.PP +\fI/var/lib/apt/lists/\fR +.RS 3n +\fBsources.list\fR(5) +¤Î¥Ñ¥Ã¥±¡¼¥¸¥ê¥½¡¼¥¹ÆÃÍ­¤Î¾õÂÖ¾ðÊó³ÊǼ¥¨¥ê¥¢¡£ ÀßÄê¹àÌÜ \- +Dir::State::Lists +.RE +.PP +\fI/var/lib/apt/lists/partial/\fR +.RS 3n +¼èÆÀÃæ¤Î¾õÂÖ¾ðÊó³ÊǼ¥¨¥ê¥¢¡£ ÀßÄê¹àÌÜ \- +Dir::State::Lists +(ɬÁ³Åª¤ËÉÔ´°Á´) +.RE +.SH "´ØÏ¢¹àÌÜ" +.PP +\fBapt\-cache\fR(8), +\fBapt\-cdrom\fR(8), +\fBdpkg\fR(8), +\fBdselect\fR(8), +\fBsources.list\fR(5), +\fBapt.conf\fR(5), +\fBapt\-config\fR(8), /usr/share/doc/apt/ ¤Î APT ¥æ¡¼¥¶¡¼¥º¥¬¥¤¥É, +\fBapt_preferences\fR(5), APT Howto +.SH "¿ÇÃÇ¥á¥Ã¥»¡¼¥¸" +.PP +\fBapt\-get\fR +¤ÏÀµ¾ï½ªÎ»»þ¤Ë 0 ¤òÊÖ¤·¤Þ¤¹¡£ ¥¨¥é¡¼»þ¤Ë¤Ï½½¿Ê¤Î 100 ¤òÊÖ¤·¤Þ¤¹¡£ +.SH "¥Ð¥°" +.PP +[1]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt-get.ja.8 b/doc/ja/apt-get.ja.8 new file mode 100644 index 0000000..db74af4 --- /dev/null +++ b/doc/ja/apt-get.ja.8 @@ -0,0 +1,484 @@ +.\" Title: apt\-get +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-GET" "8" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-get \- APT package handling utility \-\- ¥³¥Þ¥ó¥É¥é¥¤¥ó¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +.SH "SYNOPSIS" +.HP 8 +\fBapt\-get\fR [\fB\-hvs\fR] [\fB\-o=\fR\fB\fIconfig\ string\fR\fR] [\fB\-c=\fR\fB\fIfile\fR\fR] {[update] | [upgrade] | [dselect\-upgrade] | [install\ \fIpkg\fR...] | [remove\ \fIpkg\fR...] | [source\ \fIpkg\fR...] | [build\-dep\ \fIpkg\fR...] | [check] | [clean] | [autoclean]} +.SH "ÀâÌÀ" +.PP +\fBapt\-get\fR +¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤òÁàºî¤¹¤ë¥³¥Þ¥ó¥É¥é¥¤¥ó¥Ä¡¼¥ë¤Ç¡¢ APT ¥é¥¤¥Ö¥é¥ê¤òÍѤ¤¤ë¾¤Î¥Ä¡¼¥ë¤Î¥æ¡¼¥¶Â¦¡Ö¥Ð¥Ã¥¯¥¨¥ó¥É¡×¤È¤¤¤¨¤ë¤â¤Î¤Ç¤¹¡£ ¡Ö¥Õ¥í¥ó¥È¥¨¥ó¥É¡×¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ï¡¢dselect(8), aptitude, synaptic, gnome\-apt, wajig ¤Ê¤É¤¬¤¢¤ê¤Þ¤¹¡£ +.PP +\fB\-h\fR +¥ª¥×¥·¥ç¥ó¤ä +\fB\-\-help\fR +¥ª¥×¥·¥ç¥ó¤ò½ü¤­¡¢ °Ê²¼¤Ëµó¤²¤ë¥³¥Þ¥ó¥É¤¬É¬ÍפǤ¹¡£ +.PP +update +.RS 3n +update¤Ï¡¢ ¼èÆÀ¸µ¤«¤é¥Ñ¥Ã¥±¡¼¥¸¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤ÎºÆƱ´ü¤ò¹Ô¤¦¤Î¤Ë»ÈÍѤ·¤Þ¤¹¡£ ÍøÍѲÄǽ¤Ê¥Ñ¥Ã¥±¡¼¥¸¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¡¢ +\fI/etc/apt/sources.list\fR +¤Ëµ­½Ò¤·¤¿¾ì½ê¤«¤é¼èÆÀ¤·¤Þ¤¹¡£ Î㤨¤Ð Debian ¥¢¡¼¥«¥¤¥Ö¤òÍøÍѤ¹¤ëºÝ¡¢ ¤³¤Î¥³¥Þ¥ó¥É¤¬ +\fIPackages.gz\fR +¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë¤³¤È¤Ç¡¢ ¿·µ¬¤Þ¤¿¤Ï¹¹¿·¤µ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤Î¾ðÊó¤¬ÍøÍѲÄǽ¤È¤Ê¤ê¤Þ¤¹¡£ +update +¤Ï¡¢upgrade +¤ä +dist\-upgrade +¤ò¹Ô¤¦Á°¤Ë¾ï¤Ë¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£ Á°¤â¤Ã¤Æ¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤òÃΤ뤳¤È¤¬¤Ç¤­¤Ê¤¤¤¿¤á¡¢ Á´ÂΤοÊĽ¥á¡¼¥¿¤ÏÀµ¤·¤¯É½¼¨¤µ¤ì¤Þ¤»¤ó¡£ +.RE +.PP +upgrade +.RS 3n +upgrade +¤Ï¡¢ ¸½ºß¥·¥¹¥Æ¥à¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ëÁ´¥Ñ¥Ã¥±¡¼¥¸¤ÎºÇ¿·¥Ð¡¼¥¸¥ç¥ó¤ò¡¢ +\fI/etc/apt/sources.list\fR +¤ËÎóµó¤·¤¿¼èÆÀ¸µ¤«¤é¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤Î¤Ë»ÈÍѤ·¤Þ¤¹¡£ ¸½ºß¥¤¥ó¥¹¥È¡¼¥ëÃæ¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ë¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤¬¤¢¤ì¤Ð¹¹¿·¤·¤Þ¤¹¤¬¡¢ ¤¤¤«¤Ê¤ë»þ¤â¸½ºß¥¤¥ó¥¹¥È¡¼¥ëÃæ¤Î¥Ñ¥Ã¥±¡¼¥¸¤Îºï½ü¤Ï¹Ô¤¤¤Þ¤»¤ó¡£ ÂоݤΥѥ屡¼¥¸¤¬¡¢ ¾¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥¤¥ó¥¹¥È¡¼¥ë¾õÂÖ¤òÊѹ¹¤»¤º¤Ë¹¹¿·¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¡¢ ¸½ºß¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¤Þ¤Þ¤È¤Ê¤ê¤Þ¤¹¡£ ºÇ½é¤Ë +update +¤ò¼Â¹Ô¤·¤Æ¤ª¤­¡¢ +\fBapt\-get\fR +¤Ë¥Ñ¥Ã¥±¡¼¥¸¤Î¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤¬¤¢¤ë¤³¤È¤ò ÃΤ餻¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.RE +.PP +dselect\-upgrade +.RS 3n +dselect\-upgrade +¤Ï¡¢ ÅÁÅýŪ¤Ê Debian GNU/Linux ¥Ñ¥Ã¥±¡¼¥¸´ÉÍý¥Õ¥í¥ó¥È¥¨¥ó¥É¤Î +\fBdselect\fR(8) +¤È¶¦¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£ +dselect\-upgrade +¤Ï¡¢ +\fBdselect\fR(8) +¤Çºî¤é¤ì¤¿ÍøÍѲÄǽ¥Ñ¥Ã¥±¡¼¥¸¤Î +Status +¥Õ¥£¡¼¥ë¥É¤ÎÊѹ¹¤òÄÉÀפ·¡¢ ¤½¤Î¾õÂÖ¤òÈ¿±Ç¤µ¤»¤ë¤Î¤ËɬÍפʥ¢¥¯¥·¥ç¥ó¤ò¼Â¹Ô¤·¤Þ¤¹¡£ (Î㤨¤Ð¡¢¸Å¤¤¥Ñ¥Ã¥±¡¼¥¸¤Îºï½ü¤ä¿·¤·¤¤¥Ñ¥Ã¥±¡¼¥¸¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Ê¤É) +.RE +.PP +dist\-upgrade +.RS 3n +dist\-upgrade +¤Ï¡¢ +upgrade +¤Îµ¡Ç½¤Ë²Ã¤¨¡¢ ¿·¥Ð¡¼¥¸¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤ËÂФ¹¤ë°Í¸´Ø·¸¤ÎÊѹ¹¤òÃÎŪ¤ËÁàºî¤·¤Þ¤¹¡£ +\fBapt\-get\fR +¤Ï¡ÖÀöÎý¤µ¤ì¤¿¡×¶¥¹ç²ò·è¥·¥¹¥Æ¥à¤ò»ý¤Á¡¢ ɬÍפȤ¢¤é¤ÐÈæ³ÓŪ½ÅÍפǤʤ¤¥Ñ¥Ã¥±¡¼¥¸¤òµ¾À·¤Ë¤·¤Æ¡¢ ºÇ½ÅÍץѥ屡¼¥¸¤Î¹¹¿·¤ò»î¤ß¤Þ¤¹¡£ +\fI/etc/apt/sources.list\fR +¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢ ɬÍפʥѥ屡¼¥¸¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë¾ì½ê¤Î¥ê¥¹¥È¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ ÆÃÄê¤Î¥Ñ¥Ã¥±¡¼¥¸¸þ¤±¤Ë¡¢°ìÈÌŪ¤ÊÀßÄê¤ò¾å½ñ¤­¤¹¤ëµ¡¹½¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +\fBapt_preferences\fR(5) +¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.RE +.PP +install +.RS 3n +install +¤Î¸å¤Ë¤Ï¡¢ ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤ò 1 ¤Ä°Ê¾å»ØÄꤷ¤Þ¤¹¡£ »ØÄꤹ¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢´°Á´¤Ê¥Õ¥¡¥¤¥ë̾¤Ç¤Ï¤Ê¤¯¥Ñ¥Ã¥±¡¼¥¸Ì¾¤Ç¤¹¡£ (Î㤨¤Ð Debian GNU/Linux ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +libc6_1.9.6\-2.deb +¤Ç¤Ï¤Ê¤¯ libc6 ¤ò°ú¿ô¤È¤·¤ÆÍ¿¤¨¤Þ¤¹) ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤è¤¦»ØÄꤷ¤¿¤¹¤Ù¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸¤ËÂФ·¡¢ ¸¡º÷¡¦¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤¤¤Þ¤¹¡£ +\fI/etc/apt/sources.list\fR +¥Õ¥¡¥¤¥ë¤ò¡¢ Í׵᤹¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¾ì½ê¤òÆÃÄꤹ¤ë¤Î¤Ë»ÈÍѤ·¤Þ¤¹¡£ ¥Ñ¥Ã¥±¡¼¥¸Ì¾¤Î¸å¤í¤Ë (¶õÇò¤ò´Þ¤Þ¤º) ¥Ï¥¤¥Õ¥ó¤¬Äɲ䵤ì¤Æ¤¤¤ë¾ì¹ç¡¢ ¤½¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ì¤Ðºï½ü¤·¤Þ¤¹¡£ ƱÍͤˡ¢¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤òÌÀ¼¨¤¹¤ë¤Î¤Ë¥×¥é¥¹µ­¹æ¤â»ÈÍѤǤ­¤Þ¤¹¡£ ¤³¤Îµ­¹æ¤Ï apt\-get ¤Î¶¥¹ç²ò·è¥·¥¹¥Æ¥à¤ÎȽÃǤËÍøÍѤµ¤ì¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ +.sp +¥Ñ¥Ã¥±¡¼¥¸¤Ë¥¤¥³¡¼¥ëµ­¹æ¤È¥Ð¡¼¥¸¥ç¥ó¤ò³¤±¤ë¤³¤È¤Ç¡¢ ÁªÂò¤·¤¿¥Ð¡¼¥¸¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¤Ä¤Þ¤ê¡¢»ØÄê¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤è¤¦¤ËÁªÂò¤¹¤ë¡¢ ¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ Ê̤ÎÊýË¡¤È¤·¤Æ¤Ï¡¢¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤òÆÃÄꤹ¤ë¤Î¤Ë¡¢ ¥Ñ¥Ã¥±¡¼¥¸Ì¾¤Ë³¤±¤Æ¡¢ ¥¹¥é¥Ã¥·¥å¤È¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î¥Ð¡¼¥¸¥ç¥ó¤ä¥¢¡¼¥«¥¤¥Ö̾ (stable, testing, unstable) ¤òµ­½Ò¤Ç¤­¤Þ¤¹¡£ +.sp +¥Ð¡¼¥¸¥ç¥óÁªÂòµ¡¹½¤Ï¥À¥¦¥ó¥°¥ì¡¼¥É»þ¤Ë¤â»ÈÍѤǤ­¤ë¤¿¤á¡¢ Ãí°Õ¤·¤Æ»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ +.sp +ºÇ¸å¤Ë¡¢\fBapt_preferences\fR(5) +µ¡¹½¤Ë¤è¤ê¡¢ ÆÃÄê¤Î¥Ñ¥Ã¥±¡¼¥¸¤ËÂФ¹¤ë¥¤¥ó¥¹¥È¡¼¥ë¥Ý¥ê¥·¡¼¤òºîÀ®¤Ç¤­¤Þ¤¹¡£ +.sp +¹½Ê¸¤Ë '.', '?', '*' ¤ò´Þ¤ß¡¢¥Ñ¥Ã¥±¡¼¥¸Ì¾¤¬¥Þ¥Ã¥Á¤·¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ POSIX Àµµ¬É½¸½¤Ç¤¢¤ë¤È¸«¤Ê¤·¡¢ ¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤ÎÁ´¥Ñ¥Ã¥±¡¼¥¸Ì¾¤ËÂФ·¤ÆŬÍѤ·¤Þ¤¹¡£ ¥Þ¥Ã¥Á¤·¤¿¥Ñ¥Ã¥±¡¼¥¸¤¹¤Ù¤Æ¤¬¥¤¥ó¥¹¥È¡¼¥ë(¤â¤·¤¯¤Ïºï½ü)¤µ¤ì¤Þ¤¹¡£ 'lo.*' ¤Î¤è¤¦¤Êʸ»úÎó¤Ï¡¢ 'how\-lo' ¤ä 'lowest' ¤Ë¥Þ¥Ã¥Á¤¹¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ ¤½¤¦¤·¤¿¤¯¤Ê¤±¤ì¤Ð¡¢'^' ¤ä '$' ¤òÉÕ¤±¤ë¤«¡¢ ¤â¤Ã¤È¾Ü¤·¤¤Àµµ¬É½¸½¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +remove +.RS 3n +remove +¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤¬ºï½ü¤µ¤ì¤ë¤³¤È¤ò½ü¤­¡¢install +¤ÈƱÍͤǤ¹¡£ ¥×¥é¥¹µ­¹æ¤¬¥Ñ¥Ã¥±¡¼¥¸Ì¾¤Ë (´Ö¤Ë¶õÇò¤ò´Þ¤Þ¤º¤Ë) Éղ䵤ì¤ë¤È¡¢ ¼±Ê̤µ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤ò¡¢ºï½ü¤Ç¤Ï¤Ê¤¯¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ +.RE +.PP +source +.RS 3n +source +¤Ï¡¢ ¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤ò¼èÆÀ¤¹¤ë¤Î¤Ë +\fBapt\-get\fR +¤·¤Þ¤¹¡£ APT ¤Ï¤É¤Î¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤ò¼èÆÀ¤¹¤ë¤«·èÄꤹ¤ë¤è¤¦¡¢ ÍøÍѲÄǽ¤Ê¥Ñ¥Ã¥±¡¼¥¸¤ò¸¡Æ¤¤·¤Þ¤¹¡£ ¤½¤Î¸å¡¢ºÇ¿·¤ÎÍøÍѲÄǽ¤Ê¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤ò¸«¤Ä¤±¡¢ ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ø¥À¥¦¥ó¥í¡¼¥É¤·¤Þ¤¹¡£ ¥Ð¥¤¥Ê¥ê¥Ñ¥Ã¥±¡¼¥¸¤È¤ÏÊÌ¤Ë +\fBsources.list\fR(5) +¥Õ¥¡¥¤¥ë¤Î +deb\-src +¹Ô¤«¤é¡¢¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤òÄÉÀפ·¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿ (¤Þ¤¿¤Ï¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­¤ë) ¥Ñ¥Ã¥±¡¼¥¸¤È¡¢ ¼èÆÀ¸µ¤òÊѤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë¤³¤È¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£ \-\-compile ¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢dpkg\-buildpackage ¤òÍѤ¤¤Æ ¥Ð¥¤¥Ê¥ê .deb ¥Õ¥¡¥¤¥ë¤Ø¥³¥ó¥Ñ¥¤¥ë¤ò¹Ô¤¤¤Þ¤¹¡£ \-\-download\-only ¤Î¾ì¹ç¤Ï¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤òŸ³«¤·¤Þ¤»¤ó¡£ +.sp +¥Ñ¥Ã¥±¡¼¥¸¤ÈƱÍͤˡ¢ ¥½¡¼¥¹Ì¾¤Î¸å¤í¤Ë¥¤¥³¡¼¥ë¤È¼èÆÀ¤·¤¿¤¤¥Ð¡¼¥¸¥ç¥ó¤òÃÖ¤¯¤È¡¢ »ØÄꤷ¤¿¥Ð¡¼¥¸¥ç¥ó¤Î¥½¡¼¥¹¤ò¼èÆÀ¤Ç¤­¤Þ¤¹¡£ +APT::Get::Only\-Source +¥ª¥×¥·¥ç¥ó¤¬°ÅÌۤΤ¦¤Á¤ËÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¿¤á¡¢ ¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸Ì¾¤È¥Ð¡¼¥¸¥ç¥ó¤Ë¸·Ì©¤Ë°ìÃפµ¤»¤Æ¤¤¤Þ¤¹¡£ +.sp +tar ball ¤Ï¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Î¤ß¥À¥¦¥ó¥í¡¼¥É¤µ¤ì¡¢ ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤ËŸ³«¤µ¤ì¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +build\-dep +.RS 3n +build\-dep +¤Ï¡¢ ¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤Î¹½Ã۰͸´Ø·¸¤òËþ¤¿¤¹¤è¤¦¤Ë¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Î¥¤¥ó¥¹¥È¡¼¥ë¡¦ºï½ü¤ò¹Ô¤¤¤Þ¤¹¡£ +.RE +.PP +check +.RS 3n +check +¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¥­¥ã¥Ã¥·¥å¤Î¹¹¿·¤ä²õ¤ì¤¿°Í¸´Ø·¸¤ò¥Á¥§¥Ã¥¯¤¹¤ë¿ÇÃǥġ¼¥ë¤Ç¤¹¡£ +.RE +.PP +clean +.RS 3n +clean +¤Ï¡¢ ¼èÆÀ¤·¤¿¥Ñ¥Ã¥±¡¼¥¸¤Î¥í¡¼¥«¥ë¥ê¥Ý¥¸¥È¥ê¤òÁݽü¤·¤Þ¤¹¡£ +\fI/var/cache/apt/archives/\fR +¤È +\fI/var/cache/apt/archives/partial/\fR +¤«¤é¥í¥Ã¥¯¥Õ¥¡¥¤¥ë°Ê³°¤¹¤Ù¤Æºï½ü¤·¤Þ¤¹¡£ APT ¤¬ +\fBdselect\fR(8) +¤«¤é¸Æ¤Ð¤ì¤ë¤È¤­¤Ë¤Ï¡¢ ¼«Æ°Åª¤Ë +clean +¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ dselect¤ò»ÈÍѤ·¤Ê¤¤¾ì¹ç¤Ï¡¢¥Ç¥£¥¹¥¯¥¹¥Ú¡¼¥¹¤ò²òÊü¤¹¤ë¤¿¤á¡¢»þ¡¹ +apt\-get clean +¤ò¼Â¹Ô¤·¤¿¤¯¤Ê¤ë¤Ç¤·¤ç¤¦¡£ +.RE +.PP +autoclean +.RS 3n +clean +¤ÈƱÍͤˡ¢ +autoclean +¤Ï¼èÆÀ¤·¤¿¥Ñ¥Ã¥±¡¼¥¸¤Î¥í¡¼¥«¥ë¥ê¥Ý¥¸¥È¥ê¤òÁݽü¤·¤Þ¤¹¡£ °ã¤¤¤Ï¡¢¤â¤¦¥À¥¦¥ó¥í¡¼¥É¤µ¤ì¤ë¤³¤È¤¬¤Ê¤¤¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤ä¡¢ ¤Û¤È¤ó¤ÉÉÔÍפʥѥ屡¼¥¸¥Õ¥¡¥¤¥ë¤Î¤ß¤òºï½ü¤¹¤ë¤³¤È¤Ç¤¹¡£ ¤³¤Î¤¿¤á¡¢Ä¹¤¤´ü´Ö¡¢¥­¥ã¥Ã¥·¥å¤¬´ÉÍý¤Ç¤­¤º¤ËÈîÂç²½¤¹¤ë¤³¤È¤Ê¤¯¡¢ °Ý»ý¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ÀßÄꥪ¥×¥·¥ç¥ó +APT::Clean\-Installed +¤Ë off ¤ò¥»¥Ã¥È¤·¤Æ¤¤¤ì¤Ð¡¢ ¥¤¥ó¥¹¥È¡¼¥ëºÑ¤Î¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤¬ºï½ü¤µ¤ì¤ë¤Î¤òËɤ²¤Þ¤¹¡£ +.RE +.SH "¥ª¥×¥·¥ç¥ó" +.PP +¤³¤ÎÀâÌÀ¤Ç¼¨¤·¤¿¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¤¹¤Ù¤ÆÀßÄê¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤ÆÀßÄê¤Ç¤­¤Þ¤¹¡£ ÀßÄê¥Õ¥¡¥¤¥ë¤Ë½ñ¤¤¤¿¿¿µ¶Ãͤò¤È¤ë¥ª¥×¥·¥ç¥ó¤Ï +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +¤Ê¤É¤Î¤è¤¦¤Ë¤·¤Æ¾å½ñ¤­¤Ç¤­¤Þ¤¹¡£ +.PP +\fB\-d\fR, \fB\-\-download\-only\fR +.RS 3n +¥À¥¦¥ó¥í¡¼¥É¤Î¤ß \- ¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤Î¼èÆÀ¤Î¤ß¤ò¹Ô¤¤¡¢ Ÿ³«¡¦¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤¤¤Þ¤»¤ó¡£ ÀßÄê¹àÌÜ \- +APT::Get::Download\-Only +.RE +.PP +\fB\-f\fR, \fB\-\-fix\-broken\fR +.RS 3n +½¤Éü \- °Í¸´Ø·¸¤¬²õ¤ì¤¿¥·¥¹¥Æ¥à¤Î½¤Àµ¤ò»î¤ß¤Þ¤¹¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤ò install ¤ä remove ¤È°ì½ï¤Ë»È¤¦¤È¤­¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤ò»ØÄꤷ¤Ê¤¯¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£ ¤É¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò»ØÄꤷ¤Æ¤â¡¢´°Á´¤ËÌäÂê¤ò²ò·è¤·¤Þ¤¹¡£APT ¼«ÂΤϡ¢ ¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë²õ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸°Í¸´Ø·¸¤òµö¤¹¤³¤È¤¬¤Ç¤­¤Ê¤¤¤Î¤Ç¡¢ ½é¤á¤Æ APT ¤ò¼Â¹Ô¤¹¤ë¾ì¹ç¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤¬É¬Íפˤʤ뤳¤È¤¬¤¢¤ê¤Þ¤¹¡£ ¥·¥¹¥Æ¥à¤Î°Í¸´Ø·¸¹½Â¤¤Ë¤«¤Ê¤êÌäÂ꤬¤¢¤ë¾ì¹ç¤Ï¡¢ ¼êÆ°¤Ç½¤Àµ¤¹¤ë¤è¤¦Í׵᤹¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¡£ (Ä̾ï¤Ï¡¢ÌäÂê¤Î¤¢¤ë¥Ñ¥Ã¥±¡¼¥¸¤ò¼è¤ê½ü¤¯¤Î¤Ë +\fBdselect\fR(8) +¤ä +\fBdpkg \-\-remove\fR +¤ò»ÈÍѤ·¤Þ¤¹) ¤³¤Î¥ª¥×¥·¥ç¥ó¤ò +\fB\-m\fR +¥ª¥×¥·¥ç¥ó¤ÈƱ»þ¤Ë»ÈÍѤ¹¤ë¤È¡¢ ¥¨¥é¡¼¤Ë¤Ê¤ë¾õ¶·¤¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ÀßÄê¹àÌÜ \- +APT::Get::Fix\-Broken +.RE +.PP +\fB\-m\fR, \fB\-\-ignore\-missing\fR, \fB\-\-fix\-missing\fR +.RS 3n +·çÍî¥Ñ¥Ã¥±¡¼¥¸¤Î̵»ë \- ¥Ñ¥Ã¥±¡¼¥¸¤¬¼èÆÀ¤Ç¤­¤Ê¤«¤Ã¤¿¤ê¡¢ (¥Ñ¥Ã¥±¡¼¥¸¤ÎÇË»¤Ç) ¼èÆÀ¤·¤¿¸å¤ÎÀ°¹çÀ­¥Á¥§¥Ã¥¯¤òÄ̤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ ¤½¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î½èÍý¤òÊÝα¤·ºÇ¸å¤Þ¤Ç½èÍý¤ò³¤±¤Þ¤¹¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤ò +\fB\-f\fR +¥ª¥×¥·¥ç¥ó¤ÈƱ»þ¤Ë»ÈÍѤ¹¤ë¤È¡¢ ¥¨¥é¡¼¤Ë¤Ê¤ë¾õ¶·¤¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤è¤¦ÁªÂò¤·¤Æ¤¤¤ë¾ì¹ç (Æä˥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç¤ÎÁàºî»þ) ¤ä¡¢ ¥À¥¦¥ó¥í¡¼¥É¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¡¢¤Ê¤Ë¤âɽ¼¨¤»¤ºÊÝα¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Fix\-Missing +.RE +.PP +\fB\-\-no\-download\fR +.RS 3n +¥Ñ¥Ã¥±¡¼¥¸¤Î¥À¥¦¥ó¥í¡¼¥É¤ò̵¸ú¤Ë¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¤¹¤Ç¤Ë¥À¥¦¥ó¥í¡¼¥É¤·¤¿ .deb ¤ËÂФ·¤Æ¤Î¤ß APT ¤ò¹Ô¤¦¾ì¹ç¤Ë¡¢ +\fB\-\-ignore\-missing\fR +¤ÈÊ»¤»¤Æ»È¤¦¤Î¤¬¤è¤¤¤Ç¤·¤ç¤¦¡£ ÀßÄê¹àÌÜ \- +APT::Get::Download +.RE +.PP +\fB\-q\fR, \fB\-\-quiet\fR +.RS 3n +ÀÅ½Í \- ¿ÊĽɽ¼¨¤ò¾Êά¤·¡¢ ¥í¥°¤ò¤È¤ë¤Î¤ËÊØÍø¤Ê½ÐÎϤò¹Ô¤¤¤Þ¤¹¡£ ºÇÂç 2 ¤Ä¤Þ¤Ç q ¤ò½Å¤Í¤ë¤³¤È¤Ç¤è¤êÀŽͤˤǤ­¤Þ¤¹¡£ ¤Þ¤¿¡¢\fB\-q=#\fR +¤Î¤è¤¦¤ËÀŽͥì¥Ù¥ë¤ò»ØÄꤷ¤Æ¡¢ ÀßÄê¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ ÀŽͥì¥Ù¥ë 2 ¤Ï +\fB\-y\fR +¤ò´Þ¤ó¤Ç¤¤¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ APT ¤¬°Õ¿Þ¤·¤Ê¤¤·èÄê¤ò¹Ô¤¦¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç \-d, \-\-print\-uris, \-s ¤Î¤è¤¦¤Ê Áàºî¤ò¹Ô¤ï¤Ê¤¤¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤º¤Ë \-qq ¤ò»ÈÍѤ¹¤ë¤Ù¤­¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ÀßÄê¹àÌÜ \- +quiet +.RE +.PP +\fB\-s\fR, \fB\-\-simulate\fR, \fB\-\-just\-print\fR, \fB\-\-dry\-run\fR, \fB\-\-recon\fR, \fB\-\-no\-act\fR +.RS 3n +Æ°ºî¤Ê¤· \- ¤Ê¤Ë¤¬µ¯¤³¤ë¤Î¤«¤Î¥·¥ß¥å¥ì¡¼¥·¥ç¥ó¤ò¹Ô¤¤¡¢ ¼ÂºÝ¤Ë¤Ï¥·¥¹¥Æ¥à¤ÎÊѹ¹¤ò¹Ô¤¤¤Þ¤»¤ó¡£ ÀßÄê¹àÌÜ \- +APT::Get::Simulate +.sp +¥·¥ß¥å¥ì¡¼¥È¤Î·ë²Ì¡¢dpkg ¤ÎÆ°ºî¤òɽ¤¹°ìÏ¢¤Î¹Ô¤Î¤½¤ì¤¾¤ì¤Ë¡¢ ÀßÄê (Conf)¡¢ºï½ü (Remv)¡¢Å¸³« (Inst) ¤òɽ¼¨¤·¤Þ¤¹¡£ ³Ñ¥«¥Ã¥³¤Ï²õ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤òɽ¤·¡¢(¤Þ¤ì¤Ë) ¶õ¤Î³Ñ¥«¥Ã¥³¤ÏÂ礷¤¿ÌäÂê¤Ç¤Ï¤Ê¤¤¤³¤È¤òɽ¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-y\fR, \fB\-\-yes\fR, \fB\-\-assume\-yes\fR +.RS 3n +¥×¥í¥ó¥×¥È¤Ø¤Î¼«Æ°¾µÂú \- ¤¹¤Ù¤Æ¤Î¥×¥í¥ó¥×¥È¤Ë¼«Æ°Åª¤Ë "yes" ¤ÈÅú¤¨¡¢ÈóÂÐÏÃŪ¤Ë¼Â¹Ô¤·¤Þ¤¹¡£ ÊÝα¤·¤¿¥Ñ¥Ã¥±¡¼¥¸¤Î¾õÂÖ¤òÊѹ¹¤·¤¿¤ê¡¢ ɬ¿Ü¥Ñ¥Ã¥±¡¼¥¸¤òºï½ü¤¹¤ë¤è¤¦¤ÊÉÔŬÀڤʾõ¶·¤Î¾ì¹ç¡¢ +apt\-get +¤Ï½èÍý¤òÃæÃǤ·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Assume\-Yes +.RE +.PP +\fB\-u\fR, \fB\-\-show\-upgraded\fR +.RS 3n +¹¹¿·¥Ñ¥Ã¥±¡¼¥¸É½¼¨ \- ¹¹¿·¤µ¤ì¤ëÁ´¥Ñ¥Ã¥±¡¼¥¸¤ò°ìÍ÷ɽ¼¨¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Show\-Upgraded +.RE +.PP +\fB\-V\fR, \fB\-\-verbose\-versions\fR +.RS 3n +¹¹¿·¡¦¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¥ô¥¡¡¼¥¸¥ç¥ó¤ò¡¢ ¤¹¤Ù¤Æɽ¼¨¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Show\-Versions +.RE +.PP +\fB\-b\fR, \fB\-\-compile\fR, \fB\-\-build\fR +.RS 3n +¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤ò¥À¥¦¥ó¥í¡¼¥É¸å¡¢¥³¥ó¥Ñ¥¤¥ë¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Compile +.RE +.PP +\fB\-\-ignore\-hold\fR +.RS 3n +ÊÝα¥Ñ¥Ã¥±¡¼¥¸¤Î̵»ë \- ¥Ñ¥Ã¥±¡¼¥¸¤ÎÊÝα»Ø¼¨¤ò̵»ë¤·¤Æ +\fBapt\-get\fR +¤ò¹Ô¤¤¤Þ¤¹¡£ +dist\-upgrade +¤È¶¦¤Ë¡¢ ÂçÎ̤Υѥ屡¼¥¸¤òÊÝα¤Î²ò½ü¤ò¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë¤ÈÊØÍø¤Ç¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Ignore\-Hold +.RE +.PP +\fB\-\-no\-upgrade\fR +.RS 3n +¥Ñ¥Ã¥±¡¼¥¸¹¹¿·¤Ê¤· \- +install +¤ÈƱ»þ¤Ë»ÈÍѤ¹¤ë¤È¡¢no\-upgrade +¤Ï¡¢ »ØÄꤷ¤¿¥Ñ¥Ã¥±¡¼¥¸¤¬¤¹¤Ç¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¢¤ë¾ì¹ç¤Ë¹¹¿·¤ò¹Ô¤¤¤Þ¤»¤ó¡£ ÀßÄê¹àÌÜ \- +APT::Get::Upgrade +.RE +.PP +\fB\-\-force\-yes\fR +.RS 3n +¶¯À©¾µÂú \- APT ¤¬²¿¤«Â»½ý¤òÍ¿¤¨¤«¤Í¤Ê¤¤Æ°ºî¤ò¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ç¤â¡¢ ³Îǧ¤ÎÆþÎϤʤ·¤Ç¼Â¹Ô¤·¤Æ¤·¤Þ¤¦´í¸±¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£ ¤è¤Û¤É¤Î¾õ¶·¤Ç¤Ê¤±¤ì¤Ð¡¢»ÈÍѤ·¤Ê¤¤Êý¤¬¤¤¤¤¤Ç¤·¤ç¤¦¡£ +force\-yes +¤Ï¡¢¤¢¤Ê¤¿¤Î¥·¥¹¥Æ¥à¤òÇ˲õ¤·¤«¤Í¤Þ¤»¤ó! ÀßÄê¹àÌÜ \- +APT::Get::force\-yes +.RE +.PP +\fB\-\-print\-uris\fR +.RS 3n +¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Õ¥¡¥¤¥ë¤ò¼èÆÀ¤¹¤ëÂå¤ï¤ê¤Ë¡¢ ¤½¤Î URI ¤òɽ¼¨¤·¤Þ¤¹¡£ URI ¤Ë¤Ï¡¢¥Ñ¥¹¡¢Âоݥե¡¥¤¥ë̾¡¢¥Õ¥¡¥¤¥ë¥µ¥¤¥º¡¢ ͽ¬¤µ¤ì¤ë md5 ¥Ï¥Ã¥·¥å¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ ½ÐÎϤ·¤¿¥Õ¥¡¥¤¥ë̾¤¬¡¢ ¾ï¤Ë¥ê¥â¡¼¥È¥µ¥¤¥È¤Î¥Õ¥¡¥¤¥ë̾¤È°ìÃפ¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡¢ ¤È¤¤¤¦¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤! ¤³¤ì¤Ï +source +¥³¥Þ¥ó¥É¡¢ +update +¥³¥Þ¥ó¥É¤Ç¤âÆ°ºî¤·¤Þ¤¹¡£ +update +¤Ç»ÈÍѤ·¤¿¤È¤­¤Ë¤Ï¡¢ MD5 ¤ä¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤ò´Þ¤ß¤Þ¤»¤ó¡£ ¤³¤Î¤È¤­¡¢°µ½Ì¥Õ¥¡¥¤¥ë¤ÎŸ³«¤Ï¥æ¡¼¥¶¤ÎÀÕǤ¤Ë¤ª¤¤¤Æ¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£ ÀßÄê¹àÌÜ \- +APT::Get::Print\-URIs +.RE +.PP +\fB\-\-purge\fR +.RS 3n +ºï½ü¤¹¤ëºÝ¡¢¡Öºï½ü¡×¤Ç¤Ï¤Ê¤¯¡Ö´°Á´ºï½ü¡×¤ò¹Ô¤¤¤Þ¤¹¡£ ¡Ö´°Á´ºï½ü¡×¤ò¹Ô¤¦¤È»Ø¼¨¤·¤¿¥Ñ¥Ã¥±¡¼¥¸Ì¾¤Î¸å¤Ë¤Ï¡¢ ¥¢¥¹¥¿¥ê¥¹¥¯ ("*") ¤¬ÉÕ¤­¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Purge +.RE +.PP +\fB\-\-reinstall\fR +.RS 3n +¤¹¤Ç¤ËºÇ¿·ÈǤ¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Æ¤â¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤òºÆ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::ReInstall. +.RE +.PP +\fB\-\-list\-cleanup\fR +.RS 3n +¤³¤Îµ¡Ç½¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç ON ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ OFF ¤Ë¤¹¤ë¤Ë¤Ï +\-\-no\-list\-cleanup +¤È¤·¤Æ¤¯¤À¤µ¤¤¡£ ON ¤Î¾ì¹ç¡¢ +\fBapt\-get\fR +¤Ï¸Å¤¯¤Ê¤Ã¤¿¥Õ¥¡¥¤¥ë¤ò³Î¼Â¤Ë¾Ãµî¤¹¤ë¤¿¤á¡¢ ¼«Æ°Åª¤Ë +\fI/var/lib/apt/lists\fR +¤ÎÃæ¿È¤ò´ÉÍý¤·¤Þ¤¹¡£ ¤³¤ì¤ò OFF ¤Ë¤¹¤ë¤Î¤Ï¡¢¼èÆÀ¸µ¥ê¥¹¥È¤òÉÑÈˤËÊѹ¹¤¹¤ë»þ¤°¤é¤¤¤Ç¤·¤ç¤¦¡£ ÀßÄê¹àÌÜ \- +APT::Get::List\-Cleanup. +.RE +.PP +\fB\-t\fR, \fB\-\-target\-release\fR, \fB\-\-default\-release\fR +.RS 3n +¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¥Ý¥ê¥·¡¼¥¨¥ó¥¸¥ó¤Ø¤Î¥Ç¥Õ¥©¥ë¥ÈÆþÎϤòÀ©¸æ¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢»ØÄꤵ¤ì¤¿¥ê¥ê¡¼¥¹Ê¸»úÎó¤ò»ÈÍѤ·¡¢ ¥Ç¥Õ¥©¥ë¥È pin ¤òÍ¥ÀèÅÙ 990 ¤ÇºîÀ®¤¹¤ë¤³¤È¤Ç¤¹¡£ Í¥Àè¥Õ¥¡¥¤¥ë¤Ï¤³¤ÎÀßÄê¤ò¾å½ñ¤­¤·¤Þ¤¹¡£ Íפ¹¤ë¤Ë¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç¡¢ ¤É¤ÎÇÛÉۥѥ屡¼¥¸¤ò¼èÆÀ¤¹¤ë¤«¤ò´Êñ¤Ë´ÉÍý¤·¤Þ¤¹¡£ °ìÈÌŪ¤ÊÎã¤È¤·¤Æ¤Ï¡¢ +\fB\-t '2.1*'\fR +¤ä +\fB\-t unstable\fR +¤Ç¤·¤ç¤¦¡£ ÀßÄê¹àÌÜ \- +APT::Default\-Release +\fBapt_preferences\fR(5) +¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤â¤´Í÷¤¯¤À¤µ¤¤¡£ +.RE +.PP +\fB\-\-trivial\-only\fR +.RS 3n +¡Ö½ÅÍפǤʤ¤¡×Áàºî¤Î¤ß¤ò¹Ô¤¤¤Þ¤¹¡£ ¤³¤ì¤ÏÏÀÍýŪ¤Ë +\fB\-\-assume\-yes\fR +¤ÎÃç´Ö¤È¸«¤Ê¤»¤Þ¤¹¡£ +\fB\-\-assume\-yes\fR +¤Ï¼ÁÌä¤Ë¤¹¤Ù¤Æ yes ¤ÈÅú¤¨¤Þ¤¹¤¬¡¢ +\fB\-\-trivial\-only\fR +¤Ï¤¹¤Ù¤Æ no ¤ÈÅú¤¨¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Trivial\-Only +.RE +.PP +\fB\-\-no\-remove\fR +.RS 3n +¥Ñ¥Ã¥±¡¼¥¸¤¬ºï½ü¤µ¤ì¤ë¾õ¶·¤Ë¤Ê¤Ã¤¿¤È¤­¡¢ ¥×¥í¥ó¥×¥È¤òɽ¼¨¤»¤ºÃæÃǤ·¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Remove +.RE +.PP +\fB\-\-only\-source\fR +.RS 3n +source +¥³¥Þ¥ó¥É¤È +build\-dep +¥³¥Þ¥ó¥É¤Ç¤Î¤ß°ÕÌ£¤¬¤¢¤ê¤Þ¤¹¡£ »ØÄꤵ¤ì¤¿¥½¡¼¥¹Ì¾¤¬¥Ð¥¤¥Ê¥ê¥Æ¡¼¥Ö¥ë¤Ë¥Þ¥Ã¥×¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢ ¥Ð¥¤¥Ê¥ê¥Ñ¥Ã¥±¡¼¥¸Ì¾¤ò¼õ¤±ÉÕ¤±¤ÆÂбþ¤¹¤ë¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤òõ¤¹¤Î¤Ç¤Ï¤Ê¤¯¡¢ °ú¿ô¤Ë¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸Ì¾¤·¤«¼õ¤±ÉÕ¤±¤Ê¤¯¤Ê¤ë¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Only\-Source +.RE +.PP +\fB\-\-diff\-only\fR, \fB\-\-tar\-only\fR +.RS 3n +¥½¡¼¥¹¥¢¡¼¥«¥¤¥Ö¤Î diff ¥Õ¥¡¥¤¥ë¤ä tar ¥Õ¥¡¥¤¥ë¤Î¥À¥¦¥ó¥í¡¼¥É¤Î¤ß¤ò¹Ô¤¤¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Diff\-Only, +APT::Get::Tar\-Only +.RE +.PP +\fB\-\-arch\-only\fR +.RS 3n +¹½Ã۰͸´Ø·¸¤Î²ò·è¤ò¡¢ ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë°Í¸¤·¤¿¤â¤Î¤Î¤ß¹Ô¤¤¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::Arch\-Only +.RE +.PP +\fB\-\-allow\-unauthenticated\fR +.RS 3n +¥Ñ¥Ã¥±¡¼¥¸¤ò³Îǧ¤Ç¤­¤Ê¤¤¾ì¹ç¤Ë̵»ë¤·¡¢ ¤½¤ì¤Ë¤Ä¤¤¤Æ¼ÁÌ䤷¤Þ¤»¤ó¡£ pbuilder ¤Î¤è¤¦¤Ê¥Ä¡¼¥ë¤ÇÊØÍø¤Ç¤¹¡£ ÀßÄê¹àÌÜ \- +APT::Get::AllowUnauthenticated +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +»È¤¤Êý¤Îû¤¤Í×Ìó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +ÀßÄê¥Õ¥¡¥¤¥ë¡£ »ÈÍѤ¹¤ëÀßÄê¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤¬Æɤá¤Ê¤¤¾ì¹ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¤Þ¤¹¡£ ʸˡ¤Ë¤Ä¤¤¤Æ¤Ï +\fBapt.conf\fR(5) +¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +ÀßÄꥪ¥×¥·¥ç¥ó¤Î¥»¥Ã¥È¡£Ç¤°Õ¤ÎÀßÄꥪ¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£ ʸˡ¤Ï +\fB\-o Foo::Bar=bar\fR +¤È¤Ê¤ê¤Þ¤¹¡£ +.RE +.SH "¥Õ¥¡¥¤¥ë" +.PP +\fI/etc/apt/sources.list\fR +.RS 3n +¥Ñ¥Ã¥±¡¼¥¸¤Î¼èÆÀ¸µ¡£ ÀßÄê¹àÌÜ \- +Dir::Etc::SourceList +.RE +.PP +\fI/etc/apt/apt.conf\fR +.RS 3n +APT ÀßÄê¥Õ¥¡¥¤¥ë¡£ ÀßÄê¹àÌÜ \- +Dir::Etc::Main +.RE +.PP +\fI/etc/apt/apt.conf.d/\fR +.RS 3n +APT ÀßÄê¥Õ¥¡¥¤¥ë¤ÎÃÇÊÒ¡£ ÀßÄê¹àÌÜ \- +Dir::Etc::Parts +.RE +.PP +\fI/etc/apt/preferences\fR +.RS 3n +¥Ð¡¼¥¸¥ç¥óÍ¥Àè¥Õ¥¡¥¤¥ë¡£ ¤³¤³¤Ë "pin" ¤ÎÀßÄê¤ò¹Ô¤¤¤Þ¤¹¡£ ¤Ä¤Þ¤ê¡¢ÊÌ¡¹¤Î¼èÆÀ¸µ¤ä°Û¤Ê¤ë¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¡¢ ¤É¤³¤«¤é¥Ñ¥Ã¥±¡¼¥¸¤ò¼èÆÀ¤¹¤ë¤«¤òÀßÄꤷ¤Þ¤¹¡£ ÀßÄê¹àÌÜ \- +Dir::Etc::Preferences +.RE +.PP +\fI/var/cache/apt/archives/\fR +.RS 3n +¼èÆÀºÑ¤ß¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë³ÊǼ¥¨¥ê¥¢¡£ ÀßÄê¹àÌÜ \- +Dir::Cache::Archives +.RE +.PP +\fI/var/cache/apt/archives/partial/\fR +.RS 3n +¼èÆÀÃæ¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë³ÊǼ¥¨¥ê¥¢¡£ ÀßÄê¹àÌÜ \- +Dir::Cache::Archives +(ɬÁ³Åª¤ËÉÔ´°Á´) +.RE +.PP +\fI/var/lib/apt/lists/\fR +.RS 3n +\fBsources.list\fR(5) +¤Î¥Ñ¥Ã¥±¡¼¥¸¥ê¥½¡¼¥¹ÆÃÍ­¤Î¾õÂÖ¾ðÊó³ÊǼ¥¨¥ê¥¢¡£ ÀßÄê¹àÌÜ \- +Dir::State::Lists +.RE +.PP +\fI/var/lib/apt/lists/partial/\fR +.RS 3n +¼èÆÀÃæ¤Î¾õÂÖ¾ðÊó³ÊǼ¥¨¥ê¥¢¡£ ÀßÄê¹àÌÜ \- +Dir::State::Lists +(ɬÁ³Åª¤ËÉÔ´°Á´) +.RE +.SH "´ØÏ¢¹àÌÜ" +.PP +\fBapt\-cache\fR(8), +\fBapt\-cdrom\fR(8), +\fBdpkg\fR(8), +\fBdselect\fR(8), +\fBsources.list\fR(5), +\fBapt.conf\fR(5), +\fBapt\-config\fR(8), /usr/share/doc/apt/ ¤Î APT ¥æ¡¼¥¶¡¼¥º¥¬¥¤¥É, +\fBapt_preferences\fR(5), APT Howto +.SH "¿ÇÃÇ¥á¥Ã¥»¡¼¥¸" +.PP +\fBapt\-get\fR +¤ÏÀµ¾ï½ªÎ»»þ¤Ë 0 ¤òÊÖ¤·¤Þ¤¹¡£ ¥¨¥é¡¼»þ¤Ë¤Ï½½¿Ê¤Î 100 ¤òÊÖ¤·¤Þ¤¹¡£ +.SH "¥Ð¥°" +.PP +[1]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt-get.ja.8.xml b/doc/ja/apt-get.ja.8.xml new file mode 100644 index 0000000..f503b89 --- /dev/null +++ b/doc/ja/apt-get.ja.8.xml @@ -0,0 +1,900 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 February 2004 + + + + apt-get + 8 + + + + + apt-get + + APT package handling utility -- コマンドラインインターフェース + + + + + + apt-get + + + + + update + upgrade + dselect-upgrade + install pkg + remove pkg + source pkg + build-dep pkg + check + clean + autoclean + + + + + + 説明 + + apt-get は、 + パッケージを操作するコマンドラインツールで、 + APT ライブラリを用いる他のツールのユーザ側「バックエンド」といえるものです。 + 「フロントエンド」インターフェースには、dselect(8), + aptitude, synaptic, gnome-apt, wajig などがあります。 + + + オプションや オプションを除き、 + 以下に挙げるコマンドが必要です。 + + + update + + updateは、 + 取得元からパッケージインデックスファイルの再同期を行うのに使用します。 + 利用可能なパッケージのインデックスは、 + /etc/apt/sources.list に記述した場所から取得します。 + 例えば Debian アーカイブを利用する際、 + このコマンドが Packages.gz ファイルを検索することで、 + 新規または更新されたパッケージの情報が利用可能となります。 + update は、upgrade や + dist-upgrade を行う前に常に実行してください。 + 前もってパッケージファイルのサイズを知ることができないため、 + 全体の進捗メータは正しく表示されません。 + + + upgrade + + upgrade は、 + 現在システムにインストールされている全パッケージの最新バージョンを、 + /etc/apt/sources.list + に列挙した取得元からインストールするのに使用します。 + 現在インストール中のパッケージに新しいバージョンがあれば更新しますが、 + いかなる時も現在インストール中のパッケージの削除は行いません。 + 対象のパッケージが、 + 他のパッケージのインストール状態を変更せずに更新できない場合は、 + 現在のバージョンのままとなります。 + 最初に update を実行しておき、 + apt-get にパッケージの新しいバージョンがあることを + 知らせる必要があります。 + + + dselect-upgrade + + dselect-upgrade は、 + 伝統的な Debian GNU/Linux パッケージ管理フロントエンドの &dselect; + と共に使用されます。 + dselect-upgrade は、 + &dselect; で作られた利用可能パッケージの + Status フィールドの変更を追跡し、 + その状態を反映させるのに必要なアクションを実行します。 + (例えば、古いパッケージの削除や新しいパッケージのインストールなど) + + + + dist-upgrade + + dist-upgrade は、 + upgrade の機能に加え、 + 新バージョンのパッケージに対する依存関係の変更を知的に操作します。 + apt-get は「洗練された」競合解決システムを持ち、 + 必要とあらば比較的重要でないパッケージを犠牲にして、 + 最重要パッケージの更新を試みます。 + /etc/apt/sources.list ファイルには、 + 必要なパッケージファイルを検索する場所のリストが含まれています。 + 特定のパッケージ向けに、一般的な設定を上書きする機構については、 + &apt-preferences; をご覧ください。 + + + install + + install の後には、 + インストールするパッケージを 1 つ以上指定します。 + 指定するパッケージは、完全なファイル名ではなくパッケージ名です。 + (例えば Debian GNU/Linux システムでは、 + libc6_1.9.6-2.deb ではなく libc6 を引数として与えます) + インストールするよう指定したすべてのパッケージに対し、 + 検索・インストールを行います。 + /etc/apt/sources.list ファイルを、 + 要求するパッケージの場所を特定するのに使用します。 + パッケージ名の後ろに (空白を含まず) ハイフンが追加されている場合、 + そのパッケージがインストールされていれば削除します。 + 同様に、インストールするパッケージを明示するのにプラス記号も使用できます。 + この記号は apt-get の競合解決システムの判断に利用されるかもしれません。 + + + パッケージにイコール記号とバージョンを続けることで、 + 選択したバージョンのパッケージをインストールすることができます。 + つまり、指定のバージョンのパッケージをインストールするように選択する、 + ということです。 + 別の方法としては、ディストリビューションを特定するのに、 + パッケージ名に続けて、 + スラッシュとディストリビューションのバージョンやアーカイブ名 + (stable, testing, unstable) を記述できます。 + + + バージョン選択機構はダウングレード時にも使用できるため、 + 注意して使用しなければなりません。 + + + 最後に、&apt-preferences; 機構により、 + 特定のパッケージに対するインストールポリシーを作成できます。 + + + 構文に '.', '?', '*' を含み、パッケージ名がマッチしなかった場合、 + POSIX 正規表現であると見なし、 + データベース内の全パッケージ名に対して適用します。 + マッチしたパッケージすべてがインストール(もしくは削除)されます。 + 'lo.*' のような文字列は、 + 'how-lo' や 'lowest' にマッチすることに注意してください。 + そうしたくなければ、'^' や '$' を付けるか、 + もっと詳しい正規表現を指定してください。 + + + remove + + remove は、 + パッケージが削除されることを除き、install と同様です。 + プラス記号がパッケージ名に (間に空白を含まずに) 付加されると、 + 識別されたパッケージを、削除ではなくインストールします。 + + + source + + source は、 + ソースパッケージを取得するのに apt-get します。 + APT はどのソースパッケージを取得するか決定するよう、 + 利用可能なパッケージを検討します。 + その後、最新の利用可能なソースパッケージを見つけ、 + カレントディレクトリへダウンロードします。 + バイナリパッケージとは別に &sources-list; ファイルの + deb-src 行から、ソースパッケージを追跡します。 + これは、インストールした (またはインストールできる) パッケージと、 + 取得元を変えることができることを示しています。 + --compile オプションが指定された場合、dpkg-buildpackage を用いて + バイナリ .deb ファイルへコンパイルを行います。 + --download-only の場合はソースパッケージを展開しません。 + + + パッケージと同様に、 + ソース名の後ろにイコールと取得したいバージョンを置くと、 + 指定したバージョンのソースを取得できます。 + APT::Get::Only-Source + オプションが暗黙のうちに有効になっているため、 + ソースパッケージ名とバージョンに厳密に一致させています。 + + + tar ball はカレントディレクトリにのみダウンロードされ、 + カレントディレクトリに展開されることに注意してください。 + + + build-dep + + build-dep は、 + ソースパッケージの構築依存関係を満たすように、 + パッケージのインストール・削除を行います。 + + + check + + check は、 + パッケージキャッシュの更新や壊れた依存関係をチェックする診断ツールです。 + + + clean + + clean は、 + 取得したパッケージのローカルリポジトリを掃除します。 + &cachedir;/archives/ と + &cachedir;/archives/partial/ + からロックファイル以外すべて削除します。 + APT が &dselect; から呼ばれるときには、 + 自動的に clean が実行されます。 + dselectを使用しない場合は、ディスクスペースを解放するため、時々 + apt-get clean を実行したくなるでしょう。 + + + autoclean + + clean と同様に、 + autoclean は取得したパッケージのローカルリポジトリを掃除します。 + 違いは、もうダウンロードされることがないパッケージファイルや、 + ほとんど不要なパッケージファイルのみを削除することです。 + このため、長い期間、キャッシュが管理できずに肥大化することなく、 + 維持することができます。 + 設定オプション APT::Clean-Installed に + off をセットしていれば、 + インストール済のパッケージファイルが削除されるのを防げます。 + + + + + + オプション + &apt-cmdblurb; + + + + + ダウンロードのみ - パッケージファイルの取得のみを行い、 + 展開・インストールを行いません。 + 設定項目 - APT::Get::Download-Only + + + + + 修復 - 依存関係が壊れたシステムの修正を試みます。 + このオプションを install や remove と一緒に使うときは、 + パッケージを指定しなくてもかまいません。 + どのパッケージを指定しても、完全に問題を解決します。APT 自体は、 + システムに存在する壊れたパッケージ依存関係を許すことができないので、 + 初めて APT を実行する場合、このオプションが必要になることがあります。 + システムの依存関係構造にかなり問題がある場合は、 + 手動で修正するよう要求することもあります。 + (通常は、問題のあるパッケージを取り除くのに &dselect; や + dpkg --remove を使用します) + このオプションを オプションと同時に使用すると、 + エラーになる状況があるかもしれません。 + 設定項目 - APT::Get::Fix-Broken + + + + + + 欠落パッケージの無視 - パッケージが取得できなかったり、 + (パッケージの破損で) 取得した後の整合性チェックを通らなかった場合、 + そのパッケージの処理を保留し最後まで処理を続けます。 + このオプションを オプションと同時に使用すると、 + エラーになる状況があるかもしれません。 + パッケージをインストールするよう選択している場合 + (特にコマンドラインでの操作時) や、 + ダウンロードできなかった場合に、なにも表示せず保留することになります。 + 設定項目 - APT::Get::Fix-Missing + + + + + パッケージのダウンロードを無効にします。 + これはすでにダウンロードした .deb に対してのみ APT を行う場合に、 + と併せて使うのがよいでしょう。 + 設定項目 - APT::Get::Download + + + + + 静粛 - 進捗表示を省略し、 + ログをとるのに便利な出力を行います。 + 最大 2 つまで q を重ねることでより静粛にできます。 + また、 のように静粛レベルを指定して、 + 設定ファイルを上書きすることもできます。 + 静粛レベル 2 は を含んでいることに注意してください。 + APT が意図しない決定を行うかもしれないので -d, --print-uris, -s のような + 操作を行わないオプションをつけずに -qq を使用するべきではありません。 + 設定項目 - quiet + + + + + + + + + + 動作なし - なにが起こるのかのシミュレーションを行い、 + 実際にはシステムの変更を行いません。 + 設定項目 - APT::Get::Simulate + + + シミュレートの結果、dpkg の動作を表す一連の行のそれぞれに、 + 設定 (Conf)、削除 (Remv)、展開 (Inst) を表示します。 + 角カッコは壊れたパッケージを表し、(まれに) + 空の角カッコは大した問題ではないことを表します。 + + + + + + プロンプトへの自動承諾 - すべてのプロンプトに自動的に + "yes" と答え、非対話的に実行します。 + 保留したパッケージの状態を変更したり、 + 必須パッケージを削除するような不適切な状況の場合、 + apt-get は処理を中断します。 + 設定項目 - APT::Get::Assume-Yes + + + + + 更新パッケージ表示 - + 更新される全パッケージを一覧表示します。 + 設定項目 - APT::Get::Show-Upgraded + + + + + 更新・インストールするパッケージのヴァージョンを、 + すべて表示します。 + 設定項目 - APT::Get::Show-Versions + + + + + + ソースパッケージをダウンロード後、コンパイルします。 + 設定項目 - APT::Get::Compile + + + + + 保留パッケージの無視 - パッケージの保留指示を無視して + apt-get を行います。 + dist-upgrade と共に、 + 大量のパッケージを保留の解除をするのに使用すると便利です。 + 設定項目 - APT::Ignore-Hold + + + + + パッケージ更新なし - install + と同時に使用すると、no-upgrade は、 + 指定したパッケージがすでにインストールしてある場合に更新を行いません。 + 設定項目 - APT::Get::Upgrade + + + + + 強制承諾 - + APT が何か損傷を与えかねない動作をしようとした場合でも、 + 確認の入力なしで実行してしまう危険なオプションです。 + よほどの状況でなければ、使用しない方がいいでしょう。 + force-yes は、あなたのシステムを破壊しかねません! + 設定項目 - APT::Get::force-yes + + + + + インストールするファイルを取得する代わりに、 + その URI を表示します。 + URI には、パス、対象ファイル名、ファイルサイズ、 + 予測される md5 ハッシュが含まれています。 + 出力したファイル名が、 + 常にリモートサイトのファイル名と一致するわけではない、 + ということに注意してください! + これは source コマンド、 + update コマンドでも動作します。 + update で使用したときには、 + MD5 やファイルサイズを含みません。 + このとき、圧縮ファイルの展開はユーザの責任において行ってください。 + 設定項目 - APT::Get::Print-URIs + + + + + 削除する際、「削除」ではなく「完全削除」を行います。 + 「完全削除」を行うと指示したパッケージ名の後には、 + アスタリスク ("*") が付きます。 + 設定項目 - APT::Get::Purge + + + + + すでに最新版がインストールされていても、 + パッケージを再インストールします。 + 設定項目 - APT::Get::ReInstall. + + + + + この機能はデフォルトで ON になっています。 + OFF にするには --no-list-cleanup としてください。 + ON の場合、 + apt-get は古くなったファイルを確実に消去するため、 + 自動的に &statedir;/lists の中身を管理します。 + これを OFF にするのは、取得元リストを頻繁に変更する時ぐらいでしょう。 + 設定項目 - APT::Get::List-Cleanup. + + + + + + + このオプションは、 + ポリシーエンジンへのデフォルト入力を制御します。 + これは、指定されたリリース文字列を使用し、 + デフォルト pin を優先度 990 で作成することです。 + 優先ファイルはこの設定を上書きします。 + 要するにこのオプションで、 + どの配布パッケージを取得するかを簡単に管理します。 + 一般的な例としては、 + や でしょう。 + 設定項目 - APT::Default-Release + &apt-preferences; のマニュアルページもご覧ください。 + + + + + + 「重要でない」操作のみを行います。 + これは論理的に の仲間と見なせます。 + は質問にすべて yes と答えますが、 + はすべて no と答えます。 + 設定項目 - APT::Get::Trivial-Only + + + + + パッケージが削除される状況になったとき、 + プロンプトを表示せず中断します。 + 設定項目 - APT::Get::Remove + + + + + source コマンドと + build-dep コマンドでのみ意味があります。 + 指定されたソース名がバイナリテーブルにマップされないようにします。 + これは、このオプションを指定すると、 + バイナリパッケージ名を受け付けて対応するソースパッケージを探すのではなく、 + 引数にソースパッケージ名しか受け付けなくなる、ということです。 + 設定項目 - APT::Get::Only-Source + + + + + ソースアーカイブの diff ファイルや + tar ファイルのダウンロードのみを行います。 + 設定項目 - APT::Get::Diff-Only, + APT::Get::Tar-Only + + + + + 構築依存関係の解決を、 + アーキテクチャに依存したもののみ行います。 + 設定項目 - APT::Get::Arch-Only + + + + + パッケージを確認できない場合に無視し、 + それについて質問しません。 + pbuilder のようなツールで便利です。 + 設定項目 - APT::Get::AllowUnauthenticated + + + + &apt-commonoptions; + + + + + + ファイル + + /etc/apt/sources.list + + パッケージの取得元。 + 設定項目 - Dir::Etc::SourceList + + + /etc/apt/apt.conf + + APT 設定ファイル。 + 設定項目 - Dir::Etc::Main + + + /etc/apt/apt.conf.d/ + + APT 設定ファイルの断片。 + 設定項目 - Dir::Etc::Parts + + + /etc/apt/preferences + + バージョン優先ファイル。 + ここに "pin" の設定を行います。 + つまり、別々の取得元や異なるディストリビューションのバージョンの、 + どこからパッケージを取得するかを設定します。 + 設定項目 - Dir::Etc::Preferences + + + &cachedir;/archives/ + + 取得済みパッケージファイル格納エリア。 + 設定項目 - Dir::Cache::Archives + + + &cachedir;/archives/partial/ + + 取得中パッケージファイル格納エリア。 + 設定項目 - Dir::Cache::Archives (必然的に不完全) + + + &statedir;/lists/ + + &sources-list; のパッケージリソース特有の状態情報格納エリア。 + 設定項目 - Dir::State::Lists + + + &statedir;/lists/partial/ + + 取得中の状態情報格納エリア。 + 設定項目 - Dir::State::Lists (必然的に不完全) + + + + + + 関連項目 + + &apt-cache;, &apt-cdrom;, &dpkg;, &dselect;, &sources-list;, + &apt-conf;, &apt-config;, + &docdir; の APT ユーザーズガイド, &apt-preferences;, APT Howto + + + + 診断メッセージ + + apt-get は正常終了時に 0 を返します。 + エラー時には十進の 100 を返します。 + + + &manbugs; + &translator; + + diff --git a/doc/ja/apt-key.8 b/doc/ja/apt-key.8 new file mode 100644 index 0000000..a4808ee --- /dev/null +++ b/doc/ja/apt-key.8 @@ -0,0 +1,111 @@ +.\" Title: apt\-key +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 14 December 2003 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-KEY" "8" "14 December 2003" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-key \- APT ¥­¡¼´ÉÍý¥æ¡¼¥Æ¥£¥ê¥Æ¥£ +.SH "SYNOPSIS" +.HP 8 +\fBapt\-key\fR [\fIcommand\fR/] [\fB\fIarguments\fR\fR...] +.SH "ÀâÌÀ" +.PP + + +\fBapt\-key\fR +¤Ï¡¢ apt ¤¬ ¥Ñ¥Ã¥±¡¼¥¸¤òǧ¾Ú¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë¥­¡¼¤Î°ìÍ÷¤ò´ÉÍý¤¹¤ë¤Î¤Ë»ÈÍѤ·¤Þ¤¹¡£ ¤³¤Î¥­¡¼¤Çǧ¾Ú¤µ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢¿®Íꤹ¤ë¤Ë­¤ë¤È¸«¤Ê¤»¤ë¤Ç¤·¤ç¤¦¡£ +.SH "¥³¥Þ¥ó¥É" +.PP +add \fIfilename\fR +.RS 3n + +¿®Íꥭ¡¼°ìÍ÷¤Ë¿·¤·¤¤¥­¡¼¤òÄɲä·¤Þ¤¹¡£ ¤³¤Î¥­¡¼¤Ï +\fIfilename\fR +¤«¤éÆɤ߹þ¤ß¤Þ¤¹¤¬¡¢ +\fIfilename\fR +¤ò +\- +¤È¤¹¤ë¤È¡¢ ɸ½àÆþÎϤ«¤éÆɤ߹þ¤ß¤Þ¤¹¡£ +.RE +.PP +del \fIkeyid\fR +.RS 3n + +¿®Íꥭ¡¼°ìÍ÷¤«¤é¥­¡¼¤òºï½ü¤·¤Þ¤¹¡£ +.RE +.PP +list +.RS 3n + +¿®Íꥭ¡¼¤ò°ìÍ÷ɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +update +.RS 3n + +Debian ¥¢¡¼¥«¥¤¥Ö¥­¡¼¤Ç¡¢¥í¡¼¥«¥ë¥­¡¼¥ê¥ó¥°¤ò¹¹¿·¤·¡¢ ¤â¤¦Í­¸ú¤Ç¤Ê¤¤¥­¡¼¤ò¥­¡¼¥ê¥ó¥°¤«¤éºï½ü¤·¤Þ¤¹¡£ +.RE +.SH "¥Õ¥¡¥¤¥ë" +.PP +\fI/etc/apt/trusted.gpg\fR +.RS 3n +¥í¡¼¥«¥ë¿®Íꥭ¡¼¤Î¥­¡¼¥ê¥ó¥°¡£ ¿·¤·¤¤¥­¡¼¤Ï¤³¤³¤ËÄɲ䵤ì¤Þ¤¹¡£ +.RE +.PP +\fI/etc/apt/trustdb.gpg\fR +.RS 3n +¥¢¡¼¥«¥¤¥Ö¥­¡¼¤Î¥í¡¼¥«¥ë¿®Íê¥Ç¡¼¥¿¥Ù¡¼¥¹ +.RE +.PP +\fI/usr/share/keyrings/debian\-archive\-keyring.gpg\fR +.RS 3n +Debian ¥¢¡¼¥«¥¤¥Ö¿®Íꥭ¡¼¤Î¥­¡¼¥ê¥ó¥° +.RE +.PP +\fI/usr/share/keyrings/debian\-archive\-removed\-keys.gpg\fR +.RS 3n +ºï½ü¤µ¤ì¤¿ Debian ¥¢¡¼¥«¥¤¥Ö¿®Íꥭ¡¼¤Î¥­¡¼¥ê¥ó¥° +.RE +.SH "´ØÏ¢¹àÌÜ" +.PP + +\fBapt\-get\fR(8), +\fBapt\-secure\fR(8) +.SH "¥Ð¥°" +.PP +[1]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ãø¼Ô" +.PP +APT ¤Ï the APT team + +¤Ë¤è¤Ã¤Æ ½ñ¤«¤ì¤Þ¤·¤¿¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHOR" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.SH "COPYRIGHT" +Copyright \(co 1998\-2001 Jason Gunthorpe +.br +.SH "REFERENCES" +.TP 3 +1.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt-key.ja.8 b/doc/ja/apt-key.ja.8 new file mode 100644 index 0000000..a4808ee --- /dev/null +++ b/doc/ja/apt-key.ja.8 @@ -0,0 +1,111 @@ +.\" Title: apt\-key +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 14 December 2003 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-KEY" "8" "14 December 2003" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-key \- APT ¥­¡¼´ÉÍý¥æ¡¼¥Æ¥£¥ê¥Æ¥£ +.SH "SYNOPSIS" +.HP 8 +\fBapt\-key\fR [\fIcommand\fR/] [\fB\fIarguments\fR\fR...] +.SH "ÀâÌÀ" +.PP + + +\fBapt\-key\fR +¤Ï¡¢ apt ¤¬ ¥Ñ¥Ã¥±¡¼¥¸¤òǧ¾Ú¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë¥­¡¼¤Î°ìÍ÷¤ò´ÉÍý¤¹¤ë¤Î¤Ë»ÈÍѤ·¤Þ¤¹¡£ ¤³¤Î¥­¡¼¤Çǧ¾Ú¤µ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢¿®Íꤹ¤ë¤Ë­¤ë¤È¸«¤Ê¤»¤ë¤Ç¤·¤ç¤¦¡£ +.SH "¥³¥Þ¥ó¥É" +.PP +add \fIfilename\fR +.RS 3n + +¿®Íꥭ¡¼°ìÍ÷¤Ë¿·¤·¤¤¥­¡¼¤òÄɲä·¤Þ¤¹¡£ ¤³¤Î¥­¡¼¤Ï +\fIfilename\fR +¤«¤éÆɤ߹þ¤ß¤Þ¤¹¤¬¡¢ +\fIfilename\fR +¤ò +\- +¤È¤¹¤ë¤È¡¢ ɸ½àÆþÎϤ«¤éÆɤ߹þ¤ß¤Þ¤¹¡£ +.RE +.PP +del \fIkeyid\fR +.RS 3n + +¿®Íꥭ¡¼°ìÍ÷¤«¤é¥­¡¼¤òºï½ü¤·¤Þ¤¹¡£ +.RE +.PP +list +.RS 3n + +¿®Íꥭ¡¼¤ò°ìÍ÷ɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +update +.RS 3n + +Debian ¥¢¡¼¥«¥¤¥Ö¥­¡¼¤Ç¡¢¥í¡¼¥«¥ë¥­¡¼¥ê¥ó¥°¤ò¹¹¿·¤·¡¢ ¤â¤¦Í­¸ú¤Ç¤Ê¤¤¥­¡¼¤ò¥­¡¼¥ê¥ó¥°¤«¤éºï½ü¤·¤Þ¤¹¡£ +.RE +.SH "¥Õ¥¡¥¤¥ë" +.PP +\fI/etc/apt/trusted.gpg\fR +.RS 3n +¥í¡¼¥«¥ë¿®Íꥭ¡¼¤Î¥­¡¼¥ê¥ó¥°¡£ ¿·¤·¤¤¥­¡¼¤Ï¤³¤³¤ËÄɲ䵤ì¤Þ¤¹¡£ +.RE +.PP +\fI/etc/apt/trustdb.gpg\fR +.RS 3n +¥¢¡¼¥«¥¤¥Ö¥­¡¼¤Î¥í¡¼¥«¥ë¿®Íê¥Ç¡¼¥¿¥Ù¡¼¥¹ +.RE +.PP +\fI/usr/share/keyrings/debian\-archive\-keyring.gpg\fR +.RS 3n +Debian ¥¢¡¼¥«¥¤¥Ö¿®Íꥭ¡¼¤Î¥­¡¼¥ê¥ó¥° +.RE +.PP +\fI/usr/share/keyrings/debian\-archive\-removed\-keys.gpg\fR +.RS 3n +ºï½ü¤µ¤ì¤¿ Debian ¥¢¡¼¥«¥¤¥Ö¿®Íꥭ¡¼¤Î¥­¡¼¥ê¥ó¥° +.RE +.SH "´ØÏ¢¹àÌÜ" +.PP + +\fBapt\-get\fR(8), +\fBapt\-secure\fR(8) +.SH "¥Ð¥°" +.PP +[1]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ãø¼Ô" +.PP +APT ¤Ï the APT team + +¤Ë¤è¤Ã¤Æ ½ñ¤«¤ì¤Þ¤·¤¿¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHOR" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.SH "COPYRIGHT" +Copyright \(co 1998\-2001 Jason Gunthorpe +.br +.SH "REFERENCES" +.TP 3 +1.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt-key.ja.8.xml b/doc/ja/apt-key.ja.8.xml new file mode 100644 index 0000000..732ca9b --- /dev/null +++ b/doc/ja/apt-key.ja.8.xml @@ -0,0 +1,176 @@ + + +%aptent; + +]> + + + &apt-docinfo; + + + apt-key + 8 + + + + + apt-key + + APT キー管理ユーティリティ + + + + + + apt-key + command/ + + + + + + 説明 + + + apt-key は、 + apt が パッケージを認証するのに使用するキーの一覧を管理するのに使用します。 + このキーで認証されたパッケージは、信頼するに足ると見なせるでしょう。 + + + + +コマンド + + add filename + + + + + 信頼キー一覧に新しいキーを追加します。 + このキーは filename から読み込みますが、 + filename を - とすると、 + 標準入力から読み込みます。 + + + + + + del keyid + + + + + 信頼キー一覧からキーを削除します。 + + + + + + + list + + + + + 信頼キーを一覧表示します。 + + + + + + + update + + + + + Debian アーカイブキーで、ローカルキーリングを更新し、 + もう有効でないキーをキーリングから削除します。 + + + + + + + + + + ファイル + + /etc/apt/trusted.gpg + + ローカル信頼キーのキーリング。 + 新しいキーはここに追加されます。 + + + /etc/apt/trustdb.gpg + + アーカイブキーのローカル信頼データベース + + + /usr/share/keyrings/debian-archive-keyring.gpg + + Debian アーカイブ信頼キーのキーリング + + + /usr/share/keyrings/debian-archive-removed-keys.gpg + + 削除された Debian アーカイブ信頼キーのキーリング + + + + + + + + + +関連項目 + +&apt-get;, &apt-secure; + + + + &manbugs; + &manauthor; + &translator; + + + diff --git a/doc/ja/apt-secure.8 b/doc/ja/apt-secure.8 new file mode 100644 index 0000000..6467796 --- /dev/null +++ b/doc/ja/apt-secure.8 @@ -0,0 +1,156 @@ +.\" Title: apt\-secure +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 14 December 2003 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-SECURE" "8" "14 December 2003" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-secure \- APT ¥¢¡¼¥«¥¤¥Öǧ¾Ú¥µ¥Ý¡¼¥È +.SH "ÀâÌÀ" +.PP + +¥Ð¡¼¥¸¥ç¥ó 0.6 ¤è¤ê¡¢\fBapt\fR +Á´¥¢¡¼¥«¥¤¥Ö¤ËÂФ¹¤ë Release ¥Õ¥¡¥¤¥ë¤Î½ð̾¥Á¥§¥Ã¥¯¥³¡¼¥É¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ Release ¥Õ¥¡¥¤¥ë½ð̾¥­¡¼¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¿Í¤¬¡¢ ¥¢¡¼¥«¥¤¥Ö¤Î¥Ñ¥Ã¥±¡¼¥¸¤ÎÊѹ¹¤¬³Î¼Â¤Ë¤Ç¤­¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£ +.PP + +¥Ñ¥Ã¥±¡¼¥¸¤Ë½ð̾¤µ¤ì¤Ê¤«¤Ã¤¿¤ê¡¢apt ¤¬ÃΤé¤Ê¤¤¥­¡¼¤Ç½ð̾¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢ ¥¢¡¼¥«¥¤¥Ö¤«¤éÍ褿¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢¿®Íꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¸«¤Ê¤·¡¢ ¥¤¥ó¥¹¥È¡¼¥ë¤ÎºÝ¤Ë½ÅÍפʷٹð¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ +\fBapt\-get\fR +¤Ï¡¢ ¸½ºß̤½ð̾¤Î¥Ñ¥Ã¥±¡¼¥¸¤ËÂФ·¤Æ·Ù¹ð¤¹¤ë¤À¤±¤Ç¤¹¤¬¡¢ ¾­Íè¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢Á´¥½¡¼¥¹¤ËÂФ·¡¢ ¥Ñ¥Ã¥±¡¼¥¸¥À¥¦¥ó¥í¡¼¥ÉÁ°¤Ë¶¯À©Åª¤Ë¸¡¾Ú¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£ +.PP + + +\fBapt\-get\fR(8), +\fBaptitude\fR(8), +\fBsynaptic\fR(8) +¤È¤¤¤Ã¤¿¥Ñ¥Ã¥±¡¼¥¸¥Õ¥í¥ó¥È¥¨¥ó¥É¤Ï¡¢ ¤³¤Î¿·Ç§¾Úµ¡Ç½¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ +.SH "¿®ÍêºÑ¥¢¡¼¥«¥¤¥Ö" +.PP + +apt ¥¢¡¼¥«¥¤¥Ö¤«¤é¥¨¥ó¥É¥æ¡¼¥¶¤Þ¤Ç¤Î¿®Íê¤ÎÎؤϡ¢ ¤¤¤¯¤Ä¤«¤Î¥¹¥Æ¥Ã¥×¤Ç¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +\fBapt\-secure\fR +¤Ï¡¢¤³¤ÎÎؤκǸå¤Î¥¹¥Æ¥Ã¥×¤Ç¡¢ ¥¢¡¼¥«¥¤¥Ö¤ò¿®Íꤹ¤ë¤³¤È¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Ë°­°Õ¤Î¤¢¤ë¥³¡¼¥É¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¤È¿®Íꤹ¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢ ¥¢¡¼¥«¥¤¥Ö¥á¥ó¥Æ¥Ê¤ò¿®Íꤹ¤ë¤È¸À¤¦¤³¤È¤Ç¤¹¡£ ¤³¤ì¤Ï¡¢¥¢¡¼¥«¥¤¥Ö¤Î´°Á´À­¤òÊݾڤ¹¤ë¤Î¤Ï¡¢ ¥¢¡¼¥«¥¤¥Ö¥á¥ó¥Æ¥Ê¤ÎÀÕǤ¤À¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ +.PP +apt\-secure ¤Ï¥Ñ¥Ã¥±¡¼¥¸¥ì¥Ù¥ë¤Î½ð̾¸¡¾Ú¤Ï¹Ô¤¤¤Þ¤»¤ó¡£ ¤½¤Î¤è¤¦¤Ê¥Ä¡¼¥ë¤¬É¬Íפʾì¹ç¤Ï¡¢ +\fBdebsig\-verify\fR +¤ä +\fBdebsign\fR +(debsig\-verify ¥Ñ¥Ã¥±¡¼¥¸¤È devscripts ¥Ñ¥Ã¥±¡¼¥¸¤Ç¤½¤ì¤¾¤ìÄ󶡤µ¤ì¤Æ¤¤¤Þ¤¹) ¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ +.PP + +Debian ¤Ë¤ª¤±¤ë¿®Íê¤ÎÎؤϡ¢ ¿·¤·¤¤¥Ñ¥Ã¥±¡¼¥¸¤ä¥Ñ¥Ã¥±¡¼¥¸¤Î¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤ò¡¢ ¥á¥ó¥Æ¥Ê¤¬ Debian ¥¢¡¼¥«¥¤¥Ö¤Ë¥¢¥Ã¥×¥í¡¼¥É¤¹¤ë¤³¤È¤Ç»Ï¤Þ¤ê¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢Debian ¥á¥ó¥Æ¥Ê¥­¡¼¥ê¥ó¥° (debian\-keyring ¥Ñ¥Ã¥±¡¼¥¸¤Ë¤¢¤ê¤Þ¤¹) ¤Ë¤¢¤ë¥á¥ó¥Æ¥Ê¤Î¥­¡¼¤Ç½ð̾¤·¤Ê¤±¤ì¤Ð¡¢¥¢¥Ã¥×¥í¡¼¥É¤Ç¤­¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ ¥á¥ó¥Æ¥Ê¤Î¥­¡¼¤Ï¡¢¥­¡¼¤Î½êÍ­¼Ô¤Î¥¢¥¤¥Ç¥ó¥Æ¥£¥Æ¥£¤ò³ÎÊݤ¹¤ë¤¿¤á¡¢ °Ê²¼¤Î¤è¤¦¤Ê»öÁ°¤Ë³ÎΩ¤·¤¿¼êÃʤǡ¢Â¾¤Î¥á¥ó¥Æ¥Ê¤Ë½ð̾¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +.PP + +¥¢¥Ã¥×¥í¡¼¥É¤µ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤´¤È¤Ë¡¢¸¡¾Ú¤·¤Æ¥¢¡¼¥«¥¤¥Ö¤Ë³ÊǼ¤·¤Þ¤¹¡£ ¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢¥á¥ó¥Æ¥Ê¤Î½ð̾¤ò¤Ï¤¬¤µ¤ì¡¢ MD5 sum ¤ò·×»»¤µ¤ì¤Æ¡¢ Packages ¥Õ¥¡¥¤¥ë¤Ë³ÊǼ¤µ¤ì¤Þ¤¹¡£ ¤½¤Î¸å¡¢Á´¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤Î MD5 sum ¤ò·×»»¤·¤Æ¤«¤é¡¢ Release ¥Õ¥¡¥¤¥ë¤ËÃÖ¤­¤Þ¤¹¡£ Release ¥Õ¥¡¥¤¥ë¤Ï¡¢¥¢¡¼¥«¥¤¥Ö¥­¡¼¤Ç½ð̾¤µ¤ì¤Þ¤¹¡£ ¥¢¡¼¥«¥¤¥Ö¥­¡¼¤Ïǯ¤´¤È¤ËºîÀ®¤µ¤ì¡¢FTP ¥µ¡¼¥Ð¤ÇÇÛÉÛ¤µ¤ì¤Þ¤¹¡£ ¤³¤Î¥­¡¼¤â Debian ¥­¡¼¥ê¥ó¥°¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£ +.PP + +¥¨¥ó¥É¥æ¡¼¥¶¤Ïï¤Ç¤â¡¢Release ¥Õ¥¡¥¤¥ë¤Î½ð̾¤ò¥Á¥§¥Ã¥¯¤·¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Î MD5 sum ¤òÃê½Ð¤·¤Æ¡¢¥À¥¦¥ó¥í¡¼¥É¤·¤¿¥Ñ¥Ã¥±¡¼¥¸¤Î MD5 sum ¤ÈÈæ³Ó¤Ç¤­¤Þ¤¹¡£ ¥Ð¡¼¥¸¥ç¥ó 0.6 °ÊÁ°¤Ç¤Ï¡¢¥À¥¦¥ó¥í¡¼¥É¤·¤¿ Debian ¥Ñ¥Ã¥±¡¼¥¸¤Î MD5 sum ¤·¤«¡¢ ¥Á¥§¥Ã¥¯¤·¤Æ¤¤¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¸½ºß¤Ç¤Ï¡¢MD5 sum ¤È Release ¥Õ¥¡¥¤¥ë¤Î½ð̾¤ÎξÊý¤Ç¥Á¥§¥Ã¥¯¤·¤Þ¤¹¡£ +.PP +°Ê¾å¤Ï¡¢¥Ñ¥Ã¥±¡¼¥¸¤´¤È¤Î½ð̾¥Á¥§¥Ã¥¯¤È¤Ï°ã¤¦¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ °Ê²¼¤Î¤è¤¦¤Ë¹Í¤¨¤é¤ì¤ë 2 ¼ïÎà¤Î¹¶·â¤òËɤ°¤è¤¦À߷פµ¤ì¤Æ¤¤¤Þ¤¹¡£ +.TP 3n +\(bu +¥Í¥Ã¥È¥ï¡¼¥¯Ãæ´Ö¼Ô¹¶·â +½ð̾¤ò¥Á¥§¥Ã¥¯¤·¤Ê¤¤¤È¡¢ °­°Õ¤¢¤ë¥¨¡¼¥¸¥§¥ó¥È¤¬¥Ñ¥Ã¥±¡¼¥¸¥À¥¦¥ó¥í¡¼¥É¥×¥í¥»¥¹¤Ë³ä¤ê¹þ¤ó¤À¤ê¡¢ ¥Í¥Ã¥È¥ï¡¼¥¯¹½À®Í×ÁÇ (¥ë¡¼¥¿¡¢¥¹¥¤¥Ã¥Á¤Ê¤É) ¤ÎÀ©¸æ¤ä¡¢ °­´Á¥µ¡¼¥Ð¤Ø¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥È¥é¥Õ¥£¥Ã¥¯¤Î¥ê¥À¥¤¥ì¥¯¥È¤Ê¤É (arp ·Ðͳ¤ä DNS ¥¹¥×¡¼¥Õ¥£¥ó¥°¹¶·â) ¤Ç¡¢ °­°Õ¤¢¤ë¥½¥Õ¥È¥¦¥§¥¢¤òÄϤޤµ¤ì¤¿¤ê¤·¤Þ¤¹¡£ +.TP 3n +\(bu +¥ß¥é¡¼¥Í¥Ã¥È¥ï¡¼¥¯´¶À÷. ½ð̾¤ò¥Á¥§¥Ã¥¯¤·¤Ê¤¤¤È¡¢°­°Õ¤¢¤ë¥¨¡¼¥¸¥§¥ó¥È¤¬¥ß¥é¡¼¥Û¥¹¥È¤Ë´¶À÷¤·¡¢ ¤³¤Î¥Û¥¹¥È¤«¤é¥À¥¦¥ó¥í¡¼¥É¤·¤¿¥æ¡¼¥¶¤¹¤Ù¤Æ¤Ë¡¢ °­°Õ¤¢¤ë¥½¥Õ¥È¥¦¥§¥¢¤¬ÅÁÇŤ¹¤ë¤è¤¦¤Ë¥Õ¥¡¥¤¥ë¤òÊѹ¹¤Ç¤­¤Þ¤¹¡£ +.PP +¤·¤«¤·¤³¤ì¤Ï¡¢ (¥Ñ¥Ã¥±¡¼¥¸¤Ë½ð̾¤¹¤ë) Debian ¥Þ¥¹¥¿¡¼¥µ¡¼¥Ð¼«ÂΤδ¶À÷¤ä¡¢ Release ¥Õ¥¡¥¤¥ë¤Ë½ð̾¤¹¤ë¤Î¤Ë»ÈÍѤ·¤¿¥­¡¼¤Î´¶À÷¤òËɤ²¤Þ¤»¤ó¡£ ¤¤¤º¤ì¤Ë¤»¤è¡¢¤³¤Îµ¡¹½¤Ï¥Ñ¥Ã¥±¡¼¥¸¤´¤È¤Î½ð̾¤òÊä´°¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.SH "¥æ¡¼¥¶¤ÎÀßÄê" +.PP + + +\fBapt\-key\fR +¤Ï¡¢ apt ¤¬»ÈÍѤ¹¤ë¥­¡¼¥ê¥¹¥È¤ò´ÉÍý¤¹¤ë¥×¥í¥°¥é¥à¤Ç¤¹¡£ ¤³¤Î¥ê¥ê¡¼¥¹¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤Ï¡¢Debian ¥Ñ¥Ã¥±¡¼¥¸¥ê¥Ý¥¸¥È¥ê¤Ç»ÈÍѤ¹¤ë¡¢ ¥­¡¼¤Ç½ð̾¤¹¤ë¥Ç¥Õ¥©¥ë¥È¤Î Debian ¥¢¡¼¥«¥¤¥Ö¤òÄ󶡤·¤Þ¤¹¤¬¡¢ +\fBapt\-key\fR +¤Ç¥­¡¼¤ÎÄɲᦺï½ü¤¬¹Ô¤¨¤Þ¤¹¡£ +.PP + +¿·¤·¤¤¥­¡¼¤òÄɲ乤뤿¤á¤Ë¤Ï¡¢¤Þ¤º¥­¡¼¤ò¥À¥¦¥ó¥í¡¼¥É¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ (¼èÆÀ¤¹¤ëºÝ¤Ë¤Ï¡¢¿®Íê¤Ç¤­¤ëÄÌ¿®¥Á¥ã¥Í¥ë¤ò»ÈÍѤ¹¤ë¤è¤¦¡¢ÆäËα°Õ¤·¤Æ¤¯¤À¤µ¤¤) ¼èÆÀ¤·¤¿¥­¡¼¤ò¡¢\fBapt\-key\fR +¤ÇÄɲä·¡¢ +\fBapt\-get update\fR +¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£ °Ê¾å¤Ë¤è¤ê¡¢apt ¤Ï»ØÄꤷ¤¿¥¢¡¼¥«¥¤¥Ö¤«¤é¡¢\fIRelease.gpg\fR +¥Õ¥¡¥¤¥ë¤ò¥À¥¦¥ó¥í¡¼¥É¡¦¸¡¾Ú¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ +.SH "¥¢¡¼¥«¥¤¥Ö¤ÎÀßÄê" +.PP + +¤¢¤Ê¤¿¤¬¥á¥ó¥Æ¥Ê¥ó¥¹¤·¤Æ¤¤¤ë¥¢¡¼¥«¥¤¥Ö¤Ç¡¢¥¢¡¼¥«¥¤¥Ö½ð̾¤òÄ󶡤·¤¿¤¤¾ì¹ç¡¢ °Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ +.TP 3n +\(bu +¾å°Ì Release ¥Õ¥¡¥¤¥ë¤ÎºîÀ® +´û¤Ë¤³¤ì¤¬Â¸ºß¤·¤Æ¤¤¤ë¤Î¤Ç¤Ê¤±¤ì¤Ð¡¢ +\fBapt\-ftparchive release\fR +(apt\-utils ¤ÇÄó¶¡) ¤ò¼Â¹Ô¤·¤ÆºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£ +.TP 3n +\(bu +½ð̾ +\fBgpg \-abs \-o Release.gpg Release\fR +¤ò¼Â¹Ô¤·¤Æ¡¢ ½ð̾¤·¤Æ¤¯¤À¤µ¤¤¡£ +.TP 3n +\(bu +¥­¡¼¤Î»ØÌæ¤òÇÛÉÛ +¤³¤ì¤Ë¤è¤ê¡¢¥¢¡¼¥«¥¤¥ÖÆâ¤Î¥Õ¥¡¥¤¥ëǧ¾Ú¤Ë¡¢ ¤É¤Î¥­¡¼¤ò¥¤¥ó¥Ý¡¼¥È¤¹¤ëɬÍפ¬¤¢¤ë¤«¤ò¡¢ ¥æ¡¼¥¶¤ËÃΤ餻¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ +.PP +¥¢¡¼¥«¥¤¥Ö¤ÎÆâÍƤËÊѲ½¤¬¤¢¤ë¾ì¹ç (¿·¤·¤¤¥Ñ¥Ã¥±¡¼¥¸¤ÎÄɲääºï½ü)¡¢ ¥¢¡¼¥«¥¤¥Ö¥á¥ó¥Æ¥Ê¤ÏÁ°½Ò¤ÎºÇ½é¤Î 1, 2 ¥¹¥Æ¥Ã¥×¤Ë½¾¤ï¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ +.SH "´ØÏ¢¹àÌÜ" +.PP + +\fBapt.conf\fR(5), +\fBapt\-get\fR(8), +\fBsources.list\fR(5), +\fBapt\-key\fR(8), +\fBapt\-archive\fR(1), +\fBdebsign\fR(1) +\fBdebsig\-verify\fR(1), +\fBgpg\fR(1) +.PP +¾ÜºÙ¤ÊÇطʾðÊó¤ò¸¡¾Ú¤¹¤ë¤Î¤Ê¤é¡¢ the Securing Debian Manual (harden\-doc ¥Ñ¥Ã¥±¡¼¥¸¤Ë¤â¤¢¤ê¤Þ¤¹) ¤Î +[1]\&\fIDebian Security Infrastructure\fR +¾Ï¤È¡¢ V. Alex Brennen ¤Ë¤è¤ë +[2]\&\fIStrong Distribution HOWTO\fR +¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "¥Ð¥°" +.PP +[3]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ãø¼Ô" +.PP +APT ¤Ï the APT team + +¤Ë¤è¤Ã¤Æ ½ñ¤«¤ì¤Þ¤·¤¿¡£ +.SH "¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸É®¼Ô" +.PP +¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï Javier Fern«¡ndez\-Sanguino Pe«Ða, Isaac Jones, Colin Walters, Florian Weimer, Michael Vogt ¤Îºî¶È¤ò¸µ¤Ë¤·¤Æ¤¤¤Þ¤¹¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHOR" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.SH "COPYRIGHT" +Copyright \(co 1998\-2001 Jason Gunthorpe +.br +.SH "REFERENCES" +.TP 3 +1.\ Debian Security Infrastructure +\%http://www.debian.org/doc/manuals/securing\-debian\-howto/ch7.en.html +.TP 3 +2.\ Strong Distribution HOWTO +\%http://www.cryptnet.net/fdp/crypto/strong_distro.html +.TP 3 +3.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt-secure.ja.8 b/doc/ja/apt-secure.ja.8 new file mode 100644 index 0000000..6467796 --- /dev/null +++ b/doc/ja/apt-secure.ja.8 @@ -0,0 +1,156 @@ +.\" Title: apt\-secure +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 14 December 2003 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-SECURE" "8" "14 December 2003" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-secure \- APT ¥¢¡¼¥«¥¤¥Öǧ¾Ú¥µ¥Ý¡¼¥È +.SH "ÀâÌÀ" +.PP + +¥Ð¡¼¥¸¥ç¥ó 0.6 ¤è¤ê¡¢\fBapt\fR +Á´¥¢¡¼¥«¥¤¥Ö¤ËÂФ¹¤ë Release ¥Õ¥¡¥¤¥ë¤Î½ð̾¥Á¥§¥Ã¥¯¥³¡¼¥É¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ Release ¥Õ¥¡¥¤¥ë½ð̾¥­¡¼¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¿Í¤¬¡¢ ¥¢¡¼¥«¥¤¥Ö¤Î¥Ñ¥Ã¥±¡¼¥¸¤ÎÊѹ¹¤¬³Î¼Â¤Ë¤Ç¤­¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£ +.PP + +¥Ñ¥Ã¥±¡¼¥¸¤Ë½ð̾¤µ¤ì¤Ê¤«¤Ã¤¿¤ê¡¢apt ¤¬ÃΤé¤Ê¤¤¥­¡¼¤Ç½ð̾¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢ ¥¢¡¼¥«¥¤¥Ö¤«¤éÍ褿¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢¿®Íꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¸«¤Ê¤·¡¢ ¥¤¥ó¥¹¥È¡¼¥ë¤ÎºÝ¤Ë½ÅÍפʷٹð¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ +\fBapt\-get\fR +¤Ï¡¢ ¸½ºß̤½ð̾¤Î¥Ñ¥Ã¥±¡¼¥¸¤ËÂФ·¤Æ·Ù¹ð¤¹¤ë¤À¤±¤Ç¤¹¤¬¡¢ ¾­Íè¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢Á´¥½¡¼¥¹¤ËÂФ·¡¢ ¥Ñ¥Ã¥±¡¼¥¸¥À¥¦¥ó¥í¡¼¥ÉÁ°¤Ë¶¯À©Åª¤Ë¸¡¾Ú¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£ +.PP + + +\fBapt\-get\fR(8), +\fBaptitude\fR(8), +\fBsynaptic\fR(8) +¤È¤¤¤Ã¤¿¥Ñ¥Ã¥±¡¼¥¸¥Õ¥í¥ó¥È¥¨¥ó¥É¤Ï¡¢ ¤³¤Î¿·Ç§¾Úµ¡Ç½¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ +.SH "¿®ÍêºÑ¥¢¡¼¥«¥¤¥Ö" +.PP + +apt ¥¢¡¼¥«¥¤¥Ö¤«¤é¥¨¥ó¥É¥æ¡¼¥¶¤Þ¤Ç¤Î¿®Íê¤ÎÎؤϡ¢ ¤¤¤¯¤Ä¤«¤Î¥¹¥Æ¥Ã¥×¤Ç¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +\fBapt\-secure\fR +¤Ï¡¢¤³¤ÎÎؤκǸå¤Î¥¹¥Æ¥Ã¥×¤Ç¡¢ ¥¢¡¼¥«¥¤¥Ö¤ò¿®Íꤹ¤ë¤³¤È¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Ë°­°Õ¤Î¤¢¤ë¥³¡¼¥É¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¤È¿®Íꤹ¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢ ¥¢¡¼¥«¥¤¥Ö¥á¥ó¥Æ¥Ê¤ò¿®Íꤹ¤ë¤È¸À¤¦¤³¤È¤Ç¤¹¡£ ¤³¤ì¤Ï¡¢¥¢¡¼¥«¥¤¥Ö¤Î´°Á´À­¤òÊݾڤ¹¤ë¤Î¤Ï¡¢ ¥¢¡¼¥«¥¤¥Ö¥á¥ó¥Æ¥Ê¤ÎÀÕǤ¤À¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ +.PP +apt\-secure ¤Ï¥Ñ¥Ã¥±¡¼¥¸¥ì¥Ù¥ë¤Î½ð̾¸¡¾Ú¤Ï¹Ô¤¤¤Þ¤»¤ó¡£ ¤½¤Î¤è¤¦¤Ê¥Ä¡¼¥ë¤¬É¬Íפʾì¹ç¤Ï¡¢ +\fBdebsig\-verify\fR +¤ä +\fBdebsign\fR +(debsig\-verify ¥Ñ¥Ã¥±¡¼¥¸¤È devscripts ¥Ñ¥Ã¥±¡¼¥¸¤Ç¤½¤ì¤¾¤ìÄ󶡤µ¤ì¤Æ¤¤¤Þ¤¹) ¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ +.PP + +Debian ¤Ë¤ª¤±¤ë¿®Íê¤ÎÎؤϡ¢ ¿·¤·¤¤¥Ñ¥Ã¥±¡¼¥¸¤ä¥Ñ¥Ã¥±¡¼¥¸¤Î¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤ò¡¢ ¥á¥ó¥Æ¥Ê¤¬ Debian ¥¢¡¼¥«¥¤¥Ö¤Ë¥¢¥Ã¥×¥í¡¼¥É¤¹¤ë¤³¤È¤Ç»Ï¤Þ¤ê¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢Debian ¥á¥ó¥Æ¥Ê¥­¡¼¥ê¥ó¥° (debian\-keyring ¥Ñ¥Ã¥±¡¼¥¸¤Ë¤¢¤ê¤Þ¤¹) ¤Ë¤¢¤ë¥á¥ó¥Æ¥Ê¤Î¥­¡¼¤Ç½ð̾¤·¤Ê¤±¤ì¤Ð¡¢¥¢¥Ã¥×¥í¡¼¥É¤Ç¤­¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ ¥á¥ó¥Æ¥Ê¤Î¥­¡¼¤Ï¡¢¥­¡¼¤Î½êÍ­¼Ô¤Î¥¢¥¤¥Ç¥ó¥Æ¥£¥Æ¥£¤ò³ÎÊݤ¹¤ë¤¿¤á¡¢ °Ê²¼¤Î¤è¤¦¤Ê»öÁ°¤Ë³ÎΩ¤·¤¿¼êÃʤǡ¢Â¾¤Î¥á¥ó¥Æ¥Ê¤Ë½ð̾¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +.PP + +¥¢¥Ã¥×¥í¡¼¥É¤µ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤´¤È¤Ë¡¢¸¡¾Ú¤·¤Æ¥¢¡¼¥«¥¤¥Ö¤Ë³ÊǼ¤·¤Þ¤¹¡£ ¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢¥á¥ó¥Æ¥Ê¤Î½ð̾¤ò¤Ï¤¬¤µ¤ì¡¢ MD5 sum ¤ò·×»»¤µ¤ì¤Æ¡¢ Packages ¥Õ¥¡¥¤¥ë¤Ë³ÊǼ¤µ¤ì¤Þ¤¹¡£ ¤½¤Î¸å¡¢Á´¥Ñ¥Ã¥±¡¼¥¸¥Õ¥¡¥¤¥ë¤Î MD5 sum ¤ò·×»»¤·¤Æ¤«¤é¡¢ Release ¥Õ¥¡¥¤¥ë¤ËÃÖ¤­¤Þ¤¹¡£ Release ¥Õ¥¡¥¤¥ë¤Ï¡¢¥¢¡¼¥«¥¤¥Ö¥­¡¼¤Ç½ð̾¤µ¤ì¤Þ¤¹¡£ ¥¢¡¼¥«¥¤¥Ö¥­¡¼¤Ïǯ¤´¤È¤ËºîÀ®¤µ¤ì¡¢FTP ¥µ¡¼¥Ð¤ÇÇÛÉÛ¤µ¤ì¤Þ¤¹¡£ ¤³¤Î¥­¡¼¤â Debian ¥­¡¼¥ê¥ó¥°¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£ +.PP + +¥¨¥ó¥É¥æ¡¼¥¶¤Ïï¤Ç¤â¡¢Release ¥Õ¥¡¥¤¥ë¤Î½ð̾¤ò¥Á¥§¥Ã¥¯¤·¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Î MD5 sum ¤òÃê½Ð¤·¤Æ¡¢¥À¥¦¥ó¥í¡¼¥É¤·¤¿¥Ñ¥Ã¥±¡¼¥¸¤Î MD5 sum ¤ÈÈæ³Ó¤Ç¤­¤Þ¤¹¡£ ¥Ð¡¼¥¸¥ç¥ó 0.6 °ÊÁ°¤Ç¤Ï¡¢¥À¥¦¥ó¥í¡¼¥É¤·¤¿ Debian ¥Ñ¥Ã¥±¡¼¥¸¤Î MD5 sum ¤·¤«¡¢ ¥Á¥§¥Ã¥¯¤·¤Æ¤¤¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¸½ºß¤Ç¤Ï¡¢MD5 sum ¤È Release ¥Õ¥¡¥¤¥ë¤Î½ð̾¤ÎξÊý¤Ç¥Á¥§¥Ã¥¯¤·¤Þ¤¹¡£ +.PP +°Ê¾å¤Ï¡¢¥Ñ¥Ã¥±¡¼¥¸¤´¤È¤Î½ð̾¥Á¥§¥Ã¥¯¤È¤Ï°ã¤¦¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ °Ê²¼¤Î¤è¤¦¤Ë¹Í¤¨¤é¤ì¤ë 2 ¼ïÎà¤Î¹¶·â¤òËɤ°¤è¤¦À߷פµ¤ì¤Æ¤¤¤Þ¤¹¡£ +.TP 3n +\(bu +¥Í¥Ã¥È¥ï¡¼¥¯Ãæ´Ö¼Ô¹¶·â +½ð̾¤ò¥Á¥§¥Ã¥¯¤·¤Ê¤¤¤È¡¢ °­°Õ¤¢¤ë¥¨¡¼¥¸¥§¥ó¥È¤¬¥Ñ¥Ã¥±¡¼¥¸¥À¥¦¥ó¥í¡¼¥É¥×¥í¥»¥¹¤Ë³ä¤ê¹þ¤ó¤À¤ê¡¢ ¥Í¥Ã¥È¥ï¡¼¥¯¹½À®Í×ÁÇ (¥ë¡¼¥¿¡¢¥¹¥¤¥Ã¥Á¤Ê¤É) ¤ÎÀ©¸æ¤ä¡¢ °­´Á¥µ¡¼¥Ð¤Ø¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥È¥é¥Õ¥£¥Ã¥¯¤Î¥ê¥À¥¤¥ì¥¯¥È¤Ê¤É (arp ·Ðͳ¤ä DNS ¥¹¥×¡¼¥Õ¥£¥ó¥°¹¶·â) ¤Ç¡¢ °­°Õ¤¢¤ë¥½¥Õ¥È¥¦¥§¥¢¤òÄϤޤµ¤ì¤¿¤ê¤·¤Þ¤¹¡£ +.TP 3n +\(bu +¥ß¥é¡¼¥Í¥Ã¥È¥ï¡¼¥¯´¶À÷. ½ð̾¤ò¥Á¥§¥Ã¥¯¤·¤Ê¤¤¤È¡¢°­°Õ¤¢¤ë¥¨¡¼¥¸¥§¥ó¥È¤¬¥ß¥é¡¼¥Û¥¹¥È¤Ë´¶À÷¤·¡¢ ¤³¤Î¥Û¥¹¥È¤«¤é¥À¥¦¥ó¥í¡¼¥É¤·¤¿¥æ¡¼¥¶¤¹¤Ù¤Æ¤Ë¡¢ °­°Õ¤¢¤ë¥½¥Õ¥È¥¦¥§¥¢¤¬ÅÁÇŤ¹¤ë¤è¤¦¤Ë¥Õ¥¡¥¤¥ë¤òÊѹ¹¤Ç¤­¤Þ¤¹¡£ +.PP +¤·¤«¤·¤³¤ì¤Ï¡¢ (¥Ñ¥Ã¥±¡¼¥¸¤Ë½ð̾¤¹¤ë) Debian ¥Þ¥¹¥¿¡¼¥µ¡¼¥Ð¼«ÂΤδ¶À÷¤ä¡¢ Release ¥Õ¥¡¥¤¥ë¤Ë½ð̾¤¹¤ë¤Î¤Ë»ÈÍѤ·¤¿¥­¡¼¤Î´¶À÷¤òËɤ²¤Þ¤»¤ó¡£ ¤¤¤º¤ì¤Ë¤»¤è¡¢¤³¤Îµ¡¹½¤Ï¥Ñ¥Ã¥±¡¼¥¸¤´¤È¤Î½ð̾¤òÊä´°¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.SH "¥æ¡¼¥¶¤ÎÀßÄê" +.PP + + +\fBapt\-key\fR +¤Ï¡¢ apt ¤¬»ÈÍѤ¹¤ë¥­¡¼¥ê¥¹¥È¤ò´ÉÍý¤¹¤ë¥×¥í¥°¥é¥à¤Ç¤¹¡£ ¤³¤Î¥ê¥ê¡¼¥¹¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤Ï¡¢Debian ¥Ñ¥Ã¥±¡¼¥¸¥ê¥Ý¥¸¥È¥ê¤Ç»ÈÍѤ¹¤ë¡¢ ¥­¡¼¤Ç½ð̾¤¹¤ë¥Ç¥Õ¥©¥ë¥È¤Î Debian ¥¢¡¼¥«¥¤¥Ö¤òÄ󶡤·¤Þ¤¹¤¬¡¢ +\fBapt\-key\fR +¤Ç¥­¡¼¤ÎÄɲᦺï½ü¤¬¹Ô¤¨¤Þ¤¹¡£ +.PP + +¿·¤·¤¤¥­¡¼¤òÄɲ乤뤿¤á¤Ë¤Ï¡¢¤Þ¤º¥­¡¼¤ò¥À¥¦¥ó¥í¡¼¥É¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ (¼èÆÀ¤¹¤ëºÝ¤Ë¤Ï¡¢¿®Íê¤Ç¤­¤ëÄÌ¿®¥Á¥ã¥Í¥ë¤ò»ÈÍѤ¹¤ë¤è¤¦¡¢ÆäËα°Õ¤·¤Æ¤¯¤À¤µ¤¤) ¼èÆÀ¤·¤¿¥­¡¼¤ò¡¢\fBapt\-key\fR +¤ÇÄɲä·¡¢ +\fBapt\-get update\fR +¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£ °Ê¾å¤Ë¤è¤ê¡¢apt ¤Ï»ØÄꤷ¤¿¥¢¡¼¥«¥¤¥Ö¤«¤é¡¢\fIRelease.gpg\fR +¥Õ¥¡¥¤¥ë¤ò¥À¥¦¥ó¥í¡¼¥É¡¦¸¡¾Ú¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ +.SH "¥¢¡¼¥«¥¤¥Ö¤ÎÀßÄê" +.PP + +¤¢¤Ê¤¿¤¬¥á¥ó¥Æ¥Ê¥ó¥¹¤·¤Æ¤¤¤ë¥¢¡¼¥«¥¤¥Ö¤Ç¡¢¥¢¡¼¥«¥¤¥Ö½ð̾¤òÄ󶡤·¤¿¤¤¾ì¹ç¡¢ °Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ +.TP 3n +\(bu +¾å°Ì Release ¥Õ¥¡¥¤¥ë¤ÎºîÀ® +´û¤Ë¤³¤ì¤¬Â¸ºß¤·¤Æ¤¤¤ë¤Î¤Ç¤Ê¤±¤ì¤Ð¡¢ +\fBapt\-ftparchive release\fR +(apt\-utils ¤ÇÄó¶¡) ¤ò¼Â¹Ô¤·¤ÆºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£ +.TP 3n +\(bu +½ð̾ +\fBgpg \-abs \-o Release.gpg Release\fR +¤ò¼Â¹Ô¤·¤Æ¡¢ ½ð̾¤·¤Æ¤¯¤À¤µ¤¤¡£ +.TP 3n +\(bu +¥­¡¼¤Î»ØÌæ¤òÇÛÉÛ +¤³¤ì¤Ë¤è¤ê¡¢¥¢¡¼¥«¥¤¥ÖÆâ¤Î¥Õ¥¡¥¤¥ëǧ¾Ú¤Ë¡¢ ¤É¤Î¥­¡¼¤ò¥¤¥ó¥Ý¡¼¥È¤¹¤ëɬÍפ¬¤¢¤ë¤«¤ò¡¢ ¥æ¡¼¥¶¤ËÃΤ餻¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ +.PP +¥¢¡¼¥«¥¤¥Ö¤ÎÆâÍƤËÊѲ½¤¬¤¢¤ë¾ì¹ç (¿·¤·¤¤¥Ñ¥Ã¥±¡¼¥¸¤ÎÄɲääºï½ü)¡¢ ¥¢¡¼¥«¥¤¥Ö¥á¥ó¥Æ¥Ê¤ÏÁ°½Ò¤ÎºÇ½é¤Î 1, 2 ¥¹¥Æ¥Ã¥×¤Ë½¾¤ï¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ +.SH "´ØÏ¢¹àÌÜ" +.PP + +\fBapt.conf\fR(5), +\fBapt\-get\fR(8), +\fBsources.list\fR(5), +\fBapt\-key\fR(8), +\fBapt\-archive\fR(1), +\fBdebsign\fR(1) +\fBdebsig\-verify\fR(1), +\fBgpg\fR(1) +.PP +¾ÜºÙ¤ÊÇطʾðÊó¤ò¸¡¾Ú¤¹¤ë¤Î¤Ê¤é¡¢ the Securing Debian Manual (harden\-doc ¥Ñ¥Ã¥±¡¼¥¸¤Ë¤â¤¢¤ê¤Þ¤¹) ¤Î +[1]\&\fIDebian Security Infrastructure\fR +¾Ï¤È¡¢ V. Alex Brennen ¤Ë¤è¤ë +[2]\&\fIStrong Distribution HOWTO\fR +¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "¥Ð¥°" +.PP +[3]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ãø¼Ô" +.PP +APT ¤Ï the APT team + +¤Ë¤è¤Ã¤Æ ½ñ¤«¤ì¤Þ¤·¤¿¡£ +.SH "¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸É®¼Ô" +.PP +¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï Javier Fern«¡ndez\-Sanguino Pe«Ða, Isaac Jones, Colin Walters, Florian Weimer, Michael Vogt ¤Îºî¶È¤ò¸µ¤Ë¤·¤Æ¤¤¤Þ¤¹¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHOR" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.SH "COPYRIGHT" +Copyright \(co 1998\-2001 Jason Gunthorpe +.br +.SH "REFERENCES" +.TP 3 +1.\ Debian Security Infrastructure +\%http://www.debian.org/doc/manuals/securing\-debian\-howto/ch7.en.html +.TP 3 +2.\ Strong Distribution HOWTO +\%http://www.cryptnet.net/fdp/crypto/strong_distro.html +.TP 3 +3.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt-secure.ja.8.xml b/doc/ja/apt-secure.ja.8.xml new file mode 100644 index 0000000..5b9612a --- /dev/null +++ b/doc/ja/apt-secure.ja.8.xml @@ -0,0 +1,374 @@ + + +%aptent; + +]> + + + &apt-docinfo; + + + apt-secure + 8 + + + + + + + + + apt-secure + + APT アーカイブ認証サポート + + + + 説明 + + + バージョン 0.6 より、apt 全アーカイブに対する + Release ファイルの署名チェックコードが含まれています。 + Release ファイル署名キーにアクセスできない人が、 + アーカイブのパッケージの変更が確実にできないようにします。 + + + + + パッケージに署名されなかったり、apt が知らないキーで署名されていた場合、 + アーカイブから来たパッケージは、信頼されていないと見なし、 + インストールの際に重要な警告が表示されます。 + apt-get は、 + 現在未署名のパッケージに対して警告するだけですが、 + 将来のリリースでは、全ソースに対し、 + パッケージダウンロード前に強制的に検証される可能性があります。 + + + + + &apt-get;, &aptitude;, &synaptic; といったパッケージフロントエンドは、 + この新認証機能をサポートしています。 + + + + + 信頼済アーカイブ + + + + apt アーカイブからエンドユーザまでの信頼の輪は、 + いくつかのステップで構成されています。 + apt-secure は、この輪の最後のステップで、 + アーカイブを信頼することは、 + パッケージに悪意のあるコードが含まれていないと信頼するわけではありませんが、 + アーカイブメンテナを信頼すると言うことです。 + これは、アーカイブの完全性を保証するのは、 + アーカイブメンテナの責任だということです。 + + + + apt-secure はパッケージレベルの署名検証は行いません。 + そのようなツールが必要な場合は、 + debsig-verify や debsign + (debsig-verify パッケージと devscripts パッケージでそれぞれ提供されています) + を確認してください。 + + + + Debian における信頼の輪は、 + 新しいパッケージやパッケージの新しいバージョンを、 + メンテナが Debian アーカイブにアップロードすることで始まります。 + これは、Debian メンテナキーリング (debian-keyring パッケージにあります) + にあるメンテナのキーで署名しなければ、アップロードできないということです。 + メンテナのキーは、キーの所有者のアイデンティティを確保するため、 + 以下のような事前に確立した手段で、他のメンテナに署名されています。 + + + + + アップロードされたパッケージごとに、検証してアーカイブに格納します。 + パッケージは、メンテナの署名をはがされ、 MD5 sum を計算されて、 + Packages ファイルに格納されます。 + その後、全パッケージファイルの MD5 sum を計算してから、 + Release ファイルに置きます。 + Release ファイルは、アーカイブキーで署名されます。 + アーカイブキーは年ごとに作成され、FTP サーバで配布されます。 + このキーも Debian キーリングに含まれます。 + + + + + エンドユーザは誰でも、Release ファイルの署名をチェックし、 + パッケージの MD5 sum を抽出して、ダウンロードしたパッケージの MD5 sum + と比較できます。 + バージョン 0.6 以前では、ダウンロードした Debian パッケージの MD5 sum しか、 + チェックしていませんでした。 + 現在では、MD5 sum と Release ファイルの署名の両方でチェックします。 + + + + 以上は、パッケージごとの署名チェックとは違うことに注意してください。 + 以下のように考えられる 2 種類の攻撃を防ぐよう設計されています。 + + + + + ネットワーク中間者攻撃 + 署名をチェックしないと、 + 悪意あるエージェントがパッケージダウンロードプロセスに割り込んだり、 + ネットワーク構成要素 (ルータ、スイッチなど) の制御や、 + 悪漢サーバへのネットワークトラフィックのリダイレクトなど + (arp 経由や DNS スプーフィング攻撃) で、 + 悪意あるソフトウェアを掴まされたりします。 + + + ミラーネットワーク感染. + 署名をチェックしないと、悪意あるエージェントがミラーホストに感染し、 + このホストからダウンロードしたユーザすべてに、 + 悪意あるソフトウェアが伝播するようにファイルを変更できます。 + + + + しかしこれは、 + (パッケージに署名する) Debian マスターサーバ自体の感染や、 + Release ファイルに署名するのに使用したキーの感染を防げません。 + いずれにせよ、この機構はパッケージごとの署名を補完することができます。 + + + + ユーザの設定 + + + apt-key は、 + apt が使用するキーリストを管理するプログラムです。 + このリリースのインストールでは、Debian パッケージリポジトリで使用する、 + キーで署名するデフォルトの Debian アーカイブを提供しますが、 + apt-key でキーの追加・削除が行えます。 + + + + 新しいキーを追加するためには、まずキーをダウンロードする必要があります。 + (取得する際には、信頼できる通信チャネルを使用するよう、特に留意してください) + 取得したキーを、apt-key で追加し、 + apt-get update を実行してください。 + 以上により、apt は指定したアーカイブから、Release.gpg + ファイルをダウンロード・検証できるようになります。 + + + + +アーカイブの設定 + + + あなたがメンテナンスしているアーカイブで、アーカイブ署名を提供したい場合、 + 以下のようにしてください。 + + + + + 上位 Release ファイルの作成 + 既にこれが存在しているのでなければ、 + apt-ftparchive release (apt-utils で提供) + を実行して作成してください。 + + + 署名 + gpg -abs -o Release.gpg Release を実行して、 + 署名してください。 + + + キーの指紋を配布 + これにより、アーカイブ内のファイル認証に、 + どのキーをインポートする必要があるかを、 + ユーザに知らせることになります。 + + + + + アーカイブの内容に変化がある場合 (新しいパッケージの追加や削除)、 + アーカイブメンテナは前述の最初の 1, 2 ステップに従わなければなりません。 + + + + +関連項目 + +&apt-conf;, &apt-get;, &sources-list;, &apt-key;, &apt-archive;, +&debsign; &debsig-verify;, &gpg; + + + +詳細な背景情報を検証するのなら、 +the Securing Debian Manual (harden-doc パッケージにもあります) の +Debian +Security Infrastructure 章と、 +V. Alex Brennen による +Strong Distribution HOWTO をご覧ください。 + + + + &manbugs; + &manauthor; + + +マニュアルページ筆者 + + +このマニュアルページは Javier Fernández-Sanguino +Peña, Isaac Jones, Colin Walters, Florian Weimer, Michael Vogt +の作業を元にしています。 + + + + + &translator; + + + diff --git a/doc/ja/apt-sortpkgs.1 b/doc/ja/apt-sortpkgs.1 new file mode 100644 index 0000000..48e62fb --- /dev/null +++ b/doc/ja/apt-sortpkgs.1 @@ -0,0 +1,95 @@ +.\" Title: apt\-sortpkgs +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-SORTPKGS" "1" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-sortpkgs \- ¥Ñ¥Ã¥±¡¼¥¸¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤Î¥½¡¼¥È¥æ¡¼¥Æ¥£¥ê¥Æ¥£ +.SH "SYNOPSIS" +.HP 13 +\fBapt\-sortpkgs\fR [\fB\-hvs\fR] [\fB\-o=\fR\fB\fIconfig\ string\fR\fR] [\fB\-c=\fR\fB\fIfile\fR\fR] \fIfile\fR... +.SH "ÀâÌÀ" +.PP +\fBapt\-sortpkgs\fR +¤Ï¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë (¥½¡¼¥¹¥¤¥ó¥Ç¥Ã¥¯¥¹¤ä¥Ñ¥Ã¥±¡¼¥¸¥¤¥ó¥Ç¥Ã¥¯¥¹) ¤«¤é¥ì¥³¡¼¥É¤ò¥½¡¼¥È¤·¡¢ ¥Ñ¥Ã¥±¡¼¥¸Ì¾½ç¤ËÀ°¤¨¤Þ¤¹¡£ ¤Þ¤¿¡¢ÆâÉô¤Î¥½¡¼¥Èµ¬Â§¤Ë½¾¤Ã¤Æ¡¢ÆâÉô¥Õ¥£¡¼¥ë¥É¤Ë¤Ä¤¤¤Æ¤â¥½¡¼¥È¤ò¹Ô¤¤¤Þ¤¹¡£ +.PP +½ÐÎϤϤ¹¤Ù¤Æɸ½à½ÐÎϤËÁ÷¤é¤ì¡¢ÆþÎϤϸ¡º÷¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ +.SH "¥ª¥×¥·¥ç¥ó" +.PP +¤³¤ÎÀâÌÀ¤Ç¼¨¤·¤¿¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¤¹¤Ù¤ÆÀßÄê¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤ÆÀßÄê¤Ç¤­¤Þ¤¹¡£ ÀßÄê¥Õ¥¡¥¤¥ë¤Ë½ñ¤¤¤¿¿¿µ¶Ãͤò¤È¤ë¥ª¥×¥·¥ç¥ó¤Ï +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +¤Ê¤É¤Î¤è¤¦¤Ë¤·¤Æ¾å½ñ¤­¤Ç¤­¤Þ¤¹¡£ +.PP +\fB\-s\fR, \fB\-\-source\fR +.RS 3n + +¥½¡¼¥¹¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥£¡¼¥ë¥É½ç¤ËʤÙÂؤ¨ ÀßÄê¹àÌÜ \- +APT::SortPkgs::Source. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +»È¤¤Êý¤Îû¤¤Í×Ìó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +ÀßÄê¥Õ¥¡¥¤¥ë¡£ »ÈÍѤ¹¤ëÀßÄê¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤¬Æɤá¤Ê¤¤¾ì¹ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¤Þ¤¹¡£ ʸˡ¤Ë¤Ä¤¤¤Æ¤Ï +\fBapt.conf\fR(5) +¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +ÀßÄꥪ¥×¥·¥ç¥ó¤Î¥»¥Ã¥È¡£Ç¤°Õ¤ÎÀßÄꥪ¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£ ʸˡ¤Ï +\fB\-o Foo::Bar=bar\fR +¤È¤Ê¤ê¤Þ¤¹¡£ +.RE +.SH "´ØÏ¢¹àÌÜ" +.PP +\fBapt.conf\fR(5) +.SH "¿ÇÃÇ¥á¥Ã¥»¡¼¥¸" +.PP +\fBapt\-sortpkgs\fR +¤ÏÀµ¾ï½ªÎ»»þ¤Ë 0 ¤òÊÖ¤·¤Þ¤¹¡£ ¥¨¥é¡¼»þ¤Ë¤Ï½½¿Ê¤Î 100 ¤òÊÖ¤·¤Þ¤¹¡£ +.SH "¥Ð¥°" +.PP +[1]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt-sortpkgs.ja.1 b/doc/ja/apt-sortpkgs.ja.1 new file mode 100644 index 0000000..48e62fb --- /dev/null +++ b/doc/ja/apt-sortpkgs.ja.1 @@ -0,0 +1,95 @@ +.\" Title: apt\-sortpkgs +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT\-SORTPKGS" "1" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt\-sortpkgs \- ¥Ñ¥Ã¥±¡¼¥¸¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤Î¥½¡¼¥È¥æ¡¼¥Æ¥£¥ê¥Æ¥£ +.SH "SYNOPSIS" +.HP 13 +\fBapt\-sortpkgs\fR [\fB\-hvs\fR] [\fB\-o=\fR\fB\fIconfig\ string\fR\fR] [\fB\-c=\fR\fB\fIfile\fR\fR] \fIfile\fR... +.SH "ÀâÌÀ" +.PP +\fBapt\-sortpkgs\fR +¤Ï¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë (¥½¡¼¥¹¥¤¥ó¥Ç¥Ã¥¯¥¹¤ä¥Ñ¥Ã¥±¡¼¥¸¥¤¥ó¥Ç¥Ã¥¯¥¹) ¤«¤é¥ì¥³¡¼¥É¤ò¥½¡¼¥È¤·¡¢ ¥Ñ¥Ã¥±¡¼¥¸Ì¾½ç¤ËÀ°¤¨¤Þ¤¹¡£ ¤Þ¤¿¡¢ÆâÉô¤Î¥½¡¼¥Èµ¬Â§¤Ë½¾¤Ã¤Æ¡¢ÆâÉô¥Õ¥£¡¼¥ë¥É¤Ë¤Ä¤¤¤Æ¤â¥½¡¼¥È¤ò¹Ô¤¤¤Þ¤¹¡£ +.PP +½ÐÎϤϤ¹¤Ù¤Æɸ½à½ÐÎϤËÁ÷¤é¤ì¡¢ÆþÎϤϸ¡º÷¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ +.SH "¥ª¥×¥·¥ç¥ó" +.PP +¤³¤ÎÀâÌÀ¤Ç¼¨¤·¤¿¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¤¹¤Ù¤ÆÀßÄê¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤ÆÀßÄê¤Ç¤­¤Þ¤¹¡£ ÀßÄê¥Õ¥¡¥¤¥ë¤Ë½ñ¤¤¤¿¿¿µ¶Ãͤò¤È¤ë¥ª¥×¥·¥ç¥ó¤Ï +\fB\-f\-\fR,\fB\-\-no\-f\fR, +\fB\-f=no\fR +¤Ê¤É¤Î¤è¤¦¤Ë¤·¤Æ¾å½ñ¤­¤Ç¤­¤Þ¤¹¡£ +.PP +\fB\-s\fR, \fB\-\-source\fR +.RS 3n + +¥½¡¼¥¹¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥£¡¼¥ë¥É½ç¤ËʤÙÂؤ¨ ÀßÄê¹àÌÜ \- +APT::SortPkgs::Source. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 3n +»È¤¤Êý¤Îû¤¤Í×Ìó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-v\fR, \fB\-\-version\fR +.RS 3n +¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\fB\-c\fR, \fB\-\-config\-file\fR +.RS 3n +ÀßÄê¥Õ¥¡¥¤¥ë¡£ »ÈÍѤ¹¤ëÀßÄê¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤¬Æɤá¤Ê¤¤¾ì¹ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¤Þ¤¹¡£ ʸˡ¤Ë¤Ä¤¤¤Æ¤Ï +\fBapt.conf\fR(5) +¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\fB\-o\fR, \fB\-\-option\fR +.RS 3n +ÀßÄꥪ¥×¥·¥ç¥ó¤Î¥»¥Ã¥È¡£Ç¤°Õ¤ÎÀßÄꥪ¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£ ʸˡ¤Ï +\fB\-o Foo::Bar=bar\fR +¤È¤Ê¤ê¤Þ¤¹¡£ +.RE +.SH "´ØÏ¢¹àÌÜ" +.PP +\fBapt.conf\fR(5) +.SH "¿ÇÃÇ¥á¥Ã¥»¡¼¥¸" +.PP +\fBapt\-sortpkgs\fR +¤ÏÀµ¾ï½ªÎ»»þ¤Ë 0 ¤òÊÖ¤·¤Þ¤¹¡£ ¥¨¥é¡¼»þ¤Ë¤Ï½½¿Ê¤Î 100 ¤òÊÖ¤·¤Þ¤¹¡£ +.SH "¥Ð¥°" +.PP +[1]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt-sortpkgs.ja.1.xml b/doc/ja/apt-sortpkgs.ja.1.xml new file mode 100644 index 0000000..779620f --- /dev/null +++ b/doc/ja/apt-sortpkgs.ja.1.xml @@ -0,0 +1,110 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 February 2004 + + + + apt-sortpkgs + 1 + + + + + apt-sortpkgs + + パッケージインデックスファイルのソートユーティリティ + + + + + + + apt-sortpkgs + + + + file + + + + + 説明 + + apt-sortpkgs は、インデックスファイル + (ソースインデックスやパッケージインデックス) からレコードをソートし、 + パッケージ名順に整えます。 + また、内部のソート規則に従って、内部フィールドについてもソートを行います。 + + + + 出力はすべて標準出力に送られ、入力は検索できるファイルでなければなりません。 + + + + オプション + &apt-cmdblurb; + + + + + + ソースインデックスフィールド順に並べ替え + 設定項目 - APT::SortPkgs::Source. + + + &apt-commonoptions; + + + + + + 関連項目 + &apt-conf; + + + + 診断メッセージ + apt-sortpkgs は正常終了時に 0 を返します。 + エラー時には十進の 100 を返します。 + + + &manbugs; + &translator; + + diff --git a/doc/ja/apt.conf.5 b/doc/ja/apt.conf.5 new file mode 100644 index 0000000..d3ea028 --- /dev/null +++ b/doc/ja/apt.conf.5 @@ -0,0 +1,452 @@ +.\" Title: apt.conf +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT.CONF" "5" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt.conf \- APT ÀßÄê¥Õ¥¡¥¤¥ë +.SH "ÀâÌÀ" +.PP +\fIapt.conf\fR +¤Ï¡¢ APT ¥Ä¡¼¥ë½¸¤Î¥á¥¤¥óÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤¹¡£ ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤È¶¦Ä̤Υ³¥Þ¥ó¥É¥é¥¤¥ó¥Ñ¡¼¥µ¤ò»È¤Ã¤Æ¡¢ ¤¹¤Ù¤Æ¤Î¥Ä¡¼¥ë¤òÅý°ì´Ä¶­¤Ç»ÈÍѤǤ­¤Þ¤¹¡£ APT ¥Ä¡¼¥ë¤Îµ¯Æ°»þ¤Ë¤Ï¡¢\fBAPT_CONFIG\fR +´Ä¶­ÊÑ¿ô¤Ë»ØÄꤷ¤¿ÀßÄê¤ò (¸ºß¤¹¤ì¤Ð) Æɤ߹þ¤ß¤Þ¤¹¡£ ¼¡¤Ë +Dir::Etc::Parts +¤Î¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¤Þ¤¹¡£ ¼¡¤Ë +Dir::Etc::main +¤Ç»ØÄꤷ¤¿¼çÀßÄê¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¡¢ ºÇ¸å¤Ë¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤Ç¡¢ ÀßÄê¥Õ¥¡¥¤¥ë¤è¤ê¼èÆÀ¤·¤¿Ãͤò¾å½ñ¤­¤·¤Þ¤¹¡£ +.PP +ÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢ µ¡Ç½¥°¥ë¡¼¥×¤´¤È¤Ë·ÏÅýΩ¤Æ¤é¤ì¤¿¥ª¥×¥·¥ç¥ó¤òÌÚ¹½Â¤¤Çɽ¤·¤Þ¤¹¡£ ¥ª¥×¥·¥ç¥ó¤ÎÆâÍƤϡ¢2 ¤Ä¤Î¥³¥í¥ó¤Ç¶èÀÚ¤ê¤Þ¤¹¡£ Î㤨¤Ð +APT::Get::Assume\-Yes +¤Ï¡¢ APT ¥Ä¡¼¥ë¥°¥ë¡¼¥×¤Î¡¢Get ¥Ä¡¼¥ëÍÑ¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£ ¥ª¥×¥·¥ç¥ó¤Ï¡¢¿Æ¥°¥ë¡¼¥×¤«¤é·Ñ¾µ¤·¤Þ¤»¤ó¡£ +.PP +ÀßÄê¸À¸ì¤Îʸˡ¤Ï¡¢ bind ¤ä dhcp ¤Î¤è¤¦¤Ê ISC ¥Ä¡¼¥ë¤ò¥â¥Ç¥ë¤Ë¤·¤Æ¤¤¤Þ¤¹¡£ +// +¤Ç»Ï¤Þ¤ë¹Ô¤Ï¥³¥á¥ó¥È¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹ (̵»ë)¡£ ¤¤¤º¤ì¤Î¹Ô¤â¡¢ +.sp +.RS 3n +.nf +APT::Get::Assume\-Yes "true"; +.fi +.RE +.sp +¤Î ¤è¤¦¤Ê·Á¼°¤Ç¤¹¡£ ¹ÔËö¤Î¥»¥ß¥³¥í¥ó¤ÏɬÍפǤ¹¤¬¡¢¥À¥Ö¥ë¥¯¥©¡¼¥È¤Ï»È¤ï¤Ê¤¯¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£ °Ê²¼¤Î¤è¤¦¤ËÃ楫¥Ã¥³¤ò»È¤¦¤È¡¢¿·¤·¤¤¥¹¥³¡¼¥×¤ò³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.sp +.RS 3n +.nf + +APT { + Get { + Assume\-Yes "true"; + Fix\-Broken "true"; + }; +}; +.fi +.RE +.PP +¤Þ¤¿Å¬µ¹²þ¹Ô¤¹¤ë¤³¤È¤Ç¡¢¤è¤êÆɤߤ䤹¤¯¤Ê¤ê¤Þ¤¹¡£ ¥ê¥¹¥È¤Ï¡¢³«¤¤¤¿¥¹¥³¡¼¥×¡¢¥¯¥©¡¼¥È¤Ç°Ï¤Þ¤ì¤¿Ã±¸ì¡¢ ¤½¤·¤Æ¥»¥ß¥³¥í¥ó¤È³¤±¤ë¤³¤È¤ÇºîÀ®¤Ç¤­¤Þ¤¹¡£ ¥»¥ß¥³¥í¥ó¤Ç¶èÀڤ뤳¤È¤Ç¡¢Ê£¿ô¤Î¥¨¥ó¥È¥ê¤òɽ¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.sp +.RS 3n +.nf + +DPkg::Pre\-Install\-Pkgs {"/usr/sbin/dpkg\-preconfigure \-\-apt";}; +.fi +.RE +.PP +\fI/usr/share/doc/apt/examples/apt.conf\fR +\fI/usr/share/doc/apt/examples/configure\-index.gz\fR +¤Ï°ìÈÌŪ¤ÊÀßÄê¥Õ¥¡¥¤¥ë¤Î¥µ¥ó¥×¥ë¤Ç¤¹¡£ ¤É¤Î¤è¤¦¤ËÀßÄꤹ¤ë¤«»²¹Í¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£ +.PP +#include +¤È +#clear +¤Î 2 ¤Ä¤ÎÆÃÊ̤ʵ­Ë¡¤¬¤¢¤ê¤Þ¤¹¡£ +#include +¤Ï»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤ò¼è¤ê¹þ¤ß¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë̾¤¬¥¹¥é¥Ã¥·¥å¤Ç½ª¤ï¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ ¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¤¹¤Ù¤Æ¼è¤ê¹þ¤ß¤Þ¤¹¡£ +#clear +¤Ï̾Á°¤Î¥ê¥¹¥È¤òºï½ü¤¹¤ë¤Î¤ËÊØÍø¤Ç¤¹¡£ +.PP +¤¹¤Ù¤Æ¤Î APT ¥Ä¡¼¥ë¤Ç¡¢ ¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÇǤ°Õ¤ÎÀßÄê¤ò¹Ô¤¦ \-o ¥ª¥×¥·¥ç¥ó¤¬»ÈÍѤǤ­¤Þ¤¹¡£ ʸˡ¤Ï¡¢´°Á´¤Ê¥ª¥×¥·¥ç¥ó̾ (Îã: +APT::Get::Assume\-Yes)¡¢ Åù¹æ¡¢Â³¤¤¤Æ¥ª¥×¥·¥ç¥ó¤Î¿·¤·¤¤ÃͤȤʤê¤Þ¤¹¡£ ¥ê¥¹¥È̾¤Ë³¤­::¤ò²Ã¤¨¤ë¤³¤È¤Ç¡¢¥ê¥¹¥È¤òÄɲ乤뤳¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.SH "APT ¥°¥ë¡¼¥×" +.PP +¤³¤Î¥ª¥×¥·¥ç¥ó¥°¥ë¡¼¥×¤Ï¡¢¥Ä¡¼¥ëÁ´ÂΤ˱ƶÁ¤Î¤¢¤ë¡¢ °ìÈÌŪ¤Ê APT ¤Î¿¶¤ëÉñ¤¤¤òÀ©¸æ¤·¤Þ¤¹¡£ +.PP +Architecture +.RS 3n +¥·¥¹¥Æ¥à¥¢¡¼¥­¥Æ¥¯¥Á¥ã \- ¥Õ¥¡¥¤¥ë¤ò¼èÆÀ¤·¤¿¤ê¡¢ ¥Ñ¥Ã¥±¡¼¥¸¥ê¥¹¥È¤ò²òÀϤ¹¤ë¤È¤­¤Ë»ÈÍѤ¹¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£ ÆâÉô¤Ç¤Î¥Ç¥Õ¥©¥ë¥È¤Ï¡¢ apt ¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤¹¡£ +.RE +.PP +Ignore\-Hold +.RS 3n +ÊÝα¥Ñ¥Ã¥±¡¼¥¸¤Î̵»ë \- ¤³¤Î¥°¥í¡¼¥Ð¥ë¥ª¥×¥·¥ç¥ó¤Ï¡¢ ÌäÂê²ò·è´ï¤ËÊÝα¤È»ØÄꤷ¤¿¥Ñ¥Ã¥±¡¼¥¸¤ò̵»ë¤·¤Þ¤¹¡£ +.RE +.PP +Clean\-Installed +.RS 3n +¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ç¤¹¡£autoclean µ¡Ç½¤¬ on ¤Î»þ¡¢ ¥À¥¦¥ó¥í¡¼¥É¤Ç¤­¤Ê¤¯¤Ê¤Ã¤¿¥Ñ¥Ã¥±¡¼¥¸¤ò¥­¥ã¥Ã¥·¥å¤«¤éºï½ü¤·¤Þ¤¹¡£ off ¤Î¾ì¹ç¡¢¥í¡¼¥«¥ë¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢ ºï½üÂоݤ«¤é³°¤·¤Þ¤¹¡£ ¤·¤«¤·¡¢ APT ¤Ï¥­¥ã¥Ã¥·¥å¤«¤éºï½ü¤·¤¿¥Ñ¥Ã¥±¡¼¥¸¤ÎºÆ¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤ò¡¢ ľÀÜÄ󶡤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +Immediate\-Configure +.RS 3n +¨»þÀßÄê̵¸ú \- ¤³¤Î´í¸±¤Ê¥ª¥×¥·¥ç¥ó¤Ï¡¢ APT ¤ÎÍ׵ᥳ¡¼¥É¤ò̵¸ú¤Ë¤·¤Æ dpkg ¤Î¸Æ¤Ó½Ð¤·¤ò¤Û¤È¤ó¤É¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢Èó¾ï¤ËÃÙ¤¤¥·¥ó¥°¥ë¥æ¡¼¥¶¥·¥¹¥Æ¥à¤Ç¤ÏɬÍפ«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢ Èó¾ï¤Ë´í¸±¤Ç¡¢¥Ñ¥Ã¥±¡¼¥¸¤Î¥¤¥ó¥¹¥È¡¼¥ë¥¹¥¯¥ê¥×¥È¤¬¼ºÇÔ¤·¤¿¤ê¡¢ ¤â¤·¤¯¤Ï¤â¤Ã¤È°­¤¤¤³¤È¤¬¤ª¤­¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¼«¸ÊÀÕǤ¤Ç»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +Force\-LoopBreak +.RS 3n +²¿¤ò¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¤Î¤«¡ÖËÜÅö¤Ë¡×Ƚ¤Ã¤Æ¤¤¤ë¤Î¤Ç¤Ê¤±¤ì¤Ð¡¢ ÀäÂФˤ³¤Î¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£ ÉԲķç (essential) ¥Ñ¥Ã¥±¡¼¥¸Æ±»Î¤Ç¡¢ ¶¥¹ç (Conflicts) /¶¥¹ç¤ä¶¥¹ç/»öÁ°°Í¸ (Pre\-Depend) ¤Î¥ë¡¼¥×¤ËÍî¤Á¹þ¤ó¤À¤È¤­¤Ë¡¢ ÉԲķç¥Ñ¥Ã¥±¡¼¥¸¤ò°ì»þŪ¤Ëºï½ü¤·¤Æ¥ë¡¼¥×¤òÈ´¤±¤é¤ì¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£ +\fI¤½¤ó¤Ê¥ë¡¼¥×¤Ï¤¢¤êÆÀ¤Ê¤¤¤Ï¤º¤Ç¡¢ ¤¢¤ë¤È¤¹¤ì¤Ð½ÅÂç¤Ê¥Ð¥°¤Ç¤¹¡£\fR +¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢tar, gzip, libc, dpkg, bash ¤È¤½¤ì¤é¤¬°Í¸¤·¤Æ¤¤¤ë ¥Ñ¥Ã¥±¡¼¥¸°Ê³°¤ÎÉԲķç¥Ñ¥Ã¥±¡¼¥¸¤ÇÆ°ºî¤·¤Þ¤¹¡£ +.RE +.PP +Cache\-Limit +.RS 3n +APT ¤Ï¡ÖÍøÍѲÄǽ¡×¾ðÊó¤ò³ÊǼ¤¹¤ë¤¿¤á¤Ë¡¢ ¸ÇÄꥵ¥¤¥º¤Î¥á¥â¥ê¥Þ¥Ã¥×¥­¥ã¥Ã¥·¥å¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤Þ¤¹¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¤½¤Î¥­¥ã¥Ã¥·¥å¥µ¥¤¥º¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +Build\-Essential +.RS 3n +¹½Ã۰͸´Ø·¸¤ÇÉԲķç¤Ê¥Ñ¥Ã¥±¡¼¥¸¤òÄêµÁ¤·¤Þ¤¹¡£ +.RE +.PP +Get +.RS 3n +¥µ¥Ö¥»¥¯¥·¥ç¥ó Get ¤Ï +\fBapt\-get\fR(8) +¥Ä¡¼¥ë¤òÀ©¸æ¤·¤Þ¤¹¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Î¾ÜºÙ¤Ï +\fBapt\-get\fR(8) +¤Îʸ½ñ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +Cache +.RS 3n +¥µ¥Ö¥»¥¯¥·¥ç¥ó Cache ¤Ï +\fBapt\-cache\fR(8) +¥Ä¡¼¥ë¤òÀ©¸æ¤·¤Þ¤¹¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Î¾ÜºÙ¤Ï +\fBapt\-cache\fR(8) +¤Îʸ½ñ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +CDROM +.RS 3n +¥µ¥Ö¥»¥¯¥·¥ç¥ó CDROM ¤Ï +\fBapt\-cdrom\fR(8) +¥Ä¡¼¥ë¤òÀ©¸æ¤·¤Þ¤¹¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Î¾ÜºÙ¤Ï +\fBapt\-cdrom\fR(8) +¤Îʸ½ñ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.SH "ACQUIRE ¥°¥ë¡¼¥×" +.PP +Acquire +¥ª¥×¥·¥ç¥ó¥°¥ë¡¼¥×¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Î¥À¥¦¥ó¥í¡¼¥É¤ä URI ¥Ï¥ó¥É¥é¤ÎÀ©¸æ¤ò¹Ô¤¤¤Þ¤¹¡£ +.PP +Queue\-Mode +.RS 3n +¥­¥å¡¼¥â¡¼¥É \- +Queue\-Mode +¤Ï¡¢ APT ¤¬¤É¤Î¤è¤¦¤ËÊÂÎóÀܳ¤ò¹Ô¤¦¤«¡¢ +host +¤« +access +¤Ç»ØÄê¤Ç¤­¤Þ¤¹¡£ +host +¤Ï¡¢¥¿¡¼¥²¥Ã¥È¥Û¥¹¥È¤´¤È¤Ë 1 Àܳ¤ò³«¤­¤Þ¤¹¡£ +access +¤Ï¡¢ URI ¥¿¥¤¥×¤´¤È¤Ë 1 Àܳ¤ò³«¤­¤Þ¤¹¡£ +.RE +.PP +Retries +.RS 3n +¥ê¥È¥é¥¤¤Î²ó¿ô¤òÀßÄꤷ¤Þ¤¹¡£ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢APT ¤Ï¼ºÇÔ¤·¤¿¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢ Í¿¤¨¤é¤ì¤¿²ó¿ô¤À¤±¥ê¥È¥é¥¤¤ò¹Ô¤¤¤Þ¤¹¡£ +.RE +.PP +Source\-Symlinks +.RS 3n +¥½¡¼¥¹¥¢¡¼¥«¥¤¥Ö¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ò»ÈÍѤ·¤Þ¤¹¡£ true ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¤­¡¢²Äǽ¤Ê¤é¥³¥Ô¡¼¤ÎÂå¤ï¤ê¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬ Ä¥¤é¤ì¤Þ¤¹¡£true ¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¹¡£ +.RE +.PP +http +.RS 3n +HTTP URI \- http::Proxy ¤Ï¡¢ ¥Ç¥Õ¥©¥ë¥È¤Ç»ÈÍѤ¹¤ë http ¥×¥í¥­¥·¤Ç¤¹¡£ +http://[[user][:pass]@]host[:port]/ +¤È¤¤¤¦É¸½à·Á¤Çɽ¤·¤Þ¤¹¡£¥Û¥¹¥È¤´¤È¤Î¥×¥í¥­¥·¤Î¾ì¹ç¤Ï¡¢ +http::Proxy:: +¤È¤¤¤¦·Á¤È¡¢ ¥×¥í¥­¥·¤ò»ÈÍѤ·¤Ê¤¤¤È¤¤¤¦°ÕÌ£¤ÎÆü쥭¡¼¥ï¡¼¥É +DIRECT +¤ò»ÈÍѤ·¤Æ»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¤¹¤Ù¤Æ¤ÎÀßÄê¤Ï¡¢ ´Ä¶­ÊÑ¿ô +\fBhttp_proxy\fR +¤Ç¾å½ñ¤­¤µ¤ì¤Þ¤¹¡£ +.sp +HTTP/1.1 ½àµò¤Î¥×¥í¥­¥·¥­¥ã¥Ã¥·¥å¤ÎÀ©¸æ¤Ë¤Ä¤¤¤Æ¡¢ 3 ¼ïÎà¤ÎÀßÄ꤬¤¢¤ê¤Þ¤¹¡£No\-Cache +¤Ï¥×¥í¥­¥·¤ËÂФ·¤Æ¡¢ ¤¤¤«¤Ê¤ë»þ¤â¥­¥ã¥Ã¥·¥å¤ò»ÈÍѤ·¤Ê¤¤¤ÈÅÁ¤¨¤Þ¤¹¡£ +Max\-Age +¤Ï¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ëÍѤΤȤ­¤À¤±Á÷¿®¤·¡¢ ÆÀ¤é¤ì¤¿»þ´Ö¤è¤ê¤â¸Å¤«¤Ã¤¿¾ì¹ç¤Ë¡¢ ¥ª¥Ö¥¸¥§¥¯¥È¤ò¥ê¥Õ¥ì¥Ã¥·¥å¤¹¤ë¤è¤¦¥­¥ã¥Ã¥·¥å¤Ë»Ø¼¨¤·¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï 1 Æü¤È¤Ê¤Ã¤Æ¤¤¤ë¤¿¤á¡¢ Debian ¤ÏÆüËè¤Ë¤½¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤·¤Þ¤¹¡£ +No\-Store +¤Ï¡¢¥­¥ã¥Ã¥·¥å¤¬¤³¤Î¥ê¥¯¥¨¥¹¥È¤ò³ÊǼ¤»¤º¡¢ ¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤Î¤ßÀßÄꤹ¤ë¤è¤¦»ØÄꤷ¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢Èó¾ï¤ËÂ礭¤Ê .deb ¥Õ¥¡¥¤¥ë¤Ç¥×¥í¥­¥·¥­¥ã¥Ã¥·¥å¤¬±ø¤ì¤ë¤Î¤ò¡¢ Ëɤ°¤Î¤ËÊØÍø¤«¤â¤·¤ì¤Þ¤»¤ó¡£ Ãí) Squid 2.0.2 ¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£ +.sp +timeout +¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¤³¤ÎÊýË¡¤Ç¤Î¥¿¥¤¥à¥¢¥¦¥È¤Þ¤Ç¤Î»þ´Ö¤òÀßÄꤷ¤Þ¤¹¡£ ¤³¤ì¤Ë¤Ï¡¢Àܳ¤Î¥¿¥¤¥à¥¢¥¦¥È¤È¥Ç¡¼¥¿¤Î¥¿¥¤¥à¥¢¥¦¥È¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +¥ê¥â¡¼¥È¥µ¡¼¥Ð¤¬ RFC ½àµò¤Ç¤Ê¤«¤Ã¤¿¤ê¡¢ (Squid 2.0.2 ¤Î¤è¤¦¤Ë) ¥Ð¥°¤¬¤¢¤Ã¤¿¤ê¤·¤¿¤È¤­¤Î¤¿¤á¤Ë¡¢ ¥Ñ¥¤¥×¥é¥¤¥ó¤Î¿¼¤µ¤ÎÀ©¸æ¤òÀßÄꤷ¤Þ¤¹¡£ +Acquire::http::Pipeline\-Depth +¤Ë¤è¤ê¡¢ APT ¤¬Á÷¿®¤Ç¤­¤ë¥ê¥¯¥¨¥¹¥È¤Î²ó¿ô¤ò 0 ¤«¤é 5 ¤ÎÃͤÇÀßÄê¤Ç¤­¤Þ¤¹¡£ ¥ê¥â¡¼¥È¥µ¡¼¥Ð¤¬Å¬ÀڤǤʤ¯¡¢TCP Àܳ¤Ë»þ´Ö¤¬¤«¤«¤ë¤È¤­¤Ï¡¢ +\fIɬ¤º\fR +0 ¤ÎÃͤòÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¥Ç¡¼¥¿¤¬ÇË»¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¤³¤ì¤¬É¬Íפʥۥ¹¥È¤Ï RFC 2068 ¤Ë°ãÈ¿¤·¤Æ¤¤¤Þ¤¹¡£ +.RE +.PP +ftp +.RS 3n +FTP URI \- ftp::Proxy ¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç»ÈÍѤ¹¤ë¥×¥í¥­¥·¥µ¡¼¥Ð¤Ç¤¹¡£ +ftp://[[user][:pass]@]host[:port]/ +¤È¤¤¤¦É¸½à·Á¤Çɽ¤·¤Þ¤¹¤¬¡¢ ´Ä¶­ÊÑ¿ô +\fBftp_proxy\fR +¤Ç¾å½ñ¤­¤µ¤ì¤Þ¤¹¡£ ftp ¥×¥í¥­¥·¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¡¢ÀßÄê¥Õ¥¡¥¤¥ë¤Ë +ftp::ProxyLogin +¥¹¥¯¥ê¥×¥È¤òÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¥×¥í¥­¥·¥µ¡¼¥Ð¤ËÁ÷¿®¤¹¤ëÀܳ¥³¥Þ¥ó¥É¤ò¡¢¤³¤Î¥¨¥ó¥È¥ê¤ËÀßÄꤷ¤Þ¤¹¡£ ¤É¤Î¤è¤¦¤Ë¤¹¤ë¤Î¤«¤Ï +\fI/usr/share/doc/apt/examples/configure\-index.gz\fR +¤ÎÎã¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ ¤½¤Î¾¤Ë¤â¡¢$(PROXY_USER) +$(PROXY_PASS) +$(SITE_USER) +$(SITE_PASS) +$(SITE) +$(SITE_PORT) +¤¬ÍøÍѲÄǽ¤Ç¤¹¡£ ¤¤¤º¤ì¤â¡¢¤½¤ì¤¾¤ì URI ¤ò¹½À®¤¹¤ë¥È¡¼¥¯¥ó¤Ç¤¹¡£ +.sp +timeout +¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¤³¤ÎÊýË¡¤Ç¤Î¥¿¥¤¥à¥¢¥¦¥È¤Þ¤Ç¤Î»þ´Ö¤òÀßÄꤷ¤Þ¤¹¡£ ¤³¤ì¤Ë¤Ï¡¢Àܳ¤Î¥¿¥¤¥à¥¢¥¦¥È¤È¥Ç¡¼¥¿¤Î¥¿¥¤¥à¥¢¥¦¥È¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +ÀßÄê¤Î¤¤¤¯¤Ä¤«¤Ï¡¢¥Ñ¥Ã¥·¥Ö¥â¡¼¥É¤òÀ©¸æ¤¹¤ë¤â¤Î¤Ç¤¹¡£ °ìÈÌŪ¤Ë¡¢¥Ñ¥Ã¥·¥Ö¥â¡¼¥É¤Î¤Þ¤Þ¤Ë¤·¤Æ¤ª¤¯Êý¤¬°ÂÁ´¤Ç¡¢ ¤Û¤Ü¤É¤ó¤Ê´Ä¶­¤Ç¤âÆ°ºî¤·¤Þ¤¹¡£ ¤·¤«¤·¤¢¤ë¾õ¶·²¼¤Ç¤Ï¡¢¥Ñ¥Ã¥·¥Ö¥â¡¼¥É¤¬Ìµ¸ú¤Î¤¿¤á¡¢ Âå¤ï¤ê¤Ë¥Ý¡¼¥È¥â¡¼¥É ftp ¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¤³¤ÎÀßÄê¤Ï¡¢¥×¥í¥­¥·¤òÄ̤ëÀܳ¤äÆÃÄê¤Î¥Û¥¹¥È¤Ø¤ÎÀܳÁ´È̤ËÍ­¸ú¤Ç¤¹¡£ (ÀßÄêÎã¤Ï¥µ¥ó¥×¥ëÀßÄê¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤) +.sp +´Ä¶­ÊÑ¿ô +\fBftp_proxy\fR +¤Î http url ¤Ë¤è¤ê FTP over HTTP ¤Î¥×¥í¥­¥·¤¬ÍøÍѲÄǽ¤Ë¤Ê¤ê¤Þ¤¹¡£ ʸˡ¤Ï¾å¤Î http ¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ ÀßÄê¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ç¤³¤ì¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¤Þ¤¿¡¢¸úΨ¤¬°­¤¤¤¿¤á FTP over HTTP ¤ò»ÈÍѤ¹¤ë¤Î¤Ï¿ä¾©¤·¤Þ¤»¤ó¡£ +.sp +ForceExtended +¤ÎÀßÄê¤Ï RFC2428 ¤Î +EPSV +¥³¥Þ¥ó¥É¤È +EPRT +¥³¥Þ¥ó¥É¤Î»ÈÍѤòÀ©¸æ¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï false ¤Ç¤¹¡£ ¤³¤ì¤Ï¡¢¥³¥ó¥È¥í¡¼¥ë¥³¥Í¥¯¥·¥ç¥ó¤¬ IPv6 ¤Î»þ¤Ë¤Î¤ß¡¢ ¤³¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ ¤³¤ì¤ò true ¤Ë¥»¥Ã¥È¤¹¤ë¤È¡¢IPv4 ¥³¥Í¥¯¥·¥ç¥ó¤Ç¤â¶¯À©Åª¤Ë¡¢ ¤³¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£ Ãí) ¤Û¤È¤ó¤É¤Î FTP ¥µ¡¼¥Ð¤Ï RFC2428 ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£ +.RE +.PP +cdrom +.RS 3n +CDROM URI \- ¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ÎÀßÄê¤Î¤ß¤ò¹Ô¤¤¤Þ¤¹¡£ +\fI/etc/fstab\fR +¤ÇÀßÄꤵ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¡¢ CDROM ¥É¥é¥¤¥Ö¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ò +cdrom::Mount +¤ËÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ (SMB ¥Þ¥¦¥ó¥È¤ä¸Å¤¤ mount ¥Ñ¥Ã¥±¡¼¥¸¤Ê¤É) ¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤¬ fstab ¤Ëµ­½Ò¤Ç¤­¤Ê¤¤¾ì¹ç¡¢¤«¤ï¤ê¤Ë¥Þ¥¦¥ó¥È¡¦¥¢¥ó¥Þ¥¦¥ó¥È¥³¥Þ¥ó¥É¤â»ÈÍѤǤ­¤Þ¤¹¡£ ʸˡ¤Ï¡¢cdrom ¥Ö¥í¥Ã¥¯¤ò +.sp +.RS 3n +.nf +"/cdrom/"::Mount "foo"; +.fi +.RE +.sp +¤Î·Á¤Çµ­½Ò¤·¤Þ¤¹¡£ ¥¹¥é¥Ã¥·¥å¤ò¸å¤Ë¤Ä¤±¤ë¤Î¤Ï½ÅÍפǤ¹¡£ ¥¢¥ó¥Þ¥¦¥ó¥È¥³¥Þ¥ó¥É¤Ï UMount ¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +gpgv +.RS 3n +GPGV URI \- GPGV URI ÍѤÎÍ£°ì¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ gpgv ¤ËÅϤ¹Äɲåѥé¥á¡¼¥¿¤Î¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£ +gpgv::Options +gpgv ¤ËÅϤ¹Äɲ媥ץ·¥ç¥ó¡£ +.RE +.SH "¥Ç¥£¥ì¥¯¥È¥ê" +.PP +Dir::State +¥»¥¯¥·¥ç¥ó¤Ï¡¢ ¥í¡¼¥«¥ë¾õÂÖ¾ðÊó¤Ë´Ø¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤òÊÝ»ý¤·¤Þ¤¹¡£ +lists +¤Ï¡¢ ¥À¥¦¥ó¥í¡¼¥É¤·¤¿¥Ñ¥Ã¥±¡¼¥¸°ìÍ÷¤ò³ÊǼ¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ç¡¢ +status +¤Ï dpkg ¤Î¾õÂÖ¥Õ¥¡¥¤¥ë¤Î̾Á°¤òɽ¤·¤Þ¤¹¡£ +preferences +¤Ï APT ¤Î ÀßÄê¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ç¤¹¡£ +Dir::State +¤Ë¤Ï¡¢ +\fI/\fR +¤ä +\fI./\fR +¤Ç»Ï¤Þ¤é¤Ê¤¤ Á´¥µ¥Ö¥¢¥¤¥Æ¥à¤ËÉղ乤롢¥Ç¥Õ¥©¥ë¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£ +.PP +Dir::Cache +¤Ï¡¢ ¥í¡¼¥«¥ë¥­¥ã¥Ã¥·¥å¾ðÊó¤Ë´Ø¤¹¤ë¾ì½ê¤ò³ÊǼ¤·¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤Ï¡¢ ¥À¥¦¥ó¥í¡¼¥ÉºÑ¥¢¡¼¥«¥¤¥Ö¤Î¾ì½ê¤ò¼¨¤¹ +Dir::Cache::archives +¤ÈƱÍͤˡ¢srcpkgcache +¤È +pkgcache +¤Î¥Ñ¥Ã¥±¡¼¥¸¥­¥ã¥Ã¥·¥å¤Î¾ì½ê¤È¤Ê¤ê¤Þ¤¹¡£ ¤½¤ì¤¾¤ì¤ò¶õ¤Ë¥»¥Ã¥È¤¹¤ë¤³¤È¤Ç¡¢¥­¥ã¥Ã¥·¥å¤ÎÀ¸À®¤ò̵¸ú¤Ë¤Ç¤­¤Þ¤¹¡£ ¤ª¤½¤é¤¯¡¢srcpkgcache ¤è¤ê¤â pkgcache ¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤¬Â¿¤¤¤È»×¤¤¤Þ¤¹¡£ +Dir::State +¤ÈƱÍÍ¡¢Dir::Cache +¤Ï¥Ç¥Õ¥©¥ë¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£ +.PP +Dir::Etc +¤ÏÀßÄê¥Õ¥¡¥¤¥ë¤Î¾ì½ê¤ò³ÊǼ¤·¤Æ¤¤¤Þ¤¹¡£ +sourcelist +¤Ï¥½¡¼¥¹¥ê¥¹¥È¤Î¾ì½ê¤ò¼¨¤·¡¢ +main +¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤¹¡£ (\fBAPT_CONFIG\fR +¤ÇÀßÄê¥Õ¥¡¥¤¥ë¤ò»ØÄꤵ¤ì¤¿¾ì¹ç¤Î¤ß¡¢ ¤³¤ÎÀßÄê¤Î¸ú²Ì¤¬¤¢¤ê¤Þ¤¹) +.PP +Dir::Parts +ÀßÄê¤Ï¡¢»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¡¢ »ú¶çñ°Ì¤ÎÁ´¤Æ¤ÎÀßÄêÃÇÊÒ¤òÆɤߤ³¤ß¤Þ¤¹¡£ ¤³¤ì¤òÀßÄꤷ¤¿¸å¤Ë¡¢¥á¥¤¥óÀßÄê¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤·¤Þ¤¹¡£ +.PP +¥Ð¥¤¥Ê¥ê¥×¥í¥°¥é¥à¤Ï +Dir::Bin +¤Ç»ØÄꤷ¤Þ¤¹¡£ +Dir::Bin::Methods +¤Ï¥á¥½¥Ã¥É¥Ï¥ó¥É¥é¤Î¾ì½ê¤ò»ØÄꤷ¡¢ +gzip, +dpkg, +apt\-get, +dpkg\-source, +dpkg\-buildpackage, +apt\-cache +¤Ï¤½¤ì¤¾¤ì¥×¥í¥°¥é¥à¤Î¾ì½ê¤ò»ØÄꤷ¤Þ¤¹¡£ +.SH "DSELECT ¤Ç¤Î APT" +.PP + +\fBdselect\fR(8) +¾å¤Ç APT ¤ò»ÈÍѤ¹¤ëºÝ¡¢ +DSelect +¥»¥¯¥·¥ç¥ó°Ê²¼¤ÎÀßÄê¹àÌܤǡ¢ ¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤òÀ©¸æ¤·¤Þ¤¹¡£ +.PP +Clean +.RS 3n +¥­¥ã¥Ã¥·¥å¥¯¥ê¡¼¥ó¥â¡¼¥É \- ¤³¤ÎÃÍ¤Ï always, prompt, auto, pre\-auto, never ¤Î¤¦¤Á¤Ò¤È¤Ä¤ò¼è¤ê¤Þ¤¹¡£ always ¤È prompt ¤Ï¹¹¿·¸å¡¢Á´¥Ñ¥Ã¥±¡¼¥¸¤ò¥­¥ã¥Ã¥·¥å¤«¤éºï½ü¤·¤Þ¤¹¡£ (¥Ç¥Õ¥©¥ë¥È¤Î) prompt ¤Ç¤Ï¾ò·ïÉÕ¤­¤Çºï½ü¤·¤Þ¤¹¡£ auto ¤Ï¥À¥¦¥ó¥í¡¼¥ÉÉÔǽ¥Ñ¥Ã¥±¡¼¥¸ (Î㤨¤Ð¿·¥Ð¡¼¥¸¥ç¥ó¤ÇÃÖ¤­´¹¤¨¤é¤ì¤¿¤â¤Î) ¤òºï½ü¤·¤Þ¤¹¡£pre\-auto ¤Ï¤³¤ÎÆ°ºî¤ò¡¢ ¿·¥Ñ¥Ã¥±¡¼¥¸¤ò¥À¥¦¥ó¥í¡¼¥É¤¹¤ëľÁ°¤Ë¹Ô¤¤¤Þ¤¹¡£ +.RE +.PP +options +.RS 3n +¤³¤ÎÊÑ¿ô¤ÎÆâÍƤϡ¢ install »þ¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤ÈƱÍÍ¤Ë +\fBapt\-get\fR(8) +¤ËÅϤµ¤ì¤Þ¤¹¡£ +.RE +.PP +Updateoptions +.RS 3n +¤³¤ÎÊÑ¿ô¤ÎÆâÍƤϡ¢ update »þ¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤ÈƱÍÍ¤Ë +\fBapt\-get\fR(8) +¤ËÅϤµ¤ì¤Þ¤¹¡£ +.RE +.PP +PromptAfterUpdate +.RS 3n +true ¤Î¾ì¹ç¡¢ +\fBdselect\fR(8) +¤Î [U]pdate ¼Â¹Ô»þ¤Ë¡¢Â³¹Ô¤Î¤¿¤á¤Î¥×¥í¥ó¥×¥È¤òËè²óɽ¼¨¤·¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ï¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Î¤ß¤Ç¤¹¡£ +.RE +.SH "APT ¤¬ DPKG ¤ò¸Æ¤ÖÊýË¡" +.PP +¿ô¼ï¤ÎÀßÄê¹àÌÜ¤Ç APT ¤¬¤É¤Î¤è¤¦¤Ë +\fBdpkg\fR(8) +¤ò¸Æ¤Ó½Ð¤¹¤«¤òÀ©¸æ¤Ç¤­¤Þ¤¹¡£ +DPkg +¥»¥¯¥·¥ç¥ó¤Ë¤¢¤ê¤Þ¤¹¡£ +.PP +options +.RS 3n +dpkg ¤ËÅϤ¹¥ª¥×¥·¥ç¥ó¤Î¥ê¥¹¥È¤Ç¤¹¡£ ¥ª¥×¥·¥ç¥ó¤Ï¡¢¥ê¥¹¥Èµ­Ë¡¤ò»ÈÍѤ·¤Æ»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ¤Þ¤¿¡¢³Æ¥ê¥¹¥È¤Ïñ°ì¤Î°ú¿ô¤È¤·¤Æ +\fBdpkg\fR(8) +¤ËÅϤµ¤ì¤Þ¤¹¡£ +.RE +.PP +Pre\-Invoke, Post\-Invoke +.RS 3n +\fBdpkg\fR(8) +¤ò¸Æ¤Ó½Ð¤¹Á°¸å¤Ç¼Â¹Ô¤¹¤ë¥·¥§¥ë¥³¥Þ¥ó¥É¤Î¥ê¥¹¥È¤Ç¤¹¡£ +options +¤Î¤è¤¦¤Ë¥ê¥¹¥Èµ­Ë¡¤Ç»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ¥³¥Þ¥ó¥É¤Ï +\fI/bin/sh\fR +¤ò»ÈÍѤ·¤Æ¸Æ¤Ó½Ð¤µ¤ì¡¢ ²¿¤«ÌäÂ꤬¤¢¤ì¤Ð¡¢APT ¤Ï°Û¾ï½ªÎ»¤·¤Þ¤¹¡£ +.RE +.PP +Pre\-Install\-Pkgs +.RS 3n +\fBdpkg\fR(8) +¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¼Â¹Ô¤¹¤ë¥·¥§¥ë¥³¥Þ¥ó¥É¤Î¥ê¥¹¥È¤Ç¤¹¡£ +options +¤Î¤è¤¦¤Ë¥ê¥¹¥Èµ­Ë¡¤Ç»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ¥³¥Þ¥ó¥É¤Ï +\fI/bin/sh\fR +¤òÄ̤·¤Æ¸Æ¤Ó½Ð¤µ¤ì¡¢ ²¿¤«ÌäÂ꤬¤¢¤ì¤Ð¡¢APT ¤Ï°Û¾ï½ªÎ»¤·¤Þ¤¹¡£ APT ¤Ï¥¤¥ó¥¹¥È¡¼¥ë¤·¤è¤¦¤È¤¹¤ëÁ´ .deb ¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë̾¤ò¡¢ ¤Ò¤È¤Ä¤º¤Ä¥³¥Þ¥ó¥É¤Îɸ½àÆþÎϤËÁ÷¤ê¤Þ¤¹¡£ +.sp +¤³¤Î¥×¥í¥È¥³¥ë¤Î¥Ð¡¼¥¸¥ç¥ó 2 ¤Ç¤Ï¡¢(¥×¥í¥È¥³¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤ä APT ÀßÄꥹ¥Ú¡¼¥¹¡¢¥Ñ¥Ã¥±¡¼¥¸¤ò´Þ¤à) ¾ÜºÙ¾ðÊó¤ä¥Õ¥¡¥¤¥ë¡¢ Êѹ¹¤µ¤ì¤Æ¤¤¤ë¥Ð¡¼¥¸¥ç¥ó¤ò½ÐÎϤ·¤Þ¤¹¡£ +DPkg::Tools::options::cmd::Version +¤Ë 2 ¤òÀßÄꤹ¤ë¤È¡¢ ¥Ð¡¼¥¸¥ç¥ó 2 ¤òÍ­¸ú¤Ë¤Ç¤­¤Þ¤¹¡£ +cmd +¤Ï +Pre\-Install\-Pkgs +¤ÇÍ¿¤¨¤é¤ì¤ë¥³¥Þ¥ó¥É¤Ç¤¹¡£ +.RE +.PP +Run\-Directory +.RS 3n +APT ¤Ï dpkg ¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë°ÜÆ°¤·¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ï +\fI/\fR +¤Ç¤¹¡£ +.RE +.PP +Build\-options +.RS 3n +¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +\fBdpkg\-buildpackage\fR(1) +¤ËÅϤµ¤ì¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢½ð̾¤ò̵¸ú¤Ë¤·¡¢Á´¥Ð¥¤¥Ê¥ê¤òÀ¸À®¤·¤Þ¤¹¡£ +.RE +.SH "¥Ç¥Ð¥Ã¥°¥ª¥×¥·¥ç¥ó" +.PP +debug +¤Î¿¤¯¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ ÉáÄ̤Υ桼¥¶¤Ë¤È¤Ã¤Æ¶½Ì£¤ò°ú¤¯¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¤·¤«¤· +Debug::pkgProblemResolver +¤Ç¡¢ dist\-upgrade ¤ÎȽÃǤˤĤ¤¤Æ¤Î¶½Ì£¿¼¤¤½ÐÎϤ¬ÆÀ¤é¤ì¤Þ¤¹¡£ +Debug::NoLocking¤Ï¡¢ APT ¤¬Èó root ¤ÇÁàºî¤Ç¤­¤ë¤è¤¦¤Ë¥Õ¥¡¥¤¥ë¤Î¥í¥Ã¥¯¤ò̵¸ú¤Ë¤·¤Þ¤¹¤·¡¢ +Debug::pkgDPkgPM¤Ï¡¢ dpkg ¤ò¸Æ¤ÖºÝ¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤ò½ÐÎϤ·¤Þ¤¹¡£ +Debug::IdentCdrom +¤Ï¡¢ CDROM ID ¤Î¾õÂ֥ǡ¼¥¿¤ÎÊñ´Þ¤ò̵¸ú¤Ë¤·¤Þ¤¹¡£ +Debug::Acquire::gpgv +gpgv Ë¡¤Î¥Ç¥Ð¥Ã¥°¤Ç¤¹¡£ +.SH "Îã" +.PP +\fI/usr/share/doc/apt/examples/configure\-index.gz\fR +¤Ë¡¢Á´ÍøÍѲÄǽ¥ª¥×¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤò»²¾È¤Ç¤­¤ë¡¢ ÀßÄê¥Õ¥¡¥¤¥ë¤Î¥µ¥ó¥×¥ë¤¬¤¢¤ê¤Þ¤¹¡£ +.SH "¥Õ¥¡¥¤¥ë" +.PP +\fI/etc/apt/apt.conf\fR +.SH "´ØÏ¢¹àÌÜ" +.PP +\fBapt\-cache\fR(8), +\fBapt\-config\fR(8), +\fBapt_preferences\fR(5). +.SH "¥Ð¥°" +.PP +[1]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt.conf.ja.5 b/doc/ja/apt.conf.ja.5 new file mode 100644 index 0000000..d3ea028 --- /dev/null +++ b/doc/ja/apt.conf.ja.5 @@ -0,0 +1,452 @@ +.\" Title: apt.conf +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT.CONF" "5" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt.conf \- APT ÀßÄê¥Õ¥¡¥¤¥ë +.SH "ÀâÌÀ" +.PP +\fIapt.conf\fR +¤Ï¡¢ APT ¥Ä¡¼¥ë½¸¤Î¥á¥¤¥óÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤¹¡£ ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤È¶¦Ä̤Υ³¥Þ¥ó¥É¥é¥¤¥ó¥Ñ¡¼¥µ¤ò»È¤Ã¤Æ¡¢ ¤¹¤Ù¤Æ¤Î¥Ä¡¼¥ë¤òÅý°ì´Ä¶­¤Ç»ÈÍѤǤ­¤Þ¤¹¡£ APT ¥Ä¡¼¥ë¤Îµ¯Æ°»þ¤Ë¤Ï¡¢\fBAPT_CONFIG\fR +´Ä¶­ÊÑ¿ô¤Ë»ØÄꤷ¤¿ÀßÄê¤ò (¸ºß¤¹¤ì¤Ð) Æɤ߹þ¤ß¤Þ¤¹¡£ ¼¡¤Ë +Dir::Etc::Parts +¤Î¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¤Þ¤¹¡£ ¼¡¤Ë +Dir::Etc::main +¤Ç»ØÄꤷ¤¿¼çÀßÄê¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¡¢ ºÇ¸å¤Ë¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤Ç¡¢ ÀßÄê¥Õ¥¡¥¤¥ë¤è¤ê¼èÆÀ¤·¤¿Ãͤò¾å½ñ¤­¤·¤Þ¤¹¡£ +.PP +ÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢ µ¡Ç½¥°¥ë¡¼¥×¤´¤È¤Ë·ÏÅýΩ¤Æ¤é¤ì¤¿¥ª¥×¥·¥ç¥ó¤òÌÚ¹½Â¤¤Çɽ¤·¤Þ¤¹¡£ ¥ª¥×¥·¥ç¥ó¤ÎÆâÍƤϡ¢2 ¤Ä¤Î¥³¥í¥ó¤Ç¶èÀÚ¤ê¤Þ¤¹¡£ Î㤨¤Ð +APT::Get::Assume\-Yes +¤Ï¡¢ APT ¥Ä¡¼¥ë¥°¥ë¡¼¥×¤Î¡¢Get ¥Ä¡¼¥ëÍÑ¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£ ¥ª¥×¥·¥ç¥ó¤Ï¡¢¿Æ¥°¥ë¡¼¥×¤«¤é·Ñ¾µ¤·¤Þ¤»¤ó¡£ +.PP +ÀßÄê¸À¸ì¤Îʸˡ¤Ï¡¢ bind ¤ä dhcp ¤Î¤è¤¦¤Ê ISC ¥Ä¡¼¥ë¤ò¥â¥Ç¥ë¤Ë¤·¤Æ¤¤¤Þ¤¹¡£ +// +¤Ç»Ï¤Þ¤ë¹Ô¤Ï¥³¥á¥ó¥È¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹ (̵»ë)¡£ ¤¤¤º¤ì¤Î¹Ô¤â¡¢ +.sp +.RS 3n +.nf +APT::Get::Assume\-Yes "true"; +.fi +.RE +.sp +¤Î ¤è¤¦¤Ê·Á¼°¤Ç¤¹¡£ ¹ÔËö¤Î¥»¥ß¥³¥í¥ó¤ÏɬÍפǤ¹¤¬¡¢¥À¥Ö¥ë¥¯¥©¡¼¥È¤Ï»È¤ï¤Ê¤¯¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£ °Ê²¼¤Î¤è¤¦¤ËÃ楫¥Ã¥³¤ò»È¤¦¤È¡¢¿·¤·¤¤¥¹¥³¡¼¥×¤ò³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.sp +.RS 3n +.nf + +APT { + Get { + Assume\-Yes "true"; + Fix\-Broken "true"; + }; +}; +.fi +.RE +.PP +¤Þ¤¿Å¬µ¹²þ¹Ô¤¹¤ë¤³¤È¤Ç¡¢¤è¤êÆɤߤ䤹¤¯¤Ê¤ê¤Þ¤¹¡£ ¥ê¥¹¥È¤Ï¡¢³«¤¤¤¿¥¹¥³¡¼¥×¡¢¥¯¥©¡¼¥È¤Ç°Ï¤Þ¤ì¤¿Ã±¸ì¡¢ ¤½¤·¤Æ¥»¥ß¥³¥í¥ó¤È³¤±¤ë¤³¤È¤ÇºîÀ®¤Ç¤­¤Þ¤¹¡£ ¥»¥ß¥³¥í¥ó¤Ç¶èÀڤ뤳¤È¤Ç¡¢Ê£¿ô¤Î¥¨¥ó¥È¥ê¤òɽ¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.sp +.RS 3n +.nf + +DPkg::Pre\-Install\-Pkgs {"/usr/sbin/dpkg\-preconfigure \-\-apt";}; +.fi +.RE +.PP +\fI/usr/share/doc/apt/examples/apt.conf\fR +\fI/usr/share/doc/apt/examples/configure\-index.gz\fR +¤Ï°ìÈÌŪ¤ÊÀßÄê¥Õ¥¡¥¤¥ë¤Î¥µ¥ó¥×¥ë¤Ç¤¹¡£ ¤É¤Î¤è¤¦¤ËÀßÄꤹ¤ë¤«»²¹Í¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£ +.PP +#include +¤È +#clear +¤Î 2 ¤Ä¤ÎÆÃÊ̤ʵ­Ë¡¤¬¤¢¤ê¤Þ¤¹¡£ +#include +¤Ï»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤ò¼è¤ê¹þ¤ß¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë̾¤¬¥¹¥é¥Ã¥·¥å¤Ç½ª¤ï¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ ¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¤¹¤Ù¤Æ¼è¤ê¹þ¤ß¤Þ¤¹¡£ +#clear +¤Ï̾Á°¤Î¥ê¥¹¥È¤òºï½ü¤¹¤ë¤Î¤ËÊØÍø¤Ç¤¹¡£ +.PP +¤¹¤Ù¤Æ¤Î APT ¥Ä¡¼¥ë¤Ç¡¢ ¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÇǤ°Õ¤ÎÀßÄê¤ò¹Ô¤¦ \-o ¥ª¥×¥·¥ç¥ó¤¬»ÈÍѤǤ­¤Þ¤¹¡£ ʸˡ¤Ï¡¢´°Á´¤Ê¥ª¥×¥·¥ç¥ó̾ (Îã: +APT::Get::Assume\-Yes)¡¢ Åù¹æ¡¢Â³¤¤¤Æ¥ª¥×¥·¥ç¥ó¤Î¿·¤·¤¤ÃͤȤʤê¤Þ¤¹¡£ ¥ê¥¹¥È̾¤Ë³¤­::¤ò²Ã¤¨¤ë¤³¤È¤Ç¡¢¥ê¥¹¥È¤òÄɲ乤뤳¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.SH "APT ¥°¥ë¡¼¥×" +.PP +¤³¤Î¥ª¥×¥·¥ç¥ó¥°¥ë¡¼¥×¤Ï¡¢¥Ä¡¼¥ëÁ´ÂΤ˱ƶÁ¤Î¤¢¤ë¡¢ °ìÈÌŪ¤Ê APT ¤Î¿¶¤ëÉñ¤¤¤òÀ©¸æ¤·¤Þ¤¹¡£ +.PP +Architecture +.RS 3n +¥·¥¹¥Æ¥à¥¢¡¼¥­¥Æ¥¯¥Á¥ã \- ¥Õ¥¡¥¤¥ë¤ò¼èÆÀ¤·¤¿¤ê¡¢ ¥Ñ¥Ã¥±¡¼¥¸¥ê¥¹¥È¤ò²òÀϤ¹¤ë¤È¤­¤Ë»ÈÍѤ¹¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£ ÆâÉô¤Ç¤Î¥Ç¥Õ¥©¥ë¥È¤Ï¡¢ apt ¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤¹¡£ +.RE +.PP +Ignore\-Hold +.RS 3n +ÊÝα¥Ñ¥Ã¥±¡¼¥¸¤Î̵»ë \- ¤³¤Î¥°¥í¡¼¥Ð¥ë¥ª¥×¥·¥ç¥ó¤Ï¡¢ ÌäÂê²ò·è´ï¤ËÊÝα¤È»ØÄꤷ¤¿¥Ñ¥Ã¥±¡¼¥¸¤ò̵»ë¤·¤Þ¤¹¡£ +.RE +.PP +Clean\-Installed +.RS 3n +¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ç¤¹¡£autoclean µ¡Ç½¤¬ on ¤Î»þ¡¢ ¥À¥¦¥ó¥í¡¼¥É¤Ç¤­¤Ê¤¯¤Ê¤Ã¤¿¥Ñ¥Ã¥±¡¼¥¸¤ò¥­¥ã¥Ã¥·¥å¤«¤éºï½ü¤·¤Þ¤¹¡£ off ¤Î¾ì¹ç¡¢¥í¡¼¥«¥ë¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢ ºï½üÂоݤ«¤é³°¤·¤Þ¤¹¡£ ¤·¤«¤·¡¢ APT ¤Ï¥­¥ã¥Ã¥·¥å¤«¤éºï½ü¤·¤¿¥Ñ¥Ã¥±¡¼¥¸¤ÎºÆ¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤ò¡¢ ľÀÜÄ󶡤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +Immediate\-Configure +.RS 3n +¨»þÀßÄê̵¸ú \- ¤³¤Î´í¸±¤Ê¥ª¥×¥·¥ç¥ó¤Ï¡¢ APT ¤ÎÍ׵ᥳ¡¼¥É¤ò̵¸ú¤Ë¤·¤Æ dpkg ¤Î¸Æ¤Ó½Ð¤·¤ò¤Û¤È¤ó¤É¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢Èó¾ï¤ËÃÙ¤¤¥·¥ó¥°¥ë¥æ¡¼¥¶¥·¥¹¥Æ¥à¤Ç¤ÏɬÍפ«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢ Èó¾ï¤Ë´í¸±¤Ç¡¢¥Ñ¥Ã¥±¡¼¥¸¤Î¥¤¥ó¥¹¥È¡¼¥ë¥¹¥¯¥ê¥×¥È¤¬¼ºÇÔ¤·¤¿¤ê¡¢ ¤â¤·¤¯¤Ï¤â¤Ã¤È°­¤¤¤³¤È¤¬¤ª¤­¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¼«¸ÊÀÕǤ¤Ç»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +Force\-LoopBreak +.RS 3n +²¿¤ò¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¤Î¤«¡ÖËÜÅö¤Ë¡×Ƚ¤Ã¤Æ¤¤¤ë¤Î¤Ç¤Ê¤±¤ì¤Ð¡¢ ÀäÂФˤ³¤Î¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£ ÉԲķç (essential) ¥Ñ¥Ã¥±¡¼¥¸Æ±»Î¤Ç¡¢ ¶¥¹ç (Conflicts) /¶¥¹ç¤ä¶¥¹ç/»öÁ°°Í¸ (Pre\-Depend) ¤Î¥ë¡¼¥×¤ËÍî¤Á¹þ¤ó¤À¤È¤­¤Ë¡¢ ÉԲķç¥Ñ¥Ã¥±¡¼¥¸¤ò°ì»þŪ¤Ëºï½ü¤·¤Æ¥ë¡¼¥×¤òÈ´¤±¤é¤ì¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£ +\fI¤½¤ó¤Ê¥ë¡¼¥×¤Ï¤¢¤êÆÀ¤Ê¤¤¤Ï¤º¤Ç¡¢ ¤¢¤ë¤È¤¹¤ì¤Ð½ÅÂç¤Ê¥Ð¥°¤Ç¤¹¡£\fR +¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢tar, gzip, libc, dpkg, bash ¤È¤½¤ì¤é¤¬°Í¸¤·¤Æ¤¤¤ë ¥Ñ¥Ã¥±¡¼¥¸°Ê³°¤ÎÉԲķç¥Ñ¥Ã¥±¡¼¥¸¤ÇÆ°ºî¤·¤Þ¤¹¡£ +.RE +.PP +Cache\-Limit +.RS 3n +APT ¤Ï¡ÖÍøÍѲÄǽ¡×¾ðÊó¤ò³ÊǼ¤¹¤ë¤¿¤á¤Ë¡¢ ¸ÇÄꥵ¥¤¥º¤Î¥á¥â¥ê¥Þ¥Ã¥×¥­¥ã¥Ã¥·¥å¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤Þ¤¹¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¤½¤Î¥­¥ã¥Ã¥·¥å¥µ¥¤¥º¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +Build\-Essential +.RS 3n +¹½Ã۰͸´Ø·¸¤ÇÉԲķç¤Ê¥Ñ¥Ã¥±¡¼¥¸¤òÄêµÁ¤·¤Þ¤¹¡£ +.RE +.PP +Get +.RS 3n +¥µ¥Ö¥»¥¯¥·¥ç¥ó Get ¤Ï +\fBapt\-get\fR(8) +¥Ä¡¼¥ë¤òÀ©¸æ¤·¤Þ¤¹¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Î¾ÜºÙ¤Ï +\fBapt\-get\fR(8) +¤Îʸ½ñ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +Cache +.RS 3n +¥µ¥Ö¥»¥¯¥·¥ç¥ó Cache ¤Ï +\fBapt\-cache\fR(8) +¥Ä¡¼¥ë¤òÀ©¸æ¤·¤Þ¤¹¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Î¾ÜºÙ¤Ï +\fBapt\-cache\fR(8) +¤Îʸ½ñ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +CDROM +.RS 3n +¥µ¥Ö¥»¥¯¥·¥ç¥ó CDROM ¤Ï +\fBapt\-cdrom\fR(8) +¥Ä¡¼¥ë¤òÀ©¸æ¤·¤Þ¤¹¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Î¾ÜºÙ¤Ï +\fBapt\-cdrom\fR(8) +¤Îʸ½ñ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.SH "ACQUIRE ¥°¥ë¡¼¥×" +.PP +Acquire +¥ª¥×¥·¥ç¥ó¥°¥ë¡¼¥×¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Î¥À¥¦¥ó¥í¡¼¥É¤ä URI ¥Ï¥ó¥É¥é¤ÎÀ©¸æ¤ò¹Ô¤¤¤Þ¤¹¡£ +.PP +Queue\-Mode +.RS 3n +¥­¥å¡¼¥â¡¼¥É \- +Queue\-Mode +¤Ï¡¢ APT ¤¬¤É¤Î¤è¤¦¤ËÊÂÎóÀܳ¤ò¹Ô¤¦¤«¡¢ +host +¤« +access +¤Ç»ØÄê¤Ç¤­¤Þ¤¹¡£ +host +¤Ï¡¢¥¿¡¼¥²¥Ã¥È¥Û¥¹¥È¤´¤È¤Ë 1 Àܳ¤ò³«¤­¤Þ¤¹¡£ +access +¤Ï¡¢ URI ¥¿¥¤¥×¤´¤È¤Ë 1 Àܳ¤ò³«¤­¤Þ¤¹¡£ +.RE +.PP +Retries +.RS 3n +¥ê¥È¥é¥¤¤Î²ó¿ô¤òÀßÄꤷ¤Þ¤¹¡£ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢APT ¤Ï¼ºÇÔ¤·¤¿¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢ Í¿¤¨¤é¤ì¤¿²ó¿ô¤À¤±¥ê¥È¥é¥¤¤ò¹Ô¤¤¤Þ¤¹¡£ +.RE +.PP +Source\-Symlinks +.RS 3n +¥½¡¼¥¹¥¢¡¼¥«¥¤¥Ö¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ò»ÈÍѤ·¤Þ¤¹¡£ true ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¤­¡¢²Äǽ¤Ê¤é¥³¥Ô¡¼¤ÎÂå¤ï¤ê¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬ Ä¥¤é¤ì¤Þ¤¹¡£true ¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¹¡£ +.RE +.PP +http +.RS 3n +HTTP URI \- http::Proxy ¤Ï¡¢ ¥Ç¥Õ¥©¥ë¥È¤Ç»ÈÍѤ¹¤ë http ¥×¥í¥­¥·¤Ç¤¹¡£ +http://[[user][:pass]@]host[:port]/ +¤È¤¤¤¦É¸½à·Á¤Çɽ¤·¤Þ¤¹¡£¥Û¥¹¥È¤´¤È¤Î¥×¥í¥­¥·¤Î¾ì¹ç¤Ï¡¢ +http::Proxy:: +¤È¤¤¤¦·Á¤È¡¢ ¥×¥í¥­¥·¤ò»ÈÍѤ·¤Ê¤¤¤È¤¤¤¦°ÕÌ£¤ÎÆü쥭¡¼¥ï¡¼¥É +DIRECT +¤ò»ÈÍѤ·¤Æ»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¤¹¤Ù¤Æ¤ÎÀßÄê¤Ï¡¢ ´Ä¶­ÊÑ¿ô +\fBhttp_proxy\fR +¤Ç¾å½ñ¤­¤µ¤ì¤Þ¤¹¡£ +.sp +HTTP/1.1 ½àµò¤Î¥×¥í¥­¥·¥­¥ã¥Ã¥·¥å¤ÎÀ©¸æ¤Ë¤Ä¤¤¤Æ¡¢ 3 ¼ïÎà¤ÎÀßÄ꤬¤¢¤ê¤Þ¤¹¡£No\-Cache +¤Ï¥×¥í¥­¥·¤ËÂФ·¤Æ¡¢ ¤¤¤«¤Ê¤ë»þ¤â¥­¥ã¥Ã¥·¥å¤ò»ÈÍѤ·¤Ê¤¤¤ÈÅÁ¤¨¤Þ¤¹¡£ +Max\-Age +¤Ï¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ëÍѤΤȤ­¤À¤±Á÷¿®¤·¡¢ ÆÀ¤é¤ì¤¿»þ´Ö¤è¤ê¤â¸Å¤«¤Ã¤¿¾ì¹ç¤Ë¡¢ ¥ª¥Ö¥¸¥§¥¯¥È¤ò¥ê¥Õ¥ì¥Ã¥·¥å¤¹¤ë¤è¤¦¥­¥ã¥Ã¥·¥å¤Ë»Ø¼¨¤·¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï 1 Æü¤È¤Ê¤Ã¤Æ¤¤¤ë¤¿¤á¡¢ Debian ¤ÏÆüËè¤Ë¤½¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤·¤Þ¤¹¡£ +No\-Store +¤Ï¡¢¥­¥ã¥Ã¥·¥å¤¬¤³¤Î¥ê¥¯¥¨¥¹¥È¤ò³ÊǼ¤»¤º¡¢ ¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤Î¤ßÀßÄꤹ¤ë¤è¤¦»ØÄꤷ¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢Èó¾ï¤ËÂ礭¤Ê .deb ¥Õ¥¡¥¤¥ë¤Ç¥×¥í¥­¥·¥­¥ã¥Ã¥·¥å¤¬±ø¤ì¤ë¤Î¤ò¡¢ Ëɤ°¤Î¤ËÊØÍø¤«¤â¤·¤ì¤Þ¤»¤ó¡£ Ãí) Squid 2.0.2 ¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£ +.sp +timeout +¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¤³¤ÎÊýË¡¤Ç¤Î¥¿¥¤¥à¥¢¥¦¥È¤Þ¤Ç¤Î»þ´Ö¤òÀßÄꤷ¤Þ¤¹¡£ ¤³¤ì¤Ë¤Ï¡¢Àܳ¤Î¥¿¥¤¥à¥¢¥¦¥È¤È¥Ç¡¼¥¿¤Î¥¿¥¤¥à¥¢¥¦¥È¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +¥ê¥â¡¼¥È¥µ¡¼¥Ð¤¬ RFC ½àµò¤Ç¤Ê¤«¤Ã¤¿¤ê¡¢ (Squid 2.0.2 ¤Î¤è¤¦¤Ë) ¥Ð¥°¤¬¤¢¤Ã¤¿¤ê¤·¤¿¤È¤­¤Î¤¿¤á¤Ë¡¢ ¥Ñ¥¤¥×¥é¥¤¥ó¤Î¿¼¤µ¤ÎÀ©¸æ¤òÀßÄꤷ¤Þ¤¹¡£ +Acquire::http::Pipeline\-Depth +¤Ë¤è¤ê¡¢ APT ¤¬Á÷¿®¤Ç¤­¤ë¥ê¥¯¥¨¥¹¥È¤Î²ó¿ô¤ò 0 ¤«¤é 5 ¤ÎÃͤÇÀßÄê¤Ç¤­¤Þ¤¹¡£ ¥ê¥â¡¼¥È¥µ¡¼¥Ð¤¬Å¬ÀڤǤʤ¯¡¢TCP Àܳ¤Ë»þ´Ö¤¬¤«¤«¤ë¤È¤­¤Ï¡¢ +\fIɬ¤º\fR +0 ¤ÎÃͤòÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¥Ç¡¼¥¿¤¬ÇË»¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¤³¤ì¤¬É¬Íפʥۥ¹¥È¤Ï RFC 2068 ¤Ë°ãÈ¿¤·¤Æ¤¤¤Þ¤¹¡£ +.RE +.PP +ftp +.RS 3n +FTP URI \- ftp::Proxy ¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç»ÈÍѤ¹¤ë¥×¥í¥­¥·¥µ¡¼¥Ð¤Ç¤¹¡£ +ftp://[[user][:pass]@]host[:port]/ +¤È¤¤¤¦É¸½à·Á¤Çɽ¤·¤Þ¤¹¤¬¡¢ ´Ä¶­ÊÑ¿ô +\fBftp_proxy\fR +¤Ç¾å½ñ¤­¤µ¤ì¤Þ¤¹¡£ ftp ¥×¥í¥­¥·¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¡¢ÀßÄê¥Õ¥¡¥¤¥ë¤Ë +ftp::ProxyLogin +¥¹¥¯¥ê¥×¥È¤òÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¥×¥í¥­¥·¥µ¡¼¥Ð¤ËÁ÷¿®¤¹¤ëÀܳ¥³¥Þ¥ó¥É¤ò¡¢¤³¤Î¥¨¥ó¥È¥ê¤ËÀßÄꤷ¤Þ¤¹¡£ ¤É¤Î¤è¤¦¤Ë¤¹¤ë¤Î¤«¤Ï +\fI/usr/share/doc/apt/examples/configure\-index.gz\fR +¤ÎÎã¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ ¤½¤Î¾¤Ë¤â¡¢$(PROXY_USER) +$(PROXY_PASS) +$(SITE_USER) +$(SITE_PASS) +$(SITE) +$(SITE_PORT) +¤¬ÍøÍѲÄǽ¤Ç¤¹¡£ ¤¤¤º¤ì¤â¡¢¤½¤ì¤¾¤ì URI ¤ò¹½À®¤¹¤ë¥È¡¼¥¯¥ó¤Ç¤¹¡£ +.sp +timeout +¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¤³¤ÎÊýË¡¤Ç¤Î¥¿¥¤¥à¥¢¥¦¥È¤Þ¤Ç¤Î»þ´Ö¤òÀßÄꤷ¤Þ¤¹¡£ ¤³¤ì¤Ë¤Ï¡¢Àܳ¤Î¥¿¥¤¥à¥¢¥¦¥È¤È¥Ç¡¼¥¿¤Î¥¿¥¤¥à¥¢¥¦¥È¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +ÀßÄê¤Î¤¤¤¯¤Ä¤«¤Ï¡¢¥Ñ¥Ã¥·¥Ö¥â¡¼¥É¤òÀ©¸æ¤¹¤ë¤â¤Î¤Ç¤¹¡£ °ìÈÌŪ¤Ë¡¢¥Ñ¥Ã¥·¥Ö¥â¡¼¥É¤Î¤Þ¤Þ¤Ë¤·¤Æ¤ª¤¯Êý¤¬°ÂÁ´¤Ç¡¢ ¤Û¤Ü¤É¤ó¤Ê´Ä¶­¤Ç¤âÆ°ºî¤·¤Þ¤¹¡£ ¤·¤«¤·¤¢¤ë¾õ¶·²¼¤Ç¤Ï¡¢¥Ñ¥Ã¥·¥Ö¥â¡¼¥É¤¬Ìµ¸ú¤Î¤¿¤á¡¢ Âå¤ï¤ê¤Ë¥Ý¡¼¥È¥â¡¼¥É ftp ¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¤³¤ÎÀßÄê¤Ï¡¢¥×¥í¥­¥·¤òÄ̤ëÀܳ¤äÆÃÄê¤Î¥Û¥¹¥È¤Ø¤ÎÀܳÁ´È̤ËÍ­¸ú¤Ç¤¹¡£ (ÀßÄêÎã¤Ï¥µ¥ó¥×¥ëÀßÄê¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤) +.sp +´Ä¶­ÊÑ¿ô +\fBftp_proxy\fR +¤Î http url ¤Ë¤è¤ê FTP over HTTP ¤Î¥×¥í¥­¥·¤¬ÍøÍѲÄǽ¤Ë¤Ê¤ê¤Þ¤¹¡£ ʸˡ¤Ï¾å¤Î http ¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ ÀßÄê¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ç¤³¤ì¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¤Þ¤¿¡¢¸úΨ¤¬°­¤¤¤¿¤á FTP over HTTP ¤ò»ÈÍѤ¹¤ë¤Î¤Ï¿ä¾©¤·¤Þ¤»¤ó¡£ +.sp +ForceExtended +¤ÎÀßÄê¤Ï RFC2428 ¤Î +EPSV +¥³¥Þ¥ó¥É¤È +EPRT +¥³¥Þ¥ó¥É¤Î»ÈÍѤòÀ©¸æ¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï false ¤Ç¤¹¡£ ¤³¤ì¤Ï¡¢¥³¥ó¥È¥í¡¼¥ë¥³¥Í¥¯¥·¥ç¥ó¤¬ IPv6 ¤Î»þ¤Ë¤Î¤ß¡¢ ¤³¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ ¤³¤ì¤ò true ¤Ë¥»¥Ã¥È¤¹¤ë¤È¡¢IPv4 ¥³¥Í¥¯¥·¥ç¥ó¤Ç¤â¶¯À©Åª¤Ë¡¢ ¤³¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£ Ãí) ¤Û¤È¤ó¤É¤Î FTP ¥µ¡¼¥Ð¤Ï RFC2428 ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£ +.RE +.PP +cdrom +.RS 3n +CDROM URI \- ¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ÎÀßÄê¤Î¤ß¤ò¹Ô¤¤¤Þ¤¹¡£ +\fI/etc/fstab\fR +¤ÇÀßÄꤵ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¡¢ CDROM ¥É¥é¥¤¥Ö¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ò +cdrom::Mount +¤ËÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ (SMB ¥Þ¥¦¥ó¥È¤ä¸Å¤¤ mount ¥Ñ¥Ã¥±¡¼¥¸¤Ê¤É) ¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤¬ fstab ¤Ëµ­½Ò¤Ç¤­¤Ê¤¤¾ì¹ç¡¢¤«¤ï¤ê¤Ë¥Þ¥¦¥ó¥È¡¦¥¢¥ó¥Þ¥¦¥ó¥È¥³¥Þ¥ó¥É¤â»ÈÍѤǤ­¤Þ¤¹¡£ ʸˡ¤Ï¡¢cdrom ¥Ö¥í¥Ã¥¯¤ò +.sp +.RS 3n +.nf +"/cdrom/"::Mount "foo"; +.fi +.RE +.sp +¤Î·Á¤Çµ­½Ò¤·¤Þ¤¹¡£ ¥¹¥é¥Ã¥·¥å¤ò¸å¤Ë¤Ä¤±¤ë¤Î¤Ï½ÅÍפǤ¹¡£ ¥¢¥ó¥Þ¥¦¥ó¥È¥³¥Þ¥ó¥É¤Ï UMount ¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +gpgv +.RS 3n +GPGV URI \- GPGV URI ÍѤÎÍ£°ì¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ gpgv ¤ËÅϤ¹Äɲåѥé¥á¡¼¥¿¤Î¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£ +gpgv::Options +gpgv ¤ËÅϤ¹Äɲ媥ץ·¥ç¥ó¡£ +.RE +.SH "¥Ç¥£¥ì¥¯¥È¥ê" +.PP +Dir::State +¥»¥¯¥·¥ç¥ó¤Ï¡¢ ¥í¡¼¥«¥ë¾õÂÖ¾ðÊó¤Ë´Ø¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤òÊÝ»ý¤·¤Þ¤¹¡£ +lists +¤Ï¡¢ ¥À¥¦¥ó¥í¡¼¥É¤·¤¿¥Ñ¥Ã¥±¡¼¥¸°ìÍ÷¤ò³ÊǼ¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ç¡¢ +status +¤Ï dpkg ¤Î¾õÂÖ¥Õ¥¡¥¤¥ë¤Î̾Á°¤òɽ¤·¤Þ¤¹¡£ +preferences +¤Ï APT ¤Î ÀßÄê¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ç¤¹¡£ +Dir::State +¤Ë¤Ï¡¢ +\fI/\fR +¤ä +\fI./\fR +¤Ç»Ï¤Þ¤é¤Ê¤¤ Á´¥µ¥Ö¥¢¥¤¥Æ¥à¤ËÉղ乤롢¥Ç¥Õ¥©¥ë¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£ +.PP +Dir::Cache +¤Ï¡¢ ¥í¡¼¥«¥ë¥­¥ã¥Ã¥·¥å¾ðÊó¤Ë´Ø¤¹¤ë¾ì½ê¤ò³ÊǼ¤·¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤Ï¡¢ ¥À¥¦¥ó¥í¡¼¥ÉºÑ¥¢¡¼¥«¥¤¥Ö¤Î¾ì½ê¤ò¼¨¤¹ +Dir::Cache::archives +¤ÈƱÍͤˡ¢srcpkgcache +¤È +pkgcache +¤Î¥Ñ¥Ã¥±¡¼¥¸¥­¥ã¥Ã¥·¥å¤Î¾ì½ê¤È¤Ê¤ê¤Þ¤¹¡£ ¤½¤ì¤¾¤ì¤ò¶õ¤Ë¥»¥Ã¥È¤¹¤ë¤³¤È¤Ç¡¢¥­¥ã¥Ã¥·¥å¤ÎÀ¸À®¤ò̵¸ú¤Ë¤Ç¤­¤Þ¤¹¡£ ¤ª¤½¤é¤¯¡¢srcpkgcache ¤è¤ê¤â pkgcache ¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤¬Â¿¤¤¤È»×¤¤¤Þ¤¹¡£ +Dir::State +¤ÈƱÍÍ¡¢Dir::Cache +¤Ï¥Ç¥Õ¥©¥ë¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£ +.PP +Dir::Etc +¤ÏÀßÄê¥Õ¥¡¥¤¥ë¤Î¾ì½ê¤ò³ÊǼ¤·¤Æ¤¤¤Þ¤¹¡£ +sourcelist +¤Ï¥½¡¼¥¹¥ê¥¹¥È¤Î¾ì½ê¤ò¼¨¤·¡¢ +main +¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤¹¡£ (\fBAPT_CONFIG\fR +¤ÇÀßÄê¥Õ¥¡¥¤¥ë¤ò»ØÄꤵ¤ì¤¿¾ì¹ç¤Î¤ß¡¢ ¤³¤ÎÀßÄê¤Î¸ú²Ì¤¬¤¢¤ê¤Þ¤¹) +.PP +Dir::Parts +ÀßÄê¤Ï¡¢»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¡¢ »ú¶çñ°Ì¤ÎÁ´¤Æ¤ÎÀßÄêÃÇÊÒ¤òÆɤߤ³¤ß¤Þ¤¹¡£ ¤³¤ì¤òÀßÄꤷ¤¿¸å¤Ë¡¢¥á¥¤¥óÀßÄê¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤·¤Þ¤¹¡£ +.PP +¥Ð¥¤¥Ê¥ê¥×¥í¥°¥é¥à¤Ï +Dir::Bin +¤Ç»ØÄꤷ¤Þ¤¹¡£ +Dir::Bin::Methods +¤Ï¥á¥½¥Ã¥É¥Ï¥ó¥É¥é¤Î¾ì½ê¤ò»ØÄꤷ¡¢ +gzip, +dpkg, +apt\-get, +dpkg\-source, +dpkg\-buildpackage, +apt\-cache +¤Ï¤½¤ì¤¾¤ì¥×¥í¥°¥é¥à¤Î¾ì½ê¤ò»ØÄꤷ¤Þ¤¹¡£ +.SH "DSELECT ¤Ç¤Î APT" +.PP + +\fBdselect\fR(8) +¾å¤Ç APT ¤ò»ÈÍѤ¹¤ëºÝ¡¢ +DSelect +¥»¥¯¥·¥ç¥ó°Ê²¼¤ÎÀßÄê¹àÌܤǡ¢ ¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤òÀ©¸æ¤·¤Þ¤¹¡£ +.PP +Clean +.RS 3n +¥­¥ã¥Ã¥·¥å¥¯¥ê¡¼¥ó¥â¡¼¥É \- ¤³¤ÎÃÍ¤Ï always, prompt, auto, pre\-auto, never ¤Î¤¦¤Á¤Ò¤È¤Ä¤ò¼è¤ê¤Þ¤¹¡£ always ¤È prompt ¤Ï¹¹¿·¸å¡¢Á´¥Ñ¥Ã¥±¡¼¥¸¤ò¥­¥ã¥Ã¥·¥å¤«¤éºï½ü¤·¤Þ¤¹¡£ (¥Ç¥Õ¥©¥ë¥È¤Î) prompt ¤Ç¤Ï¾ò·ïÉÕ¤­¤Çºï½ü¤·¤Þ¤¹¡£ auto ¤Ï¥À¥¦¥ó¥í¡¼¥ÉÉÔǽ¥Ñ¥Ã¥±¡¼¥¸ (Î㤨¤Ð¿·¥Ð¡¼¥¸¥ç¥ó¤ÇÃÖ¤­´¹¤¨¤é¤ì¤¿¤â¤Î) ¤òºï½ü¤·¤Þ¤¹¡£pre\-auto ¤Ï¤³¤ÎÆ°ºî¤ò¡¢ ¿·¥Ñ¥Ã¥±¡¼¥¸¤ò¥À¥¦¥ó¥í¡¼¥É¤¹¤ëľÁ°¤Ë¹Ô¤¤¤Þ¤¹¡£ +.RE +.PP +options +.RS 3n +¤³¤ÎÊÑ¿ô¤ÎÆâÍƤϡ¢ install »þ¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤ÈƱÍÍ¤Ë +\fBapt\-get\fR(8) +¤ËÅϤµ¤ì¤Þ¤¹¡£ +.RE +.PP +Updateoptions +.RS 3n +¤³¤ÎÊÑ¿ô¤ÎÆâÍƤϡ¢ update »þ¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤ÈƱÍÍ¤Ë +\fBapt\-get\fR(8) +¤ËÅϤµ¤ì¤Þ¤¹¡£ +.RE +.PP +PromptAfterUpdate +.RS 3n +true ¤Î¾ì¹ç¡¢ +\fBdselect\fR(8) +¤Î [U]pdate ¼Â¹Ô»þ¤Ë¡¢Â³¹Ô¤Î¤¿¤á¤Î¥×¥í¥ó¥×¥È¤òËè²óɽ¼¨¤·¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ï¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Î¤ß¤Ç¤¹¡£ +.RE +.SH "APT ¤¬ DPKG ¤ò¸Æ¤ÖÊýË¡" +.PP +¿ô¼ï¤ÎÀßÄê¹àÌÜ¤Ç APT ¤¬¤É¤Î¤è¤¦¤Ë +\fBdpkg\fR(8) +¤ò¸Æ¤Ó½Ð¤¹¤«¤òÀ©¸æ¤Ç¤­¤Þ¤¹¡£ +DPkg +¥»¥¯¥·¥ç¥ó¤Ë¤¢¤ê¤Þ¤¹¡£ +.PP +options +.RS 3n +dpkg ¤ËÅϤ¹¥ª¥×¥·¥ç¥ó¤Î¥ê¥¹¥È¤Ç¤¹¡£ ¥ª¥×¥·¥ç¥ó¤Ï¡¢¥ê¥¹¥Èµ­Ë¡¤ò»ÈÍѤ·¤Æ»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ¤Þ¤¿¡¢³Æ¥ê¥¹¥È¤Ïñ°ì¤Î°ú¿ô¤È¤·¤Æ +\fBdpkg\fR(8) +¤ËÅϤµ¤ì¤Þ¤¹¡£ +.RE +.PP +Pre\-Invoke, Post\-Invoke +.RS 3n +\fBdpkg\fR(8) +¤ò¸Æ¤Ó½Ð¤¹Á°¸å¤Ç¼Â¹Ô¤¹¤ë¥·¥§¥ë¥³¥Þ¥ó¥É¤Î¥ê¥¹¥È¤Ç¤¹¡£ +options +¤Î¤è¤¦¤Ë¥ê¥¹¥Èµ­Ë¡¤Ç»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ¥³¥Þ¥ó¥É¤Ï +\fI/bin/sh\fR +¤ò»ÈÍѤ·¤Æ¸Æ¤Ó½Ð¤µ¤ì¡¢ ²¿¤«ÌäÂ꤬¤¢¤ì¤Ð¡¢APT ¤Ï°Û¾ï½ªÎ»¤·¤Þ¤¹¡£ +.RE +.PP +Pre\-Install\-Pkgs +.RS 3n +\fBdpkg\fR(8) +¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¼Â¹Ô¤¹¤ë¥·¥§¥ë¥³¥Þ¥ó¥É¤Î¥ê¥¹¥È¤Ç¤¹¡£ +options +¤Î¤è¤¦¤Ë¥ê¥¹¥Èµ­Ë¡¤Ç»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ¥³¥Þ¥ó¥É¤Ï +\fI/bin/sh\fR +¤òÄ̤·¤Æ¸Æ¤Ó½Ð¤µ¤ì¡¢ ²¿¤«ÌäÂ꤬¤¢¤ì¤Ð¡¢APT ¤Ï°Û¾ï½ªÎ»¤·¤Þ¤¹¡£ APT ¤Ï¥¤¥ó¥¹¥È¡¼¥ë¤·¤è¤¦¤È¤¹¤ëÁ´ .deb ¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë̾¤ò¡¢ ¤Ò¤È¤Ä¤º¤Ä¥³¥Þ¥ó¥É¤Îɸ½àÆþÎϤËÁ÷¤ê¤Þ¤¹¡£ +.sp +¤³¤Î¥×¥í¥È¥³¥ë¤Î¥Ð¡¼¥¸¥ç¥ó 2 ¤Ç¤Ï¡¢(¥×¥í¥È¥³¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤ä APT ÀßÄꥹ¥Ú¡¼¥¹¡¢¥Ñ¥Ã¥±¡¼¥¸¤ò´Þ¤à) ¾ÜºÙ¾ðÊó¤ä¥Õ¥¡¥¤¥ë¡¢ Êѹ¹¤µ¤ì¤Æ¤¤¤ë¥Ð¡¼¥¸¥ç¥ó¤ò½ÐÎϤ·¤Þ¤¹¡£ +DPkg::Tools::options::cmd::Version +¤Ë 2 ¤òÀßÄꤹ¤ë¤È¡¢ ¥Ð¡¼¥¸¥ç¥ó 2 ¤òÍ­¸ú¤Ë¤Ç¤­¤Þ¤¹¡£ +cmd +¤Ï +Pre\-Install\-Pkgs +¤ÇÍ¿¤¨¤é¤ì¤ë¥³¥Þ¥ó¥É¤Ç¤¹¡£ +.RE +.PP +Run\-Directory +.RS 3n +APT ¤Ï dpkg ¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë°ÜÆ°¤·¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ï +\fI/\fR +¤Ç¤¹¡£ +.RE +.PP +Build\-options +.RS 3n +¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +\fBdpkg\-buildpackage\fR(1) +¤ËÅϤµ¤ì¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢½ð̾¤ò̵¸ú¤Ë¤·¡¢Á´¥Ð¥¤¥Ê¥ê¤òÀ¸À®¤·¤Þ¤¹¡£ +.RE +.SH "¥Ç¥Ð¥Ã¥°¥ª¥×¥·¥ç¥ó" +.PP +debug +¤Î¿¤¯¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ ÉáÄ̤Υ桼¥¶¤Ë¤È¤Ã¤Æ¶½Ì£¤ò°ú¤¯¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¤·¤«¤· +Debug::pkgProblemResolver +¤Ç¡¢ dist\-upgrade ¤ÎȽÃǤˤĤ¤¤Æ¤Î¶½Ì£¿¼¤¤½ÐÎϤ¬ÆÀ¤é¤ì¤Þ¤¹¡£ +Debug::NoLocking¤Ï¡¢ APT ¤¬Èó root ¤ÇÁàºî¤Ç¤­¤ë¤è¤¦¤Ë¥Õ¥¡¥¤¥ë¤Î¥í¥Ã¥¯¤ò̵¸ú¤Ë¤·¤Þ¤¹¤·¡¢ +Debug::pkgDPkgPM¤Ï¡¢ dpkg ¤ò¸Æ¤ÖºÝ¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤ò½ÐÎϤ·¤Þ¤¹¡£ +Debug::IdentCdrom +¤Ï¡¢ CDROM ID ¤Î¾õÂ֥ǡ¼¥¿¤ÎÊñ´Þ¤ò̵¸ú¤Ë¤·¤Þ¤¹¡£ +Debug::Acquire::gpgv +gpgv Ë¡¤Î¥Ç¥Ð¥Ã¥°¤Ç¤¹¡£ +.SH "Îã" +.PP +\fI/usr/share/doc/apt/examples/configure\-index.gz\fR +¤Ë¡¢Á´ÍøÍѲÄǽ¥ª¥×¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤò»²¾È¤Ç¤­¤ë¡¢ ÀßÄê¥Õ¥¡¥¤¥ë¤Î¥µ¥ó¥×¥ë¤¬¤¢¤ê¤Þ¤¹¡£ +.SH "¥Õ¥¡¥¤¥ë" +.PP +\fI/etc/apt/apt.conf\fR +.SH "´ØÏ¢¹àÌÜ" +.PP +\fBapt\-cache\fR(8), +\fBapt\-config\fR(8), +\fBapt_preferences\fR(5). +.SH "¥Ð¥°" +.PP +[1]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt.conf.ja.5.xml b/doc/ja/apt.conf.ja.5.xml new file mode 100644 index 0000000..8707c80 --- /dev/null +++ b/doc/ja/apt.conf.ja.5.xml @@ -0,0 +1,809 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 February 2004 + + + + apt.conf + 5 + + + + + apt.conf + + APT 設定ファイル + + + + 説明 + + apt.conf は、 + APT ツール集のメイン設定ファイルです。 + この設定ファイルと共通のコマンドラインパーサを使って、 + すべてのツールを統一環境で使用できます。 + APT ツールの起動時には、APT_CONFIG 環境変数に指定した設定を + (存在すれば) 読み込みます。 + 次に Dir::Etc::Parts のファイルを読み込みます。 + 次に Dir::Etc::main で指定した主設定ファイルを読み込み、 + 最後にコマンドラインオプションで、 + 設定ファイルより取得した値を上書きします。 + + + 設定ファイルは、 + 機能グループごとに系統立てられたオプションを木構造で表します。 + オプションの内容は、2 つのコロンで区切ります。 + 例えば APT::Get::Assume-Yes は、 + APT ツールグループの、Get ツール用オプションです。 + オプションは、親グループから継承しません。 + + + 設定言語の文法は、 + bind や dhcp のような ISC ツールをモデルにしています。 + // で始まる行はコメントとして扱われます (無視)。 + いずれの行も、APT::Get::Assume-Yes "true"; の + ような形式です。 + 行末のセミコロンは必要ですが、ダブルクォートは使わなくてもかまいません。 + 以下のように中カッコを使うと、新しいスコープを開くことができます。 + + +APT { + Get { + Assume-Yes "true"; + Fix-Broken "true"; + }; +}; + + + + また適宜改行することで、より読みやすくなります。 + リストは、開いたスコープ、クォートで囲まれた単語、 + そしてセミコロンと続けることで作成できます。 + セミコロンで区切ることで、複数のエントリを表すことができます。 + + +DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; + + + + &docdir;examples/apt.conf &configureindex; + は一般的な設定ファイルのサンプルです。 + どのように設定するか参考になるでしょう。 + + + #include と #clear の + 2 つの特別な記法があります。 + #include は指定したファイルを取り込みます。 + ファイル名がスラッシュで終わった場合には、 + そのディレクトリをすべて取り込みます。 + #clear は名前のリストを削除するのに便利です。 + + + すべての APT ツールで、 + コマンドラインで任意の設定を行う -o オプションが使用できます。 + 文法は、完全なオプション名 (例: APT::Get::Assume-Yes)、 + 等号、続いてオプションの新しい値となります。 + リスト名に続き::を加えることで、リストを追加することができます。 + + + + APT グループ + + このオプショングループは、ツール全体に影響のある、 + 一般的な APT の振る舞いを制御します。 + + + Architecture + + システムアーキテクチャ - ファイルを取得したり、 + パッケージリストを解析するときに使用するアーキテクチャをセットします。 + 内部でのデフォルトは、 + apt をコンパイルしたアーキテクチャです。 + + + Ignore-Hold + + 保留パッケージの無視 - このグローバルオプションは、 + 問題解決器に保留と指定したパッケージを無視します。 + + + Clean-Installed + + デフォルトで有効です。autoclean 機能が on の時、 + ダウンロードできなくなったパッケージをキャッシュから削除します。 + off の場合、ローカルにインストールされているパッケージは、 + 削除対象から外します。 + しかし、 APT はキャッシュから削除したパッケージの再インストール方法を、 + 直接提供するわけではないことに注意してください。 + + + Immediate-Configure + + 即時設定無効 - この危険なオプションは、 + APT の要求コードを無効にして dpkg の呼び出しをほとんどしないようにします。 + これは、非常に遅いシングルユーザシステムでは必要かもしれませんが、 + 非常に危険で、パッケージのインストールスクリプトが失敗したり、 + もしくはもっと悪いことがおきるかもしれません。 + 自己責任で使用してください。 + + + Force-LoopBreak + + 何をしようとしているのか「本当に」判っているのでなければ、 + 絶対にこのオプションを有効にしないでください。 + 不可欠 (essential) パッケージ同士で、 + 競合 (Conflicts) /競合や競合/事前依存 (Pre-Depend) + のループに落ち込んだときに、 + 不可欠パッケージを一時的に削除してループを抜けられるようにします。 + そんなループはあり得ないはずで、 + あるとすれば重大なバグです。 + このオプションは、tar, gzip, libc, dpkg, bash とそれらが依存している + パッケージ以外の不可欠パッケージで動作します。 + + + Cache-Limit + + APT は「利用可能」情報を格納するために、 + 固定サイズのメモリマップキャッシュファイルを使用します。 + このオプションは、そのキャッシュサイズを指定します。 + + + Build-Essential + + 構築依存関係で不可欠なパッケージを定義します。 + + + Get + + サブセクション Get は &apt-get; ツールを制御します。 + このオプションの詳細は &apt-get; の文書を参照してください。 + + + Cache + + サブセクション Cache は &apt-cache; ツールを制御します。 + このオプションの詳細は &apt-cache; の文書を参照してください。 + + + CDROM + + サブセクション CDROM は &apt-cdrom; ツールを制御します。 + このオプションの詳細は &apt-cdrom; の文書を参照してください。 + + + + + + Acquire グループ + + Acquire オプショングループは、 + パッケージのダウンロードや URI ハンドラの制御を行います。 + + Queue-Mode + + キューモード - Queue-Mode は、 + APT がどのように並列接続を行うか、 + host か access で指定できます。 + host は、ターゲットホストごとに 1 接続を開きます。 + access は、 + URI タイプごとに 1 接続を開きます。 + + + Retries + + リトライの回数を設定します。 + 0 でない場合、APT は失敗したファイルに対して、 + 与えられた回数だけリトライを行います。 + + + Source-Symlinks + + ソースアーカイブのシンボリックリンクを使用します。 + true がセットされているとき、可能ならコピーの代わりにシンボリックリンクが + 張られます。true がデフォルトです。 + + + http + + HTTP URI - http::Proxy は、 + デフォルトで使用する http プロキシです。 + http://[[user][:pass]@]host[:port]/ + という標準形で表します。ホストごとのプロキシの場合は、 + http::Proxy::<host> という形と、 + プロキシを使用しないという意味の特殊キーワード DIRECT + を使用して指定することもできます。すべての設定は、 + 環境変数 http_proxy で上書きされます。 + + + HTTP/1.1 準拠のプロキシキャッシュの制御について、 + 3 種類の設定があります。No-Cache はプロキシに対して、 + いかなる時もキャッシュを使用しないと伝えます。 + Max-Age は、インデックスファイル用のときだけ送信し、 + 得られた時間よりも古かった場合に、 + オブジェクトをリフレッシュするようキャッシュに指示します。 + デフォルトでは 1 日となっているため、 + Debian は日毎にそのインデックスファイルを更新します。 + No-Store は、キャッシュがこのリクエストを格納せず、 + アーカイブファイルのみ設定するよう指定します。 + これは、非常に大きな .deb ファイルでプロキシキャッシュが汚れるのを、 + 防ぐのに便利かもしれません。 + 注) Squid 2.0.2 では、これらのオプションをサポートしていません。 + + + timeout オプションは、 + この方法でのタイムアウトまでの時間を設定します。 + これには、接続のタイムアウトとデータのタイムアウトが含まれています。 + + + リモートサーバが RFC 準拠でなかったり、 + (Squid 2.0.2 のように) バグがあったりしたときのために、 + パイプラインの深さの制御を設定します。 + Acquire::http::Pipeline-Depth により、 + APT が送信できるリクエストの回数を 0 から 5 の値で設定できます。 + リモートサーバが適切でなく、TCP 接続に時間がかかるときは、 + 必ず 0 の値を設定しなければなりません。 + そうでなければデータが破損してしまいます。 + これが必要なホストは RFC 2068 に違反しています。 + + + ftp + + FTP URI - ftp::Proxy は、デフォルトで使用するプロキシサーバです。 + ftp://[[user][:pass]@]host[:port]/ という標準形で表しますが、 + 環境変数 ftp_proxy で上書きされます。 + ftp プロキシを使用するには、設定ファイルに ftp::ProxyLogin + スクリプトを設定する必要があります。 + プロキシサーバに送信する接続コマンドを、このエントリに設定します。 + どのようにするのかは &configureindex; の例を参照してください。 + その他にも、$(PROXY_USER) + $(PROXY_PASS) $(SITE_USER) + $(SITE_PASS) $(SITE) + $(SITE_PORT) が利用可能です。 + いずれも、それぞれ URI を構成するトークンです。 + + + timeout オプションは、 + この方法でのタイムアウトまでの時間を設定します。 + これには、接続のタイムアウトとデータのタイムアウトが含まれています。 + + + 設定のいくつかは、パッシブモードを制御するものです。 + 一般的に、パッシブモードのままにしておく方が安全で、 + ほぼどんな環境でも動作します。 + しかしある状況下では、パッシブモードが無効のため、 + 代わりにポートモード ftp を使用する必要があります。 + この設定は、プロキシを通る接続や特定のホストへの接続全般に有効です。 + (設定例はサンプル設定ファイルを参照してください) + + + 環境変数 ftp_proxy の http url により + FTP over HTTP のプロキシが利用可能になります。 + 文法は上の http についての説明を参照してください。 + 設定ファイルの中でこれをセットすることはできません。 + また、効率が悪いため FTP over HTTP を使用するのは推奨しません。 + + + ForceExtended の設定は RFC2428 の + EPSV コマンドと EPRT + コマンドの使用を制御します。デフォルトでは false です。 + これは、コントロールコネクションが IPv6 の時にのみ、 + このコマンドを使用するということです。 + これを true にセットすると、IPv4 コネクションでも強制的に、 + このコマンドを使用します。 + 注) ほとんどの FTP サーバは RFC2428 をサポートしていません。 + + + cdrom + + CDROM URI - マウントポイントの設定のみを行います。 + /etc/fstab で設定されているように、 + CDROM ドライブのマウントポイントを + cdrom::Mount に設定しなければなりません。 + (SMB マウントや古い mount パッケージなど) マウントポイントが fstab + に記述できない場合、かわりにマウント・アンマウントコマンドも使用できます。 + 文法は、cdrom ブロックを + "/cdrom/"::Mount "foo"; の形で記述します。 + スラッシュを後につけるのは重要です。 + アンマウントコマンドは UMount で指定することができます。 + + + gpgv + + GPGV URI - GPGV URI 用の唯一のオプションは、 + gpgv に渡す追加パラメータのオプションです。 + gpgv::Options gpgv に渡す追加オプション。 + + + + + + + + + ディレクトリ + + + Dir::State セクションは、 + ローカル状態情報に関するディレクトリを保持します。 + lists は、 + ダウンロードしたパッケージ一覧を格納するディレクトリで、 + status は dpkg の状態ファイルの名前を表します。 + preferences は APT の 設定ファイルの名前です。 + Dir::State には、 + / や ./ で始まらない + 全サブアイテムに付加する、デフォルトディレクトリを含んでいます。 + + + Dir::Cache は、 + ローカルキャッシュ情報に関する場所を格納しています。これは、 + ダウンロード済アーカイブの場所を示す Dir::Cache::archives + と同様に、srcpkgcache と pkgcache + のパッケージキャッシュの場所となります。 + それぞれを空にセットすることで、キャッシュの生成を無効にできます。 + おそらく、srcpkgcache よりも pkgcache を無効にすることが多いと思います。 + Dir::State と同様、Dir::Cache + はデフォルトディレクトリを含んでいます。 + + + Dir::Etc は設定ファイルの場所を格納しています。 + sourcelist はソースリストの場所を示し、 + main はデフォルトの設定ファイルです。 + (APT_CONFIG で設定ファイルを指定された場合のみ、 + この設定の効果があります) + + + Dir::Parts 設定は、指定されたディレクトリから、 + 字句単位の全ての設定断片を読みこみます。 + これを設定した後に、メイン設定ファイルをロードします。 + + + バイナリプログラムは Dir::Bin で指定します。 + Dir::Bin::Methods はメソッドハンドラの場所を指定し、 + gzip, dpkg, + apt-get, dpkg-source, + dpkg-buildpackage, apt-cache + はそれぞれプログラムの場所を指定します。 + + + + DSelect での APT + + + &dselect; 上で APT を使用する際、 + DSelect セクション以下の設定項目で、 + デフォルトの動作を制御します。 + + Clean + + キャッシュクリーンモード - + この値は always, prompt, auto, pre-auto, never のうちひとつを取ります。 + always と prompt は更新後、全パッケージをキャッシュから削除します。 + (デフォルトの) prompt では条件付きで削除します。 + auto はダウンロード不能パッケージ (例えば新バージョンで置き換えられたもの) + を削除します。pre-auto はこの動作を、 + 新パッケージをダウンロードする直前に行います。 + + + options + + この変数の内容は、 + install 時のコマンドラインオプションと同様に &apt-get; に渡されます。 + + + Updateoptions + + この変数の内容は、 + update 時のコマンドラインオプションと同様に &apt-get; に渡されます。 + + + PromptAfterUpdate + + true の場合、 + &dselect; の [U]pdate 実行時に、続行のためのプロンプトを毎回表示します。 + デフォルトはエラーが発生した場合のみです。 + + + + + + APT が dpkg を呼ぶ方法 + + 数種の設定項目で APT がどのように &dpkg; を呼び出すかを制御できます。 + DPkg セクションにあります。 + + + options + + dpkg に渡すオプションのリストです。 + オプションは、リスト記法を使用して指定しなければなりません。 + また、各リストは単一の引数として &dpkg; に渡されます。 + + + Pre-InvokePost-Invoke + + &dpkg; を呼び出す前後で実行するシェルコマンドのリストです。 + options のようにリスト記法で指定しなければなりません。 + コマンドは /bin/sh を使用して呼び出され、 + 何か問題があれば、APT は異常終了します。 + + + Pre-Install-Pkgs + + &dpkg; を呼び出す前に実行するシェルコマンドのリストです。 + options のようにリスト記法で指定しなければなりません。 + コマンドは /bin/sh を通して呼び出され、 + 何か問題があれば、APT は異常終了します。 + APT はインストールしようとする全 .deb ファイルのファイル名を、 + ひとつずつコマンドの標準入力に送ります。 + + + このプロトコルのバージョン 2 では、(プロトコルのバージョンや + APT 設定スペース、パッケージを含む) 詳細情報やファイル、 + 変更されているバージョンを出力します。 + DPkg::Tools::options::cmd::Version に 2 を設定すると、 + バージョン 2 を有効にできます。 + cmd は Pre-Install-Pkgs + で与えられるコマンドです。 + + + Run-Directory + + APT は dpkg を呼び出す前にこのディレクトリに移動します。 + デフォルトは / です。 + + + Build-options + + これらのオプションは、 + パッケージのコンパイル時に &dpkg-buildpackage; に渡されます。 + デフォルトでは、署名を無効にし、全バイナリを生成します。 + + + + + + デバッグオプション + + debug の多くのオプションは、 + 普通のユーザにとって興味を引くものではありません。 + しかし Debug::pkgProblemResolver で、 + dist-upgrade の判断についての興味深い出力が得られます。 + Debug::NoLockingは、 + APT が非 root で操作できるようにファイルのロックを無効にしますし、 + Debug::pkgDPkgPMは、 + dpkg を呼ぶ際のコマンドラインを出力します。 + Debug::IdentCdrom は、 + CDROM ID の状態データの包含を無効にします。 + Debug::Acquire::gpgv gpgv 法のデバッグです。 + + + + + 例 + + &configureindex; に、全利用可能オプションのデフォルト値を参照できる、 + 設定ファイルのサンプルがあります。 + + + + ファイル + /etc/apt/apt.conf + + + + 関連項目 + &apt-cache;, &apt-config;, &apt-preferences;. + + + &manbugs; + &translator; + + + diff --git a/doc/ja/apt.ent.ja b/doc/ja/apt.ent.ja new file mode 100644 index 0000000..3fa931a --- /dev/null +++ b/doc/ja/apt.ent.ja @@ -0,0 +1,328 @@ + + + + +&docdir;examples/configure-index.gz"> +/etc/apt.conf"> + + + + + + apt.conf + 5 + " +> + + + apt-get + 8 + " +> + + + apt-config + 8 + " +> + + + apt-cdrom + 8 + " +> + + + apt-cache + 8 + " +> + + + apt_preferences + 5 + " +> + + + apt-key + 8 + " +> + + + apt-secure + 8 + " +> + + + apt-archive + 1 + " +> + + + + sources.list + 5 + " +> + + + reportbug + 1 + " +> + + + dpkg + 8 + " +> + + + dpkg-buildpackage + 1 + " +> + + + gzip + 1 + " +> + + + dpkg-scanpackages + 8 + " +> + + + dpkg-scansources + 8 + " +> + + + dselect + 8 + " +> + + + aptitude + 8 + " +> + + + synaptic + 8 + " +> + + + debsign + 1 + " +> + + + debsig-verify + 1 + " +> + + + gpg + 1 + " +> + + + +

apt@packages.debian.org
+ Jason Gunthorpe + 1998-2001 Jason Gunthorpe + 14 December 2003 + Linux + + +"> + + + apt@packages.debian.org + +"> + + + Jason + Gunthorpe + +"> + + + APT team + +"> + +Linux +"> + + + apt@packages.debian.org + +"> + + + Jason + Gunthorpe + +"> + + + APT team + +"> + + + Jason Gunthorpe + 1998-2001 +
+"> + +Linux +"> + + +Bugs +--> + バグ + + APT バグページを + ご覧ください。 + APT のバグを報告する場合は、 + /usr/share/doc/debian/bug-reporting.txt や + &reportbug; コマンドをご覧ください。 + + +"> + + +Author +--> + 著者 + + APT は the APT team apt@packages.debian.org によって + 書かれました。 + + +"> + + +訳者 + 倉澤 望 nabetaro@debian.or.jp (2003-2006), + Debian JP Documentation ML debian-doc@debian.or.jp + + +"> + + + + + + 使い方の短い要約を表示します。 + + + + + + + + + プログラムのバージョンを表示します。 + + + + + + + + + 設定ファイル。 使用する設定ファイルを指定します。 + この設定ファイルが読めない場合はデフォルトの設定ファイルを読み込みます。 + 文法については &apt-conf; を参照してください。 + + + + + + + + + 設定オプションのセット。任意の設定オプションをセットします。 + 文法は となります。 + + + +"> + + +All command line options may be set using the configuration file, the + descriptions indicate the configuration option to set. For boolean + options you can override the config file by using something like + ,, + or several other variations. + +--> + この説明で示したオプションは、 + すべて設定ファイルを使用して設定できます。 + 設定ファイルに書いた真偽値をとるオプションは + ,, + などのようにして上書きできます。 + +"> + diff --git a/doc/ja/apt_preferences.5 b/doc/ja/apt_preferences.5 new file mode 100644 index 0000000..419479c --- /dev/null +++ b/doc/ja/apt_preferences.5 @@ -0,0 +1,526 @@ +.\" Title: apt_preferences +.\" Author: APT team +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT_PREFERENCES" "5" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt_preferences \- APT ÀßÄêÀ©¸æ¥Õ¥¡¥¤¥ë +.SH "ÀâÌÀ" +.PP +APT ÀßÄê¥Õ¥¡¥¤¥ë +\fI/etc/apt/preferences\fR +¤Ï¡¢ ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥óÁªÂò¤òÀ©¸æ¤¹¤ë¤Î¤Ë»ÈÍѤ·¤Þ¤¹¡£ +.PP +\fBsources.list\fR(5) +¥Õ¥¡¥¤¥ë¤ËÊ£¿ô¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó (stable +¤È +testing +¤Ê¤É) ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤ËÂФ·Ê£¿ô¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤Î¤È¤­ APT ¤Ï¡¢ÍøÍѤǤ­¤ë¥Ð¡¼¥¸¥ç¥ó¤´¤È¤ËÍ¥ÀèÅÙ¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£ °Í¸´Ø·¸µ¬Â§¤ò¾ò·ï¤È¤·¤Æ¡¢\fBapt\-get\fR +¤Ï¡¢ ºÇ¤â¹â¤¤Í¥ÀèÅÙ¤ò»ý¤Ä¥Ð¡¼¥¸¥ç¥ó¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤è¤¦ÁªÂò¤·¤Þ¤¹¡£ APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢APT ¤¬¥Ç¥Õ¥©¥ë¥È¤Ç³ä¤êÅö¤Æ¤¿¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤ÎÍ¥ÀèÅÙ¤ò¾å½ñ¤­¤·¤Þ¤¹¡£ ¤½¤Î·ë²Ì¡¢¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤â¤Î¤ÎÁªÂò¤ò¡¢¥æ¡¼¥¶¤¬ÁªÂò¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ +.PP +\fBsources.list\fR(5) +¥Õ¥¡¥¤¥ë¤ËÊ£¿ô¤Î»²¾È¤¬½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤ÎƱ¤¸¥Ð¡¼¥¸¥ç¥ó¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤¬Ê£¿ôÍøÍѤǤ­¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤Î¾ì¹ç¡¢\fBapt\-get\fR +¤Ï +\fBsources.list\fR(5) +¥Õ¥¡¥¤¥ë¤Î½é¤á¤ÎÊý¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¤³¤í¤«¤é¥À¥¦¥ó¥í¡¼¥É¤·¤Þ¤¹¡£ APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó¤ÎÁªÂò¤Ë¤Î¤ß±Æ¶Á¤·¡¢ ¥¤¥ó¥¹¥¿¥ó¥¹¤ÎÁªÂò¤Ë¤Ï±Æ¶Á¤·¤Þ¤»¤ó¡£ +.SS "APT ¤Î¥Ç¥Õ¥©¥ë¥ÈÍ¥ÀèÅ٤γä¤êÅö¤Æ" +.PP +ÀßÄê¥Õ¥¡¥¤¥ë¤¬¤Ê¤«¤Ã¤¿¤ê¡¢ ÀßÄê¥Õ¥¡¥¤¥ë¤Ë¡¢ÆÃÄê¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò³ä¤êÅö¤Æ¤ë¥¨¥ó¥È¥ê¤¬¤Ê¤¤¾ì¹ç¡¢ ¤½¤Î¥Ð¡¼¥¸¥ç¥ó¤ÎÍ¥ÀèÅ٤ϡ¢ ¤½¤Î¥Ð¡¼¥¸¥ç¥ó¤¬Â°¤·¤Æ¤¤¤ë¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤ÎÍ¥ÀèÅ٤Ȥʤê¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ç¾¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤è¤ê¹â¤¤Í¥ÀèÅÙ¤ò»ý¤Ä¡¢ ÆÃÄê¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤ò¡Ö¥¿¡¼¥²¥Ã¥È¥ê¥ê¡¼¥¹¡×¤È¤·¤Æ¤ª¤¯¤Î¤Ï²Äǽ¤Ç¤¹¡£ ¥¿¡¼¥²¥Ã¥È¥ê¥ê¡¼¥¹¤Ï¡¢\fBapt\-get\fR +¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÇÀßÄꤷ¤¿¤ê¡¢ APT ÀßÄê¥Õ¥¡¥¤¥ë +\fI/etc/apt/apt.conf\fR +¤ÇÀßÄꤷ¤¿¤ê¤Ç¤­¤Þ¤¹¡£ Î㤨¤Ð°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ +.sp +.RS 3n +.nf +\fBapt\-get install \-t testing \fR\fB\fIsome\-package\fR\fR +.fi +.RE +.sp + +.sp +.RS 3n +.nf +APT::Default\-Release "stable"; +.fi +.RE +.sp +.PP +¥¿¡¼¥²¥Ã¥È¥ê¥ê¡¼¥¹¤¬»ØÄꤵ¤ì¤ë¤È¡¢APT ¤Ï°Ê²¼¤Î¥¢¥ë¥´¥ê¥º¥à¤Ç¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤ÎÍ¥ÀèÅÙ¤òÀßÄꤷ¤Þ¤¹¡£¤³¤Î¤è¤¦¤Ë³ä¤êÅö¤Æ¤Þ¤¹¡£ +.PP +Í¥ÀèÅÙ 100 +.RS 3n +(¤¢¤ë¤Ê¤é¤Ð) ´û¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ð¡¼¥¸¥ç¥ó¡£ +.RE +.PP +Í¥ÀèÅÙ 500 +.RS 3n +¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤ª¤é¤º¡¢¥¿¡¼¥²¥Ã¥È¥ê¥ê¡¼¥¹¤Ë´Þ¤Þ¤ì¤Ê¤¤¥Ð¡¼¥¸¥ç¥ó¡£ +.RE +.PP +Í¥ÀèÅÙ 990 +.RS 3n +¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤ª¤é¤º¡¢¥¿¡¼¥²¥Ã¥È¥ê¥ê¡¼¥¹¤Ë´Þ¤Þ¤ì¤ë¥Ð¡¼¥¸¥ç¥ó¡£ +.RE +.PP +¥¿¡¼¥²¥Ã¥È¥ê¥ê¡¼¥¹¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ APT ¤Ïñ½ã¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ï 100 ¤ò¡¢ ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤Ê¤¤¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ï 500 ¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£ +.PP +APT ¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤ò·èÄꤹ¤ë¤¿¤á¤Ë¡¢ °Ê²¼¤Î¥ë¡¼¥ë¤ò¾å¤«¤é½çÈÖ¤ËŬÍѤ·¤Þ¤¹¡£ +.TP 3n +\(bu +Í­¸ú¤Ê¥Ð¡¼¥¸¥ç¥ó¤ÎÍ¥ÀèÅÙ¤¬ 1000 ¤ò±Û¤¨¤Ê¤¤¾ì¹ç¡¢ ·è¤·¤Æ¥À¥¦¥ó¥°¥ì¡¼¥É¤·¤Þ¤»¤ó¡£ (¡Ö¥À¥¦¥ó¥°¥ì¡¼¥É¡×¤Ï¡¢¸½ºß¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤è¤ê¤â¡¢ ¾®¤µ¤¤¥Ð¡¼¥¸¥ç¥ó¤Î¤â¤Î¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ APT ¤Î¥Ç¥Õ¥©¥ë¥ÈÍ¥ÀèÅÙ¤¬ 1000 ¤ò±Û¤¨¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ ¤½¤Î¤è¤¦¤ÊÍ¥ÀèÅÙ¤ÏÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤Î¤ßÀßÄê¤Ç¤­¤Þ¤¹¡£ ¤Þ¤¿¡¢¥Ñ¥Ã¥±¡¼¥¸¤Î¥À¥¦¥ó¥°¥ì¡¼¥É¤Ï´í¸±¤Ç¤¢¤ë¤³¤È¤Ë¤âÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤) +.TP 3n +\(bu +ºÇ¤â¹â¤¤Í¥ÀèÅ٤ΥС¼¥¸¥ç¥ó¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ +.TP 3n +\(bu +Ʊ¤¸Í¥ÀèÅ٤ΥС¼¥¸¥ç¥ó¤¬Ê£¿ô¸ºß¤¹¤ë¾ì¹ç¡¢ ºÇ¤â¿·¤·¤¤¤â¤Î (ºÇ¤â¥Ð¡¼¥¸¥ç¥óÈֹ椬¹â¤¤¤â¤Î) ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ +.TP 3n +\(bu +Í¥ÀèÅÙ¡¦¥Ð¡¼¥¸¥ç¥óÈֹ椬Ʊ¤¸¤â¤Î¤¬Ê£¿ô¸ºß¤·¡¢ ¤½¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥á¥¿¥Ç¡¼¥¿¤¬°Û¤Ê¤ë¤« +\-\-reinstall +¥ª¥×¥·¥ç¥ó¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Ê¤¤¤â¤Î¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ +.sp +.RE +.PP +¤è¤¯¤¢¤ë¾õ¶·¤È¤·¤Æ¡¢ ¤¢¤ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó (Í¥ÀèÅÙ 100) ¤¬¡¢ +\fBsources.list\fR(5) +¥Õ¥¡¥¤¥ë¤Î¥ê¥¹¥È¤«¤éÆÀ¤é¤ì¤ë¥Ð¡¼¥¸¥ç¥ó (Í¥ÀèÅÙ 500 ¤« 990) ¤è¤ê¤â¿·¤·¤¯¤Ê¤¤¤È¤¤¤¦¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¾ì¹ç¡¢ +\fBapt\-get install \fR\fB\fIsome\-package\fR\fR +¤ä +\fBapt\-get upgrade\fR +¤ò¼Â¹Ô¤¹¤ë¤È¥Ñ¥Ã¥±¡¼¥¸¤¬¹¹¿·¤µ¤ì¤Þ¤¹¡£ +.PP +¤Þ¤ì¤Ë¡¢¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¡¢ +\fI¾¤ÎÍ­¸ú¤Ê¥Ð¡¼¥¸¥ç¥ó¤è¤ê¤â\fR¿·¤·¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤Î»þ +\fBapt\-get install \fR\fB\fIsome\-package\fR\fR +¤ä +\fBapt\-get upgrade\fR +¤ò¼Â¹Ô¤·¤Æ¤â¡¢ ¥À¥¦¥ó¥°¥ì¡¼¥É¤·¤Þ¤»¤ó¡£ +.PP +»þ¡¹¡¢¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¡¢ ¥¿¡¼¥²¥Ã¥È¥ê¥ê¡¼¥¹¤Ë°¤¹¤ë¥Ð¡¼¥¸¥ç¥ó¤è¤ê¤â¿·¤·¤¯¡¢ ¾¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤è¤ê¤â¸Å¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£ ¤½¤Î¤è¤¦¤Ê¥Ñ¥Ã¥±¡¼¥¸¤ËÂФ·¤Æ +\fBapt\-get install \fR\fB\fIsome\-package\fR\fR +¤ä +\fBapt\-get upgrade\fR +¤ò¼Â¹Ô¤¹¤ë¤È¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Ï¹¹¿·¤µ¤ì¤Þ¤¹¡£ ¤³¤Î¾ì¹ç¡¢¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ð¡¼¥¸¥ç¥ó¤è¤ê¤â¡¢ ¾¯¤Ê¤¯¤È¤â\fI¤Ò¤È¤Ä\fR¤Ï¡¢ ¹â¤¤Í¥ÀèÅÙ¤ò»ý¤ÄÍ­¸ú¤Ê¥Ñ¥Ã¥±¡¼¥¸¤¬¤¢¤ë¤«¤é¤Ç¤¹¡£ +.SS "APT ÀßÄê¤Î¸ú²Ì" +.PP +APT ÀßÄê¥Õ¥¡¥¤¥ë¤ò»È¤¦¤È¡¢ ¥·¥¹¥Æ¥à´ÉÍý¼Ô¤¬Í¥ÀèÅÙ¤ò³ä¤êÅö¤Æ¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë¤Ï¡¢¶õÇò¹Ô¤Ç¶èÀÚ¤é¤ì¤¿¡¢Ê£¿ô¹Ô¤«¤é¤Ê¤ë¥ì¥³¡¼¥É¤Ç¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¥ì¥³¡¼¥É¤ÏÆÃÄê·Á¼°¤«¡¢ÈÆÍÑ·Á¼°¤Î¤É¤Á¤é¤«¤Î·Á¼°¤ò¤È¤ê¤Þ¤¹¡£ +.TP 3n +\(bu +ÆÃÄê·Á¼°¤Ï¡¢Í¥ÀèÅÙ ("Pin\-Priority") ¤ò¡¢ »ØÄꤷ¤¿¥Ñ¥Ã¥±¡¼¥¸¤Î»ØÄꤷ¤¿¥Ð¡¼¥¸¥ç¥ó (ÈÏ°Ï) ¤Ë¤Ä¤¤¤Æ³ä¤êÅö¤Æ¤Þ¤¹¡£ Î㤨¤Ð°Ê²¼¤Î¥ì¥³¡¼¥É¤Ï¡¢ "5.8" ¤Ç»Ï¤Þ¤ë +\fIperl\fR +¥Ñ¥Ã¥±¡¼¥¸¤ò¡¢ ¹â¤¤Í¥ÀèÅÙ¤ËÀßÄꤷ¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Package: perl +Pin: version 5.8* +Pin\-Priority: 1001 +.fi +.RE +.TP 3n +\(bu +ÈÆÍÑ·Á¼°¤Ï¡¢Í¿¤¨¤é¤ì¤¿¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë¤¢¤ë¡¢ ¤¹¤Ù¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸ (\fIRelease\fR +¥Õ¥¡¥¤¥ë¤ËÎóµó¤·¤¿¥Ñ¥Ã¥±¡¼¥¸) ¤ÎÍ¥ÀèÅ٤䡢FQDN¤Ç»ØÄꤷ¤¿¡¢ ÆÃÄê¤Î¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥µ¥¤¥È¤«¤é¼èÆÀ¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤ÎÍ¥ÀèÅÙ¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£ +.sp +APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ë½ñ¤«¤ì¤Æ¤¤¤ëÈÆÍÑ·Á¼°¤Î¥¨¥ó¥È¥ê¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Î¥°¥ë¡¼¥×¤Ë¤Ä¤¤¤Æ¤Î¤ßŬÍѤµ¤ì¤Þ¤¹¡£ Î㤨¤Ð°Ê²¼¤Î¥ì¥³¡¼¥É¤Ï¡¢¥í¡¼¥«¥ë¥µ¥¤¥È¤Ë¤¢¤ëÁ´¥Ñ¥Ã¥±¡¼¥¸¤Ë¤Ä¤¤¤Æ¡¢ ¹â¤¤Í¥ÀèÅÙ¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Package: * +Pin: origin "" +Pin\-Priority: 999 +.fi +.RE +.sp +Ãí: ¤³¤³¤Ç»ÈÍѤ·¤Æ¤¤¤ë¥­¡¼¥ï¡¼¥É¤Ï "origin" ¤Ç¤¹¡£ +\fIRelease\fR +¥Õ¥¡¥¤¥ë¤Ë»ØÄꤵ¤ì¤¿¤è¤¦¤Ê¡¢ ¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î Origin ¤Èº®Æ±¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ +\fIRelease\fR +¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë "Origin:" ¥¿¥°¤Ï¡¢ ¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥É¥ì¥¹¤Ç¤Ï¤Ê¤¯¡¢ "Debian" ¤ä "Ximian" ¤È¤¤¤Ã¤¿ºî¼Ô¤ä¥Ù¥ó¥À̾¤Ç¤¹¡£ +.sp +°Ê²¼¤Î¥ì¥³¡¼¥É¤Ï¡¢¥¢¡¼¥«¥¤¥Ö̾¤¬ "unstable" ¤È¤Ê¤Ã¤Æ¤¤¤ë¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë°¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤ò¡¢ ¤¹¤Ù¤ÆÄ㤤ͥÀèÅ٤˳ä¤êÅö¤Æ¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Package: * +Pin: release a=unstable +Pin\-Priority: 50 +.fi +.RE +.sp +°Ê²¼¤Î¥ì¥³¡¼¥É¤Ï¡¢¥¢¡¼¥«¥¤¥Ö̾¤¬ "stable" ¤Ç¡¢ ¥ê¥ê¡¼¥¹¥Ð¡¼¥¸¥ç¥óÈֹ椬 "3.0" ¤È¤Ê¤Ã¤Æ¤¤¤ë¥ê¥ê¡¼¥¹¤Ë°¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤ò¡¢ ¤¹¤Ù¤Æ¹â¤¤Í¥ÀèÅ٤˳ä¤êÅö¤Æ¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Package: * +Pin: release a=stable, v=3.0 +Pin\-Priority: 500 +.fi +.RE +.sp +.RE +.SS "APT ¤¬Í¥ÀèÅ٤˳ä¤ê¹þ¤àÊýË¡" +.PP + +APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ç³ä¤êÅö¤Æ¤¿Í¥ÀèÅÙ (P) ¤Ï¡¢ÀµÉé¤ÎÀ°¿ô¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£ ¤³¤ì¤Ï (¤ª¤ª¤¶¤Ã¤Ñ¤Ë¤¤¤¦¤È) °Ê²¼¤Î¤è¤¦¤Ë²ò¼á¤µ¤ì¤Þ¤¹¡£ +.PP +P > 1000 +.RS 3n +¥Ñ¥Ã¥±¡¼¥¸¤¬¥À¥¦¥ó¥°¥ì¡¼¥É¤·¤Æ¤â¡¢¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ +.RE +.PP +990 < P <=1000 +.RS 3n +¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ð¡¼¥¸¥ç¥ó¤ÎÊý¤¬¿·¤·¤¤¤³¤È¤ò½ü¤­¡¢ ¥¿¡¼¥²¥Ã¥È¥ê¥ê¡¼¥¹¤Ë´Þ¤Þ¤ì¤Ê¤¯¤Æ¤â¡¢ ¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ +.RE +.PP +500 < P <=990 +.RS 3n +¥¿¡¼¥²¥Ã¥È¥ê¥ê¡¼¥¹¤Ë°¤¹¤ë¥Ð¡¼¥¸¥ç¥ó¤¬¤¢¤Ã¤¿¤ê¡¢ ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ð¡¼¥¸¥ç¥ó¤ÎÊý¤¬¿·¤·¤¤¤Î¤Ç¤Ê¤±¤ì¤Ð¡¢ ¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ +.RE +.PP +100 < P <=500 +.RS 3n +¾¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë°¤¹¤ë¥Ð¡¼¥¸¥ç¥ó¤¬¤¢¤Ã¤¿¤ê¡¢ ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ð¡¼¥¸¥ç¥ó¤ÎÊý¤¬¿·¤·¤¤¤Î¤Ç¤Ê¤±¤ì¤Ð¡¢ ¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ +.RE +.PP +0 < P <=100 +.RS 3n +¤³¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ ¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ +.RE +.PP +P < 0 +.RS 3n +¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£ +.RE +.PP +ÆÃÄê·Á¼°¤Î¥ì¥³¡¼¥É¤¬ÍøÍѲÄǽ¥Ñ¥Ã¥±¡¼¥¸¥Ð¡¼¥¸¥ç¥ó¤Ë°ìÃפ·¤¿¾ì¹ç¡¢ ºÇ½é¤Î¥ì¥³¡¼¥É¤¬¡¢¥Ñ¥Ã¥±¡¼¥¸¥Ð¡¼¥¸¥ç¥ó¤ÎÍ¥ÀèÅÙ¤ò·èÄꤷ¤Þ¤¹¡£ ¼ºÇÔ¤·¤Æ¡¢ÈÆÍÑ·Á¼°¤Î¥ì¥³¡¼¥É¤¬ÍøÍѲÄǽ¥Ñ¥Ã¥±¡¼¥¸¥Ð¡¼¥¸¥ç¥ó¤Ë°ìÃפ·¤¿¾ì¹ç¡¢ ºÇ½é¤Î¥ì¥³¡¼¥É¤¬¡¢¥Ñ¥Ã¥±¡¼¥¸¥Ð¡¼¥¸¥ç¥ó¤ÎÍ¥ÀèÅÙ¤ò·èÄꤷ¤Þ¤¹¡£ +.PP +Î㤨¤Ð¡¢APT ÀßÄê¥Õ¥¡¥¤¥ë¤Î¾å¤ÎÊý¤Ë¡¢ °Ê²¼¤Î¥ì¥³¡¼¥É¤¬½ñ¤«¤ì¤Æ¤¤¤ë¤È²¾Äꤷ¤Æ¤¯¤À¤µ¤¤¡£ +.sp +.RS 3n +.nf +Package: perl +Pin: version 5.8* +Pin\-Priority: 1001 + +Package: * +Pin: origin "" +Pin\-Priority: 999 + +Package: * +Pin: release unstable +Pin\-Priority: 50 +.fi +.RE +.sp +.PP +¤¹¤ë¤È¡¢ +.TP 3n +\(bu +¥Ð¡¼¥¸¥ç¥óÈֹ椬 "5.8" ¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤ì¤Ð¡¢ +perl +¤ÎºÇ¿·¤ÎÍøÍѲÄǽ¥Ñ¥Ã¥±¡¼¥¸¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£ ¥Ð¡¼¥¸¥ç¥ó 5.8* ¤¬ÍøÍѲÄǽ¤Ç¡¢¥Ð¡¼¥¸¥ç¥ó 5.9* ¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +perl +¤Ï¥À¥¦¥ó¥°¥ì¡¼¥É¤µ¤ì¤Þ¤¹¡£ +.TP 3n +\(bu +¥í¡¼¥«¥ë¥·¥¹¥Æ¥à¤ÇÍ­¸ú¤Ê¡¢ +perl +°Ê³°¤Î¤É¤ó¤Ê¥Ñ¥Ã¥±¡¼¥¸¤Ç¤â¡¢ ¾¤Î¥Ð¡¼¥¸¥ç¥ó¤è¤ê (¤¿¤È¤¨¥¿¡¼¥²¥Ã¥È¥ê¥ê¡¼¥¹¤Ë°¤·¤Æ¤¤¤Æ¤â) Í¥ÀèÅÙ¤¬¹â¤¯¤Ê¤ê¤Þ¤¹¡£ +.TP 3n +\(bu +¥í¡¼¥«¥ë¥·¥¹¥Æ¥à¤Ë¤Ï¤Ê¤¯¤Æ¤â +\fBsources.list\fR(5) +¤ËÎóµó¤µ¤ì¤¿¥µ¥¤¥È¤Ë¤¢¤ë¥Ð¡¼¥¸¥ç¥ó¤Ç¡¢ +unstable +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë°¤·¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢ ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤è¤¦ÁªÂò¤µ¤ì¡¢ ´û¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ð¡¼¥¸¥ç¥ó¤¬¤Ê¤¤¾ì¹ç¤Ë¤Î¤ß¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£ +.sp +.RE +.SS "¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤È¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¥×¥í¥Ñ¥Æ¥£¤Î·èÄê" +.PP +\fBsources.list\fR(5) +¥Õ¥¡¥¤¥ë¤ËÎóµó¤·¤¿¾ì½ê¤Ç¤Ï¡¢ ¤½¤Î¾ì½ê¤ÇÍøÍѤǤ­¤ë¥Ñ¥Ã¥±¡¼¥¸¤òµ­½Ò¤·¤¿¡¢ +\fIPackages\fR +¥Õ¥¡¥¤¥ë¤ä +\fIRelease\fR +¥Õ¥¡¥¤¥ë¤òÄ󶡤·¤Þ¤¹¡£ +.PP +\fIPackages\fR +¥Õ¥¡¥¤¥ë¤ÏÄ̾ï +\fI.../dists/\fR\fI\fIdist\-name\fR\fR\fI/\fR\fI\fIcomponent\fR\fR\fI/\fR\fI\fIarch\fR\fR +¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ê¤Þ¤¹¡£ Î㤨¤Ð¡¢\fI.../dists/stable/main/binary\-i386/Packages\fR +¤Ç¤¹¡£ ¤³¤ì¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ëÍøÍѲÄǽ¥Ñ¥Ã¥±¡¼¥¸¤´¤È¤Ë¡¢ Ê£¿ô¹Ô¤Î¥ì¥³¡¼¥É¤«¤é¤Ç¤­¤Æ¤¤¤Þ¤¹¡£ APT Í¥ÀèÅÙ¤ÎÀßÄê¤Ï¡¢¥ì¥³¡¼¥É¤´¤È¤Ë°Ê²¼¤Î 2 ¹Ô¤À¤±¤Ç¤¹¡£ +.PP +Package: ¹Ô +.RS 3n +¥Ñ¥Ã¥±¡¼¥¸Ì¾¤òÍ¿¤¨¤Þ¤¹¡£ +.RE +.PP +Version: ¹Ô +.RS 3n +¤½¤Î̾Á°¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òÍ¿¤¨¤Þ¤¹¡£ +.RE +.PP +\fIRelease\fR +¥Õ¥¡¥¤¥ë¤Ï¡¢Ä̾ï +\fI.../dists/\fR\fI\fIdist\-name\fR\fR +¤Ë¤¢¤ê¤Þ¤¹¡£Î㤨¤Ð¡¢ +\fI.../dists/stable/Release\fR, +\fI.../dists/woody/Release\fR +¤Ç¤¹¡£ ¤³¤ì¤Ï¡¢¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Ë¤¢¤ë\fIÁ´\fR¥Ñ¥Ã¥±¡¼¥¸¤ËŬÍѤ¹¤ë¡¢ Ê£¿ô¹Ô¤Î¥ì¥³¡¼¥É 1 ¤Ä¤«¤éÀ®¤Ã¤Æ¤¤¤Þ¤¹¡£ +\fIPackages\fR +¤È°ã¤¤ +\fIRelease\fR +¥Õ¥¡¥¤¥ë¤Ï¡¢ ¤Û¤È¤ó¤É¤Î¹Ô¤¬ APT Í¥ÀèÅÙ¤ÎÀßÄê¤Ë´ØÏ¢¤·¤Þ¤¹¡£ +.PP +Archive: ¹Ô +.RS 3n +¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Ë°¤¹¤ëÁ´¥Ñ¥Ã¥±¡¼¥¸¤Î¥¢¡¼¥«¥¤¥Ö̾¡£ Î㤨¤Ð¡¢ "Archive: stable" ¤È¤¤¤¦¹Ô¤Ï¡¢\fIRelease\fR +¥Õ¥¡¥¤¥ë¤Î¿Æ¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼°Ê²¼¤Ë¤¢¤ëÁ´¥Ñ¥Ã¥±¡¼¥¸¤¬¡¢ +stable +¥¢¡¼¥«¥¤¥Ö¤À¤È»ØÄꤷ¤Þ¤¹¡£ APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤³¤ÎÃͤò»ØÄꤹ¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¹Ô¤¬É¬Íפˤʤê¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Pin: release a=stable +.fi +.RE +.RE +.PP +Version: ¹Ô +.RS 3n +¥ê¥ê¡¼¥¹¥Ð¡¼¥¸¥ç¥ó̾¡£ Î㤨¤Ð¡¢¤³¤Î¥Ä¥ê¡¼¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬¡¢ GNU/Linux ¥ê¥ê¡¼¥¹¥Ð¡¼¥¸¥ç¥ó 3.0 ¤Ë°¤¹¤ë¤È¤·¤Þ¤¹¡£ Ä̾ï +testing +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤ä +unstable +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë¤Ï¡¢ ¤Þ¤À¥ê¥ê¡¼¥¹¤µ¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢¥Ð¡¼¥¸¥ç¥óÈֹ椬ÉÕ¤­¤Þ¤»¤ó¡£ APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤³¤ì¤ò»ØÄꤹ¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¹Ô¤Î¤¤¤º¤ì¤«¤¬É¬Íפˤʤê¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Pin: release v=3.0 +Pin: release a=stable, v=3.0 +Pin: release 3.0 +.fi +.RE +.RE +.PP +Component: ¹Ô +.RS 3n +\fIRelease\fR +¥Õ¥¡¥¤¥ë¤Î¡¢ ¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Ë¤¢¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¥é¥¤¥»¥ó¥¹¥³¥ó¥Ý¡¼¥Í¥ó¥È̾¡£ Î㤨¤Ð¡¢"Component: main" ¤È¤¤¤¦¹Ô¤Ï¡¢¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤ÎÁ´¥Õ¥¡¥¤¥ë¤¬¡¢ +main +¥³¥ó¥Ý¡¼¥Í¥ó¥È (Debian ¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¥¬¥¤¥É¥é¥¤¥ó¤Î¸µ¤Ç¥é¥¤¥»¥ó¥¹¤µ¤ì¤Æ¤¤¤ë) ¤Ç¤¢¤ë¤³¤È¤òɽ¤·¤Þ¤¹¡£ APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤³¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò»ØÄꤹ¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¹Ô¤¬É¬Íפˤʤê¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Pin: release c=main +.fi +.RE +.RE +.PP +Origin: ¹Ô +.RS 3n +\fIRelease\fR +¥Õ¥¡¥¤¥ë¤Î¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Ë¤¢¤ë¥Ñ¥Ã¥±¡¼¥¸¤ÎÄ󶡼Ô̾¡£ ¤Û¤È¤ó¤É¶¦Ä̤ǡ¢Debian +¤Ç¤¹¡£ APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤³¤ÎÄ󶡼Ԥò»ØÄꤹ¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¹Ô¤¬É¬Íפˤʤê¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Pin: release o=Debian +.fi +.RE +.RE +.PP +Label: ¹Ô +.RS 3n +\fIRelease\fR +¥Õ¥¡¥¤¥ë¤Î¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Ë¤¢¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¥é¥Ù¥ë̾¡£ ¤Û¤È¤ó¤É¶¦ÄÌ¤Ç +Debian +¤Ç¤¹¡£ APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤³¤Î¥é¥Ù¥ë¤ò»ØÄꤹ¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¹Ô¤¬É¬Íפˤʤê¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Pin: release l=Debian +.fi +.RE +.RE +.PP +\fBsources.list\fR(5) +¥Õ¥¡¥¤¥ë¤ËÎóµó¤µ¤ì¤¿¾ì½ê¤«¤é¼èÆÀ¤·¤¿ +\fIPackages\fR +¥Õ¥¡¥¤¥ë¤ä +\fIRelease\fR +¥Õ¥¡¥¤¥ë¤Ï¤¹¤Ù¤Æ¡¢ +\fI/var/lib/apt/lists\fR +¥Ç¥£¥ì¥¯¥È¥ê¤ä¡¢ +\fIapt.conf\fR +¥Õ¥¡¥¤¥ë¤Î +Dir::State::Lists +ÊÑ¿ô¤Ç»ØÄꤷ¤¿¾ì½ê¤Ë¼èÆÀ¤µ¤ì¤Þ¤¹¡£Î㤨¤Ð¡¢ +\fIdebian.lcs.mit.edu_debian_dists_unstable_contrib_binary\-i386_Release\fR +¥Õ¥¡¥¤¥ë¤Ï¡¢ +debian.lcs.mit.edu +¤«¤é¼èÆÀ¤·¤¿¡¢ +unstable +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ç¡¢ +contrib +¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ê¡¢ +binary\-i386 +¥¢¡¼¥­¥Æ¥¯¥Á¥ãÍѤΠ+\fIRelease\fR +¥Õ¥¡¥¤¥ë¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£ +.SS "APT ÀßÄê¥ì¥³¡¼¥É¤Î¥ª¥×¥·¥ç¥ó¹Ô" +.PP +APT ÀßÄê¥Õ¥¡¥¤¥ë¤Î¥ì¥³¡¼¥É¤´¤È¤Ë¡¢ Ǥ°Õ¤Ç +Explanation: +¤Ç»Ï¤Þ¤ë¹Ô¤ò»ý¤Æ¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢¥³¥á¥ó¥ÈÍѤξì½ê¤ò³ÎÊݤ·¤Þ¤¹¡£ +.PP +APT ÀßÄê¥ì¥³¡¼¥É¤Î +Pin\-Priority: +¹Ô¤ÏǤ°Õ¤Ç¤¹¡£ ¾Êά¤¹¤ë¤È¡¢Pin\-Priority: release ... +¤Ç»Ï¤Þ¤ë¹Ô¤Ç»Ø¼¨¤·¤¿ºÇ¸å¤ÎÃÍ (¾¯¤Ê¤¯¤È¤â1¤Ä) ¤òÍ¥ÀèÅ٤˳ä¤êÅö¤Æ¤Þ¤¹¡£ +.SH "¥µ¥ó¥×¥ë" +.SS "°ÂÄêÈǤòÄÉÀ×" +.PP +°Ê²¼¤Î APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢stable +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë°¤¹¤ëÁ´¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¡¢ ¥Ç¥Õ¥©¥ë¥È (500) ¤è¤ê¹â¤¤Í¥ÀèÅÙ¤ò³ä¤êÅö¤Æ¡¢ ¾¤Î +Debian +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ï¡¢ Ä㤯¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­¤Ê¤¤¤è¤¦¤ÊÍ¥ÀèÅÙ¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Explanation: Uninstall or do not install any Debian\-originated +Explanation: package versions other than those in the stable distro +Package: * +Pin: release a=stable +Pin\-Priority: 900 + +Package: * +Pin: release o=Debian +Pin\-Priority: \-10 +.fi +.RE +.sp +.PP +ŬÀÚ¤Ê +\fBsources.list\fR(5) +¥Õ¥¡¥¤¥ë¤È¾åµ­¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ë¤è¤ê¡¢ °Ê²¼¤Î¥³¥Þ¥ó¥É¤ÇºÇ¿·¤Î +stable +¥Ð¡¼¥¸¥ç¥ó¤Ë¥¢¥Ã¥×¥°¥ì¡¼¥É¤Ç¤­¤Þ¤¹¡£ +.sp +.RS 3n +.nf +apt\-get install \fIpackage\-name\fR +apt\-get upgrade +apt\-get dist\-upgrade +.fi +.RE +.sp +.PP +°Ê²¼¤Î¥³¥Þ¥ó¥É¤Ç¡¢»ØÄꤷ¤¿¥Ñ¥Ã¥±¡¼¥¸¤ò +testing +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤ÎºÇ¿·¥Ð¡¼¥¸¥ç¥ó¤Ë¥¢¥Ã¥×¥°¥ì¡¼¥É¤·¤Þ¤¹¡£ ¤³¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢ºÆÅÙ¤³¤Î¥³¥Þ¥ó¥É¤òȯ¹Ô¤·¤Ê¤¤¤È¥¢¥Ã¥×¥°¥ì¡¼¥É¤µ¤ì¤Þ¤»¤ó¡£ +.sp +.RS 3n +.nf +apt\-get install \fIpackage\fR/testing +.fi +.RE +.sp +.SS "¥Æ¥¹¥ÈÈǤäÉÔ°ÂÄêÈǤòÄÉÀ×" +.PP +°Ê²¼¤Î APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢testing +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¹â¤¤Í¥ÀèÅÙ¤ò³ä¤êÅö¤Æ¡¢ +unstable +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤ÏÄ㤤ͥÀèÅÙ¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£ ¤Þ¤¿Â¾¤Î +Debian +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ï¡¢ Ä㤯¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­¤Ê¤¤¤è¤¦¤ÊÍ¥ÀèÅÙ¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Package: * +Pin: release a=testing +Pin\-Priority: 900 + +Package: * +Pin: release a=unstable +Pin\-Priority: 800 + +Package: * +Pin: release o=Debian +Pin\-Priority: \-10 +.fi +.RE +.sp +.PP +ŬÀÚ¤Ê +\fBsources.list\fR(5) +¥Õ¥¡¥¤¥ë¤È¾åµ­¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ë¤è¤ê¡¢ °Ê²¼¤Î¥³¥Þ¥ó¥É¤ÇºÇ¿·¤Î +testing +¥Ð¡¼¥¸¥ç¥ó¤Ë¥¢¥Ã¥×¥°¥ì¡¼¥É¤Ç¤­¤Þ¤¹¡£ +.sp +.RS 3n +.nf +apt\-get install \fIpackage\-name\fR +apt\-get upgrade +apt\-get dist\-upgrade +.fi +.RE +.sp +.PP +°Ê²¼¤Î¥³¥Þ¥ó¥É¤Ç¡¢»ØÄꤷ¤¿¥Ñ¥Ã¥±¡¼¥¸¤ò +unstable +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤ÎºÇ¿·¥Ð¡¼¥¸¥ç¥ó¤Ë¥¢¥Ã¥×¥°¥ì¡¼¥É¤·¤Þ¤¹¡£ ¤½¤ì°Ê¹ß¡¢\fBapt\-get upgrade\fR +¤Ï +testing +¥Ð¡¼¥¸¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬¹¹¿·¤µ¤ì¤Æ¤¤¤ì¤Ð +testing +¤ÎºÇ¿·ÈǤˡ¢ +unstable +¥Ð¡¼¥¸¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬¹¹¿·¤µ¤ì¤Æ¤¤¤ì¤Ð +unstable¤ÎºÇ¿·ÈǤ˥¢¥Ã¥×¥°¥ì¡¼¥É¤·¤Þ¤¹¡£ +.sp +.RS 3n +.nf +apt\-get install \fIpackage\fR/unstable +.fi +.RE +.sp +.SH "´ØÏ¢¹àÌÜ" +.PP +\fBapt\-get\fR(8) +\fBapt\-cache\fR(8) +\fBapt.conf\fR(5) +\fBsources.list\fR(5) +.SH "¥Ð¥°" +.PP +[1]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHOR" +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt_preferences.ja.5 b/doc/ja/apt_preferences.ja.5 new file mode 100644 index 0000000..419479c --- /dev/null +++ b/doc/ja/apt_preferences.ja.5 @@ -0,0 +1,526 @@ +.\" Title: apt_preferences +.\" Author: APT team +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "APT_PREFERENCES" "5" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +apt_preferences \- APT ÀßÄêÀ©¸æ¥Õ¥¡¥¤¥ë +.SH "ÀâÌÀ" +.PP +APT ÀßÄê¥Õ¥¡¥¤¥ë +\fI/etc/apt/preferences\fR +¤Ï¡¢ ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥óÁªÂò¤òÀ©¸æ¤¹¤ë¤Î¤Ë»ÈÍѤ·¤Þ¤¹¡£ +.PP +\fBsources.list\fR(5) +¥Õ¥¡¥¤¥ë¤ËÊ£¿ô¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó (stable +¤È +testing +¤Ê¤É) ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤ËÂФ·Ê£¿ô¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤Î¤È¤­ APT ¤Ï¡¢ÍøÍѤǤ­¤ë¥Ð¡¼¥¸¥ç¥ó¤´¤È¤ËÍ¥ÀèÅÙ¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£ °Í¸´Ø·¸µ¬Â§¤ò¾ò·ï¤È¤·¤Æ¡¢\fBapt\-get\fR +¤Ï¡¢ ºÇ¤â¹â¤¤Í¥ÀèÅÙ¤ò»ý¤Ä¥Ð¡¼¥¸¥ç¥ó¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤è¤¦ÁªÂò¤·¤Þ¤¹¡£ APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢APT ¤¬¥Ç¥Õ¥©¥ë¥È¤Ç³ä¤êÅö¤Æ¤¿¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤ÎÍ¥ÀèÅÙ¤ò¾å½ñ¤­¤·¤Þ¤¹¡£ ¤½¤Î·ë²Ì¡¢¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤â¤Î¤ÎÁªÂò¤ò¡¢¥æ¡¼¥¶¤¬ÁªÂò¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ +.PP +\fBsources.list\fR(5) +¥Õ¥¡¥¤¥ë¤ËÊ£¿ô¤Î»²¾È¤¬½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤ÎƱ¤¸¥Ð¡¼¥¸¥ç¥ó¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤¬Ê£¿ôÍøÍѤǤ­¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤Î¾ì¹ç¡¢\fBapt\-get\fR +¤Ï +\fBsources.list\fR(5) +¥Õ¥¡¥¤¥ë¤Î½é¤á¤ÎÊý¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¤³¤í¤«¤é¥À¥¦¥ó¥í¡¼¥É¤·¤Þ¤¹¡£ APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó¤ÎÁªÂò¤Ë¤Î¤ß±Æ¶Á¤·¡¢ ¥¤¥ó¥¹¥¿¥ó¥¹¤ÎÁªÂò¤Ë¤Ï±Æ¶Á¤·¤Þ¤»¤ó¡£ +.SS "APT ¤Î¥Ç¥Õ¥©¥ë¥ÈÍ¥ÀèÅ٤γä¤êÅö¤Æ" +.PP +ÀßÄê¥Õ¥¡¥¤¥ë¤¬¤Ê¤«¤Ã¤¿¤ê¡¢ ÀßÄê¥Õ¥¡¥¤¥ë¤Ë¡¢ÆÃÄê¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò³ä¤êÅö¤Æ¤ë¥¨¥ó¥È¥ê¤¬¤Ê¤¤¾ì¹ç¡¢ ¤½¤Î¥Ð¡¼¥¸¥ç¥ó¤ÎÍ¥ÀèÅ٤ϡ¢ ¤½¤Î¥Ð¡¼¥¸¥ç¥ó¤¬Â°¤·¤Æ¤¤¤ë¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤ÎÍ¥ÀèÅ٤Ȥʤê¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ç¾¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤è¤ê¹â¤¤Í¥ÀèÅÙ¤ò»ý¤Ä¡¢ ÆÃÄê¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤ò¡Ö¥¿¡¼¥²¥Ã¥È¥ê¥ê¡¼¥¹¡×¤È¤·¤Æ¤ª¤¯¤Î¤Ï²Äǽ¤Ç¤¹¡£ ¥¿¡¼¥²¥Ã¥È¥ê¥ê¡¼¥¹¤Ï¡¢\fBapt\-get\fR +¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÇÀßÄꤷ¤¿¤ê¡¢ APT ÀßÄê¥Õ¥¡¥¤¥ë +\fI/etc/apt/apt.conf\fR +¤ÇÀßÄꤷ¤¿¤ê¤Ç¤­¤Þ¤¹¡£ Î㤨¤Ð°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ +.sp +.RS 3n +.nf +\fBapt\-get install \-t testing \fR\fB\fIsome\-package\fR\fR +.fi +.RE +.sp + +.sp +.RS 3n +.nf +APT::Default\-Release "stable"; +.fi +.RE +.sp +.PP +¥¿¡¼¥²¥Ã¥È¥ê¥ê¡¼¥¹¤¬»ØÄꤵ¤ì¤ë¤È¡¢APT ¤Ï°Ê²¼¤Î¥¢¥ë¥´¥ê¥º¥à¤Ç¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤ÎÍ¥ÀèÅÙ¤òÀßÄꤷ¤Þ¤¹¡£¤³¤Î¤è¤¦¤Ë³ä¤êÅö¤Æ¤Þ¤¹¡£ +.PP +Í¥ÀèÅÙ 100 +.RS 3n +(¤¢¤ë¤Ê¤é¤Ð) ´û¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ð¡¼¥¸¥ç¥ó¡£ +.RE +.PP +Í¥ÀèÅÙ 500 +.RS 3n +¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤ª¤é¤º¡¢¥¿¡¼¥²¥Ã¥È¥ê¥ê¡¼¥¹¤Ë´Þ¤Þ¤ì¤Ê¤¤¥Ð¡¼¥¸¥ç¥ó¡£ +.RE +.PP +Í¥ÀèÅÙ 990 +.RS 3n +¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤ª¤é¤º¡¢¥¿¡¼¥²¥Ã¥È¥ê¥ê¡¼¥¹¤Ë´Þ¤Þ¤ì¤ë¥Ð¡¼¥¸¥ç¥ó¡£ +.RE +.PP +¥¿¡¼¥²¥Ã¥È¥ê¥ê¡¼¥¹¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ APT ¤Ïñ½ã¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ï 100 ¤ò¡¢ ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤Ê¤¤¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ï 500 ¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£ +.PP +APT ¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤ò·èÄꤹ¤ë¤¿¤á¤Ë¡¢ °Ê²¼¤Î¥ë¡¼¥ë¤ò¾å¤«¤é½çÈÖ¤ËŬÍѤ·¤Þ¤¹¡£ +.TP 3n +\(bu +Í­¸ú¤Ê¥Ð¡¼¥¸¥ç¥ó¤ÎÍ¥ÀèÅÙ¤¬ 1000 ¤ò±Û¤¨¤Ê¤¤¾ì¹ç¡¢ ·è¤·¤Æ¥À¥¦¥ó¥°¥ì¡¼¥É¤·¤Þ¤»¤ó¡£ (¡Ö¥À¥¦¥ó¥°¥ì¡¼¥É¡×¤Ï¡¢¸½ºß¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤è¤ê¤â¡¢ ¾®¤µ¤¤¥Ð¡¼¥¸¥ç¥ó¤Î¤â¤Î¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ APT ¤Î¥Ç¥Õ¥©¥ë¥ÈÍ¥ÀèÅÙ¤¬ 1000 ¤ò±Û¤¨¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ ¤½¤Î¤è¤¦¤ÊÍ¥ÀèÅÙ¤ÏÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤Î¤ßÀßÄê¤Ç¤­¤Þ¤¹¡£ ¤Þ¤¿¡¢¥Ñ¥Ã¥±¡¼¥¸¤Î¥À¥¦¥ó¥°¥ì¡¼¥É¤Ï´í¸±¤Ç¤¢¤ë¤³¤È¤Ë¤âÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤) +.TP 3n +\(bu +ºÇ¤â¹â¤¤Í¥ÀèÅ٤ΥС¼¥¸¥ç¥ó¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ +.TP 3n +\(bu +Ʊ¤¸Í¥ÀèÅ٤ΥС¼¥¸¥ç¥ó¤¬Ê£¿ô¸ºß¤¹¤ë¾ì¹ç¡¢ ºÇ¤â¿·¤·¤¤¤â¤Î (ºÇ¤â¥Ð¡¼¥¸¥ç¥óÈֹ椬¹â¤¤¤â¤Î) ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ +.TP 3n +\(bu +Í¥ÀèÅÙ¡¦¥Ð¡¼¥¸¥ç¥óÈֹ椬Ʊ¤¸¤â¤Î¤¬Ê£¿ô¸ºß¤·¡¢ ¤½¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥á¥¿¥Ç¡¼¥¿¤¬°Û¤Ê¤ë¤« +\-\-reinstall +¥ª¥×¥·¥ç¥ó¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Ê¤¤¤â¤Î¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ +.sp +.RE +.PP +¤è¤¯¤¢¤ë¾õ¶·¤È¤·¤Æ¡¢ ¤¢¤ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó (Í¥ÀèÅÙ 100) ¤¬¡¢ +\fBsources.list\fR(5) +¥Õ¥¡¥¤¥ë¤Î¥ê¥¹¥È¤«¤éÆÀ¤é¤ì¤ë¥Ð¡¼¥¸¥ç¥ó (Í¥ÀèÅÙ 500 ¤« 990) ¤è¤ê¤â¿·¤·¤¯¤Ê¤¤¤È¤¤¤¦¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¾ì¹ç¡¢ +\fBapt\-get install \fR\fB\fIsome\-package\fR\fR +¤ä +\fBapt\-get upgrade\fR +¤ò¼Â¹Ô¤¹¤ë¤È¥Ñ¥Ã¥±¡¼¥¸¤¬¹¹¿·¤µ¤ì¤Þ¤¹¡£ +.PP +¤Þ¤ì¤Ë¡¢¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¡¢ +\fI¾¤ÎÍ­¸ú¤Ê¥Ð¡¼¥¸¥ç¥ó¤è¤ê¤â\fR¿·¤·¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤Î»þ +\fBapt\-get install \fR\fB\fIsome\-package\fR\fR +¤ä +\fBapt\-get upgrade\fR +¤ò¼Â¹Ô¤·¤Æ¤â¡¢ ¥À¥¦¥ó¥°¥ì¡¼¥É¤·¤Þ¤»¤ó¡£ +.PP +»þ¡¹¡¢¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¡¢ ¥¿¡¼¥²¥Ã¥È¥ê¥ê¡¼¥¹¤Ë°¤¹¤ë¥Ð¡¼¥¸¥ç¥ó¤è¤ê¤â¿·¤·¤¯¡¢ ¾¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤è¤ê¤â¸Å¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£ ¤½¤Î¤è¤¦¤Ê¥Ñ¥Ã¥±¡¼¥¸¤ËÂФ·¤Æ +\fBapt\-get install \fR\fB\fIsome\-package\fR\fR +¤ä +\fBapt\-get upgrade\fR +¤ò¼Â¹Ô¤¹¤ë¤È¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Ï¹¹¿·¤µ¤ì¤Þ¤¹¡£ ¤³¤Î¾ì¹ç¡¢¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ð¡¼¥¸¥ç¥ó¤è¤ê¤â¡¢ ¾¯¤Ê¤¯¤È¤â\fI¤Ò¤È¤Ä\fR¤Ï¡¢ ¹â¤¤Í¥ÀèÅÙ¤ò»ý¤ÄÍ­¸ú¤Ê¥Ñ¥Ã¥±¡¼¥¸¤¬¤¢¤ë¤«¤é¤Ç¤¹¡£ +.SS "APT ÀßÄê¤Î¸ú²Ì" +.PP +APT ÀßÄê¥Õ¥¡¥¤¥ë¤ò»È¤¦¤È¡¢ ¥·¥¹¥Æ¥à´ÉÍý¼Ô¤¬Í¥ÀèÅÙ¤ò³ä¤êÅö¤Æ¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë¤Ï¡¢¶õÇò¹Ô¤Ç¶èÀÚ¤é¤ì¤¿¡¢Ê£¿ô¹Ô¤«¤é¤Ê¤ë¥ì¥³¡¼¥É¤Ç¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¥ì¥³¡¼¥É¤ÏÆÃÄê·Á¼°¤«¡¢ÈÆÍÑ·Á¼°¤Î¤É¤Á¤é¤«¤Î·Á¼°¤ò¤È¤ê¤Þ¤¹¡£ +.TP 3n +\(bu +ÆÃÄê·Á¼°¤Ï¡¢Í¥ÀèÅÙ ("Pin\-Priority") ¤ò¡¢ »ØÄꤷ¤¿¥Ñ¥Ã¥±¡¼¥¸¤Î»ØÄꤷ¤¿¥Ð¡¼¥¸¥ç¥ó (ÈÏ°Ï) ¤Ë¤Ä¤¤¤Æ³ä¤êÅö¤Æ¤Þ¤¹¡£ Î㤨¤Ð°Ê²¼¤Î¥ì¥³¡¼¥É¤Ï¡¢ "5.8" ¤Ç»Ï¤Þ¤ë +\fIperl\fR +¥Ñ¥Ã¥±¡¼¥¸¤ò¡¢ ¹â¤¤Í¥ÀèÅÙ¤ËÀßÄꤷ¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Package: perl +Pin: version 5.8* +Pin\-Priority: 1001 +.fi +.RE +.TP 3n +\(bu +ÈÆÍÑ·Á¼°¤Ï¡¢Í¿¤¨¤é¤ì¤¿¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë¤¢¤ë¡¢ ¤¹¤Ù¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸ (\fIRelease\fR +¥Õ¥¡¥¤¥ë¤ËÎóµó¤·¤¿¥Ñ¥Ã¥±¡¼¥¸) ¤ÎÍ¥ÀèÅ٤䡢FQDN¤Ç»ØÄꤷ¤¿¡¢ ÆÃÄê¤Î¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥µ¥¤¥È¤«¤é¼èÆÀ¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤ÎÍ¥ÀèÅÙ¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£ +.sp +APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ë½ñ¤«¤ì¤Æ¤¤¤ëÈÆÍÑ·Á¼°¤Î¥¨¥ó¥È¥ê¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤Î¥°¥ë¡¼¥×¤Ë¤Ä¤¤¤Æ¤Î¤ßŬÍѤµ¤ì¤Þ¤¹¡£ Î㤨¤Ð°Ê²¼¤Î¥ì¥³¡¼¥É¤Ï¡¢¥í¡¼¥«¥ë¥µ¥¤¥È¤Ë¤¢¤ëÁ´¥Ñ¥Ã¥±¡¼¥¸¤Ë¤Ä¤¤¤Æ¡¢ ¹â¤¤Í¥ÀèÅÙ¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Package: * +Pin: origin "" +Pin\-Priority: 999 +.fi +.RE +.sp +Ãí: ¤³¤³¤Ç»ÈÍѤ·¤Æ¤¤¤ë¥­¡¼¥ï¡¼¥É¤Ï "origin" ¤Ç¤¹¡£ +\fIRelease\fR +¥Õ¥¡¥¤¥ë¤Ë»ØÄꤵ¤ì¤¿¤è¤¦¤Ê¡¢ ¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î Origin ¤Èº®Æ±¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ +\fIRelease\fR +¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë "Origin:" ¥¿¥°¤Ï¡¢ ¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥É¥ì¥¹¤Ç¤Ï¤Ê¤¯¡¢ "Debian" ¤ä "Ximian" ¤È¤¤¤Ã¤¿ºî¼Ô¤ä¥Ù¥ó¥À̾¤Ç¤¹¡£ +.sp +°Ê²¼¤Î¥ì¥³¡¼¥É¤Ï¡¢¥¢¡¼¥«¥¤¥Ö̾¤¬ "unstable" ¤È¤Ê¤Ã¤Æ¤¤¤ë¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë°¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤ò¡¢ ¤¹¤Ù¤ÆÄ㤤ͥÀèÅ٤˳ä¤êÅö¤Æ¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Package: * +Pin: release a=unstable +Pin\-Priority: 50 +.fi +.RE +.sp +°Ê²¼¤Î¥ì¥³¡¼¥É¤Ï¡¢¥¢¡¼¥«¥¤¥Ö̾¤¬ "stable" ¤Ç¡¢ ¥ê¥ê¡¼¥¹¥Ð¡¼¥¸¥ç¥óÈֹ椬 "3.0" ¤È¤Ê¤Ã¤Æ¤¤¤ë¥ê¥ê¡¼¥¹¤Ë°¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤ò¡¢ ¤¹¤Ù¤Æ¹â¤¤Í¥ÀèÅ٤˳ä¤êÅö¤Æ¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Package: * +Pin: release a=stable, v=3.0 +Pin\-Priority: 500 +.fi +.RE +.sp +.RE +.SS "APT ¤¬Í¥ÀèÅ٤˳ä¤ê¹þ¤àÊýË¡" +.PP + +APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ç³ä¤êÅö¤Æ¤¿Í¥ÀèÅÙ (P) ¤Ï¡¢ÀµÉé¤ÎÀ°¿ô¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£ ¤³¤ì¤Ï (¤ª¤ª¤¶¤Ã¤Ñ¤Ë¤¤¤¦¤È) °Ê²¼¤Î¤è¤¦¤Ë²ò¼á¤µ¤ì¤Þ¤¹¡£ +.PP +P > 1000 +.RS 3n +¥Ñ¥Ã¥±¡¼¥¸¤¬¥À¥¦¥ó¥°¥ì¡¼¥É¤·¤Æ¤â¡¢¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ +.RE +.PP +990 < P <=1000 +.RS 3n +¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ð¡¼¥¸¥ç¥ó¤ÎÊý¤¬¿·¤·¤¤¤³¤È¤ò½ü¤­¡¢ ¥¿¡¼¥²¥Ã¥È¥ê¥ê¡¼¥¹¤Ë´Þ¤Þ¤ì¤Ê¤¯¤Æ¤â¡¢ ¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ +.RE +.PP +500 < P <=990 +.RS 3n +¥¿¡¼¥²¥Ã¥È¥ê¥ê¡¼¥¹¤Ë°¤¹¤ë¥Ð¡¼¥¸¥ç¥ó¤¬¤¢¤Ã¤¿¤ê¡¢ ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ð¡¼¥¸¥ç¥ó¤ÎÊý¤¬¿·¤·¤¤¤Î¤Ç¤Ê¤±¤ì¤Ð¡¢ ¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ +.RE +.PP +100 < P <=500 +.RS 3n +¾¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë°¤¹¤ë¥Ð¡¼¥¸¥ç¥ó¤¬¤¢¤Ã¤¿¤ê¡¢ ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ð¡¼¥¸¥ç¥ó¤ÎÊý¤¬¿·¤·¤¤¤Î¤Ç¤Ê¤±¤ì¤Ð¡¢ ¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ +.RE +.PP +0 < P <=100 +.RS 3n +¤³¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ ¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ +.RE +.PP +P < 0 +.RS 3n +¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£ +.RE +.PP +ÆÃÄê·Á¼°¤Î¥ì¥³¡¼¥É¤¬ÍøÍѲÄǽ¥Ñ¥Ã¥±¡¼¥¸¥Ð¡¼¥¸¥ç¥ó¤Ë°ìÃפ·¤¿¾ì¹ç¡¢ ºÇ½é¤Î¥ì¥³¡¼¥É¤¬¡¢¥Ñ¥Ã¥±¡¼¥¸¥Ð¡¼¥¸¥ç¥ó¤ÎÍ¥ÀèÅÙ¤ò·èÄꤷ¤Þ¤¹¡£ ¼ºÇÔ¤·¤Æ¡¢ÈÆÍÑ·Á¼°¤Î¥ì¥³¡¼¥É¤¬ÍøÍѲÄǽ¥Ñ¥Ã¥±¡¼¥¸¥Ð¡¼¥¸¥ç¥ó¤Ë°ìÃפ·¤¿¾ì¹ç¡¢ ºÇ½é¤Î¥ì¥³¡¼¥É¤¬¡¢¥Ñ¥Ã¥±¡¼¥¸¥Ð¡¼¥¸¥ç¥ó¤ÎÍ¥ÀèÅÙ¤ò·èÄꤷ¤Þ¤¹¡£ +.PP +Î㤨¤Ð¡¢APT ÀßÄê¥Õ¥¡¥¤¥ë¤Î¾å¤ÎÊý¤Ë¡¢ °Ê²¼¤Î¥ì¥³¡¼¥É¤¬½ñ¤«¤ì¤Æ¤¤¤ë¤È²¾Äꤷ¤Æ¤¯¤À¤µ¤¤¡£ +.sp +.RS 3n +.nf +Package: perl +Pin: version 5.8* +Pin\-Priority: 1001 + +Package: * +Pin: origin "" +Pin\-Priority: 999 + +Package: * +Pin: release unstable +Pin\-Priority: 50 +.fi +.RE +.sp +.PP +¤¹¤ë¤È¡¢ +.TP 3n +\(bu +¥Ð¡¼¥¸¥ç¥óÈֹ椬 "5.8" ¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤ì¤Ð¡¢ +perl +¤ÎºÇ¿·¤ÎÍøÍѲÄǽ¥Ñ¥Ã¥±¡¼¥¸¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£ ¥Ð¡¼¥¸¥ç¥ó 5.8* ¤¬ÍøÍѲÄǽ¤Ç¡¢¥Ð¡¼¥¸¥ç¥ó 5.9* ¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +perl +¤Ï¥À¥¦¥ó¥°¥ì¡¼¥É¤µ¤ì¤Þ¤¹¡£ +.TP 3n +\(bu +¥í¡¼¥«¥ë¥·¥¹¥Æ¥à¤ÇÍ­¸ú¤Ê¡¢ +perl +°Ê³°¤Î¤É¤ó¤Ê¥Ñ¥Ã¥±¡¼¥¸¤Ç¤â¡¢ ¾¤Î¥Ð¡¼¥¸¥ç¥ó¤è¤ê (¤¿¤È¤¨¥¿¡¼¥²¥Ã¥È¥ê¥ê¡¼¥¹¤Ë°¤·¤Æ¤¤¤Æ¤â) Í¥ÀèÅÙ¤¬¹â¤¯¤Ê¤ê¤Þ¤¹¡£ +.TP 3n +\(bu +¥í¡¼¥«¥ë¥·¥¹¥Æ¥à¤Ë¤Ï¤Ê¤¯¤Æ¤â +\fBsources.list\fR(5) +¤ËÎóµó¤µ¤ì¤¿¥µ¥¤¥È¤Ë¤¢¤ë¥Ð¡¼¥¸¥ç¥ó¤Ç¡¢ +unstable +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë°¤·¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢ ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤è¤¦ÁªÂò¤µ¤ì¡¢ ´û¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ð¡¼¥¸¥ç¥ó¤¬¤Ê¤¤¾ì¹ç¤Ë¤Î¤ß¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£ +.sp +.RE +.SS "¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤È¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¥×¥í¥Ñ¥Æ¥£¤Î·èÄê" +.PP +\fBsources.list\fR(5) +¥Õ¥¡¥¤¥ë¤ËÎóµó¤·¤¿¾ì½ê¤Ç¤Ï¡¢ ¤½¤Î¾ì½ê¤ÇÍøÍѤǤ­¤ë¥Ñ¥Ã¥±¡¼¥¸¤òµ­½Ò¤·¤¿¡¢ +\fIPackages\fR +¥Õ¥¡¥¤¥ë¤ä +\fIRelease\fR +¥Õ¥¡¥¤¥ë¤òÄ󶡤·¤Þ¤¹¡£ +.PP +\fIPackages\fR +¥Õ¥¡¥¤¥ë¤ÏÄ̾ï +\fI.../dists/\fR\fI\fIdist\-name\fR\fR\fI/\fR\fI\fIcomponent\fR\fR\fI/\fR\fI\fIarch\fR\fR +¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ê¤Þ¤¹¡£ Î㤨¤Ð¡¢\fI.../dists/stable/main/binary\-i386/Packages\fR +¤Ç¤¹¡£ ¤³¤ì¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ëÍøÍѲÄǽ¥Ñ¥Ã¥±¡¼¥¸¤´¤È¤Ë¡¢ Ê£¿ô¹Ô¤Î¥ì¥³¡¼¥É¤«¤é¤Ç¤­¤Æ¤¤¤Þ¤¹¡£ APT Í¥ÀèÅÙ¤ÎÀßÄê¤Ï¡¢¥ì¥³¡¼¥É¤´¤È¤Ë°Ê²¼¤Î 2 ¹Ô¤À¤±¤Ç¤¹¡£ +.PP +Package: ¹Ô +.RS 3n +¥Ñ¥Ã¥±¡¼¥¸Ì¾¤òÍ¿¤¨¤Þ¤¹¡£ +.RE +.PP +Version: ¹Ô +.RS 3n +¤½¤Î̾Á°¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òÍ¿¤¨¤Þ¤¹¡£ +.RE +.PP +\fIRelease\fR +¥Õ¥¡¥¤¥ë¤Ï¡¢Ä̾ï +\fI.../dists/\fR\fI\fIdist\-name\fR\fR +¤Ë¤¢¤ê¤Þ¤¹¡£Î㤨¤Ð¡¢ +\fI.../dists/stable/Release\fR, +\fI.../dists/woody/Release\fR +¤Ç¤¹¡£ ¤³¤ì¤Ï¡¢¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Ë¤¢¤ë\fIÁ´\fR¥Ñ¥Ã¥±¡¼¥¸¤ËŬÍѤ¹¤ë¡¢ Ê£¿ô¹Ô¤Î¥ì¥³¡¼¥É 1 ¤Ä¤«¤éÀ®¤Ã¤Æ¤¤¤Þ¤¹¡£ +\fIPackages\fR +¤È°ã¤¤ +\fIRelease\fR +¥Õ¥¡¥¤¥ë¤Ï¡¢ ¤Û¤È¤ó¤É¤Î¹Ô¤¬ APT Í¥ÀèÅÙ¤ÎÀßÄê¤Ë´ØÏ¢¤·¤Þ¤¹¡£ +.PP +Archive: ¹Ô +.RS 3n +¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Ë°¤¹¤ëÁ´¥Ñ¥Ã¥±¡¼¥¸¤Î¥¢¡¼¥«¥¤¥Ö̾¡£ Î㤨¤Ð¡¢ "Archive: stable" ¤È¤¤¤¦¹Ô¤Ï¡¢\fIRelease\fR +¥Õ¥¡¥¤¥ë¤Î¿Æ¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼°Ê²¼¤Ë¤¢¤ëÁ´¥Ñ¥Ã¥±¡¼¥¸¤¬¡¢ +stable +¥¢¡¼¥«¥¤¥Ö¤À¤È»ØÄꤷ¤Þ¤¹¡£ APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤³¤ÎÃͤò»ØÄꤹ¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¹Ô¤¬É¬Íפˤʤê¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Pin: release a=stable +.fi +.RE +.RE +.PP +Version: ¹Ô +.RS 3n +¥ê¥ê¡¼¥¹¥Ð¡¼¥¸¥ç¥ó̾¡£ Î㤨¤Ð¡¢¤³¤Î¥Ä¥ê¡¼¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬¡¢ GNU/Linux ¥ê¥ê¡¼¥¹¥Ð¡¼¥¸¥ç¥ó 3.0 ¤Ë°¤¹¤ë¤È¤·¤Þ¤¹¡£ Ä̾ï +testing +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤ä +unstable +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë¤Ï¡¢ ¤Þ¤À¥ê¥ê¡¼¥¹¤µ¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢¥Ð¡¼¥¸¥ç¥óÈֹ椬ÉÕ¤­¤Þ¤»¤ó¡£ APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤³¤ì¤ò»ØÄꤹ¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¹Ô¤Î¤¤¤º¤ì¤«¤¬É¬Íפˤʤê¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Pin: release v=3.0 +Pin: release a=stable, v=3.0 +Pin: release 3.0 +.fi +.RE +.RE +.PP +Component: ¹Ô +.RS 3n +\fIRelease\fR +¥Õ¥¡¥¤¥ë¤Î¡¢ ¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Ë¤¢¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¥é¥¤¥»¥ó¥¹¥³¥ó¥Ý¡¼¥Í¥ó¥È̾¡£ Î㤨¤Ð¡¢"Component: main" ¤È¤¤¤¦¹Ô¤Ï¡¢¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤ÎÁ´¥Õ¥¡¥¤¥ë¤¬¡¢ +main +¥³¥ó¥Ý¡¼¥Í¥ó¥È (Debian ¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¥¬¥¤¥É¥é¥¤¥ó¤Î¸µ¤Ç¥é¥¤¥»¥ó¥¹¤µ¤ì¤Æ¤¤¤ë) ¤Ç¤¢¤ë¤³¤È¤òɽ¤·¤Þ¤¹¡£ APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤³¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò»ØÄꤹ¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¹Ô¤¬É¬Íפˤʤê¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Pin: release c=main +.fi +.RE +.RE +.PP +Origin: ¹Ô +.RS 3n +\fIRelease\fR +¥Õ¥¡¥¤¥ë¤Î¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Ë¤¢¤ë¥Ñ¥Ã¥±¡¼¥¸¤ÎÄ󶡼Ô̾¡£ ¤Û¤È¤ó¤É¶¦Ä̤ǡ¢Debian +¤Ç¤¹¡£ APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤³¤ÎÄ󶡼Ԥò»ØÄꤹ¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¹Ô¤¬É¬Íפˤʤê¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Pin: release o=Debian +.fi +.RE +.RE +.PP +Label: ¹Ô +.RS 3n +\fIRelease\fR +¥Õ¥¡¥¤¥ë¤Î¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Ë¤¢¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¥é¥Ù¥ë̾¡£ ¤Û¤È¤ó¤É¶¦ÄÌ¤Ç +Debian +¤Ç¤¹¡£ APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤³¤Î¥é¥Ù¥ë¤ò»ØÄꤹ¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¹Ô¤¬É¬Íפˤʤê¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Pin: release l=Debian +.fi +.RE +.RE +.PP +\fBsources.list\fR(5) +¥Õ¥¡¥¤¥ë¤ËÎóµó¤µ¤ì¤¿¾ì½ê¤«¤é¼èÆÀ¤·¤¿ +\fIPackages\fR +¥Õ¥¡¥¤¥ë¤ä +\fIRelease\fR +¥Õ¥¡¥¤¥ë¤Ï¤¹¤Ù¤Æ¡¢ +\fI/var/lib/apt/lists\fR +¥Ç¥£¥ì¥¯¥È¥ê¤ä¡¢ +\fIapt.conf\fR +¥Õ¥¡¥¤¥ë¤Î +Dir::State::Lists +ÊÑ¿ô¤Ç»ØÄꤷ¤¿¾ì½ê¤Ë¼èÆÀ¤µ¤ì¤Þ¤¹¡£Î㤨¤Ð¡¢ +\fIdebian.lcs.mit.edu_debian_dists_unstable_contrib_binary\-i386_Release\fR +¥Õ¥¡¥¤¥ë¤Ï¡¢ +debian.lcs.mit.edu +¤«¤é¼èÆÀ¤·¤¿¡¢ +unstable +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ç¡¢ +contrib +¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ê¡¢ +binary\-i386 +¥¢¡¼¥­¥Æ¥¯¥Á¥ãÍѤΠ+\fIRelease\fR +¥Õ¥¡¥¤¥ë¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£ +.SS "APT ÀßÄê¥ì¥³¡¼¥É¤Î¥ª¥×¥·¥ç¥ó¹Ô" +.PP +APT ÀßÄê¥Õ¥¡¥¤¥ë¤Î¥ì¥³¡¼¥É¤´¤È¤Ë¡¢ Ǥ°Õ¤Ç +Explanation: +¤Ç»Ï¤Þ¤ë¹Ô¤ò»ý¤Æ¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢¥³¥á¥ó¥ÈÍѤξì½ê¤ò³ÎÊݤ·¤Þ¤¹¡£ +.PP +APT ÀßÄê¥ì¥³¡¼¥É¤Î +Pin\-Priority: +¹Ô¤ÏǤ°Õ¤Ç¤¹¡£ ¾Êά¤¹¤ë¤È¡¢Pin\-Priority: release ... +¤Ç»Ï¤Þ¤ë¹Ô¤Ç»Ø¼¨¤·¤¿ºÇ¸å¤ÎÃÍ (¾¯¤Ê¤¯¤È¤â1¤Ä) ¤òÍ¥ÀèÅ٤˳ä¤êÅö¤Æ¤Þ¤¹¡£ +.SH "¥µ¥ó¥×¥ë" +.SS "°ÂÄêÈǤòÄÉÀ×" +.PP +°Ê²¼¤Î APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢stable +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë°¤¹¤ëÁ´¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¡¢ ¥Ç¥Õ¥©¥ë¥È (500) ¤è¤ê¹â¤¤Í¥ÀèÅÙ¤ò³ä¤êÅö¤Æ¡¢ ¾¤Î +Debian +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ï¡¢ Ä㤯¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­¤Ê¤¤¤è¤¦¤ÊÍ¥ÀèÅÙ¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Explanation: Uninstall or do not install any Debian\-originated +Explanation: package versions other than those in the stable distro +Package: * +Pin: release a=stable +Pin\-Priority: 900 + +Package: * +Pin: release o=Debian +Pin\-Priority: \-10 +.fi +.RE +.sp +.PP +ŬÀÚ¤Ê +\fBsources.list\fR(5) +¥Õ¥¡¥¤¥ë¤È¾åµ­¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ë¤è¤ê¡¢ °Ê²¼¤Î¥³¥Þ¥ó¥É¤ÇºÇ¿·¤Î +stable +¥Ð¡¼¥¸¥ç¥ó¤Ë¥¢¥Ã¥×¥°¥ì¡¼¥É¤Ç¤­¤Þ¤¹¡£ +.sp +.RS 3n +.nf +apt\-get install \fIpackage\-name\fR +apt\-get upgrade +apt\-get dist\-upgrade +.fi +.RE +.sp +.PP +°Ê²¼¤Î¥³¥Þ¥ó¥É¤Ç¡¢»ØÄꤷ¤¿¥Ñ¥Ã¥±¡¼¥¸¤ò +testing +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤ÎºÇ¿·¥Ð¡¼¥¸¥ç¥ó¤Ë¥¢¥Ã¥×¥°¥ì¡¼¥É¤·¤Þ¤¹¡£ ¤³¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢ºÆÅÙ¤³¤Î¥³¥Þ¥ó¥É¤òȯ¹Ô¤·¤Ê¤¤¤È¥¢¥Ã¥×¥°¥ì¡¼¥É¤µ¤ì¤Þ¤»¤ó¡£ +.sp +.RS 3n +.nf +apt\-get install \fIpackage\fR/testing +.fi +.RE +.sp +.SS "¥Æ¥¹¥ÈÈǤäÉÔ°ÂÄêÈǤòÄÉÀ×" +.PP +°Ê²¼¤Î APT ÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢testing +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¹â¤¤Í¥ÀèÅÙ¤ò³ä¤êÅö¤Æ¡¢ +unstable +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤ÏÄ㤤ͥÀèÅÙ¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£ ¤Þ¤¿Â¾¤Î +Debian +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ï¡¢ Ä㤯¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­¤Ê¤¤¤è¤¦¤ÊÍ¥ÀèÅÙ¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£ +.sp +.RS 3n +.nf +Package: * +Pin: release a=testing +Pin\-Priority: 900 + +Package: * +Pin: release a=unstable +Pin\-Priority: 800 + +Package: * +Pin: release o=Debian +Pin\-Priority: \-10 +.fi +.RE +.sp +.PP +ŬÀÚ¤Ê +\fBsources.list\fR(5) +¥Õ¥¡¥¤¥ë¤È¾åµ­¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ë¤è¤ê¡¢ °Ê²¼¤Î¥³¥Þ¥ó¥É¤ÇºÇ¿·¤Î +testing +¥Ð¡¼¥¸¥ç¥ó¤Ë¥¢¥Ã¥×¥°¥ì¡¼¥É¤Ç¤­¤Þ¤¹¡£ +.sp +.RS 3n +.nf +apt\-get install \fIpackage\-name\fR +apt\-get upgrade +apt\-get dist\-upgrade +.fi +.RE +.sp +.PP +°Ê²¼¤Î¥³¥Þ¥ó¥É¤Ç¡¢»ØÄꤷ¤¿¥Ñ¥Ã¥±¡¼¥¸¤ò +unstable +¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤ÎºÇ¿·¥Ð¡¼¥¸¥ç¥ó¤Ë¥¢¥Ã¥×¥°¥ì¡¼¥É¤·¤Þ¤¹¡£ ¤½¤ì°Ê¹ß¡¢\fBapt\-get upgrade\fR +¤Ï +testing +¥Ð¡¼¥¸¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬¹¹¿·¤µ¤ì¤Æ¤¤¤ì¤Ð +testing +¤ÎºÇ¿·ÈǤˡ¢ +unstable +¥Ð¡¼¥¸¥ç¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬¹¹¿·¤µ¤ì¤Æ¤¤¤ì¤Ð +unstable¤ÎºÇ¿·ÈǤ˥¢¥Ã¥×¥°¥ì¡¼¥É¤·¤Þ¤¹¡£ +.sp +.RS 3n +.nf +apt\-get install \fIpackage\fR/unstable +.fi +.RE +.sp +.SH "´ØÏ¢¹àÌÜ" +.PP +\fBapt\-get\fR(8) +\fBapt\-cache\fR(8) +\fBapt.conf\fR(5) +\fBsources.list\fR(5) +.SH "¥Ð¥°" +.PP +[1]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHOR" +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/apt_preferences.ja.5.xml b/doc/ja/apt_preferences.ja.5.xml new file mode 100644 index 0000000..a7e63a9 --- /dev/null +++ b/doc/ja/apt_preferences.ja.5.xml @@ -0,0 +1,940 @@ + + +%aptent; + +]> + + + + + &apt-author.team; + &apt-email; + &apt-product; + + 29 February 2004 + + + + apt_preferences + 5 + + + + + apt_preferences + + APT 設定制御ファイル + + + + +説明 + +APT 設定ファイル /etc/apt/preferences は、 +インストールするパッケージのバージョン選択を制御するのに使用します。 + + +&sources-list; ファイルに複数のディストリビューション +(stable と testing など) +が指定されていて、 +パッケージに対し複数のバージョンがインストールできることがあります。 +このとき APT は、利用できるバージョンごとに優先度を割り当てます。 +依存関係規則を条件として、apt-get は、 +最も高い優先度を持つバージョンをインストールするよう選択します。 +APT 設定ファイルは、APT がデフォルトで割り当てた、 +パッケージのバージョンの優先度を上書きします。 +その結果、インストールするものの選択を、ユーザが選択できるようになります。 + + +&sources-list; ファイルに複数の参照が書かれている場合、 +パッケージの同じバージョンのインスタンスが複数利用できる可能性があります。 +この場合、apt-get は &sources-list; +ファイルの初めの方に指定されているところからダウンロードします。 +APT 設定ファイルは、バージョンの選択にのみ影響し、 +インスタンスの選択には影響しません。 + + +APT のデフォルト優先度の割り当て + + +設定ファイルがなかったり、 +設定ファイルに、特定のパッケージを割り当てるエントリがない場合、 +そのバージョンの優先度は、 +そのバージョンが属しているディストリビューションの優先度となります。 +デフォルトで他のディストリビューションより高い優先度を持つ、 +特定のディストリビューションを「ターゲットリリース」としておくのは可能です。 +ターゲットリリースは、apt-get のコマンドラインで設定したり、 +APT 設定ファイル /etc/apt/apt.conf で設定したりできます。 +例えば以下のようになります。 + + +apt-get install -t testing some-package + + +APT::Default-Release "stable"; + + + + +ターゲットリリースが指定されると、APT は以下のアルゴリズムで、 +パッケージのバージョンの優先度を設定します。このように割り当てます。 + + + + +優先度 100 + +(あるならば) 既にインストールされているバージョン。 + + + + +優先度 500 + +インストールされておらず、ターゲットリリースに含まれないバージョン。 + + + + +優先度 990 + +インストールされておらず、ターゲットリリースに含まれるバージョン。 + + + + + +ターゲットリリースが指定されていなければ、 +APT は単純にインストールしているパッケージのバージョンには 100 を、 +インストールしていないパッケージのバージョンには 500 を割り当てます。 + + +APT は、インストールするパッケージのバージョンを決定するために、 +以下のルールを上から順番に適用します。 + + +有効なバージョンの優先度が 1000 を越えない場合、 +決してダウングレードしません。 +(「ダウングレード」は、現在のパッケージのバージョンよりも、 +小さいバージョンのものをインストールします。 +APT のデフォルト優先度が 1000 を越えないことに注意してください。 +そのような優先度は設定ファイルでのみ設定できます。 +また、パッケージのダウングレードは危険であることにも注意してください) + +最も高い優先度のバージョンをインストールします。 + +同じ優先度のバージョンが複数存在する場合、 +最も新しいもの (最もバージョン番号が高いもの) をインストールします。 + +優先度・バージョン番号が同じものが複数存在し、 +そのパッケージのメタデータが異なるか --reinstall +オプションが与えられている場合、 +インストールされていないものをインストールします。 + + + + +よくある状況として、 +あるインストールされているパッケージのバージョン (優先度 100) が、 +&sources-list; ファイルのリストから得られるバージョン (優先度 500 か 990) +よりも新しくないということがあります。この場合、 +apt-get install some-package +や apt-get upgrade を実行するとパッケージが更新されます。 + + + +まれに、インストールされているパッケージのバージョンが、 +他の有効なバージョンよりも新しい場合があります。 +この時 +apt-get install some-package +や apt-get upgrade を実行しても、 +ダウングレードしません。 + + +時々、インストールしているパッケージのバージョンが、 +ターゲットリリースに属するバージョンよりも新しく、 +他のディストリビューションよりも古い場合があります。 +そのようなパッケージに対して +apt-get install some-package +や apt-get upgrade を実行すると、 +パッケージは更新されます。 +この場合、インストールされているバージョンよりも、 +少なくともひとつは、 +高い優先度を持つ有効なパッケージがあるからです。 + + + +APT 設定の効果 + + +APT 設定ファイルを使うと、 +システム管理者が優先度を割り当てられるようになります。 +ファイルは、空白行で区切られた、複数行からなるレコードで構成されています。 +レコードは特定形式か、汎用形式のどちらかの形式をとります。 + + + +特定形式は、優先度 ("Pin-Priority") を、 +指定したパッケージの指定したバージョン (範囲) について割り当てます。 +例えば以下のレコードは、 +"5.8" で始まる perl パッケージを、 +高い優先度に設定します。 + + +Package: perl +Pin: version 5.8* +Pin-Priority: 1001 + + + + +汎用形式は、与えられたディストリビューションにある、 +すべてのパッケージ (Release ファイルに列挙したパッケージ) +の優先度や、FQDNで指定した、 +特定のインターネットサイトから取得するパッケージの優先度を割り当てます。 + + +APT 設定ファイルに書かれている汎用形式のエントリは、 +パッケージのグループについてのみ適用されます。 +例えば以下のレコードは、ローカルサイトにある全パッケージについて、 +高い優先度を割り当てます。 + + +Package: * +Pin: origin "" +Pin-Priority: 999 + + + +注: ここで使用しているキーワードは "origin" です。 +Release ファイルに指定されたような、 +ディストリビューションの Origin と混同しないようにしてください。 +Release ファイルにある "Origin:" タグは、 +インターネットアドレスではなく、 +"Debian" や "Ximian" といった作者やベンダ名です。 + + +以下のレコードは、アーカイブ名が "unstable" +となっているディストリビューションに属するパッケージを、 +すべて低い優先度に割り当てます。 + + +Package: * +Pin: release a=unstable +Pin-Priority: 50 + + + +以下のレコードは、アーカイブ名が "stable" で、 +リリースバージョン番号が "3.0" +となっているリリースに属するパッケージを、 +すべて高い優先度に割り当てます。 + + +Package: * +Pin: release a=stable, v=3.0 +Pin-Priority: 500 + + + + + + + + + +APT が優先度に割り込む方法 + + + +APT 設定ファイルで割り当てた優先度 (P) は、正負の整数でなくてはなりません。 +これは (おおざっぱにいうと) 以下のように解釈されます。 + + + +P > 1000 + +パッケージがダウングレードしても、このバージョンのパッケージをインストールします。 + + +990 < P <=1000 + +インストールされているバージョンの方が新しいことを除き、 +ターゲットリリースに含まれなくても、 +このバージョンのパッケージをインストールします。 + + +500 < P <=990 + +ターゲットリリースに属するバージョンがあったり、 +インストールされているバージョンの方が新しいのでなければ、 +このバージョンのパッケージをインストールします。 + + +100 < P <=500 + +他のディストリビューションに属するバージョンがあったり、 +インストールされているバージョンの方が新しいのでなければ、 +このバージョンのパッケージをインストールします。 + + +0 < P <=100 + +このパッケージがインストールされていない場合、 +このバージョンのパッケージをインストールします。 + + +P < 0 + +このバージョンがインストールされないようにします。 + + + + + +特定形式のレコードが利用可能パッケージバージョンに一致した場合、 +最初のレコードが、パッケージバージョンの優先度を決定します。 +失敗して、汎用形式のレコードが利用可能パッケージバージョンに一致した場合、 +最初のレコードが、パッケージバージョンの優先度を決定します。 + + +例えば、APT 設定ファイルの上の方に、 +以下のレコードが書かれていると仮定してください。 + + +Package: perl +Pin: version 5.8* +Pin-Priority: 1001 + +Package: * +Pin: origin "" +Pin-Priority: 999 + +Package: * +Pin: release unstable +Pin-Priority: 50 + + + +すると、 + + +バージョン番号が "5.8" で始まっていれば、 +perl の最新の利用可能パッケージがインストールされます。 +バージョン 5.8* が利用可能で、バージョン 5.9* がインストールされている場合、 +perl はダウングレードされます。 + +ローカルシステムで有効な、 +perl 以外のどんなパッケージでも、 +他のバージョンより (たとえターゲットリリースに属していても) 優先度が高くなります。 + + +ローカルシステムにはなくても &sources-list; +に列挙されたサイトにあるバージョンで、 +unstable ディストリビューションに属しているパッケージは、 +インストールするよう選択され、 +既にインストールされているバージョンがない場合にのみインストールされます。 + + + + + + + +パッケージのバージョンとディストリビューションプロパティの決定 + + +&sources-list; ファイルに列挙した場所では、 +その場所で利用できるパッケージを記述した、 +Packages ファイルや +Release ファイルを提供します。 + + +Packages ファイルは通常 +.../dists/dist-name/component/arch +ディレクトリにあります。 +例えば、.../dists/stable/main/binary-i386/Packages です。 +これは、ディレクトリにある利用可能パッケージごとに、 +複数行のレコードからできています。 +APT 優先度の設定は、レコードごとに以下の 2 行だけです。 + + + +Package: 行 +パッケージ名を与えます。 + + + +Version: 行 +その名前のパッケージのバージョン番号を与えます。 + + + + + +Release ファイルは、通常 +.../dists/dist-name +にあります。例えば、 +.../dists/stable/Release, +.../dists/woody/Release です。 +これは、このディレクトリ以下にある全パッケージに適用する、 +複数行のレコード 1 つから成っています。 +Packages と違い Release ファイルは、 +ほとんどの行が APT 優先度の設定に関連します。 + + + + +Archive: 行 + +このディレクトリツリーに属する全パッケージのアーカイブ名。 +例えば、 +"Archive: stable" +という行は、Release ファイルの親ディレクトリツリー以下にある全パッケージが、 +stable アーカイブだと指定します。 +APT 設定ファイルでこの値を指定するには、以下の行が必要になります。 + + +Pin: release a=stable + + + + + + +Version: 行 + +リリースバージョン名。 +例えば、このツリーのパッケージが、 +GNU/Linux リリースバージョン 3.0 に属するとします。 +通常 testing ディストリビューションや +unstable ディストリビューションには、 +まだリリースされていないので、バージョン番号が付きません。 +APT 設定ファイルでこれを指定するには、以下の行のいずれかが必要になります。 + + + +Pin: release v=3.0 +Pin: release a=stable, v=3.0 +Pin: release 3.0 + + + + + + + +Component: 行 + +Release ファイルの、 +ディレクトリツリーにあるパッケージのライセンスコンポーネント名。 +例えば、"Component: main" という行は、このディレクトリ以下の全ファイルが、 +main コンポーネント +(Debian フリーソフトウェアガイドラインの元でライセンスされている) +であることを表します。 +APT 設定ファイルでこのコンポーネントを指定するには、以下の行が必要になります。 + + +Pin: release c=main + + + + + + +Origin: 行 + +Release ファイルのディレクトリツリーにあるパッケージの提供者名。 +ほとんど共通で、Debian です。 +APT 設定ファイルでこの提供者を指定するには、以下の行が必要になります。 + + +Pin: release o=Debian + + + + + + +Label: 行 + +Release ファイルのディレクトリツリーにあるパッケージのラベル名。 +ほとんど共通で Debian です。 +APT 設定ファイルでこのラベルを指定するには、以下の行が必要になります。 + + +Pin: release l=Debian + + + + + + + +&sources-list; ファイルに列挙された場所から取得した +Packages ファイルや +Release ファイルはすべて、 +/var/lib/apt/lists ディレクトリや、 +apt.conf ファイルの +Dir::State::Lists 変数で指定した場所に取得されます。例えば、 +debian.lcs.mit.edu_debian_dists_unstable_contrib_binary-i386_Release ファイルは、 +debian.lcs.mit.edu から取得した、 +unstable ディストリビューションで、 +contrib コンポーネントな、 +binary-i386 アーキテクチャ用の +Release ファイルを含んでいます。 + + + + +APT 設定レコードのオプション行 + + +APT 設定ファイルのレコードごとに、 +任意で Explanation: で始まる行を持てます。 +これは、コメント用の場所を確保します。 + + +APT 設定レコードの Pin-Priority: 行は任意です。 +省略すると、Pin-Priority: release ... +で始まる行で指示した最後の値 (少なくとも1つ) を優先度に割り当てます。 + + + + + +サンプル + + +安定版を追跡 + + +以下の APT 設定ファイルは、stable +ディストリビューションに属する全てのパッケージのバージョンに、 +デフォルト (500) より高い優先度を割り当て、 +他の Debian +ディストリビューションのパッケージのバージョンには、 +低くてインストールできないような優先度を割り当てます。 + + +Explanation: Uninstall or do not install any Debian-originated +Explanation: package versions other than those in the stable distro +Package: * +Pin: release a=stable +Pin-Priority: 900 + +Package: * +Pin: release o=Debian +Pin-Priority: -10 + + + + +適切な &sources-list; ファイルと上記の設定ファイルにより、 +以下のコマンドで最新の stable +バージョンにアップグレードできます。 + + +apt-get install package-name +apt-get upgrade +apt-get dist-upgrade + + + + +以下のコマンドで、指定したパッケージを testing +ディストリビューションの最新バージョンにアップグレードします。 +このパッケージは、再度このコマンドを発行しないとアップグレードされません。 + + +apt-get install package/testing + + + + + + + テスト版や不安定版を追跡 + + +以下の APT 設定ファイルは、testing +ディストリビューションのパッケージのバージョンに高い優先度を割り当て、 +unstable +ディストリビューションのパッケージのバージョンには低い優先度を割り当てます。 +また他の Debian +ディストリビューションのパッケージのバージョンには、 +低くてインストールできないような優先度を割り当てます。 + + +Package: * +Pin: release a=testing +Pin-Priority: 900 + +Package: * +Pin: release a=unstable +Pin-Priority: 800 + +Package: * +Pin: release o=Debian +Pin-Priority: -10 + + + + +適切な &sources-list; ファイルと上記の設定ファイルにより、 +以下のコマンドで最新の testing +バージョンにアップグレードできます。 + + +apt-get install package-name +apt-get upgrade +apt-get dist-upgrade + + + + +以下のコマンドで、指定したパッケージを unstable +ディストリビューションの最新バージョンにアップグレードします。 +それ以降、apt-get upgrade は +testing バージョンのパッケージが更新されていれば +testing の最新版に、 +unstable バージョンのパッケージが更新されていれば +unstableの最新版にアップグレードします。 + + +apt-get install package/unstable + + + + + + + + +関連項目 +&apt-get; &apt-cache; &apt-conf; &sources-list; + + + + &manbugs; + &translator; + + + diff --git a/doc/ja/makefile b/doc/ja/makefile new file mode 100644 index 0000000..2861529 --- /dev/null +++ b/doc/ja/makefile @@ -0,0 +1,63 @@ +# -*- make -*- +BASE=../.. +SUBDIR=doc/ja + +# Bring in the default rules +include ../../buildlib/defaults.mak + +# Do not use XMLTO, build the manpages directly with XSLTPROC +XSLTPROC=/usr/bin/xsltproc +STYLESHEET=./style.ja.xsl + + +# Man pages +SOURCE = apt-cache.ja.8 apt-get.ja.8 apt-cdrom.ja.8 apt.conf.ja.5 \ + sources.list.ja.5 apt-config.ja.8 apt-sortpkgs.ja.1 \ + apt-ftparchive.ja.1 apt_preferences.ja.5 apt-extracttemplates.ja.1 \ + apt-key.ja.8 apt-secure.ja.8 + +INCLUDES = apt.ent.ja + +doc: $(SOURCE) + +$(SOURCE) :: % : %.xml $(INCLUDES) + echo Creating man page $@ + $(XSLTPROC) -o $@ $(STYLESHEET) $< + +apt-cache.ja.8:: apt-cache.8 + cp $< $@ + +apt-get.ja.8:: apt-get.8 + cp $< $@ + +apt-cdrom.ja.8:: apt-cdrom.8 + cp $< $@ + +apt.conf.ja.5:: apt.conf.5 + cp $< $@ + +apt-config.ja.8:: apt-config.8 + cp $< $@ + +sources.list.ja.5:: sources.list.5 + cp $< $@ + +apt-sortpkgs.ja.1:: apt-sortpkgs.1 + cp $< $@ + +apt-ftparchive.ja.1:: apt-ftparchive.1 + cp $< $@ + +apt_preferences.ja.5:: apt_preferences.5 + cp $< $@ + +apt-extracttemplates.ja.1:: apt-extracttemplates.1 + cp $< $@ + +apt-key.ja.8:: apt-key.8 + cp $< $@ + +apt-secure.ja.8:: apt-secure.8 + cp $< $@ + + diff --git a/doc/ja/manpage.links b/doc/ja/manpage.links new file mode 100644 index 0000000..e69de29 diff --git a/doc/ja/manpage.refs b/doc/ja/manpage.refs new file mode 100644 index 0000000..16ffc79 --- /dev/null +++ b/doc/ja/manpage.refs @@ -0,0 +1,4 @@ +{ + '' => '', + '' => '' +} diff --git a/doc/ja/sources.list.5 b/doc/ja/sources.list.5 new file mode 100644 index 0000000..cb41f93 --- /dev/null +++ b/doc/ja/sources.list.5 @@ -0,0 +1,259 @@ +.\" Title: sources.list +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "SOURCES.LIST" "5" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +sources.list \- APT Íѥѥ屡¼¥¸¥ê¥½¡¼¥¹¥ê¥¹¥È +.SH "ÀâÌÀ" +.PP +¤³¤Î¥Ñ¥Ã¥±¡¼¥¸¥ê¥½¡¼¥¹¥ê¥¹¥È¤Ï¡¢ ¥·¥¹¥Æ¥à¤Ç»ÈÍѤ¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤ÎÊݴɾì½ê¤òÆÃÄꤹ¤ë¤Î¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£ º£²ó¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë¤Ï¡¢ Debian GNU/Linux ¥·¥¹¥Æ¥à¤Ç»ÈÍѤ¹¤ë¥Ñ¥Ã¥±¡¼¥¸¥·¥¹¥Æ¥à¤Ë¤Ä¤¤¤Æ¤Î¤ßµ­½Ò¤·¤Þ¤¹¡£ ¤³¤ÎÀ©¸æ¥Õ¥¡¥¤¥ë¤Ï¡¢\fI/etc/apt/sources.list\fR +¤Ë¤¢¤ê¤Þ¤¹¡£ +.PP +¥½¡¼¥¹¥ê¥¹¥È¤ÏÊ£¿ô¤ÎÍ­¸ú¤Ê¼èÆÀ¸µ¤È¡¢ ÍÍ¡¹¤Ê¼èÆÀ¥á¥Ç¥£¥¢¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë¤Ë¤Ï 1 ¹Ô¤´¤È¼èÆÀ¸µ¤òÎóµó¤·¡¢¾å¤ÎÊý¤Ë¤¢¤ë¤â¤Î¤«¤é»ÈÍѤ·¤Þ¤¹¡£ ¹Ô¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢¥¿¥¤¥× uri °ú¿ô +¤È¤Ê¤ê¤Þ¤¹¡£ ÀèƬ¤Î +¥¿¥¤¥× +¤Ç¡¢ +°ú¿ô +¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ò·èÄꤷ¤Þ¤¹¡£ +uri +¤Ï Universal Resource Identifier (URI) ¤Ç¡¢ ¤è¤¯ÃΤé¤ì¤¿ URL ¤Î¥¹¡¼¥Ñ¡¼¥»¥Ã¥È¤Ç¤¹¡£ ¹Ô¤Î»Ä¤ê¤Ë # ¤òÉÕ¤±¤Æ¡¢¥³¥á¥ó¥È¤Ë¤Ç¤­¤Þ¤¹¡£ +.SH "SOURCES.LIST.D" +.PP +\fI/etc/apt/sources.list.d\fR +¥Ç¥£¥ì¥¯¥È¥ê¤Ë ¥Õ¥¡¥¤¥ë̾¤¬ +.list +¤Ç½ª¤ï¤ë¸ÄÊÌ¥Õ¥¡¥¤¥ë¤òÃÖ¤¤¤Æ¤ª¤¯¤È¡¢ sources.list ¥¨¥ó¥È¥ê¤ËÄɲäǤ­¤Þ¤¹¡£¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢ Ä̾ï¤Î +\fIsources.list\fR +¥Õ¥¡¥¤¥ë¤ÈƱ¤¸¤Ç¤¹¡£ +.SH "DEB ¥¿¥¤¥×¤È DEB\-SRC ¥¿¥¤¥×" +.PP +deb +¥¿¥¤¥×¤Ç¤Ïŵ·¿Åª¤Ê 2 Ãʳ¬¤Î Debian ¥¢¡¼¥«¥¤¥Ö (\fIdistribution/component\fR) ¤òµ­½Ò¤·¤Þ¤¹¡£ ¤è¤¯¤¢¤ë¥±¡¼¥¹¤Ç¤Ï¡¢distribution +¤ÏÄ̾ï +stable +unstable +testing +¤Î¤É¤ì¤«¡¢ component ¤Ï¡¢main +contrib +non\-free +non\-us +¤Î¤É¤ì¤«¤Ç¤¹¡£ +deb\-src +¥¿¥¤¥×¤Ç¤Ï¡¢ Debian ¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î¥½¡¼¥¹¥³¡¼¥É¤ò¡¢ +deb +¥¿¥¤¥×¤ÈƱ¤¸·Á¼°¤Çµ­½Ò¤·¤Þ¤¹¡£ +deb\-src +¹Ô¤Ï¡¢ ¥½¡¼¥¹¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò¼èÆÀ¤¹¤ë¤Î¤ËɬÍפǤ¹¡£ +.PP +deb +¥¿¥¤¥×¤È +deb\-src +¥¿¥¤¥×¤Ç»ÈÍѤ¹¤ë +\fIsources.list\fR +¥¨¥ó¥È¥ê¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢°Ê²¼¤Ë¤Ê¤ê¤Þ¤¹¡£ +.sp +.RS 3n +.nf +deb uri distribution [component1] [component2] [...] +.fi +.RE +.sp +.PP +deb +¥¿¥¤¥×¤Î URI ¤Ï¡¢ APT ¤¬¾ðÊó¤ò¸«¤Ä¤±¤é¤ì¤ë¤è¤¦¤Ë¡¢ Debian ¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î´ðÄì¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ +distribution +¤Ë¤ÏÀµ³Î¤Ê¥Ñ¥¹¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£ ¤½¤Î¾ì¹ç component ¤ò¾Êά¤·¡¢distribution +¤Ï¥¹¥é¥Ã¥·¥å (/) ¤Ç½ª¤ï¤é¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£ ¤³¤ì¤Ï URL ¤Ç»ØÄꤵ¤ì¤¿¥¢¡¼¥«¥¤¥Ö¤Î¡¢ ÆÃÄê¤Î¥µ¥Ö¥»¥¯¥·¥ç¥ó¤Î¤ß¤Ë´Ø¿´¤¬¤¢¤ë¤È¤­¤ËÌò¤ËΩ¤Á¤Þ¤¹¡£ +distribution +¤ËÀµ³Î¤Ê¥Ñ¥¹¤ò»ØÄꤷ¤Ê¤¤¤Î¤Ê¤é¡¢ ¾¯¤Ê¤¯¤È¤â¤Ò¤È¤Ä¤Ï +component +¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ +.PP +distribution +¤Ï¡¢ +$(ARCH) +ÊÑ¿ô¤ò´Þ¤à¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£ +$(ARCH) +ÊÑ¿ô¤Ï¡¢¥·¥¹¥Æ¥à¤Ç»ÈÍѤ·¤Æ¤¤¤ë Debian ¥¢¡¼¥­¥Æ¥¯¥Á¥ã (i386, m68k, powerpc, ...) ¤ËŸ³«¤µ¤ì¤Þ¤¹¡£ ¤³¤ì¤Ë¤è¤ê¡¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë°Í¸¤·¤Ê¤¤ +\fIsources.list\fR +¥Õ¥¡¥¤¥ë¤ò»ÈÍѤǤ­¤Þ¤¹¡£ °ìÈÌŪ¤Ë¡¢¤³¤ì¤ÏÀµ¤·¤¤¥Ñ¥¹¤ò»ØÄꤹ¤ë¤È¤­¤Ëµ¤¤Ë¤¹¤ë¤À¤±¤Ç¤¹¡£ ¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢APT +¤Ï¸½ºß¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç URI ¤ò¼«Æ°Åª¤ËÀ¸À®¤·¤Þ¤¹¡£ +.PP +Í­¸ú¤ÊÁ´ distribution, component ¤Î¾ì½ê¤«¤é¡¢ °ìÉô¤¬É¬Íפʾì¹ç¡¢1 ¹Ô¤Ë¤Ä¤­ 1 distribution ¤·¤«»ØÄê¤Ç¤­¤Ê¤¤¤¿¤á¡¢ Ʊ¤¸ URI ¤Î¹Ô¤òÊ£¿ôµ­½Ò¤¹¤ë¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£ APT ¤ÏÆâÉô¤Ç URI ¥ê¥¹¥È¤òÀ¸À®¤·¤Æ¤«¤é¡¢Ê¤ÙÂؤ¨¤Þ¤¹¡£ ¤½¤·¤Æ¡¢Æ±¤¸¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥Û¥¹¥È¤ËÂФ·¤Æ¤ÏÊ£¿ô¤Î»²¾È¤ò¤Þ¤È¤á¤Þ¤¹¡£ Î㤨¤Ð FTP Àܳ¸å¡¢ÀÚÃǤ·¤Æ¤«¤é¤Þ¤¿Æ±¤¸¥Û¥¹¥È¤ËºÆÀܳ¤¹¤ë¤È¤¤¤Ã¤¿¡¢ ¸úΨ¤Î°­¤¤¤³¤È¤ò¤»¤º¤Ë¡¢1 Àܳ¤Ë¤Þ¤È¤á¤Þ¤¹¡£ ¤³¤Îµ¡Ç½¤Ï¡¢Æ±»þÀܳƿ̾¥æ¡¼¥¶¿ô¤òÀ©¸Â¤·¤Æ¤¤¤ë¡¢ º®¤ó¤Ç¤¤¤ë FTP ¥µ¥¤¥È¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤Î¤ËÊØÍø¤Ç¤¹¡£ APT ¤Ï¡¢ÂÓ°è¤Î¶¹¤¤¥µ¥¤¥È¤ò¸úΨ¤è¤¯°·¤¦¤Î¤Ë¡¢ °Û¤Ê¤ë¥Û¥¹¥È¤Ø¤Ï¡¢Àܳ¤òʹԤ·¤Æ¹Ô¤¦¤è¤¦¤Ë¤â¤·¤Æ¤¤¤Þ¤¹¡£ +.PP +ºÇÍ¥À褹¤ë¼èÆÀ¸µ¤òºÇ½é¤Ëµ­½Ò¤¹¤ë¤È¤¤¤¦¤è¤¦¤Ë¡¢ Í¥Àè½ç¤Ë¼èÆÀ¸µ¤òµ­½Ò¤¹¤ë¤Î¤Ï½ÅÍפǤ¹¡£ °ìÈÌŪ¤Ë¤Ï¡¢¥¹¥Ô¡¼¥É¤Î®¤¤½ç¤Ëʤ٤뤳¤È¤Ë¤Ê¤ë (Î㤨¤Ð¡¢CD\-ROM ¤Ë³¤¤¤Æ¥í¡¼¥«¥ë¥Í¥Ã¥È¥ï¡¼¥¯¤Î¥Û¥¹¥È¡¢ ¤µ¤é¤Ë³¤¤¤ÆÈàÊý¤Î¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥Û¥¹¥È) ¤Ç¤·¤ç¤¦¡£ +.PP +Îã: +.sp +.RS 3n +.nf +deb http://http.us.debian.org/debian stable main contrib non\-free +deb http://http.us.debian.org/debian dists/stable\-updates/ + +.fi +.RE +.SH "URI ¤Î»ÅÍÍ" +.PP +¸½ºßǧ¼±¤¹¤ë URI Âбþ¤Ï¡¢cdrom, file, http, ftp ¤Ç¤¹¡£ +.PP +file +.RS 3n +file ¥¹¥­¡¼¥à¤Ï¡¢¥·¥¹¥Æ¥àÆâ¤ÎǤ°Õ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¡¢ ¥¢¡¼¥«¥¤¥Ö¤È¤·¤Æ°·¤¨¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£ ¤³¤ì¤Ï NFS ¥Þ¥¦¥ó¥È¤ä¥í¡¼¥«¥ë¥ß¥é¡¼¤ÇÊØÍø¤Ç¤¹¡£ +.RE +.PP +cdrom +.RS 3n +cdrom ¥¹¥­¡¼¥à¤Ï¡¢APT ¤¬¥í¡¼¥«¥ë CD\-ROM ¥É¥é¥¤¥Ö¤ò¡¢ ¥á¥Ç¥£¥¢¸ò´¹¤·¤Ê¤¬¤é»È¤¨¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£ ¼èÆÀ¸µ¥ê¥¹¥È¤Ë cdrom ¥¨¥ó¥È¥ê¤òÄɲ乤ë¤Ë¤Ï¡¢ +\fBapt\-cdrom\fR(8) +¥×¥í¥°¥é¥à¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +http +.RS 3n +http ¥¹¥­¡¼¥à¤Ï¥¢¡¼¥«¥¤¥Ö¤È¤·¤Æ¡¢HTTP ¥µ¡¼¥Ð¤ò»ØÄꤷ¤Þ¤¹¡£ ´Ä¶­ÊÑ¿ô +\fBhttp_proxy\fR +¤¬¡¢ http://server:port/ ¤È¸À¤Ã¤¿·Á¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢ +\fBhttp_proxy\fR +¤Ç»ØÄꤷ¤¿ ¥×¥í¥­¥·¥µ¡¼¥Ð¤ò»ÈÍѤ·¤Þ¤¹¡£ ¥æ¡¼¥¶Ç§¾Ú¤¬É¬Í×¤Ê HTTP/1.1 ¥×¥í¥­¥·¤Î¾ì¹ç¡¢ http://user:pass@server:port/ ¤È¸À¤¦·Á¤Ç»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ ¤³¤Îǧ¾ÚÊýË¡¤Ï°ÂÁ´¤Ç¤Ï¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +ftp +.RS 3n +ftp ¥¹¥­¡¼¥à¤Ï¡¢¥¢¡¼¥«¥¤¥Ö¤Ë FTP ¥µ¡¼¥Ð¤ò»ØÄꤷ¤Þ¤¹¡£ APT ¤Î FTP ¤Î¿¶¤ëÉñ¤¤¤Ï¡¢¹âÅÙ¤ËÀßÄê¤Ç¤­¤Þ¤¹¡£ ¾ÜºÙ¤Ï¡¢\fBapt.conf\fR(5) +¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ ftp ¥×¥í¥­¥·¤Ï¡¢ +\fBftp_proxy\fR +´Ä¶­ÊÑ¿ô¤Ç»ØÄꤹ¤ë¤³¤È¤Ë¤´Ãí°Õ¤¯¤À¤µ¤¤¡£ ¤³¤ÎÊýË¡ÍѤˡ¢¤µ¤é¤Ë¤³¤ÎÊýË¡¤Ç¤·¤«»ÈÍѤ·¤Ê¤¤¤Î¤Ë¡¢ http ¥×¥í¥­¥·¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹ (http ¥×¥í¥­¥·¥µ¡¼¥Ð¤ÏÂçÄñ ftp url¤âÍý²ò¤Ç¤­¤Þ¤¹)¡£ ÀßÄê¥Õ¥¡¥¤¥ë¤Ç http ¤ò»ÈÍѤ¹¤ëºÝ¤Ë¡¢ ftp ¥×¥í¥­¥·¤ò»ÈÍѤ¹¤ë¤è¤¦ÀßÄꤷ¤Æ¤¢¤Ã¤Æ¤â̵»ë¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +copy +.RS 3n +copy ¥¹¥­¡¼¥à¤Ï¡¢file ¥¹¥­¡¼¥à¤ÈƱÍͤǤ¹¤¬¡¢¥Ñ¥Ã¥±¡¼¥¸¤ò¤½¤Î¾ì¤Ç»ÈÍѤ»¤º¡¢ ¥­¥ã¥Ã¥·¥å¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥³¥Ô¡¼¤¹¤ë¤È¤³¤í¤¬°ã¤¤¤Þ¤¹¡£ zip ¥Ç¥£¥¹¥¯¤ò»ÈÍѤ·¤Æ¤¤¤Æ¡¢APT ¤Ç¥³¥Ô¡¼¤ò¹Ô¤¦¾ì¹ç¤ËÊØÍø¤Ç¤¹¡£ +.RE +.PP +rsh, ssh +.RS 3n +rsh/ssh ¥á¥½¥Ã¥É¤Ï¡¢Í¿¤¨¤é¤ì¤¿¥æ¡¼¥¶¤Ç¥ê¥â¡¼¥È¥Û¥¹¥È¤ËÀܳ¤·¡¢ ¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤Î¤Ë rsh/ssh ¤ò»ÈÍѤ·¤Þ¤¹¡£ ¤¢¤é¤«¤¸¤á RSA ¥­¡¼¤ä rhosts ¤ÎÇÛÃÖ¤¬É¬ÍפǤ¹¤¬¡¢ ¥Ñ¥¹¥ï¡¼¥É¤Ê¤·Ç§¾Ú¤¬²Äǽ¤Ç¤¹¡£ ¥ê¥â¡¼¥È¥Û¥¹¥È¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î¥¢¥¯¥»¥¹¤ÎºÝ¡¢ ¥Õ¥¡¥¤¥ëžÁ÷¤Ëɸ½à¤Î +\fBfind\fR +¥³¥Þ¥ó¥É¤ä +\fBdd\fR +¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£ +.RE +.SH "¥µ¥ó¥×¥ë" +.PP +/home/jason/debian ¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ë stable/main, stable/contrib, stable/non\-free ÍÑ¤Î¥í¡¼¥«¥ë (¤Þ¤¿¤Ï NFS) ¥¢¡¼¥«¥¤¥Ö¤ò»ÈÍѤ·¤Þ¤¹¡£ +.sp +.RS 3n +.nf +deb file:/home/jason/debian stable main contrib non\-free +.fi +.RE +.sp +.PP +¾åµ­Æ±ÍͤǤ¹¤¬¡¢ÉÔ°ÂÄêÈǤò»ÈÍѤ·¤Þ¤¹¡£ +.sp +.RS 3n +.nf +deb file:/home/jason/debian unstable main contrib non\-free +.fi +.RE +.sp +.PP +¾åµ­¤Î¥½¡¼¥¹¹Ô +.sp +.RS 3n +.nf +deb\-src file:/home/jason/debian unstable main contrib non\-free +.fi +.RE +.sp +.PP +archive.debian.org ¤Î¥¢¡¼¥«¥¤¥Ö¤Ë HTTP ¥¢¥¯¥»¥¹¤·¡¢ hamm/main ¤Î¤ß¤ò»ÈÍѤ·¤Þ¤¹¡£ +.sp +.RS 3n +.nf +deb http://archive.debian.org/debian\-archive hamm main +.fi +.RE +.sp +.PP +ftp.debian.org ¤Î¥¢¡¼¥«¥¤¥Ö¤Ë FTP ¥¢¥¯¥»¥¹¤·¡¢ debian ¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Î stable/contrib ¤Î¤ß¤ò»ÈÍѤ·¤Þ¤¹¡£ +.sp +.RS 3n +.nf +deb ftp://ftp.debian.org/debian stable contrib +.fi +.RE +.sp +.PP +ftp.debian.org ¤Î¥¢¡¼¥«¥¤¥Ö¤Ë FTP ¥¢¥¯¥»¥¹¤·¡¢ debian ¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Î unstable/contrib ¤ò»ÈÍѤ·¤Þ¤¹¡£ +\fIsources.list\fR +¤Ë¾åµ­¥µ¥ó¥×¥ë¤È°ì½ï¤Ë»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ ξÊý¤Î¥ê¥½¡¼¥¹¹Ô¤ËÂбþ¤¹¤ë FTP ¥»¥Ã¥·¥ç¥ó¤Ï¤Ò¤È¤Ä¤À¤±¤Ë¤Ê¤ê¤Þ¤¹¡£ +.sp +.RS 3n +.nf +deb ftp://ftp.debian.org/debian unstable contrib +.fi +.RE +.sp +.PP +nonus.debian.org ¤Î¥¢¡¼¥«¥¤¥Ö¤Ë HTTP ¥¢¥¯¥»¥¹¤·¡¢ debian\-non\-US ¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤ò»ÈÍѤ·¤Þ¤¹¡£ +.sp +.RS 3n +.nf +deb http://nonus.debian.org/debian\-non\-US stable/non\-US main contrib non\-free +.fi +.RE +.sp +.PP +nonus.debian.org ¤Î¥¢¡¼¥«¥¤¥Ö¤Ë HTTP ¥¢¥¯¥»¥¹¤·¡¢ debian\-non\-US ¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤ò»ÈÍѤ·¤Þ¤¹¡£ ¤Þ¤¿¡¢i386 ¥Þ¥·¥ó¤Ç¤Ï +\fIunstable/binary\-i386\fR +°Ê²¼¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¡¢ m68k ¥Þ¥·¥ó¤Ç¤Ï +\fIunstable/binary\-m68k\fR +°Ê²¼¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¡¢ ¤½¤Î¾¥µ¥Ý¡¼¥È¤¹¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤´¤È¤Î¥Õ¥¡¥¤¥ë¤Î¤ß»ÈÍѤ·¤Þ¤¹¡£ [¤³¤Î¥µ¥ó¥×¥ë¤ÏÊÑ¿ôŸ³«¤Î»ÈÍÑË¡¤ÎÀâÌÀ¤Ç¤·¤«¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ non\-us ¤Ï¤³¤Î¤è¤¦¤Ê¹½Â¤¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤»¤ó] +.sp +.RS 3n +.nf +deb http://ftp.de.debian.org/debian\-non\-US unstable/binary\-$(ARCH)/ +.fi +.RE +.sp +.SH "´ØÏ¢¹àÌÜ" +.PP +\fBapt\-cache\fR(8) +\fBapt.conf\fR(5) +.SH "¥Ð¥°" +.PP +[1]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/sources.list.ja.5 b/doc/ja/sources.list.ja.5 new file mode 100644 index 0000000..cb41f93 --- /dev/null +++ b/doc/ja/sources.list.ja.5 @@ -0,0 +1,259 @@ +.\" Title: sources.list +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "SOURCES.LIST" "5" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +sources.list \- APT Íѥѥ屡¼¥¸¥ê¥½¡¼¥¹¥ê¥¹¥È +.SH "ÀâÌÀ" +.PP +¤³¤Î¥Ñ¥Ã¥±¡¼¥¸¥ê¥½¡¼¥¹¥ê¥¹¥È¤Ï¡¢ ¥·¥¹¥Æ¥à¤Ç»ÈÍѤ¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤ÎÊݴɾì½ê¤òÆÃÄꤹ¤ë¤Î¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£ º£²ó¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë¤Ï¡¢ Debian GNU/Linux ¥·¥¹¥Æ¥à¤Ç»ÈÍѤ¹¤ë¥Ñ¥Ã¥±¡¼¥¸¥·¥¹¥Æ¥à¤Ë¤Ä¤¤¤Æ¤Î¤ßµ­½Ò¤·¤Þ¤¹¡£ ¤³¤ÎÀ©¸æ¥Õ¥¡¥¤¥ë¤Ï¡¢\fI/etc/apt/sources.list\fR +¤Ë¤¢¤ê¤Þ¤¹¡£ +.PP +¥½¡¼¥¹¥ê¥¹¥È¤ÏÊ£¿ô¤ÎÍ­¸ú¤Ê¼èÆÀ¸µ¤È¡¢ ÍÍ¡¹¤Ê¼èÆÀ¥á¥Ç¥£¥¢¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë¤Ë¤Ï 1 ¹Ô¤´¤È¼èÆÀ¸µ¤òÎóµó¤·¡¢¾å¤ÎÊý¤Ë¤¢¤ë¤â¤Î¤«¤é»ÈÍѤ·¤Þ¤¹¡£ ¹Ô¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢¥¿¥¤¥× uri °ú¿ô +¤È¤Ê¤ê¤Þ¤¹¡£ ÀèƬ¤Î +¥¿¥¤¥× +¤Ç¡¢ +°ú¿ô +¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ò·èÄꤷ¤Þ¤¹¡£ +uri +¤Ï Universal Resource Identifier (URI) ¤Ç¡¢ ¤è¤¯ÃΤé¤ì¤¿ URL ¤Î¥¹¡¼¥Ñ¡¼¥»¥Ã¥È¤Ç¤¹¡£ ¹Ô¤Î»Ä¤ê¤Ë # ¤òÉÕ¤±¤Æ¡¢¥³¥á¥ó¥È¤Ë¤Ç¤­¤Þ¤¹¡£ +.SH "SOURCES.LIST.D" +.PP +\fI/etc/apt/sources.list.d\fR +¥Ç¥£¥ì¥¯¥È¥ê¤Ë ¥Õ¥¡¥¤¥ë̾¤¬ +.list +¤Ç½ª¤ï¤ë¸ÄÊÌ¥Õ¥¡¥¤¥ë¤òÃÖ¤¤¤Æ¤ª¤¯¤È¡¢ sources.list ¥¨¥ó¥È¥ê¤ËÄɲäǤ­¤Þ¤¹¡£¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢ Ä̾ï¤Î +\fIsources.list\fR +¥Õ¥¡¥¤¥ë¤ÈƱ¤¸¤Ç¤¹¡£ +.SH "DEB ¥¿¥¤¥×¤È DEB\-SRC ¥¿¥¤¥×" +.PP +deb +¥¿¥¤¥×¤Ç¤Ïŵ·¿Åª¤Ê 2 Ãʳ¬¤Î Debian ¥¢¡¼¥«¥¤¥Ö (\fIdistribution/component\fR) ¤òµ­½Ò¤·¤Þ¤¹¡£ ¤è¤¯¤¢¤ë¥±¡¼¥¹¤Ç¤Ï¡¢distribution +¤ÏÄ̾ï +stable +unstable +testing +¤Î¤É¤ì¤«¡¢ component ¤Ï¡¢main +contrib +non\-free +non\-us +¤Î¤É¤ì¤«¤Ç¤¹¡£ +deb\-src +¥¿¥¤¥×¤Ç¤Ï¡¢ Debian ¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î¥½¡¼¥¹¥³¡¼¥É¤ò¡¢ +deb +¥¿¥¤¥×¤ÈƱ¤¸·Á¼°¤Çµ­½Ò¤·¤Þ¤¹¡£ +deb\-src +¹Ô¤Ï¡¢ ¥½¡¼¥¹¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò¼èÆÀ¤¹¤ë¤Î¤ËɬÍפǤ¹¡£ +.PP +deb +¥¿¥¤¥×¤È +deb\-src +¥¿¥¤¥×¤Ç»ÈÍѤ¹¤ë +\fIsources.list\fR +¥¨¥ó¥È¥ê¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢°Ê²¼¤Ë¤Ê¤ê¤Þ¤¹¡£ +.sp +.RS 3n +.nf +deb uri distribution [component1] [component2] [...] +.fi +.RE +.sp +.PP +deb +¥¿¥¤¥×¤Î URI ¤Ï¡¢ APT ¤¬¾ðÊó¤ò¸«¤Ä¤±¤é¤ì¤ë¤è¤¦¤Ë¡¢ Debian ¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î´ðÄì¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ +distribution +¤Ë¤ÏÀµ³Î¤Ê¥Ñ¥¹¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£ ¤½¤Î¾ì¹ç component ¤ò¾Êά¤·¡¢distribution +¤Ï¥¹¥é¥Ã¥·¥å (/) ¤Ç½ª¤ï¤é¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£ ¤³¤ì¤Ï URL ¤Ç»ØÄꤵ¤ì¤¿¥¢¡¼¥«¥¤¥Ö¤Î¡¢ ÆÃÄê¤Î¥µ¥Ö¥»¥¯¥·¥ç¥ó¤Î¤ß¤Ë´Ø¿´¤¬¤¢¤ë¤È¤­¤ËÌò¤ËΩ¤Á¤Þ¤¹¡£ +distribution +¤ËÀµ³Î¤Ê¥Ñ¥¹¤ò»ØÄꤷ¤Ê¤¤¤Î¤Ê¤é¡¢ ¾¯¤Ê¤¯¤È¤â¤Ò¤È¤Ä¤Ï +component +¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ +.PP +distribution +¤Ï¡¢ +$(ARCH) +ÊÑ¿ô¤ò´Þ¤à¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£ +$(ARCH) +ÊÑ¿ô¤Ï¡¢¥·¥¹¥Æ¥à¤Ç»ÈÍѤ·¤Æ¤¤¤ë Debian ¥¢¡¼¥­¥Æ¥¯¥Á¥ã (i386, m68k, powerpc, ...) ¤ËŸ³«¤µ¤ì¤Þ¤¹¡£ ¤³¤ì¤Ë¤è¤ê¡¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë°Í¸¤·¤Ê¤¤ +\fIsources.list\fR +¥Õ¥¡¥¤¥ë¤ò»ÈÍѤǤ­¤Þ¤¹¡£ °ìÈÌŪ¤Ë¡¢¤³¤ì¤ÏÀµ¤·¤¤¥Ñ¥¹¤ò»ØÄꤹ¤ë¤È¤­¤Ëµ¤¤Ë¤¹¤ë¤À¤±¤Ç¤¹¡£ ¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢APT +¤Ï¸½ºß¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç URI ¤ò¼«Æ°Åª¤ËÀ¸À®¤·¤Þ¤¹¡£ +.PP +Í­¸ú¤ÊÁ´ distribution, component ¤Î¾ì½ê¤«¤é¡¢ °ìÉô¤¬É¬Íפʾì¹ç¡¢1 ¹Ô¤Ë¤Ä¤­ 1 distribution ¤·¤«»ØÄê¤Ç¤­¤Ê¤¤¤¿¤á¡¢ Ʊ¤¸ URI ¤Î¹Ô¤òÊ£¿ôµ­½Ò¤¹¤ë¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£ APT ¤ÏÆâÉô¤Ç URI ¥ê¥¹¥È¤òÀ¸À®¤·¤Æ¤«¤é¡¢Ê¤ÙÂؤ¨¤Þ¤¹¡£ ¤½¤·¤Æ¡¢Æ±¤¸¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥Û¥¹¥È¤ËÂФ·¤Æ¤ÏÊ£¿ô¤Î»²¾È¤ò¤Þ¤È¤á¤Þ¤¹¡£ Î㤨¤Ð FTP Àܳ¸å¡¢ÀÚÃǤ·¤Æ¤«¤é¤Þ¤¿Æ±¤¸¥Û¥¹¥È¤ËºÆÀܳ¤¹¤ë¤È¤¤¤Ã¤¿¡¢ ¸úΨ¤Î°­¤¤¤³¤È¤ò¤»¤º¤Ë¡¢1 Àܳ¤Ë¤Þ¤È¤á¤Þ¤¹¡£ ¤³¤Îµ¡Ç½¤Ï¡¢Æ±»þÀܳƿ̾¥æ¡¼¥¶¿ô¤òÀ©¸Â¤·¤Æ¤¤¤ë¡¢ º®¤ó¤Ç¤¤¤ë FTP ¥µ¥¤¥È¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤Î¤ËÊØÍø¤Ç¤¹¡£ APT ¤Ï¡¢ÂÓ°è¤Î¶¹¤¤¥µ¥¤¥È¤ò¸úΨ¤è¤¯°·¤¦¤Î¤Ë¡¢ °Û¤Ê¤ë¥Û¥¹¥È¤Ø¤Ï¡¢Àܳ¤òʹԤ·¤Æ¹Ô¤¦¤è¤¦¤Ë¤â¤·¤Æ¤¤¤Þ¤¹¡£ +.PP +ºÇÍ¥À褹¤ë¼èÆÀ¸µ¤òºÇ½é¤Ëµ­½Ò¤¹¤ë¤È¤¤¤¦¤è¤¦¤Ë¡¢ Í¥Àè½ç¤Ë¼èÆÀ¸µ¤òµ­½Ò¤¹¤ë¤Î¤Ï½ÅÍפǤ¹¡£ °ìÈÌŪ¤Ë¤Ï¡¢¥¹¥Ô¡¼¥É¤Î®¤¤½ç¤Ëʤ٤뤳¤È¤Ë¤Ê¤ë (Î㤨¤Ð¡¢CD\-ROM ¤Ë³¤¤¤Æ¥í¡¼¥«¥ë¥Í¥Ã¥È¥ï¡¼¥¯¤Î¥Û¥¹¥È¡¢ ¤µ¤é¤Ë³¤¤¤ÆÈàÊý¤Î¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥Û¥¹¥È) ¤Ç¤·¤ç¤¦¡£ +.PP +Îã: +.sp +.RS 3n +.nf +deb http://http.us.debian.org/debian stable main contrib non\-free +deb http://http.us.debian.org/debian dists/stable\-updates/ + +.fi +.RE +.SH "URI ¤Î»ÅÍÍ" +.PP +¸½ºßǧ¼±¤¹¤ë URI Âбþ¤Ï¡¢cdrom, file, http, ftp ¤Ç¤¹¡£ +.PP +file +.RS 3n +file ¥¹¥­¡¼¥à¤Ï¡¢¥·¥¹¥Æ¥àÆâ¤ÎǤ°Õ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¡¢ ¥¢¡¼¥«¥¤¥Ö¤È¤·¤Æ°·¤¨¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£ ¤³¤ì¤Ï NFS ¥Þ¥¦¥ó¥È¤ä¥í¡¼¥«¥ë¥ß¥é¡¼¤ÇÊØÍø¤Ç¤¹¡£ +.RE +.PP +cdrom +.RS 3n +cdrom ¥¹¥­¡¼¥à¤Ï¡¢APT ¤¬¥í¡¼¥«¥ë CD\-ROM ¥É¥é¥¤¥Ö¤ò¡¢ ¥á¥Ç¥£¥¢¸ò´¹¤·¤Ê¤¬¤é»È¤¨¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£ ¼èÆÀ¸µ¥ê¥¹¥È¤Ë cdrom ¥¨¥ó¥È¥ê¤òÄɲ乤ë¤Ë¤Ï¡¢ +\fBapt\-cdrom\fR(8) +¥×¥í¥°¥é¥à¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +http +.RS 3n +http ¥¹¥­¡¼¥à¤Ï¥¢¡¼¥«¥¤¥Ö¤È¤·¤Æ¡¢HTTP ¥µ¡¼¥Ð¤ò»ØÄꤷ¤Þ¤¹¡£ ´Ä¶­ÊÑ¿ô +\fBhttp_proxy\fR +¤¬¡¢ http://server:port/ ¤È¸À¤Ã¤¿·Á¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢ +\fBhttp_proxy\fR +¤Ç»ØÄꤷ¤¿ ¥×¥í¥­¥·¥µ¡¼¥Ð¤ò»ÈÍѤ·¤Þ¤¹¡£ ¥æ¡¼¥¶Ç§¾Ú¤¬É¬Í×¤Ê HTTP/1.1 ¥×¥í¥­¥·¤Î¾ì¹ç¡¢ http://user:pass@server:port/ ¤È¸À¤¦·Á¤Ç»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ ¤³¤Îǧ¾ÚÊýË¡¤Ï°ÂÁ´¤Ç¤Ï¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +ftp +.RS 3n +ftp ¥¹¥­¡¼¥à¤Ï¡¢¥¢¡¼¥«¥¤¥Ö¤Ë FTP ¥µ¡¼¥Ð¤ò»ØÄꤷ¤Þ¤¹¡£ APT ¤Î FTP ¤Î¿¶¤ëÉñ¤¤¤Ï¡¢¹âÅÙ¤ËÀßÄê¤Ç¤­¤Þ¤¹¡£ ¾ÜºÙ¤Ï¡¢\fBapt.conf\fR(5) +¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ ftp ¥×¥í¥­¥·¤Ï¡¢ +\fBftp_proxy\fR +´Ä¶­ÊÑ¿ô¤Ç»ØÄꤹ¤ë¤³¤È¤Ë¤´Ãí°Õ¤¯¤À¤µ¤¤¡£ ¤³¤ÎÊýË¡ÍѤˡ¢¤µ¤é¤Ë¤³¤ÎÊýË¡¤Ç¤·¤«»ÈÍѤ·¤Ê¤¤¤Î¤Ë¡¢ http ¥×¥í¥­¥·¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹ (http ¥×¥í¥­¥·¥µ¡¼¥Ð¤ÏÂçÄñ ftp url¤âÍý²ò¤Ç¤­¤Þ¤¹)¡£ ÀßÄê¥Õ¥¡¥¤¥ë¤Ç http ¤ò»ÈÍѤ¹¤ëºÝ¤Ë¡¢ ftp ¥×¥í¥­¥·¤ò»ÈÍѤ¹¤ë¤è¤¦ÀßÄꤷ¤Æ¤¢¤Ã¤Æ¤â̵»ë¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +copy +.RS 3n +copy ¥¹¥­¡¼¥à¤Ï¡¢file ¥¹¥­¡¼¥à¤ÈƱÍͤǤ¹¤¬¡¢¥Ñ¥Ã¥±¡¼¥¸¤ò¤½¤Î¾ì¤Ç»ÈÍѤ»¤º¡¢ ¥­¥ã¥Ã¥·¥å¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥³¥Ô¡¼¤¹¤ë¤È¤³¤í¤¬°ã¤¤¤Þ¤¹¡£ zip ¥Ç¥£¥¹¥¯¤ò»ÈÍѤ·¤Æ¤¤¤Æ¡¢APT ¤Ç¥³¥Ô¡¼¤ò¹Ô¤¦¾ì¹ç¤ËÊØÍø¤Ç¤¹¡£ +.RE +.PP +rsh, ssh +.RS 3n +rsh/ssh ¥á¥½¥Ã¥É¤Ï¡¢Í¿¤¨¤é¤ì¤¿¥æ¡¼¥¶¤Ç¥ê¥â¡¼¥È¥Û¥¹¥È¤ËÀܳ¤·¡¢ ¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤Î¤Ë rsh/ssh ¤ò»ÈÍѤ·¤Þ¤¹¡£ ¤¢¤é¤«¤¸¤á RSA ¥­¡¼¤ä rhosts ¤ÎÇÛÃÖ¤¬É¬ÍפǤ¹¤¬¡¢ ¥Ñ¥¹¥ï¡¼¥É¤Ê¤·Ç§¾Ú¤¬²Äǽ¤Ç¤¹¡£ ¥ê¥â¡¼¥È¥Û¥¹¥È¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î¥¢¥¯¥»¥¹¤ÎºÝ¡¢ ¥Õ¥¡¥¤¥ëžÁ÷¤Ëɸ½à¤Î +\fBfind\fR +¥³¥Þ¥ó¥É¤ä +\fBdd\fR +¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£ +.RE +.SH "¥µ¥ó¥×¥ë" +.PP +/home/jason/debian ¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ë stable/main, stable/contrib, stable/non\-free ÍÑ¤Î¥í¡¼¥«¥ë (¤Þ¤¿¤Ï NFS) ¥¢¡¼¥«¥¤¥Ö¤ò»ÈÍѤ·¤Þ¤¹¡£ +.sp +.RS 3n +.nf +deb file:/home/jason/debian stable main contrib non\-free +.fi +.RE +.sp +.PP +¾åµ­Æ±ÍͤǤ¹¤¬¡¢ÉÔ°ÂÄêÈǤò»ÈÍѤ·¤Þ¤¹¡£ +.sp +.RS 3n +.nf +deb file:/home/jason/debian unstable main contrib non\-free +.fi +.RE +.sp +.PP +¾åµ­¤Î¥½¡¼¥¹¹Ô +.sp +.RS 3n +.nf +deb\-src file:/home/jason/debian unstable main contrib non\-free +.fi +.RE +.sp +.PP +archive.debian.org ¤Î¥¢¡¼¥«¥¤¥Ö¤Ë HTTP ¥¢¥¯¥»¥¹¤·¡¢ hamm/main ¤Î¤ß¤ò»ÈÍѤ·¤Þ¤¹¡£ +.sp +.RS 3n +.nf +deb http://archive.debian.org/debian\-archive hamm main +.fi +.RE +.sp +.PP +ftp.debian.org ¤Î¥¢¡¼¥«¥¤¥Ö¤Ë FTP ¥¢¥¯¥»¥¹¤·¡¢ debian ¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Î stable/contrib ¤Î¤ß¤ò»ÈÍѤ·¤Þ¤¹¡£ +.sp +.RS 3n +.nf +deb ftp://ftp.debian.org/debian stable contrib +.fi +.RE +.sp +.PP +ftp.debian.org ¤Î¥¢¡¼¥«¥¤¥Ö¤Ë FTP ¥¢¥¯¥»¥¹¤·¡¢ debian ¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Î unstable/contrib ¤ò»ÈÍѤ·¤Þ¤¹¡£ +\fIsources.list\fR +¤Ë¾åµ­¥µ¥ó¥×¥ë¤È°ì½ï¤Ë»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ ξÊý¤Î¥ê¥½¡¼¥¹¹Ô¤ËÂбþ¤¹¤ë FTP ¥»¥Ã¥·¥ç¥ó¤Ï¤Ò¤È¤Ä¤À¤±¤Ë¤Ê¤ê¤Þ¤¹¡£ +.sp +.RS 3n +.nf +deb ftp://ftp.debian.org/debian unstable contrib +.fi +.RE +.sp +.PP +nonus.debian.org ¤Î¥¢¡¼¥«¥¤¥Ö¤Ë HTTP ¥¢¥¯¥»¥¹¤·¡¢ debian\-non\-US ¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤ò»ÈÍѤ·¤Þ¤¹¡£ +.sp +.RS 3n +.nf +deb http://nonus.debian.org/debian\-non\-US stable/non\-US main contrib non\-free +.fi +.RE +.sp +.PP +nonus.debian.org ¤Î¥¢¡¼¥«¥¤¥Ö¤Ë HTTP ¥¢¥¯¥»¥¹¤·¡¢ debian\-non\-US ¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤ò»ÈÍѤ·¤Þ¤¹¡£ ¤Þ¤¿¡¢i386 ¥Þ¥·¥ó¤Ç¤Ï +\fIunstable/binary\-i386\fR +°Ê²¼¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¡¢ m68k ¥Þ¥·¥ó¤Ç¤Ï +\fIunstable/binary\-m68k\fR +°Ê²¼¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¡¢ ¤½¤Î¾¥µ¥Ý¡¼¥È¤¹¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤´¤È¤Î¥Õ¥¡¥¤¥ë¤Î¤ß»ÈÍѤ·¤Þ¤¹¡£ [¤³¤Î¥µ¥ó¥×¥ë¤ÏÊÑ¿ôŸ³«¤Î»ÈÍÑË¡¤ÎÀâÌÀ¤Ç¤·¤«¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ non\-us ¤Ï¤³¤Î¤è¤¦¤Ê¹½Â¤¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤»¤ó] +.sp +.RS 3n +.nf +deb http://ftp.de.debian.org/debian\-non\-US unstable/binary\-$(ARCH)/ +.fi +.RE +.sp +.SH "´ØÏ¢¹àÌÜ" +.PP +\fBapt\-cache\fR(8) +\fBapt.conf\fR(5) +.SH "¥Ð¥°" +.PP +[1]\&\fIAPT ¥Ð¥°¥Ú¡¼¥¸\fR¤ò ¤´Í÷¤¯¤À¤µ¤¤¡£ APT ¤Î¥Ð¥°¤òÊó¹ð¤¹¤ë¾ì¹ç¤Ï¡¢ +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +¤ä +\fBreportbug\fR(1) +¥³¥Þ¥ó¥É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ +.SH "Ìõ¼Ô" +.PP +ÁÒß· ˾ + +(2003\-2006), Debian JP Documentation ML + +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT ¥Ð¥°¥Ú¡¼¥¸ +\%http://bugs.debian.org/src:apt diff --git a/doc/ja/sources.list.ja.5.xml b/doc/ja/sources.list.ja.5.xml new file mode 100644 index 0000000..8522a3b --- /dev/null +++ b/doc/ja/sources.list.ja.5.xml @@ -0,0 +1,427 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 February 2004 + + + + sources.list + 5 + + + + + sources.list + + APT 用パッケージリソースリスト + + + + 説明 + + このパッケージリソースリストは、 + システムで使用するパッケージの保管場所を特定するのに使用されます。 + 今回このマニュアルページには、 + Debian GNU/Linux システムで使用するパッケージシステムについてのみ記述します。 + この制御ファイルは、/etc/apt/sources.list にあります。 + + + ソースリストは複数の有効な取得元と、 + 様々な取得メディアをサポートしています。 + ファイルには 1 行ごと取得元を列挙し、上の方にあるものから使用します。 + 行のフォーマットは、タイプ uri 引数 となります。 + 先頭の タイプ で、 + 引数 のフォーマットを決定します。 + uri は Universal Resource Identifier (URI) で、 + よく知られた URL のスーパーセットです。 + 行の残りに # を付けて、コメントにできます。 + + + sources.list.d + + /etc/apt/sources.list.d ディレクトリに + ファイル名が .list で終わる個別ファイルを置いておくと、 + sources.list エントリに追加できます。フォーマットは、 + 通常の sources.list ファイルと同じです。 + + + + deb タイプと deb-src タイプ + + deb タイプでは典型的な 2 段階の Debian アーカイブ + (distribution/component) を記述します。 + よくあるケースでは、distribution は通常 + stable unstable + testing のどれか、 + component は、main contrib + non-free non-us のどれかです。 + deb-src タイプでは、 + Debian ディストリビューションのソースコードを、 + deb タイプと同じ形式で記述します。 + deb-src 行は、 + ソースインデックスを取得するのに必要です。 + + + deb タイプと deb-src + タイプで使用する sources.list + エントリのフォーマットは、以下になります。 + + deb uri distribution [component1] [component2] [...] + + + deb タイプの URI は、 + APT が情報を見つけられるように、 + Debian ディストリビューションの基底を指定しなければなりません。 + distribution には正確なパスを指定できます。 + その場合 component を省略し、distribution + はスラッシュ (/) で終わらなくてはなりません。 + これは URL で指定されたアーカイブの、 + 特定のサブセクションのみに関心があるときに役に立ちます。 + distribution に正確なパスを指定しないのなら、 + 少なくともひとつは component を指定しなければなりません。 + + + distribution は、 + $(ARCH) 変数を含む場合があります。 + $(ARCH) 変数は、システムで使用している + Debian アーキテクチャ (i386, m68k, powerpc, ...) に展開されます。 + これにより、アーキテクチャに依存しない sources.list + ファイルを使用できます。 + 一般的に、これは正しいパスを指定するときに気にするだけです。 + そうでない場合は、APT は現在のアーキテクチャで URI + を自動的に生成します。 + + + 有効な全 distribution, component の場所から、 + 一部が必要な場合、1 行につき 1 distribution しか指定できないため、 + 同じ URI の行を複数記述することになるでしょう。 + APT は内部で URI リストを生成してから、並べ替えます。 + そして、同じインターネットホストに対しては複数の参照をまとめます。 + 例えば FTP 接続後、切断してからまた同じホストに再接続するといった、 + 効率の悪いことをせずに、1 接続にまとめます。 + この機能は、同時接続匿名ユーザ数を制限している、 + 混んでいる FTP サイトにアクセスするのに便利です。 + APT は、帯域の狭いサイトを効率よく扱うのに、 + 異なるホストへは、接続を並行して行うようにもしています。 + + + 最優先する取得元を最初に記述するというように、 + 優先順に取得元を記述するのは重要です。 + 一般的には、スピードの速い順に並べることになる + (例えば、CD-ROM に続いてローカルネットワークのホスト、 + さらに続いて彼方のインターネットホスト) でしょう。 + + + 例: + +deb http://http.us.debian.org/debian stable main contrib non-free +deb http://http.us.debian.org/debian dists/stable-updates/ + + + + + + URI の仕様 + + + 現在認識する URI 対応は、cdrom, file, http, ftp です。 + + file + + + file スキームは、システム内の任意のディレクトリを、 + アーカイブとして扱えるようにします。 + これは NFS マウントやローカルミラーで便利です。 + + + cdrom + + + cdrom スキームは、APT がローカル CD-ROM ドライブを、 + メディア交換しながら使えるようにします。 + 取得元リストに cdrom エントリを追加するには、 + &apt-cdrom; プログラムを使用してください。 + + + http + + + http スキームはアーカイブとして、HTTP サーバを指定します。 + 環境変数 http_proxy が、 + http://server:port/ と言った形で指定されていれば、 + http_proxy で指定した プロキシサーバを使用します。 + ユーザ認証が必要な HTTP/1.1 プロキシの場合、 + http://user:pass@server:port/ と言う形で指定してください。 + この認証方法は安全ではないことに注意してください。 + + + ftp + + + ftp スキームは、アーカイブに FTP サーバを指定します。 + APT の FTP の振る舞いは、高度に設定できます。 + 詳細は、&apt-conf; のマニュアルページをご覧ください。 + ftp プロキシは、 + ftp_proxy 環境変数で指定することにご注意ください。 + この方法用に、さらにこの方法でしか使用しないのに、 + http プロキシを使用することができます + (http プロキシサーバは大抵 ftp urlも理解できます)。 + 設定ファイルで http を使用する際に、 + ftp プロキシを使用するよう設定してあっても無視されます。 + + + copy + + + copy スキームは、file スキームと同様ですが、パッケージをその場で使用せず、 + キャッシュディレクトリにコピーするところが違います。 + zip ディスクを使用していて、APT でコピーを行う場合に便利です。 + + + rshssh + + + rsh/ssh メソッドは、与えられたユーザでリモートホストに接続し、 + ファイルにアクセスするのに rsh/ssh を使用します。 + あらかじめ RSA キーや rhosts の配置が必要ですが、 + パスワードなし認証が可能です。 + リモートホストのファイルへのアクセスの際、 + ファイル転送に標準の find コマンドや + dd コマンドを使用します。 + + + + + + + サンプル + + /home/jason/debian に格納されている stable/main, stable/contrib, + stable/non-free 用のローカル (または NFS) アーカイブを使用します。 + deb file:/home/jason/debian stable main contrib non-free + + + 上記同様ですが、不安定版を使用します。 + deb file:/home/jason/debian unstable main contrib non-free + + + 上記のソース行 + deb-src file:/home/jason/debian unstable main contrib non-free + + + archive.debian.org のアーカイブに HTTP アクセスし、 + hamm/main のみを使用します。 + deb http://archive.debian.org/debian-archive hamm main + + + ftp.debian.org のアーカイブに FTP アクセスし、 + debian ディレクトリ以下の stable/contrib のみを使用します。 + deb ftp://ftp.debian.org/debian stable contrib + + + ftp.debian.org のアーカイブに FTP アクセスし、 + debian ディレクトリ以下の unstable/contrib を使用します。 + sources.list に上記サンプルと一緒に指定された場合、 + 両方のリソース行に対応する FTP セッションはひとつだけになります。 + deb ftp://ftp.debian.org/debian unstable contrib + + + nonus.debian.org のアーカイブに HTTP アクセスし、 + debian-non-US ディレクトリ以下を使用します。 + deb http://nonus.debian.org/debian-non-US stable/non-US main contrib non-free + + + nonus.debian.org のアーカイブに HTTP アクセスし、 + debian-non-US ディレクトリ以下を使用します。 + また、i386 マシンでは unstable/binary-i386 + 以下にあるファイル、 + m68k マシンでは unstable/binary-m68k + 以下にあるファイル、 + その他サポートするアーキテクチャごとのファイルのみ使用します。 + [このサンプルは変数展開の使用法の説明でしかないことに注意してください。 + non-us はこのような構造になっていません] + deb http://ftp.de.debian.org/debian-non-US unstable/binary-$(ARCH)/ + + + + + 関連項目 + &apt-cache; &apt-conf; + + + + &manbugs; + &translator; + + + diff --git a/doc/ja/style.ja.xsl b/doc/ja/style.ja.xsl new file mode 100644 index 0000000..c102f13 --- /dev/null +++ b/doc/ja/style.ja.xsl @@ -0,0 +1,9 @@ + + + + + + + diff --git a/doc/libapt-pkg2_to_3.txt b/doc/libapt-pkg2_to_3.txt new file mode 100644 index 0000000..c1f71f9 --- /dev/null +++ b/doc/libapt-pkg2_to_3.txt @@ -0,0 +1,89 @@ +libapt-pkg v2 to v3 incorperates several source-incompatible changes that +people need to be aware of.. Many of this changes are done so that most old +source will continue to function, but perhaps at reduced functionality. + +* pkgDepCache is no longer self initilizing, you have to call the Init + method seperately after constructing it. Users of pkgCacheFile do not + need to worry about this +* GetCandidateVer/etc is gone from the pkgCache. It exists only in the + DepCache and is just an inline around the new Policy class +* TargetVer/TargetDist have been eliminated. Nothing should have been using + these. +* There is a policy class. The v0 policy engine which has been used since + APT 0.0.0 is instantiated by the DepCache by default. However pkgCacheFile + constructs and initializes the new v4 engine. People accessing GetCandidate + version outside of a CacheFile/DepCache will need to instantiate and + initialize a policy engine on their own. +* All byte counters are now doubles to advoid 4G wraparound. The compiler + should generate warnings on any incorrect use of these. +* The PriorityType/CompType/DepType functions have been moved out of the + iterators and into generate static functions of pkgCache - inline stubs + are left in the iterators. +* The deb dependency element parser has been made into a static function + of the list parser and enhanced to optionally understand architecture + restrictions. +* TagSections no longer include the trailing \n. This means that the + Offset/Length of a package record in the version structure also does not + include the trailing \n. +* GenCaches::SelectFile accepts a site parameter now too. +* Global version compare functions are gone. If you + #define APT_COMPATABILITY 1 + They will come back as they were before. Code should be updated to + reference the compare functions to the VersioningSystem (VS) referenced + by the Cache or _system structures. +* Initialization is now two stage (define APT_COMPATABILITY..) The first + stage, pkgInitConfig is called before commandline parsing, and + pkgInitSystem is called after. This gives the user the oppertunity to + override default settings from the config files before startup has been + finalized. +* pkgSourceList has been gutted. All the junk that was in there before is + cleaned up and put in the pkgIndexFile class. There is very little API + corrispondence here.. +* pkgMakeStatusCacheMem is gone, pkgMakeStatusCache does the same thing if + you set the AllowMem flag. Also, you can get a copy of the map used to + store the cache to advoid having to remap it in the calling code. A bunch + of other cache related functions are gone, but nobody should have been using + them in the first place! +* Downloading the 'Package' and 'Source' index files is different, use + the GetIndexes call in SourceList. +* SourceRecords::Parser::Source is gone, replaced with Index which does + much the same thing. +* DynamicMap has changed slightly, nobody should care +* pkgMakeOnlyStatusCache exists, which creates a really small cache that + only contains the status file, and in memory. +* The pkgRecords stuff is changed to abstract through the index file list + (should be transparent largely) +* Locking is handled differently, there is no dpkg lock class, the _system + class provides Lock/UnLock methods +* pkgDepCache is not a subclass of pkgCache, it agregates it now. Some + compatibility functions are provided that make this transition fairly + easy. +* The following functions have had minor argument changes: + - pkgSimulate(pkgDepCache &Cache); + + pkgSimulate(pkgDepCache *Cache); + + - pkgProblemResolver(pkgDepCache &Cache); + + pkgProblemResolver(pkgDepCache *Cache); + + - pkgDepCache(MMap &Map,Policy *Plcy = 0); + + pkgDepCache(pkgCache *Cache,Policy *Plcy = 0); + + - pkgOrderList(pkgDepCache &Cache); + + pkgOrderList(pkgDepCache *Cache); + + - pkgPackageManager(pkgDepCache &Cache); + + pkgPackageManager(pkgDepCache *Cache); + + - pkgCache(MMap &Map,bool DoMap = true); + + pkgCache(MMap *Map,bool DoMap = true); + + - pkgCacheGenerator(DynamicMMap &Map,OpProgress &Progress); + + pkgCacheGenerator(DynamicMMap *Map,OpProgress *Progress); + + - pkgTagFile(FileFd &F,unsigned long Size = 32*1024); + + pkgTagFile(FileFd *F,unsigned long Size = 32*1024); + +* Configuration class is const-correct +* The legacy ability to create a PkgFileIterator that started at Begin + is gone, everyone should be using FileBegin(). +* A new dependency relation called obsoletes that is similar to conflicts. diff --git a/doc/makefile b/doc/makefile new file mode 100644 index 0000000..31ee061 --- /dev/null +++ b/doc/makefile @@ -0,0 +1,44 @@ +# -*- make -*- +BASE=.. +SUBDIR=doc +SUBDIRS= fr ja pl pt_BR es + +# Bring in the default rules +include ../buildlib/defaults.mak + +# Debian Doc SGML Documents +SOURCE = dpkg-tech.sgml design.sgml files.sgml guide.sgml guide.it.sgml \ + cache.sgml method.sgml offline.sgml +include $(DEBIANDOC_H) + +# XML man pages +SOURCE = apt-cache.8 apt-get.8 apt-cdrom.8 apt.conf.5 sources.list.5 \ + apt-config.8 apt_preferences.5 \ + apt-sortpkgs.1 apt-ftparchive.1 apt-extracttemplates.1 \ + apt-key.8 apt-secure.8 +INCLUDES = apt.ent +include $(XML_MANPAGE_H) + +# Examples +SOURCE = examples/apt.conf examples/sources.list examples/configure-index +TO = $(DOC) +TARGET = binary +include $(COPY_H) + +#.PHONY: headers library clean veryclean all binary program doc doc.pt_BR doc.fr +doc: doc.fr doc.ja doc.pl doc.pt_BR doc.es + +doc.fr: %.fr: + $(MAKE) -C fr $* + +doc.pt_BR: %.pt_BR: + $(MAKE) -C pt_BR $* + +doc.es: %.es: + $(MAKE) -C es $* + +doc.ja: %.ja: + $(MAKE) -C ja $* + +doc.pl: %.pl: + $(MAKE) -C pl $* diff --git a/doc/method.sgml b/doc/method.sgml new file mode 100644 index 0000000..d71ef02 --- /dev/null +++ b/doc/method.sgml @@ -0,0 +1,354 @@ + + + +APT Method Interface + +Jason Gunthorpe jgg@debian.org +$Id: method.sgml,v 1.10 2003/02/12 15:05:46 doogie Exp $ + + +This document describes the interface that APT uses to the archive +access methods. + + + +Copyright © Jason Gunthorpe, 1998. +

+"APT" and this document are free software; you can redistribute them and/or +modify them under the terms of the GNU General Public License as published +by the Free Software Foundation; either version 2 of the License, or (at your +option) any later version. + +

+For more details, on Debian GNU/Linux systems, see the file +/usr/share/common-licenses/GPL for the full license. + + + + +Introduction + + +General + +

+The APT method interface allows APT to acquire archive files (.deb), index +files (Packages, Release, Mirrors) and source files (.tar.gz, .diff). It +is a general, extensible system designed to satisfy all of these +requirements: + + +Remote methods that download files from a distant site +Resume of aborted downloads +Progress reporting +If-Modified-Since (IMS) checking for index files +In-Line MD5 generation +No-copy in-filesystem methods +Multi-media methods (like CD's) +Dynamic source selection for failure recovery +User interaction for user/password requests and media swaps +Global configuration + + +Initial releases of APT (0.1.x) used a completely different method +interface that only supported the first 6 items. This new interface +deals with the remainder. + + + + +Terms + +

+Several terms are used through out the document, they have specific +meanings which may not be immediately evident. To clarify they are summarized +here. + + +source +Refers to an item in source list. More specifically it is the broken down +item, that is each source maps to exactly one index file. Archive sources +map to Package files and Source Code sources map to Source files. + +archive file +Refers to a binary package archive (.deb, .rpm, etc). + +source file +Refers to one of the files making up the source code of a package. In +debian it is one of .diff.gz, .dsc. or .tar.gz. + +URI +Universal Resource Identifier (URI) is a super-set of the familiar URL +syntax used by web browsers. It consists of an access specification +followed by a specific location in that access space. The form is +<access>:<location>. Network addresses are given with the form +<access>://[<user>[:<pas>]@]hostname[:port]/<location>. +Some examples: + +file:/var/mirrors/debian/ +ftp://ftp.debian.org/debian +ftp://jgg:MooCow@localhost:21/debian +nfs://bigred/var/mirrors/debian +rsync://debian.midco.net/debian +cdrom:Debian 2.0r1 Disk 1/ + + +method +There is a one to one mapping of URI access specifiers to methods. A method +is a program that knows how to handle a URI access type and operates according +to the specifications in this file. + +method instance +A specific running method. There can be more than one instance of each method +as APT is capable of concurrent method handling. + +message +A series of lines terminated by a blank line sent down one of the +communication lines. The first line should have the form xxx TAG +where xxx are digits forming the status code and TAG is an informational +string + +acquire +The act of bring a URI into the local pathname space. This may simply +be verifying the existence of the URI or actually downloading it from +a remote site. + + + + + +Specification + + +Overview + +

+All methods operate as a sub process of a main controlling parent. 3 FD's +are opened for use by the method allowing two way communication and +emergency error reporting. The FD's correspond to the well known unix FD's, +stdin, stdout and stderr. + +

+Through operation of the method communication is done via http +style plain text. Specifically RFC-822 (like the Package file) fields +are used to describe items and a numeric-like header is used to indicate +what is happening. Each of these distinct communication messages should be +sent quickly and without pause. + +

+In some instances APT may pre-invoke a method to allow things like file +URI's to determine how many files are available locally. + + + + +Message Overview + +

+The first line of each message is called the message header. The first +3 digits (called the Status Code) have the usual meaning found in the +http protocol. 1xx is informational, 2xx is successful and 4xx is failure. +The 6xx series is used to specify things sent to the method. After the +status code is an informational string provided for visual debugging. + + +100 Capabilities - Method capabilities +101 Log - General Logging +102 Status - Inter-URI status reporting (login progress) +200 URI Start - URI is starting acquire +201 URI Done - URI is finished acquire +400 URI Failure - URI has failed to acquire +401 General Failure - Method did not like something sent to it +402 Authorization Required - Method requires authorization + to access the URI. Authorization is User/Pass +403 Media Failure - Method requires a media change +600 URI Acquire - Request a URI be acquired +601 Configuration - Sends the configuration space +602 Authorization Credentials - Response to the 402 message +603 Media Changed - Response to the 403 message + + +Only the 6xx series of status codes is sent TO the method. Furthermore +the method may not emit status codes in the 6xx range. The Codes 402 +and 403 require that the method continue reading all other 6xx codes +until the proper 602/603 code is received. This means the method must be +capable of handling an unlimited number of 600 messages. + +

+The flow of messages starts with the method sending out a +100 Capabilities and APT sending out a 601 Configuration. +After that APT begins sending 600 URI Acquire and the method +sends out 200 URI Start, 201 URI Done or +400 URI Failure. No synchronization is performed, it is expected +that APT will send 600 URI Acquire messages at -any- time and +that the method should queue the messages. This allows methods like http +to pipeline requests to the remote server. It should be noted however +that APT will buffer messages so it is not necessary for the method +to be constantly ready to receive them. + + + + +Header Fields + +

+The following is a short index of the header fields that are supported + + +URIURI being described by the message +FilenameLocation in the filesystem +Last-ModifiedA time stamp in RFC1123 notation for use by IMS checks +IMS-HitThe already existing item is valid +SizeSize of the file in bytes +Resume-PointLocation that transfer was started +MD5-HashComputed MD5 hash for the file +MessageString indicating some displayable message +MediaString indicating the media name required +SiteString indicating the site authorization is required for +UserUsername for authorization +PasswordPassword for authorization +FailOperation failed +DriveDrive the media should be placed in +Config-Item +A string of the form item=value derived from the APT +configuration space. These may include method specific values and general +values not related to the method. It is up to the method to filter out +the ones it wants. +Single-InstanceRequires that only one instance of the method be run + This is a yes/no value. +PipelineThe method is capable of pipelining. +LocalThe method only returns Filename: fields. +Send-ConfigSend configuration to the method. +Needs-CleanupThe process is kept around while the files it returned +are being used. This is primarily intended for CDROM and File URIs that need +to unmount filesystems. +VersionVersion string for the method + + +This is a list of which headers each status code can use + + +100 Capabilities +Displays the capabilities of the method. Methods should set the +pipeline bit if their underlying protocol supports pipelining. The +only known method that does support pipelining is http. +Fields: Version, Single-Instance, Pre-Scan, Pipeline, Send-Config, +Needs-Cleanup + +101 Log +A log message may be printed to the screen if debugging is enabled. This +is only for debugging the method. +Fields: Message + +102 Status +Message gives a progress indication for the method. It can be used to show +pre-transfer status for Internet type methods. +Fields: Message + +200 URI Start +Indicates the URI is starting to be transfered. The URI is specified +along with stats about the file itself. +Fields: URI, Size, Last-Modified, Resume-Point + +201 URI Done +Indicates that a URI has completed being transfered. It is possible +to specify a 201 URI Done without a URI Start which would +mean no data was transfered but the file is now available. A Filename +field is specified when the URI is directly available in the local +pathname space. APT will either directly use that file or copy it into +another location. It is possible to return Alt-* fields to indicate that +another possibility for the URI has been found in the local pathname space. +This is done if a decompressed version of a .gz file is found. +Fields: URI, Size, Last-Modified, Filename, MD5-Hash + +400 URI Failure +Indicates a fatal URI failure. The URI is not retrievable from this source. +As with 201 URI Done 200 URI Start is not required to precede +this message +Fields: URI, Message + +401 General Failure +Indicates that some unspecific failure has occurred and the method is unable +to continue. The method should terminate after sending this message. It +is intended to check for invalid configuration options or other severe +conditions. +Fields: Message + +402 Authorization Required +The method requires a Username and Password pair to continue. After sending +this message the method will expect APT to send a 602 Authorization +Credentials message with the required information. It is possible for +a method to send this multiple times. +Fields: Site + +403 Media Failure +A method that deals with multiple media requires that a new media be inserted. +The Media field contains the name of the media to be inserted. +Fields: Media, Drive + +600 URI Acquire +APT is requesting that a new URI be added to the acquire list. Last-Modified +has the time stamp of the currently cache file if applicable. Filename +is the name of the file that the acquired URI should be written to. +Fields: URI, Filename Last-Modified + +601 Configuration +APT is sending the configuration space to the method. A series of +Config-Item fields will be part of this message, each containing an entry +from the configuration space. +Fields: Config-Item. + +602 Authorization Credentials +This is sent in response to a 402 Authorization Required message. +It contains the entered username and password. +Fields: Site, User, Password + +603 Media Changed +This is sent in response to a 403 Media Failure message. It +indicates that the user has changed media and it is safe to proceed. +Fields: Media, Fail + + + + + + +Notes + +

+The methods supplied by the stock apt are: + +cdrom - For Multi-Disc CDROMs +copy - (internal) For copying files around the filesystem +file - For local files +gzip - (internal) For decompression +http - For HTTP servers + + +

+The two internal methods, copy and gzip, are used by the acquire code to +parallize and simplify the automatic decompression of package files as well +as copying package files around the file system. Both methods can be seen to +act the same except that one decompresses on the fly. APT uses them by +generating a copy URI that is formed identically to a file URI. The destination +file is send as normal. The method then takes the file specified by the +URI and writes it to the destination file. A typical set of operations may +be: + +http://foo.com/Packages.gz -> /bar/Packages.gz +gzip:/bar/Packages.gz -> /bar/Packages.decomp +rename Packages.decomp to /final/Packages + + +

+The http method implements a fully featured HTTP/1.1 client that supports +deep pipelining and reget. It works best when coupled with an apache 1.3 +server. The file method simply generates failures or success responses with +the filename field set to the proper location. The cdrom method acts the same +except that it checks that the mount point has a valid cdrom in it. It does +this by (effectively) computing a md5 hash of 'ls -l' on the mountpoint. + + + + + diff --git a/doc/offline.sgml b/doc/offline.sgml new file mode 100644 index 0000000..ecbd85c --- /dev/null +++ b/doc/offline.sgml @@ -0,0 +1,234 @@ + + + +Using APT Offline + +Jason Gunthorpe jgg@debian.org +$Id: offline.sgml,v 1.8 2003/02/12 15:06:41 doogie Exp $ + + +This document describes how to use APT in a non-networked environment, +specifically a 'sneaker-net' approach for performing upgrades. + + + +Copyright © Jason Gunthorpe, 1999. +

+"APT" and this document are free software; you can redistribute them and/or +modify them under the terms of the GNU General Public License as published +by the Free Software Foundation; either version 2 of the License, or (at your +option) any later version. + +

+For more details, on Debian GNU/Linux systems, see the file +/usr/share/common-licenses/GPL for the full license. + + + + +Introduction + + +Overview + +

+Normally APT requires direct access to a Debian archive, either from a local +media or through a network. Another common complaint is that a Debian machine +is on a slow link, such as a modem and another machine has a very fast +connection but they are physically distant. + +

+The solution to this is to use large removable media such as a Zip disc or a +SuperDisk disc. These discs are not large enough to store the entire Debian +archive but can easily fit a subset large enough for most users. The idea +is to use APT to generate a list of packages that are required and then fetch +them onto the disc using another machine with good connectivity. It is +even possible to use another Debian machine with APT or to use a completely +different OS and a download tool like wget. + +

+This is achieved by creatively manipulating the APT configuration file. The +essential premis to tell APT to look on a disc for it's archive files. Note +that the disc should be formated with a filesystem that can handle long file +names such as ext2, fat32 or vfat. + + + + +Using APT on both machines + + +Overview + +

+APT being available on both machines gives the simplest configuration. The +basic idea is to place a copy of the status file on the disc and use the +remote machine to fetch the latest package files and decide which packages to +download. The disk directory structure should look like: + + + /disc/ + archives/ + partial/ + lists/ + partial/ + status + sources.list + apt.conf + + + + + + +The configuration file + +

+The configuration file should tell APT to store its files on the disc and +to use the configuration files on the disc as well. The sources.list should +contain the proper sites that you wish to use from the remote machine, and +the status file should be a copy of /var/lib/dpkg/status. Please note, +if you are using a local archive you must use copy URIs, the syntax is identical +to file URIs. + +

+apt.conf must contain the necessary information to make APT use the +disc: + + + APT + { + /* This is not necessary if the two machines are the same arch, it tells + the remote APT what architecture the Debian machine is */ + Architecture "i386"; + + Get::Download-Only "true"; + }; + + Dir + { + /* Use the disc for state information and redirect the status file from + the /var/lib/dpkg default */ + State "/disc/"; + State::status "status"; + + // Binary caches will be stored locally + Cache::archives "/disc/archives/"; + Cache "/tmp/"; + + // Location of the source list. + Etc "/disc/"; + }; + + +More details can be seen by examining the apt.conf man page and the sample +configuration file in /usr/share/doc/apt/examples/apt.conf. + +

+On the remote Debian machine the first thing to do is mount the disc and copy +/var/lib/dpkg/status to it. You will also need to create the directories +outlined in the Overview, archives/partial/ and lists/partial/ +Then take the disc to the remote machine and configure the sources.list. +On the remote machine execute the following: + + + # export APT_CONFIG="/disc/apt.conf" + # apt-get update + [ APT fetches the package files ] + # apt-get dist-upgrade + [ APT fetches all the packages needed to upgrade your machine ] + + +The dist-upgrade command can be replaced with any-other standard APT commands, +particularly dselect-upgrad. You can even use an APT front end such as +dselect However this presents a problem in communicating your +selections back to the local computer. + +

+Now the disc contains all of the index files and archives needed to upgrade +the Debian machine. Take the disc back and run: + + + # export APT_CONFIG="/disc/apt.conf" + # apt-get check + [ APT generates a local copy of the cache files ] + # apt-get --no-d -o dir::state::status=/var/lib/dpkg/status dist-upgrade + [ Or any other APT command ] + + +

+It is necessary for proper function to re-specify the status file to be the +local one. This is very important! + +

+If you are using dselect you can do the very risky operation of copying +disc/status to /var/lib/dpkg/status so that any selections you made on the +remote machine are updated. I highly recommend that people only make selections +on the local machine - but this may not always be possible. DO NOT copy +the status file if dpkg or APT have been run in the mean time!! + + + + +Using APT and wget + + +Overview + +

+wget is a popular and portable download tool that can run on nearly +any machine. Unlike the method above this requires that the Debian machine +already has a list of available packages. + +

+The basic idea is to create a disc that has only the archive files downloaded +from the remote site. This is done by using the --print-uris option to apt-get +and then preparing a wget script to actually fetch the packages. + + + + + +Operation + +

+Unlike the previous technique no special configuration files are required. We +merely use the standard APT commands to generate the file list. + + + # apt-get dist-upgrade + [ Press no when prompted, make sure you are happy with the actions ] + # apt-get -qq --print-uris dist-upgrade > uris + # awk '{print "wget -O " $2 " " $1}' < uris > /disc/wget-script + + +Any command other than dist-upgrade could be used here, including +dselect-upgrade. + +

+The /disc/wget-script file will now contain a list of wget commands to execute +in order to fetch the necessary archives. This script should be run with the +current directory as the disc's mount point so as to save the output on the +disc. + +

+The remote machine would do something like + + + # cd /disc + # sh -x ./wget-script + [ wait.. ] + + +Once the archives are downloaded and the disc returned to the Debian machine +installation can proceed using, + + + # apt-get -o dir::cache::archives="/disc/" dist-upgrade + + +Which will use the already fetched archives on the disc. + + + + diff --git a/doc/pl/makefile b/doc/pl/makefile new file mode 100644 index 0000000..72a5054 --- /dev/null +++ b/doc/pl/makefile @@ -0,0 +1,10 @@ +# -*- make -*- +BASE=../.. +SUBDIR=doc/pl + +# Bring in the default rules +include ../../buildlib/defaults.mak + +# Debian Doc SGML Documents +SOURCE = offline.pl.sgml +include $(DEBIANDOC_H) diff --git a/doc/pl/offline.pl.sgml b/doc/pl/offline.pl.sgml new file mode 100644 index 0000000..2adb255 --- /dev/null +++ b/doc/pl/offline.pl.sgml @@ -0,0 +1,250 @@ + + + +U�ywanie APT w trybie offline + +Jason Gunthorpe jgg@debian.org +Polskie t�umaczenie Krzysztof Fiertek akfedux@megapolis.pl +$Id: offline.pl.sgml,v 1.1 2004/07/29 16:43:13 mdz Exp $ + + +Dokument ten opisuje jak u�ywa� programu APT w �rodowiskach niesieciowych, +a w szczeg�lno�ci metod� pozwalaj�c� na robienie aktualizacji systemu. + + + +Copyright © Jason Gunthorpe, 1999. +

+Copyright © polskiego t�umaczenia Krzysztof Fiertek, 2004. +

+"APT" i ten dokument s� oprogramowaniem wolnodost�pnym; mo�esz +rozpowszechnia� je i/lub zmienia� w zgodzie z postanowieniami +"Og�lnej Licencji Publicznej GNU" (GNU General Public License) +takiej, jak zosta�a opublikowana przez "Fundacje Wolnego +Oprogramowania (Free Software Foundation); albo w wersji 2 tej�e +licencji, albo (tw�j wyb�r) w dowolnej p��niejszej. + +

+Wi�cej szczeg���w mo�esz uzyska� przegl�daj�c plik zawieraj�cy pe�ny tekst +licencji (w systemach Debian jest to plik /usr/doc/copyright/GPL). + + +Wst�p + + +Wprowadzenie + +

+Normalnie APT wymaga bezpo�redniego dost�pu do archiw�w Debiana poprzez +sie� lokaln� albo przez sie� internetow�. Kolejn� niedogodno�ci� mo�e by� +fakt, �e nasz komputer, kt�ry pracuje na wolnym ��czu takim jak modem, +jest znacznie oddalony od innnego komputera z szybkim ��czem. + +

+Rozwi�zaniem tego problemu jest u�ycie pojemnych przeno�nych no�nik�w +takich jak dyskietka Zip lub dysk SuperDisk. No�niki te nie s� +wystarczaj�co pojemne, by zgromadzi� kompletne archiwum Debiana, ale mo�na +�mia�o dopasowa� podzbi�r du�ego archiwum wystarczaj�cy dla wi�kszo�ci +u�ytkownik�w. Pomys� polega na tym, by u�y� programu APT do wygenerowania +listy pakiet�w, kt�re s� wymagane, nast�pnie pobraniu ich na dysk u�ywaj�c +innego komputera z w�a�ciw� zwarto�ci�. Jest nawet mo�liwe, by u�y� innego +komputera z Debianem z zainstalowanym programem APT lub zupe�nie innym +systemem operacyjnym i programem narz�dziowym do pobierania plik�w takim +jak wget. + +

+Osi�gni�te jest to przez tw�rcze manipulowanie plikiem konfiguracyjnym +programu APT. Rzecz� niezb�dn� jest poinformowanie programu APT, aby wskazywa� +na dysk z plikami archiwum. Nale�y zauwa�y�, �e dysk powinien by� +sformatowany do obs�ugi systemu plik�w takiego jak ext2, fat32 albo vfat +pozwalaj�cych pos�ugiwa� si� d�ugimi nazwami pliku. + + + + +U�ywanie programu APT na obu komputerach + + +Wprowadzenie + +

+APT b�d�cy do dyspozycji na obu komputerach daje najprostsz� kombinacj�. +Zasadniczym pomys�em tej metody jest umie�ci� kopie pliku status na dysku +i u�y� odleg�ego komputera, aby uzyska� najnowsze pliki pakiet�w +i zdecydowa�, kt�re pakiety chcemy pobra�. Struktura katalog�w na dysku +powinna wygl�da� nast�puj�co: + + + /disc/ + archives/ + partial/ + lists/ + partial/ + status + sources.list + apt.conf + + + + + + +Plik konfiguracyjny + +

+Plik konfiguracyjny powinien informowa� program APT, aby przechowywa� jego +pliki na dysku, a tak�e u�ywa� plik�w konfiguracyjnych z dysku. Plik +sources.list powinien zawiera� prawid�owe odno�niki, kt�rych oczekujesz +u�y� od zdalnego komputera, a plik status powinien by� kopi� +/var/lib/dpkg/status. Zauwa�, �e je�li u�ywasz lokalnego archiwum +musisz u�y� tych samych odno�nik�w o identycznej sk�adni. + +

+apt.conf musi zawiera� niezb�dne wpisy, by APT korzysta� z dysku: + + + APT + { + /* Ten wpis nie jest wymagany je�li oba komputery s� tej samej + architektury, m�wi on APTowi na komputerze pobieraj�cym pakiety + jakiej architektury jest nasz komputer */ + Architecture "i386"; + + Get::Download-Only "true"; + }; + + Dir + { + /* U�yj katalogu disc na informacje stanu i skieruj plik status + z /var/lib/dpkg default */ + State "/disc/"; + State::status "status"; + + // Katalog lokalnie przechowywanych pakiet�w binarnych + Cache::archives "/disc/archives/"; + Cache "/tmp/"; + + // Lokalizacja pliku sources.list. + Etc "/disc + }; + + +Wi�cej szczeg���w mo�na zobaczy� w manualu apt.conf i w przyk�adowym pliku +konfiguracyjnym /usr/doc/apt/examples/apt.conf. + +

+Pierwsz� rzecz� jaka nale�y zrobi� na oddalonym komputerze z Debianem to +zamontowa� dysk i przekopiowa� na niego plik /var/lib/dpkg/status. +Potrzeba tak�e utworzy� stuktur� katalog�w przedstawion� we Wprowadzeniu, +archives/partial/ i lists/partial/. Nast�pnie niesiemy +dysk do oddalonego komputera z szybkim ��czem i konfigurujemy plik +sources.list. Na oddalonym komputerze wykonujemy kolejno: + + + # export APT_CONFIG="/disc/apt.conf" + # apt-get update + [ APT aktualizuje ustawienia ] + # apt-get dist-upgrade + [ APT pobiera wszystkie potrzebne pakiety do aktualizacji twojego systemu ] + + + +Polecenie dist-upgrade mo�na zast�pi� ka�dym innym podstawowym poleceniem +APT, w szczeg�lno�ci dselect-upgrade. Mo�esz nawet u�y� APT jako metod� +dost�pu dla dselect. Jednak stworzy to problem w przeniesieniu +twoich operacji wybor�w z powrotem na lokalny komputer. + +

+W tej chwili katalog disc zawiera wszystkie pliki indeksowe oraz archiwa +niezb�dne do aktualizacji maszyny z Debianem. Bierzemy dysk z powrotem do +siebie i wpisujemy: + + + # export APT_CONFIG="/disc/apt.conf" + # apt-get check + [ APT tworzy lokaln� kopi� plik�w cache ] + # apt-get --no-d -o dir::etc::status=/var/lib/dpkg/status dist-upgrade + [ Mo�e te� by� inne polecenie programu APT ] + + +

+Koniecznym jest do prawid�owego dzia�ania podmieni� plik status na lokalnej +maszynie. To jest bardzo wa�ne! + +

+Je�li u�ywasz dselect mo�esz wykona� bardzo ryzykown� operacj� skopiowania +disc/status do /var/lib/dpkg/status tak, �e wszystkie zmiany kt�re +dokona�e� na odleg�ym komputerze s� uaktualnione. Mocno zalecam aby +dokonywa� doboru pakiet�w tylko na lokalnym komputerze, ale nie zawsze +jest to mo�liwe. NIE podmieniaj pliku status je�li dpkg lub APT by�y +uruchamiane w mi�dzyczasie!! + + + + +U�ywanie program�w APT i wget + + +Wprowadzenie + +

+wget jest popularnym i przeno�nym programem narz�dziowym +pobierania plik�w, kt�ry dzia�a na prawie ka�dym komputerze. +W przeciwie�stwie do metody opisanej powy�ej ta wymaga komputera z Debianem, +kt�ry ju� posiada list� dost�pnych pakiet�w. + +

+Nale�y stworzy� katalog disc tylko na pakiety do pobrania z innego +komputera. U�yta zostanie do tego opcja --print-uris programu apt-get, +a nast�pnie przygotujemy skrypt dla programu wget, kt�ry pobierze w�a�ciwe +pakiety. + + + + + +Kolejne kroki + +

+W odr��nieniu od poprzedniej metody dzia�ania ta nie wymaga specjalnych +plik�w konfiguracyjnych. U�ywamy jedynie podstawowych polece� APT, by +wygenerowa� list� plik�w. + + + # apt-get dist-upgrade + [ Wybierz no po znaku zach�ty, upewnij si� czy to w�a?ciwy wyb�r ] + # apt-get -qq --print-uris dist-upgrade > uris + # awk '{print "wget -O " $2 " " $1}' < uris > /disc/wget-script + + +Tak�e inne opcje ni� dist-upgrade mog� tu by� u�yte, w��czaj�c +dselect-upgrade. + +

+Plik skryptu /disc/wget-script b�dzie teraz zawiera� list� polece� dla +programu wget, kt�ry uruchomi w porz�dku pobieranie potrzebnych archiw�w. +Skrypt ten nale�y uruchomi� w bie��cym katalogu o punkcie montowania disc +tak aby tu zapisywa� dane na dysku. + +

+Na oddalonym komputerze nale�y wykona� co� takiego + + + # cd /disc + # sh -x ./wget-script + [ czekaj.. ] + + +Gdy archiwa zosta�y pobrane i dysk wr�ci� do komputera z Debianem, +instalowanie mo�na prowadzi� dalej poleceniem, + + + # apt-get -o dir::cache::archives="/disc/" dist-upgrade + + +Kt�re u�yje pobrane uprzednio archiwa z dysku. + + + diff --git a/doc/pt_BR/.cvsignore b/doc/pt_BR/.cvsignore new file mode 100644 index 0000000..8d11bcc --- /dev/null +++ b/doc/pt_BR/.cvsignore @@ -0,0 +1,3 @@ +apt_preferences.pt_BR.5 +manpage.links +manpage.refs diff --git a/doc/pt_BR/apt.ent.pt_BR b/doc/pt_BR/apt.ent.pt_BR new file mode 100644 index 0000000..636805b --- /dev/null +++ b/doc/pt_BR/apt.ent.pt_BR @@ -0,0 +1,157 @@ + + + + +&docdir;examples/configure-index.gz"> +/etc/apt.conf"> + + + + + + + "> + + + + "> + + + + "> + + + + "> + + + + "> + + + + "> + + + + "> + + + + "> + + + + "> + + + + "> + + + + "> + + + + "> + + + + "> + + + + "> + + + +

apt@packages.debian.org
+ Jason Gunthorpe + 1998-2001 Jason Gunthorpe + 12 Março 2001 + +"> + + +Bugs</> + <para> + Consulte a <ulink url='http://bugs.debian.org/apt'>página de bugs do APT</>. + Caso você queira relatar um bug no APT, por favor consulte o arquivo + <filename>/usr/share/doc/debian/bug-reporting.txt</> ou o comando &reportbug;. + </RefSect1> +"> + +<!-- Boiler plate Author section --> +<!ENTITY manauthor " + <RefSect1><Title>Author</> + <para> + O APT foi escrito pela equipe APT <email>apt@packages.debian.org</>. + </RefSect1> +"> + +<!-- Brazilian Portuguese Translation Credits section --> +<!ENTITY ptbr-mantranslator " + <RefSect1><Title>Tradução</> + <para> + Esta página de manual foi traduzida para o Português do Brasil por + André Luís Lopes <email>andrelop@ig.com.br</>. + </RefSect1> +"> + + +<!-- Should be used within the option section of the text to + put in the blurb about -h, -v, -c and -o --> +<!ENTITY apt-commonoptions " + <VarListEntry><term><option/-h/</><term><option/--help/</> + <ListItem><Para> + Exibe um pequeno resumo de uso. + </VarListEntry> + + <VarListEntry><term><option/-v/</><term><option/--version/</> + <ListItem><Para> + Exibe a versão do programa. + </VarListEntry> + + <VarListEntry><term><option/-c/</><term><option/--config-file/</> + <ListItem><Para> + Arquivo de Configuração; Especifica um arquivo de configuração + a ser usado. O programa irá ler o arquivo de configuração padrão + e então este arquivo de configuração. Consulte &apt-conf; para + informação de sintaxe. + </VarListEntry> + + <VarListEntry><term><option/-o/</><term><option/--option/</> + <ListItem><Para> + Defie uma Opção de Configuração; Esta opção irá definir uma opção + de configuração arbitrária. A sintaxe é <option>-o Foo::Bar=bar</>. + </VarListEntry> +"> + +<!-- Should be used within the option section of the text to + put in the blurb about -h, -v, -c and -o --> +<!ENTITY apt-cmdblurb " + <para> + Todas as opções de linha de comando podem ser definidas usando o + arquivo de configuração, as descrições indicam a opção de configuração + a ser definida. Para opções booleanas você pode sobrepor o arquivo de + configuração usando algo como <option/-f-/,<option/--no-f/, + <option/-f=no/ ou diversas outras variantes. + </para> +"> diff --git a/doc/pt_BR/apt_preferences.pt_BR.5 b/doc/pt_BR/apt_preferences.pt_BR.5 new file mode 100644 index 0000000..834ad59 --- /dev/null +++ b/doc/pt_BR/apt_preferences.pt_BR.5 @@ -0,0 +1,461 @@ +.\" This manpage has been automatically generated by docbook2man +.\" from a DocBook document. This tool can be found at: +.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/> +.\" Please send any bug reports, improvements, comments, patches, +.\" etc. to Steve Cheng <steve@ggi-project.org>. +.TH "APT_PREFERENCES" "5" "04 December 2006" "" "" + +.SH NAME +apt_preferences \- Arquivo de controle de preferências para o APT +.SH "DESCRIçãO" +.PP +O arquivo de preferências do APT \fI/etc/apt/preferences\fR +pode ser usado para controlar quais versões de pacotes serão +selecionadas para instalação. +.PP +Diversas versões de um pacote podem estar disponíveis para +instalação quando o arquivo \fB\fIsources.list\fB\fR(5) contém referências para +mais de uma distribuição (por exemplo, stable e +testing). O APT atribui uma prioridade para cada +versão que esteja disponível. Sujeito a obstáculos de dependências, o +\fBapt-get\fR seleciona para instalação a versão com a +maior prioridade. +O arquivo de preferências do APT sobrepoe as prioridades que o APT +atribui a cada versão de pacote por padrão, dando assim ao usuário +controle sobre qual versão do pacote é selecionada para instalação. +.PP +Diversas instâncias da mesma versão de um pacote pode estar disponíveis +quando o arquivo \fB\fIsources.list\fB\fR(5) contém referências a mais de uma fonte. +Nesse caso, o \fBapt-get\fR faz o download da instância +listada antes no arquivo \fB\fIsources.list\fB\fR(5) . +O arquivo de preferências do APT não afeta a escolha da instância. +.SS "ATRIBUIçõES DE PRIORIDADE PADRãO DO APT" +.PP +Caso não exista um arquivo de preferências ou caso não exista uma +entrada no arquivo que se aplique a uma instância em particular, a +prioridade atribuída a essa instância é a prioridade da distribuição +para a qual a instância pertence. É possível selecionar uma distribuição, +conhecida como "a versão alvo" (the target release), que recebe uma +prioridade maior do que as outras distribuições. +A versão alvo pode ser definida na linha de comando do +\fBapt-get\fR ou no arquivo de configuração do APT +\fI/etc/apt/apt.conf\fR\&. +Por exemplo, + +.nf +\fBapt-get install -t testing \fIalgum-pacote\fB\fR +.fi + +.nf +APT::Default-Release "stable"; +.fi +.PP +Caso uma versão alvo tenha sido especificada o APT usará o seguinte +algoritmo para definir as prioridades das instâncias de um pacote. +Atribuirá : +.TP +\fBprioridade 100\fR +para a instância que já esteja instalada (caso exista). +.TP +\fBprioridade 500\fR +para as instâncias que não estã instaladas e que não pertencem a versão alvo. +.TP +\fBprioridade 990\fR +para as instâncias que não estejam instaladas e pertençam a versão alvo. +.PP +Caso nenhuma versão alvo tenha sido especificada, o APT simplesmente +irá atribuir a prioridade 100 para todas as instâncias de pacotes instaladas +e a prioridade 500 para todas as instâncias de pacotes não instaladas. +.PP +O APT aplica as regras a seguir, listadas em ordem de precedência, para +determinar qual instância de um pacote instalar. +.TP 0.2i +\(bu +Nunca faz um downgrade a menos que a prioridade de +uma instância disponível exceda 1000. (Fazer um "downgrade" é instalar uma +versão menos recente de um pacote no lugar de uma versão mais recente. Note +que nenhuma das prioridades padrão do APT excede 1000; prioridades altas +como essa podem ser definidas somente no arquivo de preferências. Note +também que fazer um "downgrade" pode ser arriscado.) +.TP 0.2i +\(bu +Instala a instância de prioridade mais alta. +.TP 0.2i +\(bu +Caso duas ou mais instâncias possuam a mesma prioridade, +instala a instância mais recente (ou seja, aquela com o maior número de +versão). +.TP 0.2i +\(bu +Caso duas ou mais instâncias possuam a mesma prioridade +e número de versão mas os pacotes sejam diferentes em alguns de seus +metadados ou a opção --reinstall seja fornecida, instala aquela +desinstalada. +.PP +Em uma situação típica, a instância instalada de um pacote +(prioridade 100) não é tão recente quanto uma das versões disponíveis +nas fontes listadas no arquivo \fB\fIsources.list\fB\fR(5) (prioridade 500 ou 990). +Então o pacote será atualizado quando os comandos +\fBapt-get install \fIalgum-pacote\fB\fR +ou \fBapt-get dist-upgrade\fR forem executados. +.PP +Mais raramente, a versão instalada de um pacote é \fBmais\fR +recente do que qualquer uma das outras versões disponíveis. O dowgrade +do pacote não será feito quando os comandos +\fBapt-get install \fIalgum-pacote\fB\fR +ou \fBapt-get upgrade\fR forem executados. +.PP +Algumas vezes a versão instalada de um pacote é mais recente que a versão +que pertence a versão alvo, mas não tão recente quanto a versão que +pertence a alguma outra distribuição. Um pacote como esse será na verdade +atualizado quando os comandos +\fBapt-get install \fIalgum-pacote\fB\fR +ou \fBapt-get upgrade\fR forem executados, devido a pelo +menos \fBuma\fR das versões disponíveis possuir uma prioridade maior +do que a versão instalada. +.SS "O EFEITO DAS PREFERêNCIAS DO APT" +.PP +O arquivo de preferências do APT permite ao administrador do +sistema personalizar prioridades. O arquivo consiste de um ou mais +registros de múltiplas linhas separados por linhas em branco. Registros +podem possuir uma das duas formas, uma forma específica e uma forma geral. +.TP 0.2i +\(bu +A forma específica atribui uma uma prioridade (uma "Pin-Priority") +para um pacote e versão ou faixa de versão especificados. Por exemplo, +o registro a seguir atribui uma prioridade alta para todas as versões do +pacote \fIperl\fR os quais tenham seus números de versão iniciando +com "5.8". + +.nf +Package: perl +Pin: version 5.8* +Pin-Priority: 1001 +.fi +.TP 0.2i +\(bu +O forma geral atribui uma prioridade para todas as versões de pacotes em +uma dada distribuição (isto é, para toda as versões de pacotes que estejam +em um certo arquivo \fIRelease\fR) ou para todas as versões de +pacotes que provenientes de um site Internet em particular, como +identificado pelo nome de domínio totalmente qualificado do site Internet. + +Essa entrada de forma geral no arquivo de preferências do APT +aplica-se somente a grupos de pacotes. Por exemplo, o registro a seguir +faz com que o APT atribua uma prioridade alta para todas as versões +de pacotes disponíveis no site local. + +.nf +Package: * +Pin: origin "" +Pin-Priority: 999 +.fi + +Uma nota de aviso : a palavra-chave usada aqui é "origin". +Esta palavra não deve ser confundida com a origem ("Origin:") de uma +distribuição como especificado em um arquivo \fIRelease\fR\&. O que +segue a tag "Origin:" em um arquivo \fIRelease\fR não é um endereço +de site Internet mas sim nome de autor ou distribuidor (vendor), como +"Debian" ou "Ximian". + +O registro a seguir atribui uma prioridade baixa para todas as versões +de pacote que pertençam a qualquer distribuição cujo nome do Repositório +seja "unstable". + +.nf +Package: * +Pin: release a=unstable +Pin-Priority: 50 +.fi + +O registro a seguir atribui uma prioridade alta para todas as versões de +pacotes que pertençam a qualquer versão cujo nome do Repositório seja +"stable" e cujo número de versão seja "3.0". + +.nf +Package: * +Pin: release a=unstable, v=3.0 +Pin-Priority: 50 +.fi +.SS "COMO O APT INTERPRETA PRIORIDADES" +.PP +Prioridades (P) atribuídas no arquivo de preferências do APT devem ser +números inteiros positivos ou negativos. Eles são interpretados como a +seguir (a grosso modo): +.TP +\fBP > 1000\fR +faz com que uma instância seja instalada +mesmo caso isso constitua um dowgrade do pacote +.TP +\fB990 < P <=1000\fR +faz com que uma versão seja instalada +mesmo caso a mesma não venha de uma versão alvo, +a menos que a versão instalada seja mais recente +.TP +\fB500 < P <=990\fR +faz com que uma versão seja instalada +a menos que exista uma versão disponível pertencente a versão +alvo ou a versão instalada seja mais recente +.TP +\fB100 < P <=500\fR +faz com que uma versão seja instalada +a menos que exista uma versão disponível pertencente a alguma +outra distribuição ou a versão instalada seja mais recente +.TP +\fB0 <= P <=100\fR +faz com que uma versão seja instalada +somente caso não exista uma versão instalada do pacote +.TP +\fBP < 0\fR +impede a versão de ser instalada +.PP +Caso um dos registro de forma específica descritos acima case (match) com +uma versão disponível do pacote então o primeiro desses registros +encontrados determinará a prioridade da versão do pacote. Na falha desse +cenário, caso quaisquer registros de forma genérica casem (match) com uma +versão do pacote disponível então o primeiro desses registros encontrado +determinará a prioridade da versão do pacote. +.PP +Por exemplo, suponha que o arquivo de preferências do APT contenha +os três registros apresentados anteriormente : + +.nf +Package: perl +Pin: version 5.8* +Pin-Priority: 1001 + +Package: * +Pin: origin "" +Pin-Priority: 999 + +Package: * +Pin: release unstable +Pin-Priority: 50 +.fi +Então : +.TP 0.2i +\(bu +A versão mais recente disponível do pacote +perl será instalado, contanto que esse número de versão da +versão inicie com "5.8". Caso \fBqualquer\fR versão 5.8* +de perl esteja disponível e a versão instalada seja 5.9*, será +feito um downgrade do perl\&. +.TP 0.2i +\(bu +Uma versão de qualquer pacote diferente de +perl que esteja disponível no sistema local possui prioridade +sobre outras versões, mesmo versões pertencentes a versão alvo. +.TP 0.2i +\(bu +Uma versão de um pacote cuja origem não seja o sistema +local mas sim algum outro site listado no arquivo \fB\fIsources.list\fB\fR(5) e que +pertença a uma distribuição unstable é instalada somente +caso a mesma seja selecionada para instalação e nenhuma versão do +pacote já esteja instalada. +.SS "DETERMINAçãO DA VERSãO DO PACOTE E PROPRIEDADES DA DISTRIBUIçãO" +.PP +As localidades listadas em um arquivo \fB\fIsources.list\fB\fR(5) devem fornecer +arquivos \fIPackages\fR e \fIRelease\fR para +descrever os pacotes disponíveis nessas localidades. +.PP +O arquivo \fIPackages\fR é normalmente encontrado no +diretório \fI\&.../dists/nome-distribuição/componente/arquitetura\fR : +por exemplo, \fI\&.../dists/stable/main/binary-i386/Packages\fR\&. +O arquivo consiste de uma série de registros de múltiplas linhas, uma para +cada pacote disponível no diretório. Somente duas linhas em cada registro +são relevantes para definir prioridades do APT : +.TP +\fBa linha Package:\fR +informa o nome do pacote +.TP +\fBa linha Version:\fR +informa o número de versão do pacote +.PP +O arquivo \fIRelease\fR é normalmente encontrado no +diretório +\fI\&.../dists/nome-distribuição\fR : +por exemplo, \fI\&.../dists/stable/Release\fR, +ou \fI\&.../dists/woody/Release\fR\&. +O arquivo consiste de um registro de múltiplas linhas o qual se aplica a +\fBtodos\fR os pacotes na àrvore de diretórios abaixo de seu +diretório pai. Diferente do arquivo \fIPackages\fR, quase todas as +linhas em um arquivo \fIRelease\fR são relevantes para a definição de +prioridades do APT : +.TP +\fBa linha Archive:\fR +dá nome ao repositório para o qual todos os pacotes +na àrvore de diretório pertencem. Por exemplo, a linha +"Archive: stable" +especifica que todos os pacotes na àrvore de diretório +abaixo do diretório pai do arquivo \fIRelease\fR estão no +respositório stable\&. Especificar esse valor no arquivo de +preferências do APT iria requerer a linha : + +.nf +Pin: release a=stable +.fi +.TP +\fBa linha Version:\fR +dá nome a versão da distribuição. Por exemplo, os +pacote na àrvore podem pertencer a distribuição Debian GNU/Linux versão +3.0. Note que normalmente não existe número de versão para as +distribuições testing e unstable devido as mesmas +não terem sido lançadas ainda. Especificar isso no arquivo de preferências +do APT iria requerer uma das linhas a seguir. + +.nf +Pin: release v=3.0 +Pin: release a=stable v=3.0 +Pin: release 3.0 +.fi +.TP +\fBa linha Component:\fR +dá nome ao componente de licenciamento associado com +os pacotes na àrvore de diretório do arquivo \fIRelease\fR\&. Por +exemplo, a linha "Component: main" especifica que todos os pacotes na +àrvore de diretório são do componente main, o que significa que +as mesmas estão licenciadas sob os termos da Linhas Guias Debian para o +Software Livre (a DFSG). Especificar esse componente no arquivo de +preferências do APT iria requerer a linha : + +.nf +Pin: release c=main +.fi +.TP +\fBa linha Origin:\fR +dá nome ao produtor dos pacotes na àrvore de diretório +do arquivo \fIRelease\fR\&. O mais comum é esse valor ser +Debian\&. Especificar essa origem no arquivo de preferências do +APT iria requerer a linha : + +.nf +Pin: release o=Debian +.fi +.TP +\fBa linha Label:\fR +dá nome ao rótulo (label) dos pacotes na árvore de +diretório. O mais comum é esse valor ser Debian\&. Especificar +esse rótulo (label) no arquivo de preferências do APT iria requerer a +linha : + +.nf +Pin: release l=Debian +.fi +.PP +Todos os arquivos \fIPackages\fR e +\fIRelease\fR obtidos das localidades listadas no arquivo +\fB\fIsources.list\fB\fR(5) são mantidos no diretório +\fI/var/lib/apt/lists\fR ou no arquivo indicado pela variável +Dir::State::Lists no arquivo \fIapt.conf\fR\&. +Por exemplo, o arquivo +\fIdebian.lcs.mit.edu_debian_dists_unstable_contrib_binary-i386_Release\fR +contém o arquivo \fIRelease\fR obtido do site +debian.lcs.mit.edu para a arquitetura binary-i386, +arquivos do componente contrib da distribuição unstable\&. +.SS "LINHAS OPCIONAIS EM UM REGISTRO DE PREFERêNCIAS DO APT" +.PP +Cada registro em um arquivo de preferências do APT pode opcionalmente +iniciar com uma ou mais linhas iniciadas com a palavra +Explanation:\&. Isto oferece um local para inserir comentários. +.PP +A linha Pin-Priority: em cada registro de preferências do +APT é opcional. Caso omitida, o APT atribuirá uma prioridade de 1 menos o +último valor especificado em uma linha iniciando com +Pin-Priority: release ...\&. +.SH "EXEMPLOS" +.SS "ACOMPANHANDO A STABLE" +.PP +O arquivo de preferências do APT a seguir fará com que o APT atribua uma +prioridade maior do que a prioridade padrão (500) para todas as versões +de pacotes pertencentes a distribuição stable e uma prioridade +proibitivamente baixa para versões de pacotes pertencentes a outras +distribuições Debian\&. + +.nf +Explanation: Desinstala ou não instala nenhuma versão de pacote originada +Explanation: do Debian a não ser aquelas na distribuição stable +Package: * +Pin: release a=stable +Pin-Priority: 900 + +Package: * +Pin: release o=Debian +Pin-Priority: -10 +.fi +.PP +Com um arquivo \fB\fIsources.list\fB\fR(5) apropriado e o arquivo de preferências +acima, quaisquer um dos comandos a seguir farão com que o APT atualize +para a(s) ulítma(s) versão(ôes) stable\&. + +.nf +apt-get install \fInome-pacote\fR +apt-get upgrade +apt-get dist-upgrade +.fi +.PP +O comando a seguir fará com que o APT atualize o pacote +especificado para a última versão da distribuição testing; +o pacote não serpa atualizado novamente a menos que esse comando seja +executado novamente. + +.nf +apt-get install \fIpacote\fR/testing +.fi +.SS "ACOMPANHANDO A TESTING" +.PP +O arquivo de preferências do APT a seguir fará com que o APT atribua uma +prioridade maior para versões de pacote da distribuição testing, +uma prioridade menor para versões de pacotes da distribuição +unstable e uma prioridade proibitivamente baixa para versões de +pacotes de outras distribuições Debian\&. + +.nf +Package: * +Pin: release a=testing +Pin-Priority: 900 + +Package: * +Pin: release a=unstable +Pin-Priority: 800 + +Package: * +Pin: release o=Debian +Pin-Priority: -10 +.fi +.PP +Com um arquivo \fB\fIsources.list\fB\fR(5) adequado e o arquivo de preferências do APT +acima, quaisquer dos comandos a seguir farão com que o APT atualize para +a(s) última(s) versão(ões) testing\&. + +.nf +apt-get install \fInome-pacote\fR +apt-get upgrade +apt-get dist-upgrade +.fi +.PP +O comando a seguir fará com que o APT atualize o pacote especificado para +a última versão da distribuição unstable\&. Assim, o comando +\fBapt-get upgrade\fR irá atualizar o pacote para a versão +testing mais recente caso essa versão seja mais recente que a +versão instalada, caso não seja, o pacote será atualizado para a versão +unstable mais recente caso a mesma seja mais recente que a +versão instalada. + +.nf +apt-get install \fIpacote\fR/unstable +.fi +.SH "CONSULTE TAMBéM" +.PP +\fBapt-get\fR(8) \fBapt-cache\fR(8) \fB\fIapt.conf\fB\fR(5) \fB\fIsources.list\fB\fR(5) +.SH "BUGS" +.PP +Consulte a página de bugs do APT <URL:http://bugs.debian.org/apt>\&. +Caso você queira relatar um bug no APT, por favor consulte o arquivo +\fI/usr/share/doc/debian/bug-reporting.txt\fR ou o comando \fBreportbug\fR(1)\&. +.SH "AUTHOR" +.PP +O APT foi escrito pela equipe APT <apt@packages.debian.org>\&. +.SH "TRADUçãO" +.PP +Esta página de manual foi traduzida para o Português do Brasil por +André Luís Lopes <andrelop@ig.com.br>\&. diff --git a/doc/pt_BR/apt_preferences.pt_BR.5.sgml b/doc/pt_BR/apt_preferences.pt_BR.5.sgml new file mode 100644 index 0000000..212c43b --- /dev/null +++ b/doc/pt_BR/apt_preferences.pt_BR.5.sgml @@ -0,0 +1,589 @@ +<!-- -*- mode: sgml; mode: fold -*- --> +<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [ + +<!ENTITY % aptent SYSTEM "apt.ent.pt_BR"> +%aptent; + +]> + +<refentry lang="pt_BR"> + &apt-docinfo; + + <refmeta> + <refentrytitle>apt_preferences</> + <manvolnum>5</> + </refmeta> + + <!-- Man page title --> + <refnamediv> + <refname>apt_preferences</> + <refpurpose>Arquivo de controle de preferências para o APT</> + </refnamediv> + +<RefSect1> +<Title>Descrição + +O arquivo de preferências do APT /etc/apt/preferences +pode ser usado para controlar quais versões de pacotes serão +selecionadas para instalação. + + + +Diversas versões de um pacote podem estar disponíveis para +instalação quando o arquivo &sources-list; contém referências para +mais de uma distribuição (por exemplo, stable e +testing). O APT atribui uma prioridade para cada +versão que esteja disponível. Sujeito a obstáculos de dependências, o +apt-get seleciona para instalação a versão com a +maior prioridade. +O arquivo de preferências do APT sobrepoe as prioridades que o APT +atribui a cada versão de pacote por padrão, dando assim ao usuário +controle sobre qual versão do pacote é selecionada para instalação. + + +Diversas instâncias da mesma versão de um pacote pode estar disponíveis +quando o arquivo &sources-list; contém referências a mais de uma fonte. +Nesse caso, o apt-get faz o download da instância +listada antes no arquivo &sources-list; . +O arquivo de preferências do APT não afeta a escolha da instância. + + +Atribuições de Prioridade Padrão do APT</> + +<para> +Caso não exista um arquivo de preferências ou caso não exista uma +entrada no arquivo que se aplique a uma instância em particular, a +prioridade atribuída a essa instância é a prioridade da distribuição +para a qual a instância pertence. É possível selecionar uma distribuição, +conhecida como "a versão alvo" (the target release), que recebe uma +prioridade maior do que as outras distribuições. +A versão alvo pode ser definida na linha de comando do +<command>apt-get</command> ou no arquivo de configuração do APT +<filename>/etc/apt/apt.conf</filename>. +Por exemplo, +<programlisting> +<command>apt-get install -t testing <replaceable>algum-pacote</replaceable></command> +</programlisting> +<programlisting> +APT::Default-Release "stable"; +</programlisting> +</para> + +<para> +Caso uma versão alvo tenha sido especificada o APT usará o seguinte +algoritmo para definir as prioridades das instâncias de um pacote. +Atribuirá : +<variablelist> +<varlistentry> +<term>prioridade 100</term> +<listitem><simpara>para a instância que já esteja instalada (caso exista).</simpara></listitem> +</varlistentry> +<varlistentry> +<term>prioridade 500</term> +<listitem><simpara>para as instâncias que não estã instaladas e que não pertencem a versão alvo.</simpara></listitem> +</varlistentry> +<varlistentry> +<term>prioridade 990</term> +<listitem><simpara>para as instâncias que não estejam instaladas e pertençam a versão alvo.</simpara></listitem> +</varlistentry> +</variablelist> +</para> + +<para> +Caso nenhuma versão alvo tenha sido especificada, o APT simplesmente +irá atribuir a prioridade 100 para todas as instâncias de pacotes instaladas +e a prioridade 500 para todas as instâncias de pacotes não instaladas. +</para> + +<para> +O APT aplica as regras a seguir, listadas em ordem de precedência, para +determinar qual instância de um pacote instalar. +<itemizedlist> +<listitem><simpara>Nunca faz um downgrade a menos que a prioridade de +uma instância disponível exceda 1000. (Fazer um "downgrade" é instalar uma +versão menos recente de um pacote no lugar de uma versão mais recente. Note +que nenhuma das prioridades padrão do APT excede 1000; prioridades altas +como essa podem ser definidas somente no arquivo de preferências. Note +também que fazer um "downgrade" pode ser arriscado.)</simpara></listitem> +<listitem><simpara>Instala a instância de prioridade mais alta.</simpara></listitem> +<listitem><simpara>Caso duas ou mais instâncias possuam a mesma prioridade, +instala a instância mais recente (ou seja, aquela com o maior número de +versão).</simpara></listitem> +<listitem><simpara>Caso duas ou mais instâncias possuam a mesma prioridade +e número de versão mas os pacotes sejam diferentes em alguns de seus +metadados ou a opção <literal/--reinstall/ seja fornecida, instala aquela +desinstalada.</simpara></listitem> +</itemizedlist> +</para> + +<para> +Em uma situação típica, a instância instalada de um pacote +(prioridade 100) não é tão recente quanto uma das versões disponíveis +nas fontes listadas no arquivo &sources-list; (prioridade 500 ou 990). +Então o pacote será atualizado quando os comandos +<command>apt-get install <replaceable>algum-pacote</replaceable></command> +ou <command>apt-get dist-upgrade</command> forem executados. +</para> + +<para> +Mais raramente, a versão instalada de um pacote é <emphasis/mais/ +recente do que qualquer uma das outras versões disponíveis. O dowgrade +do pacote não será feito quando os comandos +<command>apt-get install <replaceable>algum-pacote</replaceable></command> +ou <command>apt-get upgrade</command> forem executados. +</para> + +<para> +Algumas vezes a versão instalada de um pacote é mais recente que a versão +que pertence a versão alvo, mas não tão recente quanto a versão que +pertence a alguma outra distribuição. Um pacote como esse será na verdade +atualizado quando os comandos +<command>apt-get install <replaceable>algum-pacote</replaceable></command> +ou <command>apt-get upgrade</command> forem executados, devido a pelo +menos <emphasis/uma/ das versões disponíveis possuir uma prioridade maior +do que a versão instalada. +</para> + +</RefSect2> + +<RefSect2><Title>O Efeito das Preferências do APT</> + +<para> +O arquivo de preferências do APT permite ao administrador do +sistema personalizar prioridades. O arquivo consiste de um ou mais +registros de múltiplas linhas separados por linhas em branco. Registros +podem possuir uma das duas formas, uma forma específica e uma forma geral. +<itemizedlist> +<listitem> +<simpara> +A forma específica atribui uma uma prioridade (uma "Pin-Priority") +para um pacote e versão ou faixa de versão especificados. Por exemplo, +o registro a seguir atribui uma prioridade alta para todas as versões do +pacote <filename/perl/ os quais tenham seus números de versão iniciando +com "<literal/5.8/". +</simpara> + +<programlisting> +Package: perl +Pin: version 5.8* +Pin-Priority: 1001 +</programlisting> +</listitem> + +<listitem><simpara> +O forma geral atribui uma prioridade para todas as versões de pacotes em +uma dada distribuição (isto é, para toda as versões de pacotes que estejam +em um certo arquivo <filename/Release/) ou para todas as versões de +pacotes que provenientes de um site Internet em particular, como +identificado pelo nome de domínio totalmente qualificado do site Internet. +</simpara> + +<simpara> +Essa entrada de forma geral no arquivo de preferências do APT +aplica-se somente a grupos de pacotes. Por exemplo, o registro a seguir +faz com que o APT atribua uma prioridade alta para todas as versões +de pacotes disponíveis no site local. +</simpara> + +<programlisting> +Package: * +Pin: origin "" +Pin-Priority: 999 +</programlisting> + +<simpara> +Uma nota de aviso : a palavra-chave usada aqui é "<literal/origin/". +Esta palavra não deve ser confundida com a origem ("Origin:") de uma +distribuição como especificado em um arquivo <filename/Release/. O que +segue a tag "Origin:" em um arquivo <filename/Release/ não é um endereço +de site Internet mas sim nome de autor ou distribuidor (vendor), como +"Debian" ou "Ximian". +</simpara> + +<simpara> +O registro a seguir atribui uma prioridade baixa para todas as versões +de pacote que pertençam a qualquer distribuição cujo nome do Repositório +seja "<literal/unstable/". +</simpara> + +<programlisting> +Package: * +Pin: release a=unstable +Pin-Priority: 50 +</programlisting> + +<simpara> +O registro a seguir atribui uma prioridade alta para todas as versões de +pacotes que pertençam a qualquer versão cujo nome do Repositório seja +"<literal/stable/" e cujo número de versão seja "<literal/3.0/". +</simpara> + +<programlisting> +Package: * +Pin: release a=unstable, v=3.0 +Pin-Priority: 50 +</programlisting> +</listitem> +</itemizedlist> +</para> + +</RefSect2> + +<RefSect2> +<Title>Como o APT Interpreta Prioridades + + +Prioridades (P) atribuídas no arquivo de preferências do APT devem ser +números inteiros positivos ou negativos. Eles são interpretados como a +seguir (a grosso modo): + + + +P > 1000 +faz com que uma instância seja instalada +mesmo caso isso constitua um dowgrade do pacote + + +990 < P <=1000 +faz com que uma versão seja instalada +mesmo caso a mesma não venha de uma versão alvo, +a menos que a versão instalada seja mais recente + + +500 < P <=990 +faz com que uma versão seja instalada +a menos que exista uma versão disponível pertencente a versão +alvo ou a versão instalada seja mais recente + + +100 < P <=500 +faz com que uma versão seja instalada +a menos que exista uma versão disponível pertencente a alguma +outra distribuição ou a versão instalada seja mais recente + +0 <= P <=100 +faz com que uma versão seja instalada +somente caso não exista uma versão instalada do pacote + + +P < 0 +impede a versão de ser instalada + + + + + +Caso um dos registro de forma específica descritos acima case (match) com +uma versão disponível do pacote então o primeiro desses registros +encontrados determinará a prioridade da versão do pacote. Na falha desse +cenário, caso quaisquer registros de forma genérica casem (match) com uma +versão do pacote disponível então o primeiro desses registros encontrado +determinará a prioridade da versão do pacote. + + + +Por exemplo, suponha que o arquivo de preferências do APT contenha +os três registros apresentados anteriormente : + + +Package: perl +Pin: version 5.8* +Pin-Priority: 1001 + +Package: * +Pin: origin "" +Pin-Priority: 999 + +Package: * +Pin: release unstable +Pin-Priority: 50 + + +Então : + + +A versão mais recente disponível do pacote + +Uma versão de qualquer pacote diferente de + +Uma versão de um pacote cuja origem não seja o sistema +local mas sim algum outro site listado no arquivo &sources-list; e que +pertença a uma distribuição + + + + + +Determinação da Versão do Pacote e Propriedades da Distribuição + + +As localidades listadas em um arquivo &sources-list; devem fornecer +arquivos Packages e Release para +descrever os pacotes disponíveis nessas localidades. + + + +O arquivo Packages é normalmente encontrado no +diretório .../dists/nome-distribuição/componente/arquitetura : +por exemplo, .../dists/stable/main/binary-i386/Packages. +O arquivo consiste de uma série de registros de múltiplas linhas, uma para +cada pacote disponível no diretório. Somente duas linhas em cada registro +são relevantes para definir prioridades do APT : + + +a linha +informa o nome do pacote + + +a linha +informa o número de versão do pacote + + + + + +O arquivo Release é normalmente encontrado no +diretório +.../dists/nome-distribuição : +por exemplo, .../dists/stable/Release, +ou .../dists/woody/Release. +O arquivo consiste de um registro de múltiplas linhas o qual se aplica a + + +a linha +dá nome ao repositório para o qual todos os pacotes +na àrvore de diretório pertencem. Por exemplo, a linha +"Archive: stable" +especifica que todos os pacotes na àrvore de diretório +abaixo do diretório pai do arquivo + +Pin: release a=stable + + + + + +a linha +dá nome a versão da distribuição. Por exemplo, os +pacote na àrvore podem pertencer a distribuição Debian GNU/Linux versão +3.0. Note que normalmente não existe número de versão para as +distribuições + + +Pin: release v=3.0 +Pin: release a=stable v=3.0 +Pin: release 3.0 + + + + + + +a linha +dá nome ao componente de licenciamento associado com +os pacotes na àrvore de diretório do arquivo + +Pin: release c=main + + + + + +a linha +dá nome ao produtor dos pacotes na àrvore de diretório +do arquivo + +Pin: release o=Debian + + + + + +a linha +dá nome ao rótulo (label) dos pacotes na árvore de +diretório. O mais comum é esse valor ser + +Pin: release l=Debian + + + + + + + +Todos os arquivos Packages e +Release obtidos das localidades listadas no arquivo +&sources-list; são mantidos no diretório +/var/lib/apt/lists ou no arquivo indicado pela variável +debian.lcs.mit.edu_debian_dists_unstable_contrib_binary-i386_Release +contém o arquivo Release obtido do site + + + + + +Linhas Opcionais em um Registro de Preferências do APT + + +Cada registro em um arquivo de preferências do APT pode opcionalmente +iniciar com uma ou mais linhas iniciadas com a palavra + + + +A linha + + + + +Exemplos + +Acompanhando a Stable + + +O arquivo de preferências do APT a seguir fará com que o APT atribua uma +prioridade maior do que a prioridade padrão (500) para todas as versões +de pacotes pertencentes a distribuição +Explanation: Desinstala ou não instala nenhuma versão de pacote originada +Explanation: do Debian a não ser aquelas na distribuição stable +Package: * +Pin: release a=stable +Pin-Priority: 900 + +Package: * +Pin: release o=Debian +Pin-Priority: -10 + + + + +Com um arquivo &sources-list; apropriado e o arquivo de preferências +acima, quaisquer um dos comandos a seguir farão com que o APT atualize +para a(s) ulítma(s) versão(ôes) +apt-get install nome-pacote +apt-get upgrade +apt-get dist-upgrade + + + + +O comando a seguir fará com que o APT atualize o pacote +especificado para a última versão da distribuição +apt-get install pacote/testing + + + + +Acompanhando a Testing + + +O arquivo de preferências do APT a seguir fará com que o APT atribua uma +prioridade maior para versões de pacote da distribuição +Package: * +Pin: release a=testing +Pin-Priority: 900 + +Package: * +Pin: release a=unstable +Pin-Priority: 800 + +Package: * +Pin: release o=Debian +Pin-Priority: -10 + + + + +Com um arquivo &sources-list; adequado e o arquivo de preferências do APT +acima, quaisquer dos comandos a seguir farão com que o APT atualize para +a(s) última(s) versão(ões) +apt-get install nome-pacote +apt-get upgrade +apt-get dist-upgrade + + + + +O comando a seguir fará com que o APT atualize o pacote especificado para +a última versão da distribuição apt-get upgrade irá atualizar o pacote para a versão + +apt-get install pacote/unstable + + + + + + + +Consulte também + +&apt-get; &apt-cache; &apt-conf; &sources-list; + + + + &manbugs; + &manauthor; + &ptbr-mantranslator; diff --git a/doc/pt_BR/makefile b/doc/pt_BR/makefile new file mode 100644 index 0000000..4c9ea62 --- /dev/null +++ b/doc/pt_BR/makefile @@ -0,0 +1,10 @@ +# -*- make -*- +BASE=../.. +SUBDIR=doc/pt_BR + +# Bring in the default rules +include ../../buildlib/defaults.mak + +SOURCE = apt_preferences.pt_BR.5 +INCLUDES = apt.ent.pt_BR +include $(SGML_MANPAGE_H) diff --git a/doc/pt_BR/manpage.links b/doc/pt_BR/manpage.links new file mode 100644 index 0000000..e69de29 diff --git a/doc/pt_BR/manpage.refs b/doc/pt_BR/manpage.refs new file mode 100644 index 0000000..b4d8bc5 --- /dev/null +++ b/doc/pt_BR/manpage.refs @@ -0,0 +1,3 @@ +{ + '' => '' +} diff --git a/doc/sources.list.5 b/doc/sources.list.5 new file mode 100644 index 0000000..4e95e2f --- /dev/null +++ b/doc/sources.list.5 @@ -0,0 +1,253 @@ +.\" Title: sources.list +.\" Author: Jason Gunthorpe +.\" Generator: DocBook XSL Stylesheets v1.71.0 +.\" Date: 29 February 2004 +.\" Manual: +.\" Source: Linux +.\" +.TH "SOURCES.LIST" "5" "29 February 2004" "Linux" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +sources.list \- Package resource list for APT +.SH "DESCRIPTION" +.PP +The package resource list is used to locate archives of the package distribution system in use on the system. At this time, this manual page documents only the packaging system used by the Debian GNU/Linux system. This control file is located in +\fI/etc/apt/sources.list\fR +.PP +The source list is designed to support any number of active sources and a variety of source media. The file lists one source per line, with the most preferred source listed first. The format of each line is: +type uri args +The first item, +type +determines the format for +args +uri +is a Universal Resource Identifier (URI), which is a superset of the more specific and well\-known Universal Resource Locator, or URL. The rest of the line can be marked as a comment by using a #. +.SH "SOURCES.LIST.D" +.PP +The +\fI/etc/apt/sources.list.d\fR +directory provides a way to add sources.list entries in seperate files that end with +.list. The format is the same as for the regular +\fIsources.list\fR +file. +.SH "THE DEB AND DEB\-SRC TYPES" +.PP +The +deb +type describes a typical two\-level Debian archive, +\fIdistribution/component\fR. Typically, +distribution +is generally one of +stable +unstable +or +testing +while component is one of +main +contrib +non\-free +or +non\-us +The +deb\-src +type describes a debian distribution's source code in the same form as the +deb +type. A +deb\-src +line is required to fetch source indexes. +.PP +The format for a +\fIsources.list\fR +entry using the +deb +and +deb\-src +types are: +.sp +.RS 3n +.nf +deb uri distribution [component1] [component2] [...] +.fi +.RE +.PP +The URI for the +deb +type must specify the base of the Debian distribution, from which APT will find the information it needs. +distribution +can specify an exact path, in which case the components must be omitted and +distribution +must end with a slash (/). This is useful for when only a particular sub\-section of the archive denoted by the URI is of interest. If +distribution +does not specify an exact path, at least one +component +must be present. +.PP +distribution +may also contain a variable, +$(ARCH) +which expands to the Debian architecture (i386, m68k, powerpc, ...) used on the system. This permits architecture\-independent +\fIsources.list\fR +files to be used. In general this is only of interest when specifying an exact path, +APT +will automatically generate a URI with the current architecture otherwise. +.PP +Since only one distribution can be specified per line it may be necessary to have multiple lines for the same URI, if a subset of all available distributions or components at that location is desired. APT will sort the URI list after it has generated a complete set internally, and will collapse multiple references to the same Internet host, for instance, into a single connection, so that it does not inefficiently establish an FTP connection, close it, do something else, and then re\-establish a connection to that same host. This feature is useful for accessing busy FTP sites with limits on the number of simultaneous anonymous users. APT also parallelizes connections to different hosts to more effectively deal with sites with low bandwidth. +.PP +It is important to list sources in order of preference, with the most preferred source listed first. Typically this will result in sorting by speed from fastest to slowest (CD\-ROM followed by hosts on a local network, followed by distant Internet hosts, for example). +.PP +Some examples: +.sp +.RS 3n +.nf +deb http://http.us.debian.org/debian stable main contrib non\-free +deb http://http.us.debian.org/debian dists/stable\-updates/ + +.fi +.RE +.SH "URI SPECIFICATION" +.PP +The currently recognized URI types are cdrom, file, http, and ftp. +.PP +file +.RS 3n +The file scheme allows an arbitrary directory in the file system to be considered an archive. This is useful for NFS mounts and local mirrors or archives. +.RE +.PP +cdrom +.RS 3n +The cdrom scheme allows APT to use a local CDROM drive with media swapping. Use the +\fBapt\-cdrom\fR(8) +program to create cdrom entries in the source list. +.RE +.PP +http +.RS 3n +The http scheme specifies an HTTP server for the archive. If an environment variable +\fBhttp_proxy\fR +is set with the format http://server:port/, the proxy server specified in +\fBhttp_proxy\fR +will be used. Users of authenticated HTTP/1.1 proxies may use a string of the format http://user:pass@server:port/ Note that this is an insecure method of authentication. +.RE +.PP +ftp +.RS 3n +The ftp scheme specifies an FTP server for the archive. APT's FTP behavior is highly configurable; for more information see the +\fBapt.conf\fR(5) +manual page. Please note that a ftp proxy can be specified by using the +\fBftp_proxy\fR +environment variable. It is possible to specify a http proxy (http proxy servers often understand ftp urls) using this method and ONLY this method. ftp proxies using http specified in the configuration file will be ignored. +.RE +.PP +copy +.RS 3n +The copy scheme is identical to the file scheme except that packages are copied into the cache directory instead of used directly at their location. This is useful for people using a zip disk to copy files around with APT. +.RE +.PP +rsh, ssh +.RS 3n +The rsh/ssh method invokes rsh/ssh to connect to a remote host as a given user and access the files. No password authentication is possible, prior arrangements with RSA keys or rhosts must have been made. Access to files on the remote uses standard +\fBfind\fR +and +\fBdd\fR +commands to perform the file transfers from the remote. +.RE +.SH "EXAMPLES" +.PP +Uses the archive stored locally (or NFS mounted) at /home/jason/debian for stable/main, stable/contrib, and stable/non\-free. +.sp +.RS 3n +.nf +deb file:/home/jason/debian stable main contrib non\-free +.fi +.RE +.PP +As above, except this uses the unstable (development) distribution. +.sp +.RS 3n +.nf +deb file:/home/jason/debian unstable main contrib non\-free +.fi +.RE +.PP +Source line for the above +.sp +.RS 3n +.nf +deb\-src file:/home/jason/debian unstable main contrib non\-free +.fi +.RE +.PP +Uses HTTP to access the archive at archive.debian.org, and uses only the hamm/main area. +.sp +.RS 3n +.nf +deb http://archive.debian.org/debian\-archive hamm main +.fi +.RE +.PP +Uses FTP to access the archive at ftp.debian.org, under the debian directory, and uses only the stable/contrib area. +.sp +.RS 3n +.nf +deb ftp://ftp.debian.org/debian stable contrib +.fi +.RE +.PP +Uses FTP to access the archive at ftp.debian.org, under the debian directory, and uses only the unstable/contrib area. If this line appears as well as the one in the previous example in +\fIsources.list\fR. a single FTP session will be used for both resource lines. +.sp +.RS 3n +.nf +deb ftp://ftp.debian.org/debian unstable contrib +.fi +.RE +.PP +Uses HTTP to access the archive at nonus.debian.org, under the debian\-non\-US directory. +.sp +.RS 3n +.nf +deb http://nonus.debian.org/debian\-non\-US stable/non\-US main contrib non\-free +.fi +.RE +.PP +Uses HTTP to access the archive at nonus.debian.org, under the debian\-non\-US directory, and uses only files found under +\fIunstable/binary\-i386\fR +on i386 machines, +\fIunstable/binary\-m68k\fR +on m68k, and so forth for other supported architectures. [Note this example only illustrates how to use the substitution variable; non\-us is no longer structured like this] +.sp +.RS 3n +.nf +deb http://ftp.de.debian.org/debian\-non\-US unstable/binary\-$(ARCH)/ +.fi +.RE +.sp +.SH "SEE ALSO" +.PP +\fBapt\-cache\fR(8) +\fBapt.conf\fR(5) +.SH "BUGS" +.PP +[1]\&\fIAPT bug page\fR. If you wish to report a bug in APT, please see +\fI/usr/share/doc/debian/bug\-reporting.txt\fR +or the +\fBreportbug\fR(1) +command. +.SH "AUTHORS" +.PP +\fBJason Gunthorpe\fR +.sp -1n +.IP "" 3n +Author. +.PP +\fBAPT team\fR +.sp -1n +.IP "" 3n +Author. +.SH "REFERENCES" +.TP 3 +1.\ APT bug page +\%http://bugs.debian.org/src:apt diff --git a/doc/sources.list.5.xml b/doc/sources.list.5.xml new file mode 100644 index 0000000..e47418b --- /dev/null +++ b/doc/sources.list.5.xml @@ -0,0 +1,224 @@ + + +%aptent; + +]> + + + + + &apt-author.jgunthorpe; + &apt-author.team; + &apt-email; + &apt-product; + + 29 February 2004 + + + + sources.list + 5 + + + + + sources.list + Package resource list for APT + + + Description + The package resource list is used to locate archives of the package + distribution system in use on the system. At this time, this manual page + documents only the packaging system used by the Debian GNU/Linux system. + This control file is located in /etc/apt/sources.list + + The source list is designed to support any number of active sources and a + variety of source media. The file lists one source per line, with the + most preferred source listed first. The format of each line is: + type uri args The first item, type + determines the format for args uri is + a Universal Resource Identifier + (URI), which is a superset of the more specific and well-known Universal + Resource Locator, or URL. The rest of the line can be marked as a comment + by using a #. + + + sources.list.d + The /etc/apt/sources.list.d directory provides + a way to add sources.list entries in seperate files that end with + .list. The format is the same as for the regular + sources.list file. + + + The deb and deb-src types + The deb type describes a typical two-level Debian + archive, distribution/component. Typically, + distribution is generally one of + stable unstable or + testing while component is one of main + contrib non-free or + non-us The + deb-src type describes a debian distribution's source + code in the same form as the deb type. + A deb-src line is required to fetch source indexes. + + + The format for a sources.list entry using the + deb and deb-src types are: + + deb uri distribution [component1] [component2] [...] + + The URI for the deb type must specify the base of the + Debian distribution, from which APT will find the information it needs. + distribution can specify an exact path, in which case the + components must be omitted and distribution must end with + a slash (/). This is useful for when only a particular sub-section of the + archive denoted by the URI is of interest. + If distribution does not specify an exact path, at least + one component must be present. + + distribution may also contain a variable, + $(ARCH) + which expands to the Debian architecture (i386, m68k, powerpc, ...) + used on the system. This permits architecture-independent + sources.list files to be used. In general this is only + of interest when specifying an exact path, APT will + automatically generate a URI with the current architecture otherwise. + + Since only one distribution can be specified per line it may be necessary + to have multiple lines for the same URI, if a subset of all available + distributions or components at that location is desired. + APT will sort the URI list after it has generated a complete set + internally, and will collapse multiple references to the same Internet + host, for instance, into a single connection, so that it does not + inefficiently establish an FTP connection, close it, do something else, + and then re-establish a connection to that same host. This feature is + useful for accessing busy FTP sites with limits on the number of + simultaneous anonymous users. APT also parallelizes connections to + different hosts to more effectively deal with sites with low bandwidth. + + It is important to list sources in order of preference, with the most + preferred source listed first. Typically this will result in sorting + by speed from fastest to slowest (CD-ROM followed by hosts on a local + network, followed by distant Internet hosts, for example). + + Some examples: + +deb http://http.us.debian.org/debian stable main contrib non-free +deb http://http.us.debian.org/debian dists/stable-updates/ + + + + + URI specification + + The currently recognized URI types are cdrom, file, http, and ftp. + + file + + The file scheme allows an arbitrary directory in the file system to be + considered an archive. This is useful for NFS mounts and local mirrors or + archives. + + + cdrom + + The cdrom scheme allows APT to use a local CDROM drive with media + swapping. Use the &apt-cdrom; program to create cdrom entries in the + source list. + + + http + + The http scheme specifies an HTTP server for the archive. If an environment + variable http_proxy is set with the format + http://server:port/, the proxy server specified in + http_proxy will be used. Users of authenticated + HTTP/1.1 proxies may use a string of the format + http://user:pass@server:port/ + Note that this is an insecure method of authentication. + + + ftp + + The ftp scheme specifies an FTP server for the archive. APT's FTP behavior + is highly configurable; for more information see the + &apt-conf; manual page. Please note that a ftp proxy can be specified + by using the ftp_proxy environment variable. It is possible + to specify a http proxy (http proxy servers often understand ftp urls) + using this method and ONLY this method. ftp proxies using http specified in + the configuration file will be ignored. + + + copy + + The copy scheme is identical to the file scheme except that packages are + copied into the cache directory instead of used directly at their location. + This is useful for people using a zip disk to copy files around with APT. + + + rshssh + + The rsh/ssh method invokes rsh/ssh to connect to a remote host + as a given user and access the files. No password authentication is + possible, prior arrangements with RSA keys or rhosts must have been made. + Access to files on the remote uses standard find and + dd + commands to perform the file transfers from the remote. + + + + + + Examples + Uses the archive stored locally (or NFS mounted) at /home/jason/debian + for stable/main, stable/contrib, and stable/non-free. + deb file:/home/jason/debian stable main contrib non-free + + As above, except this uses the unstable (development) distribution. + deb file:/home/jason/debian unstable main contrib non-free + + Source line for the above + deb-src file:/home/jason/debian unstable main contrib non-free + + Uses HTTP to access the archive at archive.debian.org, and uses only + the hamm/main area. + deb http://archive.debian.org/debian-archive hamm main + + Uses FTP to access the archive at ftp.debian.org, under the debian + directory, and uses only the stable/contrib area. + deb ftp://ftp.debian.org/debian stable contrib + + Uses FTP to access the archive at ftp.debian.org, under the debian + directory, and uses only the unstable/contrib area. If this line appears as + well as the one in the previous example in sources.list. + a single FTP session will be used for both resource lines. + deb ftp://ftp.debian.org/debian unstable contrib + + Uses HTTP to access the archive at nonus.debian.org, under the + debian-non-US directory. + deb http://nonus.debian.org/debian-non-US stable/non-US main contrib non-free + + Uses HTTP to access the archive at nonus.debian.org, under the + debian-non-US directory, and uses only files found under + unstable/binary-i386 on i386 machines, + unstable/binary-m68k on m68k, and so + forth for other supported architectures. [Note this example only + illustrates how to use the substitution variable; non-us is no longer + structured like this] + deb http://ftp.de.debian.org/debian-non-US unstable/binary-$(ARCH)/ + + + + See Also + &apt-cache; &apt-conf; + + + + &manbugs; + + + diff --git a/doc/style.txt b/doc/style.txt new file mode 100644 index 0000000..8d0778b --- /dev/null +++ b/doc/style.txt @@ -0,0 +1,75 @@ +Acronyms +~~~~~~~~ +* dpkg is a 'word' the first d may be upper case - Dpkg +* APT is a proper Acronym, all upper case please. + +Pkg - A Package +Ver - A version + +Indenting, Comments, Etc +~~~~~~~~~~~~~~~~~~~~~~~~ +Would make Linus cry :P However it is what I prefer. 3 space indent, +8 space tab all braces on seperate lines, function return on the same line +as the function, cases aligned with their code. The 'indent' options for +this style are: + indent -bl -bli0 -di1 -i3 -nsc -ts8 -npcs -npsl + +Each file gets a block at the top that should describe what the file does, +basically a summary of purpose along with any special notes and +attributions. The }}} and {{{ are folding marks if you have a folding +editor such as jed, the function seperators are intended to give +a visual seperate between functions for easier browsing of the larger files, +or indexed folding if you have such an editor. + +Each file should have 1 or 0 primary include files, that include +file must always be the first include file included by the .cc. G++ +#pragma interface/implementation is used, as well as anti-include-twice +#ifdefs. + +Include files, since there are so many, get their own subdirectory off +the include search path, this is used consistently throughout all the code. +#include "" should never be used for a global exported header file, only +local ones. + +C++ Features +~~~~~~~~~~~~ +Due to the legacy compiler heritage, exceptions, RTTI and name spaces are +not used. Templates are used *sparingly* since G++ has traditionally had +very weak support for them, this includes STL templates. + +Namespaces will probably be put in the code sometime after G++ 3, which will +be a huge re-org again to make sanity, the majority of all nested things +will go away. + +The C++ standard library's non parameterized types (string is included in +this) are used freely when appropriate. + +The new C++ #include (note the lack of a .h) is used for the +standard library, but not for my code. + +Arguments and Ownership +~~~~~~~~~~~~~~~~~~~~~~~ +[much of the code follows this now] +These guidlines should be followed except in two cases.. the first +is where it makes no sense, such as in a casting operator and the second is to +retain API compatibility (this should be rare, since a change in the input +almost always designates a change in ownership rules). + + * Pass by value or pass by reference should borrow the object from the + caller + * Pass by non-const reference may be used to indicate a OUT type variable + * Pass by pointer (except in the case where the pointer is really an array) + should be used when the object will be retained or ownership will be + transfered. Ownership transference should be rare and noted by a comment. + * Standard C things (FILE * etc) should be left as is. + + * Return by references should indicate a borrowed object + * Return by pointer (except arrays) should indicate ownership is + transfered. Return by pointer should not be used unless ownership is + transfered. + * Return by pointer to variable indicates ownership transfer unless the + pointer is an 'input' parameter (designated generally by an =0, + indicating a default of 'none') + +Non-ownership transfering arrays/lists should probably return an iterator +typedef or references.. diff --git a/dselect/desc.apt b/dselect/desc.apt new file mode 100644 index 0000000..5601919 --- /dev/null +++ b/dselect/desc.apt @@ -0,0 +1,9 @@ +The APT installation method encompasses most other installation methods +under the umbrella of the new Package Acquisition code. This method allows +installation from locations in the filesystem, ftp and http URLs, supports +full installation ordering and dependency checking as well as multiple +sources. See the man pages apt-get(8) and sources.list(5) + +HTTP proxies can be used by setting http_proxy="http://proxy:port/" before +running DSelect. FTP proxies require special configuration detailed in +the apt.conf(5) man page (see /usr/share/doc/apt/examples/apt.conf) diff --git a/dselect/install b/dselect/install new file mode 100755 index 0000000..d9d6651 --- /dev/null +++ b/dselect/install @@ -0,0 +1,109 @@ +#!/bin/bash + +# Set the textdomain for the translations using $"..." +TEXTDOMAIN="apt" + +# Get the configuration from /etc/apt/apt.conf +CLEAN="prompt" +OPTS="-f" +APTGET="/usr/bin/apt-get" +DPKG="/usr/bin/dpkg" +DPKG_OPTS="--admindir=$1" +APT_OPT0="-oDir::State::status=$1/status" +APT_OPT1="-oDPkg::Options::=$DPKG_OPTS" +set -e +RES=`apt-config shell CLEAN DSelect::Clean OPTS DSelect::Options \ + DPKG Dir::Bin::dpkg/f APTGET Dir::Bin::apt-get/f \ + ARCHIVES Dir::Cache::Archives/d \ + WAIT DSelect::WaitAfterDownload/b \ + CHECKDIR DSelect::CheckDir/b` +eval $RES +set +e + +# Yes/No Prompter +yesno() { +# $1 = prompt +# $2 = default(y) + local ans def defp + if [ "$2" ];then + case $2 in + Y|y) defp="[Y/n]" def=y;; + N|n) defp="[y/N]" def=n;; + *) echo $"Bad default setting!" 1>&2; exit 1;; + esac + else + defp="[y/N]" def=n + fi + while :;do + echo -n "$1 $defp " 1>&3 + read ans + case $ans in + Y|y|N|n) break;; + "") ans=$def;break;; + esac + echo + done + echo $ans | tr YN yn +} + +if [ x$WAIT = "xtrue" ]; then + $APTGET $OPTS "$APT_OPT0" "$APT_OPT1" -d dselect-upgrade + echo $"Press enter to continue." && read RES + $APTGET $OPTS "$APT_OPT0" "$APT_OPT1" dselect-upgrade + RES=$? +else + $APTGET $OPTS "$APT_OPT0" "$APT_OPT1" dselect-upgrade + RES=$? +fi + +# 1 means the user choose no at the prompt +if [ $RES -eq 1 ]; then + exit 0 +fi + +# Finished OK +if [ $RES -eq 0 ]; then + + if [ `ls $ARCHIVES $ARCHIVES/partial | egrep -v "^lock$|^partial$" | wc -l` \ + -eq 0 ]; then + exit 0 + fi + + NEWLS=`ls -ld $ARCHIVES` + if [ x$CHECKDIR = "xtrue" ]; then + if [ "x$OLDLS" = "x$NEWLS" ]; then + exit 0 + fi + fi + + # Check the cleaning mode + case `echo $CLEAN | tr '[:upper:]' '[:lower:]'` in + auto) + $APTGET "$APT_OPT0" "$APT_OPT1" autoclean && + echo $"Press enter to continue." && read RES && exit 0; + ;; + always) + $APTGET "$APT_OPT0" "$APT_OPT1" clean && + echo $"Press enter to continue." && read RES && exit 0; + ;; + prompt) + exec 3>&1 + if [ `yesno $"Do you want to erase any previously downloaded .deb files?" y` = y ]; then + $APTGET "$APT_OPT0" "$APT_OPT1" clean && + echo $"Press enter to continue." && read RES && exit 0; + fi + ;; + *) + ;; + esac +else + echo $"Some errors occurred while unpacking. I'm going to configure the" + echo $"packages that were installed. This may result in duplicate errors" + echo $"or errors caused by missing dependencies. This is OK, only the errors" + echo $"above this message are important. Please fix them and run [I]nstall again" + echo $"Press enter to continue." + read RES && $DPKG "$DPKG_OPTS" --configure -a + exit 100 +fi + +exit $? diff --git a/dselect/makefile b/dselect/makefile new file mode 100644 index 0000000..c2059f9 --- /dev/null +++ b/dselect/makefile @@ -0,0 +1,17 @@ +# -*- make -*- +BASE=.. +SUBDIR=dselect + +# Bring in the default rules +include ../buildlib/defaults.mak + +# DSelect interfacing directory +SOURCE = desc.apt install names setup update +TO = $(BUILD)/scripts/dselect +TARGET = program +include $(COPY_H) + +LOCAL = dselect +SOURCE = install update +TYPE = sh +include $(PODOMAIN_H) diff --git a/dselect/names b/dselect/names new file mode 100644 index 0000000..8daa537 --- /dev/null +++ b/dselect/names @@ -0,0 +1 @@ +70 apt APT Acquisition [file,http,ftp] diff --git a/dselect/setup b/dselect/setup new file mode 100755 index 0000000..8689d23 --- /dev/null +++ b/dselect/setup @@ -0,0 +1,286 @@ +#!/usr/bin/perl -w +# -*- Mode: Perl -*- +# setup.pl --- +# Author : Manoj Srivastava ( srivasta@tiamat.datasync.com ) +# Created On : Wed Mar 4 15:11:47 1998 +# Created On Node : tiamat.datasync.com +# Last Modified By : Manoj Srivastava +# Last Modified On : Tue May 19 11:25:32 1998 +# Last Machine Used: tiamat.datasync.com +# Update Count : 87 +# Status : Unknown, Use with caution! +# HISTORY : +# Description : +# This file is designed to go into /usr/lib/apt/methods/setup +# + +#use strict; +#use diagnostics; +#printf STDERR "DEBUG: Arguments $ARGV[0];$ARGV[1];$ARGV[2];\n"; + + +# Handle the arguments +my $vardir=$ARGV[0]; +my $method=$ARGV[1]; +my $option=$ARGV[2]; +my $config_file = '/etc/apt/sources.list'; + +my $boldon=`setterm -bold on`; +my $boldoff=`setterm -bold off`; + +my @known_types = ('deb'); +my @known_access = ('http', 'ftp', 'file'); +my @typical_distributions = ('stable', 'unstable', 'testing', 'non-US'); +my @typical_components = ('main', 'contrib', 'non-free'); + +my %known_access = map {($_,$_)} @known_access; +my %typical_distributions = map {($_,$_)} @typical_distributions; + +# Read the config file, creating source records +sub read_config { + my %params = @_; + my @Config = (); + + die "Required parameter Filename Missing" unless + $params{'Filename'}; + + open (CONFIG, "$params{'Filename'}") || + die "Could not open $params{'Filename'}: $!"; + while () { + chomp; + my $rec = {}; + my ($type, $urn, $distribution, $components) = + m/^\s*(\S+)\s+(\S+)\s+(\S+)\s*(?:\s+(\S.*))?$/o; + $rec->{'Type'} = $type; + $rec->{'URN'} = $urn; + $rec->{'Distribution'} = $distribution; + $rec->{'Components'} = $components; + push @Config, $rec; + } + close(CONFIG); + + return @Config; +} + +# write the config file; writing out the current set of source records +sub write_config { + my %params = @_; + my $rec; + my %Seen = (); + + die "Required parameter Filename Missing" unless + $params{'Filename'}; + die "Required parameter Config Missing" unless + $params{'Config'}; + + open (CONFIG, ">$params{'Filename'}") || + die "Could not open $params{'Filename'} for writing: $!"; + for $rec (@{$params{'Config'}}) { + my $line = "$rec->{'Type'} $rec->{'URN'} $rec->{'Distribution'} "; + $line .= "$rec->{'Components'}" if $rec->{'Components'}; + $line .= "\n"; + print CONFIG $line unless $Seen{$line}++; + } + close(CONFIG); +} + +# write the config file; writing out the current set of source records +sub print_config { + my %params = @_; + my $rec; + my %Seen = (); + + die "Required parameter Config Missing" unless + $params{'Config'}; + + for $rec (@{$params{'Config'}}) { + next unless $rec; + + my $line = "$rec->{'Type'} " if $rec->{'Type'}; + $line .= "$rec->{'URN'} " if $rec->{'URN'}; + $line .= "$rec->{'Distribution'} " if $rec->{'Distribution'}; + $line .= "$rec->{'Components'}" if $rec->{'Components'}; + $line .= "\n"; + print $line unless $Seen{$line}++; + } +} + +# Ask for and add a source record +sub get_source { + my %params = @_; + my $rec = {}; + my $answer; + my ($type, $urn, $distribution, $components); + + if ($params{'Default'}) { + ($type, $urn, $distribution, $components) = + $params{'Default'} =~ m/^\s*(\S+)\s+(\S+)\s+(\S+)\s+(\S.*)$/o; + } + + $type = 'deb'; + $urn = "http://http.us.debian.org/debian" unless $urn; + $distribution = "stable" unless $distribution; + $components = "main contrib non-free" unless $components; + + + $rec->{'Type'} = 'deb'; + $| = 1; + + my $done = 0; + + while (!$done) { + print "\n"; + print "$boldon URL [$urn]: $boldoff"; + + $answer=; + chomp ($answer); + $answer =~ s/\s*//og; + + if ($answer =~ /^\s*$/o) { + $rec->{'URN'} = $urn; + last; + } + else { + my ($scheme) = $answer =~ /^\s*([^:]+):/o; + if (! defined $known_access{$scheme}) { + print "Unknown access scheme $scheme in $answer\n"; + print " The available access methods known to me are\n"; + print join (' ', @known_access), "\n"; + print "\n"; + } + else { + $rec->{'URN'} = $answer; + last; + } + } + } + + print "\n"; + + print " Please give the distribution tag to get or a path to the\n"; + print " package file ending in a /. The distribution\n"; + print " tags are typically something like:$boldon "; + print join(' ', @typical_distributions), "$boldoff\n"; + print "\n"; + print "$boldon Distribution [$distribution]:$boldoff "; + $answer=; + chomp ($answer); + $answer =~ s/\s*//og; + + if ($answer =~ /^\s*$/o) { + $rec->{'Distribution'} = $distribution; + $rec->{'Components'} = &get_components($components); + } + elsif ($answer =~ m|/$|o) { + $rec->{'Distribution'} = "$answer"; + $rec->{'Components'} = ""; + } + else { + # A distribution tag, eh? + warn "$answer does not seem to be a typical distribution tag\n" + unless defined $typical_distributions{$answer}; + + $rec->{'Distribution'} = "$answer"; + $rec->{'Components'} = &get_components($components); + } + + return $rec; +} + +sub get_components { + my $default = shift; + my $answer; + + print "\n"; + print " Please give the components to get\n"; + print " The components are typically something like:$boldon "; + print join(' ', @typical_components), "$boldoff\n"; + print "\n"; + print "$boldon Components [$default]:$boldoff "; + $answer=; + chomp ($answer); + $answer =~ s/\s+/ /og; + + if ($answer =~ /^\s*$/o) { + return $default; + } + else { + return $answer; + } +} + +sub get_sources { + my @Config = (); + my $done = 0; + + my @Oldconfig = (); + + if (-e $config_file) { + @Oldconfig = &read_config('Filename' => $config_file) + } + + print "\t$boldon Set up a list of distribution source locations $boldoff \n"; + print "\n"; + + print " Please give the base URL of the debian distribution.\n"; + print " The access schemes I know about are:$boldon "; + print join (' ', @known_access), "$boldoff\n"; +# print " The mirror scheme is special that it does not specify the\n"; +# print " location of a debian archive but specifies the location\n"; +# print " of a list of mirrors to use to access the archive.\n"; + print "\n"; + print " For example:\n"; + print " file:/mnt/debian,\n"; + print " ftp://ftp.debian.org/debian,\n"; + print " http://ftp.de.debian.org/debian,\n"; +# print " and the special mirror scheme,\n"; +# print " mirror:http://www.debian.org/archivemirrors \n"; + print "\n"; + + my $index = 0; + while (!$done) { + if ($Oldconfig[$index]) { + push (@Config, &get_source('Default' => $Oldconfig[$index++])); + } + else { + push (@Config, &get_source()); + } + print "\n"; + print "$boldon Would you like to add another source?[y/N]$boldoff "; + my $answer = ; + chomp ($answer); + $answer =~ s/\s+/ /og; + if ($answer =~ /^\s*$/o) { + last; + } + elsif ($answer !~ m/\s*y/io) { + last; + } + } + + return @Config; +} + +sub main { + if (-e $config_file) { + my @Oldconfig = &read_config('Filename' => $config_file); + + print "$boldon I see you already have a source list.$boldoff\n"; + print "-" x 72, "\n"; + &print_config('Config' => \@Oldconfig); + print "-" x 72, "\n"; + print "$boldon Do you wish to overwrite it? [y/N]$boldoff "; + my $answer = ; + chomp ($answer); + $answer =~ s/\s+/ /og; + exit 0 unless $answer =~ m/\s*y/io; + } + # OK. They want to be here. + my @Config = &get_sources(); + #&print_config('Config' => \@Config); + &write_config('Config' => \@Config, 'Filename' => $config_file); +} + +&main(); + + diff --git a/dselect/update b/dselect/update new file mode 100755 index 0000000..411033c --- /dev/null +++ b/dselect/update @@ -0,0 +1,48 @@ +#!/bin/bash +set -e + +# Set the textdomain for the translations using $"..." +TEXTDOMAIN="apt" + +# Get the configuration from /etc/apt/apt.conf +CLEAN="prompt" +OPTS="-f" +APTGET="/usr/bin/apt-get" +APTCACHE="/usr/bin/apt-cache" +DPKG="/usr/bin/dpkg" +DPKG_OPTS="--admindir=$1" +APT_OPT0="-oDir::State::status=$1/status" +APT_OPT1="-oDPkg::Options::=$DPKG_OPTS" +CACHEDIR="/var/cache/apt" +PROMPT="false" +RES=`apt-config shell CLEAN DSelect::Clean OPTS DSelect::UpdateOptions \ + DPKG Dir::Bin::dpkg/f APTGET Dir::Bin::apt-get/f \ + APTCACHE Dir::Bin::apt-cache/f CACHEDIR Dir::Cache/d \ + PROMPT DSelect::PromptAfterUpdate/b` +eval $RES + +# It looks slightly ugly to have a double / in the dpkg output +CACHEDIR=`echo $CACHEDIR | sed -e "s|/$||"` + +STATUS=1 +if $APTGET $OPTS "$APT_OPT0" "$APT_OPT1" update +then + echo $"Merging available information" + rm -f $CACHEDIR/available + $APTCACHE dumpavail > $CACHEDIR/available + $DPKG "$DPKG_OPTS" --update-avail $CACHEDIR/available + rm -f $CACHEDIR/available + + case "$CLEAN" in + Pre-Auto|PreAuto|pre-auto) + $APTGET "$APT_OPT0" "$APT_OPT1" autoclean;; + esac + + STATUS=0 +fi + +if [ x$PROMPT = "xtrue" ]; then + echo $"Press enter to continue." && read RES; +fi + +exit $STATUS diff --git a/ftparchive/apt-ftparchive.cc b/ftparchive/apt-ftparchive.cc new file mode 100644 index 0000000..0e2be8a --- /dev/null +++ b/ftparchive/apt-ftparchive.cc @@ -0,0 +1,964 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: apt-ftparchive.cc,v 1.8.2.3 2004/01/02 22:01:48 mdz Exp $ +/* ###################################################################### + + apt-scanpackages - Efficient work-alike for dpkg-scanpackages + + Let contents be disabled from the conf + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "apt-ftparchive.h" +#endif + +#include "apt-ftparchive.h" + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "contents.h" +#include "multicompress.h" +#include "writer.h" + /*}}}*/ + +using namespace std; +ostream c0out(0); +ostream c1out(0); +ostream c2out(0); +ofstream devnull("/dev/null"); +unsigned Quiet = 0; + +// struct PackageMap - List of all package files in the config file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +struct PackageMap +{ + // General Stuff + string BaseDir; + string InternalPrefix; + string FLFile; + string PkgExt; + string SrcExt; + + // Stuff for the Package File + string PkgFile; + string BinCacheDB; + string BinOverride; + string ExtraOverride; + + // We generate for this given arch + string Arch; + + // Stuff for the Source File + string SrcFile; + string SrcOverride; + string SrcExtraOverride; + + // Contents + string Contents; + string ContentsHead; + + // Random things + string Tag; + string PkgCompress; + string CntCompress; + string SrcCompress; + string PathPrefix; + unsigned int DeLinkLimit; + mode_t Permissions; + + bool ContentsDone; + bool PkgDone; + bool SrcDone; + time_t ContentsMTime; + + struct ContentsCompare : public binary_function + { + inline bool operator() (const PackageMap &x,const PackageMap &y) + {return x.ContentsMTime < y.ContentsMTime;}; + }; + + struct DBCompare : public binary_function + { + inline bool operator() (const PackageMap &x,const PackageMap &y) + {return x.BinCacheDB < y.BinCacheDB;}; + }; + + void GetGeneral(Configuration &Setup,Configuration &Block); + bool GenPackages(Configuration &Setup,struct CacheDB::Stats &Stats); + bool GenSources(Configuration &Setup,struct CacheDB::Stats &Stats); + bool GenContents(Configuration &Setup, + vector::iterator Begin, + vector::iterator End, + unsigned long &Left); + + PackageMap() : DeLinkLimit(0), Permissions(1), ContentsDone(false), + PkgDone(false), SrcDone(false), ContentsMTime(0) {}; +}; + /*}}}*/ + +// PackageMap::GetGeneral - Common per-section definitions /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void PackageMap::GetGeneral(Configuration &Setup,Configuration &Block) +{ + PathPrefix = Block.Find("PathPrefix"); + + if (Block.FindB("External-Links",true) == false) + DeLinkLimit = Setup.FindI("Default::DeLinkLimit",UINT_MAX); + else + DeLinkLimit = 0; + + PkgCompress = Block.Find("Packages::Compress", + Setup.Find("Default::Packages::Compress",". gzip").c_str()); + CntCompress = Block.Find("Contents::Compress", + Setup.Find("Default::Contents::Compress",". gzip").c_str()); + SrcCompress = Block.Find("Sources::Compress", + Setup.Find("Default::Sources::Compress",". gzip").c_str()); + + SrcExt = Block.Find("Sources::Extensions", + Setup.Find("Default::Sources::Extensions",".dsc").c_str()); + PkgExt = Block.Find("Packages::Extensions", + Setup.Find("Default::Packages::Extensions",".deb").c_str()); + + Permissions = Setup.FindI("Default::FileMode",0644); + + if (FLFile.empty() == false) + FLFile = flCombine(Setup.Find("Dir::FileListDir"),FLFile); + + if (Contents == " ") + Contents= string(); +} + /*}}}*/ +// PackageMap::GenPackages - Actually generate a Package file /*{{{*/ +// --------------------------------------------------------------------- +/* This generates the Package File described by this object. */ +bool PackageMap::GenPackages(Configuration &Setup,struct CacheDB::Stats &Stats) +{ + if (PkgFile.empty() == true) + return true; + + string ArchiveDir = Setup.FindDir("Dir::ArchiveDir"); + string OverrideDir = Setup.FindDir("Dir::OverrideDir"); + string CacheDir = Setup.FindDir("Dir::CacheDir"); + + struct timeval StartTime; + gettimeofday(&StartTime,0); + + PkgDone = true; + + // Create a package writer object. + PackagesWriter Packages(flCombine(CacheDir,BinCacheDB), + flCombine(OverrideDir,BinOverride), + flCombine(OverrideDir,ExtraOverride), + Arch); + if (PkgExt.empty() == false && Packages.SetExts(PkgExt) == false) + return _error->Error(_("Package extension list is too long")); + if (_error->PendingError() == true) + return _error->Error(_("Error processing directory %s"),BaseDir.c_str()); + + Packages.PathPrefix = PathPrefix; + Packages.DirStrip = ArchiveDir; + Packages.InternalPrefix = flCombine(ArchiveDir,InternalPrefix); + + Packages.Stats.DeLinkBytes = Stats.DeLinkBytes; + Packages.DeLinkLimit = DeLinkLimit; + + // Create a compressor object + MultiCompress Comp(flCombine(ArchiveDir,PkgFile), + PkgCompress,Permissions); + Packages.Output = Comp.Input; + if (_error->PendingError() == true) + return _error->Error(_("Error processing directory %s"),BaseDir.c_str()); + + c0out << ' ' << BaseDir << ":" << flush; + + // Do recursive directory searching + if (FLFile.empty() == true) + { + if (Packages.RecursiveScan(flCombine(ArchiveDir,BaseDir)) == false) + return false; + } + else + { + if (Packages.LoadFileList(ArchiveDir,FLFile) == false) + return false; + } + + Packages.Output = 0; // Just in case + + // Finish compressing + unsigned long Size; + if (Comp.Finalize(Size) == false) + { + c0out << endl; + return _error->Error(_("Error processing directory %s"),BaseDir.c_str()); + } + + if (Size != 0) + c0out << " New " + << SizeToStr(Size) << "B "; + else + c0out << ' '; + + struct timeval NewTime; + gettimeofday(&NewTime,0); + double Delta = NewTime.tv_sec - StartTime.tv_sec + + (NewTime.tv_usec - StartTime.tv_usec)/1000000.0; + + c0out << Packages.Stats.Packages << " files " << +/* SizeToStr(Packages.Stats.MD5Bytes) << "B/" << */ + SizeToStr(Packages.Stats.Bytes) << "B " << + TimeToStr((long)Delta) << endl; + + Stats.Add(Packages.Stats); + Stats.DeLinkBytes = Packages.Stats.DeLinkBytes; + + return !_error->PendingError(); +} + + /*}}}*/ +// PackageMap::GenSources - Actually generate a Source file /*{{{*/ +// --------------------------------------------------------------------- +/* This generates the Sources File described by this object. */ +bool PackageMap::GenSources(Configuration &Setup,struct CacheDB::Stats &Stats) +{ + if (SrcFile.empty() == true) + return true; + + string ArchiveDir = Setup.FindDir("Dir::ArchiveDir"); + string OverrideDir = Setup.FindDir("Dir::OverrideDir"); + string CacheDir = Setup.FindDir("Dir::CacheDir"); + + struct timeval StartTime; + gettimeofday(&StartTime,0); + + SrcDone = true; + + // Create a package writer object. + SourcesWriter Sources(flCombine(OverrideDir,BinOverride), + flCombine(OverrideDir,SrcOverride), + flCombine(OverrideDir,SrcExtraOverride)); + if (SrcExt.empty() == false && Sources.SetExts(SrcExt) == false) + return _error->Error(_("Source extension list is too long")); + if (_error->PendingError() == true) + return _error->Error(_("Error processing directory %s"),BaseDir.c_str()); + + Sources.PathPrefix = PathPrefix; + Sources.DirStrip = ArchiveDir; + Sources.InternalPrefix = flCombine(ArchiveDir,InternalPrefix); + + Sources.DeLinkLimit = DeLinkLimit; + Sources.Stats.DeLinkBytes = Stats.DeLinkBytes; + + // Create a compressor object + MultiCompress Comp(flCombine(ArchiveDir,SrcFile), + SrcCompress,Permissions); + Sources.Output = Comp.Input; + if (_error->PendingError() == true) + return _error->Error(_("Error processing directory %s"),BaseDir.c_str()); + + c0out << ' ' << BaseDir << ":" << flush; + + // Do recursive directory searching + if (FLFile.empty() == true) + { + if (Sources.RecursiveScan(flCombine(ArchiveDir,BaseDir))== false) + return false; + } + else + { + if (Sources.LoadFileList(ArchiveDir,FLFile) == false) + return false; + } + Sources.Output = 0; // Just in case + + // Finish compressing + unsigned long Size; + if (Comp.Finalize(Size) == false) + { + c0out << endl; + return _error->Error(_("Error processing directory %s"),BaseDir.c_str()); + } + + if (Size != 0) + c0out << " New " + << SizeToStr(Size) << "B "; + else + c0out << ' '; + + struct timeval NewTime; + gettimeofday(&NewTime,0); + double Delta = NewTime.tv_sec - StartTime.tv_sec + + (NewTime.tv_usec - StartTime.tv_usec)/1000000.0; + + c0out << Sources.Stats.Packages << " pkgs in " << + TimeToStr((long)Delta) << endl; + + Stats.Add(Sources.Stats); + Stats.DeLinkBytes = Sources.Stats.DeLinkBytes; + + return !_error->PendingError(); +} + /*}}}*/ +// PackageMap::GenContents - Actually generate a Contents file /*{{{*/ +// --------------------------------------------------------------------- +/* This generates the contents file partially described by this object. + It searches the given iterator range for other package files that map + into this contents file and includes their data as well when building. */ +bool PackageMap::GenContents(Configuration &Setup, + vector::iterator Begin, + vector::iterator End, + unsigned long &Left) +{ + if (Contents.empty() == true) + return true; + + if (Left == 0) + return true; + + string ArchiveDir = Setup.FindDir("Dir::ArchiveDir"); + string CacheDir = Setup.FindDir("Dir::CacheDir"); + string OverrideDir = Setup.FindDir("Dir::OverrideDir"); + + struct timeval StartTime; + gettimeofday(&StartTime,0); + + // Create a package writer object. + ContentsWriter Contents(""); + if (PkgExt.empty() == false && Contents.SetExts(PkgExt) == false) + return _error->Error(_("Package extension list is too long")); + if (_error->PendingError() == true) + return false; + + MultiCompress Comp(flCombine(ArchiveDir,this->Contents), + CntCompress,Permissions); + Comp.UpdateMTime = Setup.FindI("Default::ContentsAge",10)*24*60*60; + Contents.Output = Comp.Input; + if (_error->PendingError() == true) + return false; + + // Write the header out. + if (ContentsHead.empty() == false) + { + FileFd Head(flCombine(OverrideDir,ContentsHead),FileFd::ReadOnly); + if (_error->PendingError() == true) + return false; + + unsigned long Size = Head.Size(); + unsigned char Buf[4096]; + while (Size != 0) + { + unsigned long ToRead = Size; + if (Size > sizeof(Buf)) + ToRead = sizeof(Buf); + + if (Head.Read(Buf,ToRead) == false) + return false; + + if (fwrite(Buf,1,ToRead,Comp.Input) != ToRead) + return _error->Errno("fwrite",_("Error writing header to contents file")); + + Size -= ToRead; + } + } + + /* Go over all the package file records and parse all the package + files associated with this contents file into one great big honking + memory structure, then dump the sorted version */ + c0out << ' ' << this->Contents << ":" << flush; + for (vector::iterator I = Begin; I != End; I++) + { + if (I->Contents != this->Contents) + continue; + + Contents.Prefix = ArchiveDir; + Contents.ReadyDB(flCombine(CacheDir,I->BinCacheDB)); + Contents.ReadFromPkgs(flCombine(ArchiveDir,I->PkgFile), + I->PkgCompress); + + I->ContentsDone = true; + } + + Contents.Finish(); + + // Finish compressing + unsigned long Size; + if (Comp.Finalize(Size) == false || _error->PendingError() == true) + { + c0out << endl; + return _error->Error(_("Error processing contents %s"), + this->Contents.c_str()); + } + + if (Size != 0) + { + c0out << " New " << SizeToStr(Size) << "B "; + if (Left > Size) + Left -= Size; + else + Left = 0; + } + else + c0out << ' '; + + struct timeval NewTime; + gettimeofday(&NewTime,0); + double Delta = NewTime.tv_sec - StartTime.tv_sec + + (NewTime.tv_usec - StartTime.tv_usec)/1000000.0; + + c0out << Contents.Stats.Packages << " files " << + SizeToStr(Contents.Stats.Bytes) << "B " << + TimeToStr((long)Delta) << endl; + + return true; +} + /*}}}*/ + +// LoadTree - Load a 'tree' section from the Generate Config /*{{{*/ +// --------------------------------------------------------------------- +/* This populates the PkgList with all the possible permutations of the + section/arch lists. */ +void LoadTree(vector &PkgList,Configuration &Setup) +{ + // Load the defaults + string DDir = Setup.Find("TreeDefault::Directory", + "$(DIST)/$(SECTION)/binary-$(ARCH)/"); + string DSDir = Setup.Find("TreeDefault::SrcDirectory", + "$(DIST)/$(SECTION)/source/"); + string DPkg = Setup.Find("TreeDefault::Packages", + "$(DIST)/$(SECTION)/binary-$(ARCH)/Packages"); + string DIPrfx = Setup.Find("TreeDefault::InternalPrefix", + "$(DIST)/$(SECTION)/"); + string DContents = Setup.Find("TreeDefault::Contents", + "$(DIST)/Contents-$(ARCH)"); + string DContentsH = Setup.Find("TreeDefault::Contents::Header",""); + string DBCache = Setup.Find("TreeDefault::BinCacheDB", + "packages-$(ARCH).db"); + string DSources = Setup.Find("TreeDefault::Sources", + "$(DIST)/$(SECTION)/source/Sources"); + string DFLFile = Setup.Find("TreeDefault::FileList", ""); + string DSFLFile = Setup.Find("TreeDefault::SourceFileList", ""); + + // Process 'tree' type sections + const Configuration::Item *Top = Setup.Tree("tree"); + for (Top = (Top == 0?0:Top->Child); Top != 0;) + { + Configuration Block(Top); + string Dist = Top->Tag; + + // Parse the sections + string Tmp = Block.Find("Sections"); + const char *Sections = Tmp.c_str(); + string Section; + while (ParseQuoteWord(Sections,Section) == true) + { + string Tmp2 = Block.Find("Architectures"); + string Arch; + const char *Archs = Tmp2.c_str(); + while (ParseQuoteWord(Archs,Arch) == true) + { + struct SubstVar Vars[] = {{"$(DIST)",&Dist}, + {"$(SECTION)",&Section}, + {"$(ARCH)",&Arch}, + {}}; + PackageMap Itm; + + Itm.BinOverride = SubstVar(Block.Find("BinOverride"),Vars); + Itm.InternalPrefix = SubstVar(Block.Find("InternalPrefix",DIPrfx.c_str()),Vars); + + if (stringcasecmp(Arch,"source") == 0) + { + Itm.SrcOverride = SubstVar(Block.Find("SrcOverride"),Vars); + Itm.BaseDir = SubstVar(Block.Find("SrcDirectory",DSDir.c_str()),Vars); + Itm.SrcFile = SubstVar(Block.Find("Sources",DSources.c_str()),Vars); + Itm.Tag = SubstVar("$(DIST)/$(SECTION)/source",Vars); + Itm.FLFile = SubstVar(Block.Find("SourceFileList",DSFLFile.c_str()),Vars); + Itm.SrcExtraOverride = SubstVar(Block.Find("SrcExtraOverride"),Vars); + } + else + { + Itm.BinCacheDB = SubstVar(Block.Find("BinCacheDB",DBCache.c_str()),Vars); + Itm.BaseDir = SubstVar(Block.Find("Directory",DDir.c_str()),Vars); + Itm.PkgFile = SubstVar(Block.Find("Packages",DPkg.c_str()),Vars); + Itm.Tag = SubstVar("$(DIST)/$(SECTION)/$(ARCH)",Vars); + Itm.Arch = Arch; + Itm.Contents = SubstVar(Block.Find("Contents",DContents.c_str()),Vars); + Itm.ContentsHead = SubstVar(Block.Find("Contents::Header",DContentsH.c_str()),Vars); + Itm.FLFile = SubstVar(Block.Find("FileList",DFLFile.c_str()),Vars); + Itm.ExtraOverride = SubstVar(Block.Find("ExtraOverride"),Vars); + } + + Itm.GetGeneral(Setup,Block); + PkgList.push_back(Itm); + } + } + + Top = Top->Next; + } +} + /*}}}*/ +// LoadBinDir - Load a 'bindirectory' section from the Generate Config /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void LoadBinDir(vector &PkgList,Configuration &Setup) +{ + // Process 'bindirectory' type sections + const Configuration::Item *Top = Setup.Tree("bindirectory"); + for (Top = (Top == 0?0:Top->Child); Top != 0;) + { + Configuration Block(Top); + + PackageMap Itm; + Itm.PkgFile = Block.Find("Packages"); + Itm.SrcFile = Block.Find("Sources"); + Itm.BinCacheDB = Block.Find("BinCacheDB"); + Itm.BinOverride = Block.Find("BinOverride"); + Itm.ExtraOverride = Block.Find("ExtraOverride"); + Itm.SrcExtraOverride = Block.Find("SrcExtraOverride"); + Itm.SrcOverride = Block.Find("SrcOverride"); + Itm.BaseDir = Top->Tag; + Itm.FLFile = Block.Find("FileList"); + Itm.InternalPrefix = Block.Find("InternalPrefix",Top->Tag.c_str()); + Itm.Contents = Block.Find("Contents"); + Itm.ContentsHead = Block.Find("Contents::Header"); + + Itm.GetGeneral(Setup,Block); + PkgList.push_back(Itm); + + Top = Top->Next; + } +} + /*}}}*/ + +// ShowHelp - Show the help text /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool ShowHelp(CommandLine &CmdL) +{ + ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION, + COMMON_OS,COMMON_CPU,__DATE__,__TIME__); + if (_config->FindB("version") == true) + return true; + + cout << + _("Usage: apt-ftparchive [options] command\n" + "Commands: packages binarypath [overridefile [pathprefix]]\n" + " sources srcpath [overridefile [pathprefix]]\n" + " contents path\n" + " release path\n" + " generate config [groups]\n" + " clean config\n" + "\n" + "apt-ftparchive generates index files for Debian archives. It supports\n" + "many styles of generation from fully automated to functional replacements\n" + "for dpkg-scanpackages and dpkg-scansources\n" + "\n" + "apt-ftparchive generates Package files from a tree of .debs. The\n" + "Package file contains the contents of all the control fields from\n" + "each package as well as the MD5 hash and filesize. An override file\n" + "is supported to force the value of Priority and Section.\n" + "\n" + "Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" + "The --source-override option can be used to specify a src override file\n" + "\n" + "The 'packages' and 'sources' command should be run in the root of the\n" + "tree. BinaryPath should point to the base of the recursive search and \n" + "override file should contain the override flags. Pathprefix is\n" + "appended to the filename fields if present. Example usage from the \n" + "Debian archive:\n" + " apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" + " dists/potato/main/binary-i386/Packages\n" + "\n" + "Options:\n" + " -h This help text\n" + " --md5 Control MD5 generation\n" + " -s=? Source override file\n" + " -q Quiet\n" + " -d=? Select the optional caching database\n" + " --no-delink Enable delinking debug mode\n" + " --contents Control contents file generation\n" + " -c=? Read this configuration file\n" + " -o=? Set an arbitrary configuration option") << endl; + + return true; +} + /*}}}*/ +// SimpleGenPackages - Generate a Packages file for a directory tree /*{{{*/ +// --------------------------------------------------------------------- +/* This emulates dpkg-scanpackages's command line interface. 'mostly' */ +bool SimpleGenPackages(CommandLine &CmdL) +{ + if (CmdL.FileSize() < 2) + return ShowHelp(CmdL); + + string Override; + if (CmdL.FileSize() >= 3) + Override = CmdL.FileList[2]; + + // Create a package writer object. + PackagesWriter Packages(_config->Find("APT::FTPArchive::DB"), + Override, ""); + if (_error->PendingError() == true) + return false; + + if (CmdL.FileSize() >= 4) + Packages.PathPrefix = CmdL.FileList[3]; + + // Do recursive directory searching + if (Packages.RecursiveScan(CmdL.FileList[1]) == false) + return false; + + return true; +} + /*}}}*/ +// SimpleGenContents - Generate a Contents listing /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool SimpleGenContents(CommandLine &CmdL) +{ + if (CmdL.FileSize() < 2) + return ShowHelp(CmdL); + + // Create a package writer object. + ContentsWriter Contents(_config->Find("APT::FTPArchive::DB")); + if (_error->PendingError() == true) + return false; + + // Do recursive directory searching + if (Contents.RecursiveScan(CmdL.FileList[1]) == false) + return false; + + Contents.Finish(); + + return true; +} + /*}}}*/ +// SimpleGenSources - Generate a Sources file for a directory tree /*{{{*/ +// --------------------------------------------------------------------- +/* This emulates dpkg-scanpackages's command line interface. 'mostly' */ +bool SimpleGenSources(CommandLine &CmdL) +{ + if (CmdL.FileSize() < 2) + return ShowHelp(CmdL); + + string Override; + if (CmdL.FileSize() >= 3) + Override = CmdL.FileList[2]; + + string SOverride; + if (Override.empty() == false) + SOverride = Override + ".src"; + + SOverride = _config->Find("APT::FTPArchive::SourceOverride", + SOverride.c_str()); + + // Create a package writer object. + SourcesWriter Sources(Override,SOverride); + if (_error->PendingError() == true) + return false; + + if (CmdL.FileSize() >= 4) + Sources.PathPrefix = CmdL.FileList[3]; + + // Do recursive directory searching + if (Sources.RecursiveScan(CmdL.FileList[1]) == false) + return false; + + return true; +} + /*}}}*/ +// SimpleGenRelease - Generate a Release file for a directory tree /*{{{*/ +// --------------------------------------------------------------------- +bool SimpleGenRelease(CommandLine &CmdL) +{ + if (CmdL.FileSize() < 2) + return ShowHelp(CmdL); + + string Dir = CmdL.FileList[1]; + + ReleaseWriter Release(""); + Release.DirStrip = Dir; + + if (_error->PendingError() == true) + return false; + + if (Release.RecursiveScan(Dir) == false) + return false; + + Release.Finish(); + + return true; +} + + /*}}}*/ +// Generate - Full generate, using a config file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool Generate(CommandLine &CmdL) +{ + struct CacheDB::Stats SrcStats; + if (CmdL.FileSize() < 2) + return ShowHelp(CmdL); + + struct timeval StartTime; + gettimeofday(&StartTime,0); + struct CacheDB::Stats Stats; + + // Read the configuration file. + Configuration Setup; + if (ReadConfigFile(Setup,CmdL.FileList[1],true) == false) + return false; + + vector PkgList; + LoadTree(PkgList,Setup); + LoadBinDir(PkgList,Setup); + + // Sort by cache DB to improve IO locality. + stable_sort(PkgList.begin(),PkgList.end(),PackageMap::DBCompare()); + + // Generate packages + if (CmdL.FileSize() <= 2) + { + for (vector::iterator I = PkgList.begin(); I != PkgList.end(); I++) + if (I->GenPackages(Setup,Stats) == false) + _error->DumpErrors(); + for (vector::iterator I = PkgList.begin(); I != PkgList.end(); I++) + if (I->GenSources(Setup,SrcStats) == false) + _error->DumpErrors(); + } + else + { + // Make a choice list out of the package list.. + RxChoiceList *List = new RxChoiceList[2*PkgList.size()+1]; + RxChoiceList *End = List; + for (vector::iterator I = PkgList.begin(); I != PkgList.end(); I++) + { + End->UserData = &(*I); + End->Str = I->BaseDir.c_str(); + End++; + + End->UserData = &(*I); + End->Str = I->Tag.c_str(); + End++; + } + End->Str = 0; + + // Regex it + if (RegexChoice(List,CmdL.FileList + 2,CmdL.FileList + CmdL.FileSize()) == 0) + { + delete [] List; + return _error->Error(_("No selections matched")); + } + _error->DumpErrors(); + + // Do the generation for Packages + for (End = List; End->Str != 0; End++) + { + if (End->Hit == false) + continue; + + PackageMap *I = (PackageMap *)End->UserData; + if (I->PkgDone == true) + continue; + if (I->GenPackages(Setup,Stats) == false) + _error->DumpErrors(); + } + + // Do the generation for Sources + for (End = List; End->Str != 0; End++) + { + if (End->Hit == false) + continue; + + PackageMap *I = (PackageMap *)End->UserData; + if (I->SrcDone == true) + continue; + if (I->GenSources(Setup,SrcStats) == false) + _error->DumpErrors(); + } + + delete [] List; + } + + if (_config->FindB("APT::FTPArchive::Contents",true) == false) + return true; + + c1out << "Done Packages, Starting contents." << endl; + + // Sort the contents file list by date + string ArchiveDir = Setup.FindDir("Dir::ArchiveDir"); + for (vector::iterator I = PkgList.begin(); I != PkgList.end(); I++) + { + struct stat A; + if (MultiCompress::GetStat(flCombine(ArchiveDir,I->Contents), + I->CntCompress,A) == false) + time(&I->ContentsMTime); + else + I->ContentsMTime = A.st_mtime; + } + stable_sort(PkgList.begin(),PkgList.end(),PackageMap::ContentsCompare()); + + /* Now for Contents.. The process here is to do a make-like dependency + check. Each contents file is verified to be newer than the package files + that describe the debs it indexes. Since the package files contain + hashes of the .debs this means they have not changed either so the + contents must be up to date. */ + unsigned long MaxContentsChange = Setup.FindI("Default::MaxContentsChange",UINT_MAX)*1024; + for (vector::iterator I = PkgList.begin(); I != PkgList.end(); I++) + { + // This record is not relevent + if (I->ContentsDone == true || + I->Contents.empty() == true) + continue; + + // Do not do everything if the user specified sections. + if (CmdL.FileSize() > 2 && I->PkgDone == false) + continue; + + struct stat A,B; + if (MultiCompress::GetStat(flCombine(ArchiveDir,I->Contents),I->CntCompress,A) == true) + { + if (MultiCompress::GetStat(flCombine(ArchiveDir,I->PkgFile),I->PkgCompress,B) == false) + { + _error->Warning(_("Some files are missing in the package file group `%s'"),I->PkgFile.c_str()); + continue; + } + + if (A.st_mtime > B.st_mtime) + continue; + } + + if (I->GenContents(Setup,PkgList.begin(),PkgList.end(), + MaxContentsChange) == false) + _error->DumpErrors(); + + // Hit the limit? + if (MaxContentsChange == 0) + { + c1out << "Hit contents update byte limit" << endl; + break; + } + } + + struct timeval NewTime; + gettimeofday(&NewTime,0); + double Delta = NewTime.tv_sec - StartTime.tv_sec + + (NewTime.tv_usec - StartTime.tv_usec)/1000000.0; + c1out << "Done. " << SizeToStr(Stats.Bytes) << "B in " << Stats.Packages + << " archives. Took " << TimeToStr((long)Delta) << endl; + + return true; +} + /*}}}*/ +// Clean - Clean out the databases /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool Clean(CommandLine &CmdL) +{ + if (CmdL.FileSize() != 2) + return ShowHelp(CmdL); + + // Read the configuration file. + Configuration Setup; + if (ReadConfigFile(Setup,CmdL.FileList[1],true) == false) + return false; + + vector PkgList; + LoadTree(PkgList,Setup); + LoadBinDir(PkgList,Setup); + + // Sort by cache DB to improve IO locality. + stable_sort(PkgList.begin(),PkgList.end(),PackageMap::DBCompare()); + + string CacheDir = Setup.FindDir("Dir::CacheDir"); + + for (vector::iterator I = PkgList.begin(); I != PkgList.end(); ) + { + c0out << I->BinCacheDB << endl; + CacheDB DB(flCombine(CacheDir,I->BinCacheDB)); + if (DB.Clean() == false) + _error->DumpErrors(); + + string CacheDB = I->BinCacheDB; + for (; I != PkgList.end() && I->BinCacheDB == CacheDB; I++); + } + + return true; +} + /*}}}*/ + +int main(int argc, const char *argv[]) +{ + CommandLine::Args Args[] = { + {'h',"help","help",0}, + {0,"md5","APT::FTPArchive::MD5",0}, + {'v',"version","version",0}, + {'d',"db","APT::FTPArchive::DB",CommandLine::HasArg}, + {'s',"source-override","APT::FTPArchive::SourceOverride",CommandLine::HasArg}, + {'q',"quiet","quiet",CommandLine::IntLevel}, + {'q',"silent","quiet",CommandLine::IntLevel}, + {0,"delink","APT::FTPArchive::DeLinkAct",0}, + {0,"readonly","APT::FTPArchive::ReadOnlyDB",0}, + {0,"contents","APT::FTPArchive::Contents",0}, + {'c',"config-file",0,CommandLine::ConfigFile}, + {'o',"option",0,CommandLine::ArbItem}, + {0,0,0,0}}; + CommandLine::Dispatch Cmds[] = {{"packages",&SimpleGenPackages}, + {"contents",&SimpleGenContents}, + {"sources",&SimpleGenSources}, + {"release",&SimpleGenRelease}, + {"generate",&Generate}, + {"clean",&Clean}, + {"help",&ShowHelp}, + {0,0}}; + + // Parse the command line and initialize the package library + CommandLine CmdL(Args,_config); + if (CmdL.Parse(argc,argv) == false) + { + _error->DumpErrors(); + return 100; + } + + // See if the help should be shown + if (_config->FindB("help") == true || + _config->FindB("version") == true || + CmdL.FileSize() == 0) + { + ShowHelp(CmdL); + return 0; + } + + // Setup the output streams + c0out.rdbuf(clog.rdbuf()); + c1out.rdbuf(clog.rdbuf()); + c2out.rdbuf(clog.rdbuf()); + Quiet = _config->FindI("quiet",0); + if (Quiet > 0) + c0out.rdbuf(devnull.rdbuf()); + if (Quiet > 1) + c1out.rdbuf(devnull.rdbuf()); + + // Match the operation + CmdL.DispatchArg(Cmds); + + if (_error->empty() == false) + { + bool Errors = _error->PendingError(); + _error->DumpErrors(); + return Errors == true?100:0; + } + return 0; +} diff --git a/ftparchive/apt-ftparchive.h b/ftparchive/apt-ftparchive.h new file mode 100644 index 0000000..c364d67 --- /dev/null +++ b/ftparchive/apt-ftparchive.h @@ -0,0 +1,31 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: apt-ftparchive.h,v 1.3 2001/05/29 03:51:37 jgg Exp $ +/* ###################################################################### + + Writer + + The file writer classes. These write various types of output, sources, + packages and contents. + + ##################################################################### */ + /*}}}*/ +#ifndef APT_FTPARCHIVE_H +#define APT_FTPARCHIVE_H + +#ifdef __GNUG__ +#pragma interface "apt-ftparchive.h" +#endif + +#include + +using std::ostream; +using std::ofstream; + +extern ostream c0out; +extern ostream c1out; +extern ostream c2out; +extern ofstream devnull; +extern unsigned Quiet; + +#endif diff --git a/ftparchive/cachedb.cc b/ftparchive/cachedb.cc new file mode 100644 index 0000000..d56a468 --- /dev/null +++ b/ftparchive/cachedb.cc @@ -0,0 +1,481 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: cachedb.cc,v 1.7 2004/05/08 19:41:01 mdz Exp $ +/* ###################################################################### + + CacheDB + + Simple uniform interface to a cache database. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "cachedb.h" +#endif + +#include "cachedb.h" + +#include +#include +#include +#include +#include +#include +#include + +#include // htonl, etc + /*}}}*/ + +// CacheDB::ReadyDB - Ready the DB2 /*{{{*/ +// --------------------------------------------------------------------- +/* This opens the DB2 file for caching package information */ +bool CacheDB::ReadyDB(string DB) +{ + int err; + + ReadOnly = _config->FindB("APT::FTPArchive::ReadOnlyDB",false); + + // Close the old DB + if (Dbp != 0) + Dbp->close(Dbp,0); + + /* Check if the DB was disabled while running and deal with a + corrupted DB */ + if (DBFailed() == true) + { + _error->Warning(_("DB was corrupted, file renamed to %s.old"),DBFile.c_str()); + rename(DBFile.c_str(),(DBFile+".old").c_str()); + } + + DBLoaded = false; + Dbp = 0; + DBFile = string(); + + if (DB.empty()) + return true; + + db_create(&Dbp, NULL, 0); + if ((err = Dbp->open(Dbp, NULL, DB.c_str(), NULL, DB_BTREE, + (ReadOnly?DB_RDONLY:DB_CREATE), + 0644)) != 0) + { + if (err == DB_OLD_VERSION) + { + _error->Warning(_("DB is old, attempting to upgrade %s"),DBFile.c_str()); + err = Dbp->upgrade(Dbp, DB.c_str(), 0); + if (!err) + err = Dbp->open(Dbp, NULL, DB.c_str(), NULL, DB_HASH, + (ReadOnly?DB_RDONLY:DB_CREATE), 0644); + + } + // the database format has changed from DB_HASH to DB_BTREE in + // apt 0.6.44 + if (err == EINVAL) + { + _error->Error(_("DB format is invalid. If you upgraded from a older version of apt, please remove and re-create the database.")); + } + if (err) + { + Dbp = 0; + return _error->Error(_("Unable to open DB file %s: %s"),DB.c_str(), db_strerror(err)); + } + } + + DBFile = DB; + DBLoaded = true; + return true; +} + /*}}}*/ +// CacheDB::OpenFile - Open the filei /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool CacheDB::OpenFile() +{ + Fd = new FileFd(FileName,FileFd::ReadOnly); + if (_error->PendingError() == true) + { + delete Fd; + Fd = NULL; + return false; + } + return true; +} + /*}}}*/ +// CacheDB::GetFileStat - Get stats from the file /*{{{*/ +// --------------------------------------------------------------------- +/* This gets the size from the database if it's there. If we need + * to look at the file, also get the mtime from the file. */ +bool CacheDB::GetFileStat() +{ + if ((CurStat.Flags & FlSize) == FlSize) + { + /* Already worked out the file size */ + } + else + { + /* Get it from the file. */ + if (Fd == NULL && OpenFile() == false) + { + return false; + } + // Stat the file + struct stat St; + if (fstat(Fd->Fd(),&St) != 0) + { + return _error->Errno("fstat", + _("Failed to stat %s"),FileName.c_str()); + } + CurStat.FileSize = St.st_size; + CurStat.mtime = htonl(St.st_mtime); + CurStat.Flags |= FlSize; + } + return true; +} + /*}}}*/ +// CacheDB::GetCurStat - Set the CurStat variable. /*{{{*/ +// --------------------------------------------------------------------- +/* Sets the CurStat variable. Either to 0 if no database is used + * or to the value in the database if one is used */ +bool CacheDB::GetCurStat() +{ + memset(&CurStat,0,sizeof(CurStat)); + + if (DBLoaded) + { + /* First see if thre is anything about it + in the database */ + + /* Get the flags (and mtime) */ + InitQuery("st"); + // Ensure alignment of the returned structure + Data.data = &CurStat; + Data.ulen = sizeof(CurStat); + Data.flags = DB_DBT_USERMEM; + if (Get() == false) + { + CurStat.Flags = 0; + } + CurStat.Flags = ntohl(CurStat.Flags); + CurStat.FileSize = ntohl(CurStat.FileSize); + } + return true; +} + /*}}}*/ +// CacheDB::GetFileInfo - Get all the info about the file /*{{{*/ +// --------------------------------------------------------------------- +bool CacheDB::GetFileInfo(string FileName, bool DoControl, bool DoContents, + bool GenContentsOnly, + bool DoMD5, bool DoSHA1, bool DoSHA256) +{ + this->FileName = FileName; + + if (GetCurStat() == false) + { + return false; + } + OldStat = CurStat; + + if (GetFileStat() == false) + { + delete Fd; + Fd = NULL; + return false; + } + + Stats.Bytes += CurStat.FileSize; + Stats.Packages++; + + if (DoControl && LoadControl() == false + || DoContents && LoadContents(GenContentsOnly) == false + || DoMD5 && GetMD5(false) == false + || DoSHA1 && GetSHA1(false) == false + || DoSHA256 && GetSHA256(false) == false) + { + delete Fd; + Fd = NULL; + delete DebFile; + DebFile = NULL; + return false; + } + + delete Fd; + Fd = NULL; + delete DebFile; + DebFile = NULL; + + return true; +} + /*}}}*/ +// CacheDB::LoadControl - Load Control information /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool CacheDB::LoadControl() +{ + // Try to read the control information out of the DB. + if ((CurStat.Flags & FlControl) == FlControl) + { + // Lookup the control information + InitQuery("cl"); + if (Get() == true && Control.TakeControl(Data.data,Data.size) == true) + return true; + CurStat.Flags &= ~FlControl; + } + + if (Fd == NULL && OpenFile() == false) + { + return false; + } + // Create a deb instance to read the archive + if (DebFile == 0) + { + DebFile = new debDebFile(*Fd); + if (_error->PendingError() == true) + return false; + } + + Stats.Misses++; + if (Control.Read(*DebFile) == false) + return false; + + if (Control.Control == 0) + return _error->Error(_("Archive has no control record")); + + // Write back the control information + InitQuery("cl"); + if (Put(Control.Control,Control.Length) == true) + CurStat.Flags |= FlControl; + return true; +} + /*}}}*/ +// CacheDB::LoadContents - Load the File Listing /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool CacheDB::LoadContents(bool GenOnly) +{ + // Try to read the control information out of the DB. + if ((CurStat.Flags & FlContents) == FlContents) + { + if (GenOnly == true) + return true; + + // Lookup the contents information + InitQuery("cn"); + if (Get() == true) + { + if (Contents.TakeContents(Data.data,Data.size) == true) + return true; + } + + CurStat.Flags &= ~FlContents; + } + + if (Fd == NULL && OpenFile() == false) + { + return false; + } + // Create a deb instance to read the archive + if (DebFile == 0) + { + DebFile = new debDebFile(*Fd); + if (_error->PendingError() == true) + return false; + } + + if (Contents.Read(*DebFile) == false) + return false; + + // Write back the control information + InitQuery("cn"); + if (Put(Contents.Data,Contents.CurSize) == true) + CurStat.Flags |= FlContents; + return true; +} + /*}}}*/ + +static string bytes2hex(uint8_t *bytes, size_t length) { + char space[65]; + if (length * 2 > sizeof(space) - 1) length = (sizeof(space) - 1) / 2; + for (size_t i = 0; i < length; i++) + snprintf(&space[i*2], 3, "%02x", bytes[i]); + return string(space); +} + +static inline unsigned char xdig2num(char dig) { + if (isdigit(dig)) return dig - '0'; + if ('a' <= dig && dig <= 'f') return dig - 'a' + 10; + if ('A' <= dig && dig <= 'F') return dig - 'A' + 10; + return 0; +} + +static void hex2bytes(uint8_t *bytes, const char *hex, int length) { + while (length-- > 0) { + *bytes = 0; + if (isxdigit(hex[0]) && isxdigit(hex[1])) { + *bytes = xdig2num(hex[0]) * 16 + xdig2num(hex[1]); + hex += 2; + } + bytes++; + } +} + +void *memrchr(void *data, char value, int size) { + char *cdata = (char *) data; + for (int i = 0; i != size; ++i) + if (cdata[size - i - 1] == value) + return cdata + size - i - 1; + return NULL; +} + +// CacheDB::GetMD5 - Get the MD5 hash /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool CacheDB::GetMD5(bool GenOnly) +{ + // Try to read the control information out of the DB. + if ((CurStat.Flags & FlMD5) == FlMD5) + { + if (GenOnly == true) + return true; + + MD5Res = bytes2hex(CurStat.MD5, sizeof(CurStat.MD5)); + return true; + } + + Stats.MD5Bytes += CurStat.FileSize; + + if (Fd == NULL && OpenFile() == false) + { + return false; + } + MD5Summation MD5; + if (Fd->Seek(0) == false || MD5.AddFD(Fd->Fd(),CurStat.FileSize) == false) + return false; + + MD5Res = MD5.Result(); + hex2bytes(CurStat.MD5, MD5Res.data(), sizeof(CurStat.MD5)); + CurStat.Flags |= FlMD5; + return true; +} + /*}}}*/ +// CacheDB::GetSHA1 - Get the SHA1 hash /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool CacheDB::GetSHA1(bool GenOnly) +{ + // Try to read the control information out of the DB. + if ((CurStat.Flags & FlSHA1) == FlSHA1) + { + if (GenOnly == true) + return true; + + SHA1Res = bytes2hex(CurStat.SHA1, sizeof(CurStat.SHA1)); + return true; + } + + Stats.SHA1Bytes += CurStat.FileSize; + + if (Fd == NULL && OpenFile() == false) + { + return false; + } + SHA1Summation SHA1; + if (Fd->Seek(0) == false || SHA1.AddFD(Fd->Fd(),CurStat.FileSize) == false) + return false; + + SHA1Res = SHA1.Result(); + hex2bytes(CurStat.SHA1, SHA1Res.data(), sizeof(CurStat.SHA1)); + CurStat.Flags |= FlSHA1; + return true; +} + /*}}}*/ +// CacheDB::GetSHA256 - Get the SHA256 hash /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool CacheDB::GetSHA256(bool GenOnly) +{ + // Try to read the control information out of the DB. + if ((CurStat.Flags & FlSHA256) == FlSHA256) + { + if (GenOnly == true) + return true; + + SHA256Res = bytes2hex(CurStat.SHA256, sizeof(CurStat.SHA256)); + return true; + } + + Stats.SHA256Bytes += CurStat.FileSize; + + if (Fd == NULL && OpenFile() == false) + { + return false; + } + SHA256Summation SHA256; + if (Fd->Seek(0) == false || SHA256.AddFD(Fd->Fd(),CurStat.FileSize) == false) + return false; + + SHA256Res = SHA256.Result(); + hex2bytes(CurStat.SHA256, SHA256Res.data(), sizeof(CurStat.SHA256)); + CurStat.Flags |= FlSHA256; + return true; +} + /*}}}*/ +// CacheDB::Finish - Write back the cache structure /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool CacheDB::Finish() +{ + // Optimize away some writes. + if (CurStat.Flags == OldStat.Flags && + CurStat.mtime == OldStat.mtime) + return true; + + // Write the stat information + CurStat.Flags = htonl(CurStat.Flags); + CurStat.FileSize = htonl(CurStat.FileSize); + InitQuery("st"); + Put(&CurStat,sizeof(CurStat)); + CurStat.Flags = ntohl(CurStat.Flags); + CurStat.FileSize = ntohl(CurStat.FileSize); + + return true; +} + /*}}}*/ +// CacheDB::Clean - Clean the Database /*{{{*/ +// --------------------------------------------------------------------- +/* Tidy the database by removing files that no longer exist at all. */ +bool CacheDB::Clean() +{ + if (DBLoaded == false) + return true; + + /* I'm not sure what VERSION_MINOR should be here.. 2.4.14 certainly + needs the lower one and 2.7.7 needs the upper.. */ + DBC *Cursor; + if ((errno = Dbp->cursor(Dbp, NULL, &Cursor, 0)) != 0) + return _error->Error(_("Unable to get a cursor")); + + DBT Key; + DBT Data; + memset(&Key,0,sizeof(Key)); + memset(&Data,0,sizeof(Data)); + while ((errno = Cursor->c_get(Cursor,&Key,&Data,DB_NEXT)) == 0) + { + const char *Colon = (char*)memrchr(Key.data, ':', Key.size); + if (Colon) + { + if (stringcmp(Colon + 1, (char *)Key.data+Key.size,"st") == 0 || + stringcmp(Colon + 1, (char *)Key.data+Key.size,"cl") == 0 || + stringcmp(Colon + 1, (char *)Key.data+Key.size,"cn") == 0) + { + if (FileExists(string((const char *)Key.data,Colon)) == true) + continue; + } + } + + Cursor->c_del(Cursor,0); + } + + return true; +} + /*}}}*/ diff --git a/ftparchive/cachedb.h b/ftparchive/cachedb.h new file mode 100644 index 0000000..afa2221 --- /dev/null +++ b/ftparchive/cachedb.h @@ -0,0 +1,139 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: cachedb.h,v 1.4 2004/05/08 19:41:01 mdz Exp $ +/* ###################################################################### + + CacheDB + + Simple uniform interface to a cache database. + + ##################################################################### */ + /*}}}*/ +#ifndef CACHEDB_H +#define CACHEDB_H + +#ifdef __GNUG__ +#pragma interface "cachedb.h" +#endif + +#include +#include +#include +#include +#include +#include + +#include "contents.h" + +class CacheDB +{ + protected: + + // Database state/access + DBT Key; + DBT Data; + char TmpKey[600]; + DB *Dbp; + bool DBLoaded; + bool ReadOnly; + string DBFile; + + // Generate a key for the DB of a given type + inline void InitQuery(const char *Type) + { + memset(&Key,0,sizeof(Key)); + memset(&Data,0,sizeof(Data)); + Key.data = TmpKey; + Key.size = snprintf(TmpKey,sizeof(TmpKey),"%s:%s",FileName.c_str(), Type); + } + + inline bool Get() + { + return Dbp->get(Dbp,0,&Key,&Data,0) == 0; + }; + inline bool Put(const void *In,unsigned long Length) + { + if (ReadOnly == true) + return true; + Data.size = Length; + Data.data = (void *)In; + if (DBLoaded == true && (errno = Dbp->put(Dbp,0,&Key,&Data,0)) != 0) + { + DBLoaded = false; + return false; + } + return true; + } + bool OpenFile(); + bool GetFileStat(); + bool GetCurStat(); + bool LoadControl(); + bool LoadContents(bool GenOnly); + bool GetMD5(bool GenOnly); + bool GetSHA1(bool GenOnly); + bool GetSHA256(bool GenOnly); + + // Stat info stored in the DB, Fixed types since it is written to disk. + enum FlagList {FlControl = (1<<0),FlMD5=(1<<1),FlContents=(1<<2), + FlSize=(1<<3), FlSHA1=(1<<4), FlSHA256=(1<<5)}; + struct StatStore + { + uint32_t Flags; + uint32_t mtime; + uint32_t FileSize; + uint8_t MD5[16]; + uint8_t SHA1[20]; + uint8_t SHA256[32]; + } CurStat; + struct StatStore OldStat; + + // 'set' state + string FileName; + FileFd *Fd; + debDebFile *DebFile; + + public: + + // Data collection helpers + debDebFile::MemControlExtract Control; + ContentsExtract Contents; + string MD5Res; + string SHA1Res; + string SHA256Res; + + // Runtime statistics + struct Stats + { + double Bytes; + double MD5Bytes; + double SHA1Bytes; + double SHA256Bytes; + unsigned long Packages; + unsigned long Misses; + unsigned long DeLinkBytes; + + inline void Add(const Stats &S) { + Bytes += S.Bytes; MD5Bytes += S.MD5Bytes; SHA1Bytes += S.SHA1Bytes; + SHA256Bytes += S.SHA256Bytes; + Packages += S.Packages; Misses += S.Misses; DeLinkBytes += S.DeLinkBytes;}; + Stats() : Bytes(0), MD5Bytes(0), SHA1Bytes(0), SHA256Bytes(0), Packages(0), Misses(0), DeLinkBytes(0) {}; + } Stats; + + bool ReadyDB(string DB); + inline bool DBFailed() {return Dbp != 0 && DBLoaded == false;}; + inline bool Loaded() {return DBLoaded == true;}; + + inline off_t GetFileSize(void) {return CurStat.FileSize;} + + bool SetFile(string FileName,struct stat St,FileFd *Fd); + bool GetFileInfo(string FileName, bool DoControl, bool DoContents, + bool GenContentsOnly, bool DoMD5, bool DoSHA1, bool DoSHA256); + bool Finish(); + + bool Clean(); + + CacheDB(string DB) : Dbp(0), Fd(NULL), DebFile(0) {ReadyDB(DB);}; + ~CacheDB() {ReadyDB(string()); delete DebFile;}; +}; + +#endif diff --git a/ftparchive/contents.cc b/ftparchive/contents.cc new file mode 100644 index 0000000..9efef97 --- /dev/null +++ b/ftparchive/contents.cc @@ -0,0 +1,410 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: contents.cc,v 1.4 2003/02/10 07:34:41 doogie Exp $ +/* ###################################################################### + + contents - Archive contents generator + + The GenContents class is a back end for an archive contents generator. + It takes a list of per-deb file name and merges it into a memory + database of all previous output. This database is stored as a set + of binary trees linked across directories to form a tree of all files+dirs + given to it. The tree will also be sorted as it is built up thus + removing the massive sort time overhead. + + By breaking all the pathnames into components and storing them + separately a space savings is realized by not duplicating the string + over and over again. Ultimately this saving is sacrificed to storage of + the tree structure itself but the tree structure yields a speed gain + in the sorting and processing. Ultimately it takes about 5 seconds to + do 141000 nodes and about 5 meg of ram. + + The tree looks something like: + + usr/ + / \ / libslang + bin/ lib/ --> libc6 + / \ \ libfoo + games/ sbin/ + + The ---> is the DirDown link + + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#include "contents.h" + +#include +#include +#include +#include +#include +#include +#include + /*}}}*/ + +// GenContents::~GenContents - Free allocated memory /*{{{*/ +// --------------------------------------------------------------------- +/* Since all our allocations are static big-block allocations all that is + needed is to free all of them. */ +GenContents::~GenContents() +{ + while (BlockList != 0) + { + BigBlock *Old = BlockList; + BlockList = Old->Next; + free(Old->Block); + delete Old; + } +} + /*}}}*/ +// GenContents::Mystrdup - Custom strdup /*{{{*/ +// --------------------------------------------------------------------- +/* This strdup also uses a large block allocator to eliminate glibc + overhead */ +char *GenContents::Mystrdup(const char *From) +{ + unsigned int Len = strlen(From) + 1; + if (StrLeft <= Len) + { + StrLeft = 4096*10; + StrPool = (char *)malloc(StrLeft); + + BigBlock *Block = new BigBlock; + Block->Block = StrPool; + Block->Next = BlockList; + BlockList = Block; + } + + memcpy(StrPool,From,Len); + StrLeft -= Len; + + char *Res = StrPool; + StrPool += Len; + return Res; +} + /*}}}*/ +// GenContents::Node::operator new - Big block allocator /*{{{*/ +// --------------------------------------------------------------------- +/* This eliminates glibc's malloc overhead by allocating large blocks and + having a continuous set of Nodes. This takes about 8 bytes off each nodes + space needs. Freeing is not supported. */ +void *GenContents::Node::operator new(size_t Amount,GenContents *Owner) +{ + if (Owner->NodeLeft == 0) + { + Owner->NodeLeft = 10000; + Owner->NodePool = (Node *)malloc(Amount*Owner->NodeLeft); + BigBlock *Block = new BigBlock; + Block->Block = Owner->NodePool; + Block->Next = Owner->BlockList; + Owner->BlockList = Block; + } + + Owner->NodeLeft--; + return Owner->NodePool++; +} + /*}}}*/ +// GenContents::Grab - Grab a new node representing Name under Top /*{{{*/ +// --------------------------------------------------------------------- +/* This grabs a new node representing the pathname component Name under + the node Top. The node is given the name Package. It is assumed that Name + is inside of top. If a duplicate already entered name is found then + a note is made on the Dup list and the previous in-tree node is returned. */ +GenContents::Node *GenContents::Grab(GenContents::Node *Top,const char *Name, + const char *Package) +{ + /* We drop down to the next dir level each call. This simplifies + the calling routine */ + if (Top->DirDown == 0) + { + Node *Item = new(this) Node; + Item->Path = Mystrdup(Name); + Item->Package = Package; + Top->DirDown = Item; + return Item; + } + Top = Top->DirDown; + + int Res; + while (1) + { + Res = strcmp(Name,Top->Path); + + // Collision! + if (Res == 0) + { + // See if this the the same package (multi-version dup) + if (Top->Package == Package || + strcasecmp(Top->Package,Package) == 0) + return Top; + + // Look for an already existing Dup + for (Node *I = Top->Dups; I != 0; I = I->Dups) + if (I->Package == Package || + strcasecmp(I->Package,Package) == 0) + return Top; + + // Add the dup in + Node *Item = new(this) Node; + Item->Path = Top->Path; + Item->Package = Package; + Item->Dups = Top->Dups; + Top->Dups = Item; + return Top; + } + + // Continue to traverse the tree + if (Res < 0) + { + if (Top->BTreeLeft == 0) + break; + Top = Top->BTreeLeft; + } + else + { + if (Top->BTreeRight == 0) + break; + Top = Top->BTreeRight; + } + } + + // The item was not found in the tree + Node *Item = new(this) Node; + Item->Path = Mystrdup(Name); + Item->Package = Package; + + // Link it into the tree + if (Res < 0) + { + Item->BTreeLeft = Top->BTreeLeft; + Top->BTreeLeft = Item; + } + else + { + Item->BTreeRight = Top->BTreeRight; + Top->BTreeRight = Item; + } + + return Item; +} + /*}}}*/ +// GenContents::Add - Add a path to the tree /*{{{*/ +// --------------------------------------------------------------------- +/* This takes a full pathname and adds it into the tree. We split the + pathname into directory fragments adding each one as we go. Technically + in output from tar this should result in hitting previous items. */ +void GenContents::Add(const char *Dir,const char *Package) +{ + Node *Root = &this->Root; + + // Drop leading slashes + while (*Dir == '/' && *Dir != 0) + Dir++; + + // Run over the string and grab out each bit up to and including a / + const char *Start = Dir; + const char *I = Dir; + while (*I != 0) + { + if (*I != '/' || I - Start <= 1) + { + I++; + continue; + } + I++; + + // Copy the path fragment over + char Tmp[1024]; + strncpy(Tmp,Start,I - Start); + Tmp[I - Start] = 0; + + // Grab a node for it + Root = Grab(Root,Tmp,Package); + + Start = I; + } + + // The final component if it does not have a trailing / + if (I - Start >= 1) + Root = Grab(Root,Start,Package); +} + /*}}}*/ +// GenContents::WriteSpace - Write a given number of white space chars /*{{{*/ +// --------------------------------------------------------------------- +/* We mod 8 it and write tabs where possible. */ +void GenContents::WriteSpace(FILE *Out,unsigned int Current,unsigned int Target) +{ + if (Target <= Current) + Target = Current + 1; + + /* Now we write tabs so long as the next tab stop would not pass + the target */ + for (; (Current/8 + 1)*8 < Target; Current = (Current/8 + 1)*8) + fputc('\t',Out); + + // Fill the last bit with spaces + for (; Current < Target; Current++) + fputc(' ',Out); +} + /*}}}*/ +// GenContents::Print - Display the tree /*{{{*/ +// --------------------------------------------------------------------- +/* This is the final result function. It takes the tree and recursively + calls itself and runs over each section of the tree printing out + the pathname and the hit packages. We use Buf to build the pathname + summed over all the directory parents of this node. */ +void GenContents::Print(FILE *Out) +{ + char Buffer[1024]; + Buffer[0] = 0; + DoPrint(Out,&Root,Buffer); +} +void GenContents::DoPrint(FILE *Out,GenContents::Node *Top, char *Buf) +{ + if (Top == 0) + return; + + // Go left + DoPrint(Out,Top->BTreeLeft,Buf); + + // Print the current dir location and then descend to lower dirs + char *OldEnd = Buf + strlen(Buf); + if (Top->Path != 0) + { + strcat(Buf,Top->Path); + + // Do not show the item if it is a directory with dups + if (Top->Path[strlen(Top->Path)-1] != '/' /*|| Top->Dups == 0*/) + { + fputs(Buf,Out); + WriteSpace(Out,strlen(Buf),60); + for (Node *I = Top; I != 0; I = I->Dups) + { + if (I != Top) + fputc(',',Out); + fputs(I->Package,Out); + } + fputc('\n',Out); + } + } + + // Go along the directory link + DoPrint(Out,Top->DirDown,Buf); + *OldEnd = 0; + + // Go right + DoPrint(Out,Top->BTreeRight,Buf); +} + /*}}}*/ + +// ContentsExtract::Read - Read the archive /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool ContentsExtract::Read(debDebFile &Deb) +{ + Reset(); + + // Get the archive member and positition the file + const ARArchive::Member *Member = Deb.GotoMember("data.tar.gz"); + const char *Compressor = "gzip"; + if (Member == 0) { + Member = Deb.GotoMember("data.tar.bz2"); + Compressor = "bzip2"; + } + if (Member == 0) { + _error->Error(_("Internal error, could not locate member %s"),"data.tar.gz"); + return false; + } + + // Extract it. + ExtractTar Tar(Deb.GetFile(),Member->Size,Compressor); + if (Tar.Go(*this) == false) + return false; + return true; +} + /*}}}*/ +// ContentsExtract::DoItem - Extract an item /*{{{*/ +// --------------------------------------------------------------------- +/* This just tacks the name onto the end of our memory buffer */ +bool ContentsExtract::DoItem(Item &Itm,int &Fd) +{ + unsigned long Len = strlen(Itm.Name); + + // Strip leading ./'s + if (Itm.Name[0] == '.' && Itm.Name[1] == '/') + { + // == './' + if (Len == 2) + return true; + + Len -= 2; + Itm.Name += 2; + } + + // Allocate more storage for the string list + if (CurSize + Len + 2 >= MaxSize || Data == 0) + { + if (MaxSize == 0) + MaxSize = 512*1024/2; + char *NewData = (char *)realloc(Data,MaxSize*2); + if (NewData == 0) + return _error->Error(_("realloc - Failed to allocate memory")); + Data = NewData; + MaxSize *= 2; + } + + strcpy(Data+CurSize,Itm.Name); + CurSize += Len + 1; + return true; +} + /*}}}*/ +// ContentsExtract::TakeContents - Load the contents data /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool ContentsExtract::TakeContents(const void *NewData,unsigned long Length) +{ + if (Length == 0) + { + CurSize = 0; + return true; + } + + // Allocate more storage for the string list + if (Length + 2 >= MaxSize || Data == 0) + { + if (MaxSize == 0) + MaxSize = 512*1024/2; + while (MaxSize*2 <= Length) + MaxSize *= 2; + + char *NewData = (char *)realloc(Data,MaxSize*2); + if (NewData == 0) + return _error->Error(_("realloc - Failed to allocate memory")); + Data = NewData; + MaxSize *= 2; + } + memcpy(Data,NewData,Length); + CurSize = Length; + + return Data[CurSize-1] == 0; +} + /*}}}*/ +// ContentsExtract::Add - Read the contents data into the sorter /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void ContentsExtract::Add(GenContents &Contents,string Package) +{ + const char *Start = Data; + char *Pkg = Contents.Mystrdup(Package.c_str()); + for (const char *I = Data; I < Data + CurSize; I++) + { + if (*I == 0) + { + Contents.Add(Start,Pkg); + Start = ++I; + } + } +} + /*}}}*/ diff --git a/ftparchive/contents.h b/ftparchive/contents.h new file mode 100644 index 0000000..d8457cd --- /dev/null +++ b/ftparchive/contents.h @@ -0,0 +1,89 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: contents.h,v 1.2 2001/02/20 07:03:18 jgg Exp $ +/* ###################################################################### + + contents - Contents of archive things. + + ##################################################################### */ + /*}}}*/ +#ifndef CONTENTS_H +#define CONTENTS_H + +#include +#include +#include +#include + +class GenContents +{ + struct Node + { + // Binary Tree links + Node *BTreeLeft; + Node *BTreeRight; + Node *DirDown; + Node *Dups; + const char *Path; + const char *Package; + + void *operator new(size_t Amount,GenContents *Owner); + void operator delete(void *) {}; + + Node() : BTreeLeft(0), BTreeRight(0), DirDown(0), Dups(0), + Path(0), Package(0) {}; + }; + friend struct Node; + + struct BigBlock + { + void *Block; + BigBlock *Next; + }; + + Node Root; + + // Big block allocation pools + BigBlock *BlockList; + char *StrPool; + unsigned long StrLeft; + Node *NodePool; + unsigned long NodeLeft; + + Node *Grab(Node *Top,const char *Name,const char *Package); + void WriteSpace(FILE *Out,unsigned int Current,unsigned int Target); + void DoPrint(FILE *Out,Node *Top, char *Buf); + + public: + + char *Mystrdup(const char *From); + void Add(const char *Dir,const char *Package); + void Print(FILE *Out); + + GenContents() : BlockList(0), StrPool(0), StrLeft(0), + NodePool(0), NodeLeft(0) {}; + ~GenContents(); +}; + +class ContentsExtract : public pkgDirStream +{ + public: + + // The Data Block + char *Data; + unsigned long MaxSize; + unsigned long CurSize; + void AddData(const char *Text); + + bool Read(debDebFile &Deb); + + virtual bool DoItem(Item &Itm,int &Fd); + void Reset() {CurSize = 0;}; + bool TakeContents(const void *Data,unsigned long Length); + void Add(GenContents &Contents,string Package); + + ContentsExtract() : Data(0), MaxSize(0), CurSize(0) {}; + virtual ~ContentsExtract() {delete [] Data;}; +}; + +#endif diff --git a/ftparchive/makefile b/ftparchive/makefile new file mode 100644 index 0000000..a965166 --- /dev/null +++ b/ftparchive/makefile @@ -0,0 +1,20 @@ +# -*- make -*- +BASE=.. +SUBDIR=ftparchive + +# Bring in the default rules +include ../buildlib/defaults.mak + +# The apt-ftparchive program +ifdef BDBLIB +PROGRAM=apt-ftparchive +SLIBS = -lapt-pkg -lapt-inst $(BDBLIB) +LIB_MAKES = apt-pkg/makefile apt-inst/makefile +SOURCE = apt-ftparchive.cc cachedb.cc writer.cc contents.cc override.cc \ + multicompress.cc +include $(PROGRAM_H) +else +PROGRAM=apt-ftparchive +MESSAGE="Must have db2 to build apt-ftparchive" +include $(FAIL_H) +endif # ifdef BDBLIB diff --git a/ftparchive/multicompress.cc b/ftparchive/multicompress.cc new file mode 100644 index 0000000..a3512c7 --- /dev/null +++ b/ftparchive/multicompress.cc @@ -0,0 +1,498 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: multicompress.cc,v 1.4 2003/02/10 07:34:41 doogie Exp $ +/* ###################################################################### + + MultiCompressor + + This class is very complicated in order to optimize for the common + case of its use, writing a large set of compressed files that are + different from the old set. It spawns off compressors in parallel + to maximize compression throughput and has a separate task managing + the data going into the compressors. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "multicompress.h" +#endif + +#include "multicompress.h" + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + /*}}}*/ + +using namespace std; + +const MultiCompress::CompType MultiCompress::Compressors[] = + {{".","",0,0,0,1}, + {"gzip",".gz","gzip","-9n","-d",2}, + {"bzip2",".bz2","bzip2","-9","-d",3}, + {}}; + +// MultiCompress::MultiCompress - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* Setup the file outputs, compression modes and fork the writer child */ +MultiCompress::MultiCompress(string Output,string Compress, + mode_t Permissions,bool Write) +{ + Outputs = 0; + Outputter = -1; + Input = 0; + UpdateMTime = 0; + this->Permissions = Permissions; + + /* Parse the compression string, a space separated lists of compresison + types */ + string::const_iterator I = Compress.begin(); + for (; I != Compress.end();) + { + for (; I != Compress.end() && isspace(*I); I++); + + // Grab a word + string::const_iterator Start = I; + for (; I != Compress.end() && !isspace(*I); I++); + + // Find the matching compressor + const CompType *Comp = Compressors; + for (; Comp->Name != 0; Comp++) + if (stringcmp(Start,I,Comp->Name) == 0) + break; + + // Hmm.. unknown. + if (Comp->Name == 0) + { + _error->Warning(_("Unknown compression algorithm '%s'"),string(Start,I).c_str()); + continue; + } + + // Create and link in a new output + Files *NewOut = new Files; + NewOut->Next = Outputs; + Outputs = NewOut; + NewOut->CompressProg = Comp; + NewOut->Output = Output+Comp->Extension; + + struct stat St; + if (stat(NewOut->Output.c_str(),&St) == 0) + NewOut->OldMTime = St.st_mtime; + else + NewOut->OldMTime = 0; + } + + if (Write == false) + return; + + /* Open all the temp files now so we can report any errors. File is + made unreable to prevent people from touching it during creating. */ + for (Files *I = Outputs; I != 0; I = I->Next) + I->TmpFile.Open(I->Output + ".new",FileFd::WriteEmpty,0600); + if (_error->PendingError() == true) + return; + + if (Outputs == 0) + { + _error->Error(_("Compressed output %s needs a compression set"),Output.c_str()); + return; + } + + Start(); +} + /*}}}*/ +// MultiCompress::~MultiCompress - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* Just erase the file linked list. */ +MultiCompress::~MultiCompress() +{ + Die(); + + for (; Outputs != 0;) + { + Files *Tmp = Outputs->Next; + delete Outputs; + Outputs = Tmp; + } +} + /*}}}*/ +// MultiCompress::GetStat - Get stat information for compressed files /*{{{*/ +// --------------------------------------------------------------------- +/* This checks each compressed file to make sure it exists and returns + stat information for a random file from the collection. False means + one or more of the files is missing. */ +bool MultiCompress::GetStat(string Output,string Compress,struct stat &St) +{ + /* Parse the compression string, a space separated lists of compresison + types */ + string::const_iterator I = Compress.begin(); + bool DidStat = false; + for (; I != Compress.end();) + { + for (; I != Compress.end() && isspace(*I); I++); + + // Grab a word + string::const_iterator Start = I; + for (; I != Compress.end() && !isspace(*I); I++); + + // Find the matching compressor + const CompType *Comp = Compressors; + for (; Comp->Name != 0; Comp++) + if (stringcmp(Start,I,Comp->Name) == 0) + break; + + // Hmm.. unknown. + if (Comp->Name == 0) + continue; + + string Name = Output+Comp->Extension; + if (stat(Name.c_str(),&St) != 0) + return false; + DidStat = true; + } + return DidStat; +} + /*}}}*/ +// MultiCompress::Start - Start up the writer child /*{{{*/ +// --------------------------------------------------------------------- +/* Fork a child and setup the communication pipe. */ +bool MultiCompress::Start() +{ + // Create a data pipe + int Pipe[2] = {-1,-1}; + if (pipe(Pipe) != 0) + return _error->Errno("pipe",_("Failed to create IPC pipe to subprocess")); + for (int I = 0; I != 2; I++) + SetCloseExec(Pipe[I],true); + + // The child.. + Outputter = fork(); + if (Outputter == 0) + { + close(Pipe[1]); + Child(Pipe[0]); + if (_error->PendingError() == true) + { + _error->DumpErrors(); + _exit(100); + } + _exit(0); + }; + + /* Tidy up the temp files, we open them in the constructor so as to + get proper error reporting. Close them now. */ + for (Files *I = Outputs; I != 0; I = I->Next) + I->TmpFile.Close(); + + close(Pipe[0]); + Input = fdopen(Pipe[1],"w"); + if (Input == 0) + return _error->Errno("fdopen",_("Failed to create FILE*")); + + if (Outputter == -1) + return _error->Errno("fork",_("Failed to fork")); + return true; +} + /*}}}*/ +// MultiCompress::Die - Clean up the writer /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool MultiCompress::Die() +{ + if (Input == 0) + return true; + + fclose(Input); + Input = 0; + bool Res = ExecWait(Outputter,_("Compress child"),false); + Outputter = -1; + return Res; +} + /*}}}*/ +// MultiCompress::Finalize - Finish up writing /*{{{*/ +// --------------------------------------------------------------------- +/* This is only necessary for statistics reporting. */ +bool MultiCompress::Finalize(unsigned long &OutSize) +{ + OutSize = 0; + if (Input == 0 || Die() == false) + return false; + + time_t Now; + time(&Now); + + // Check the mtimes to see if the files were replaced. + bool Changed = false; + for (Files *I = Outputs; I != 0; I = I->Next) + { + struct stat St; + if (stat(I->Output.c_str(),&St) != 0) + return _error->Error(_("Internal error, failed to create %s"), + I->Output.c_str()); + + if (I->OldMTime != St.st_mtime) + Changed = true; + else + { + // Update the mtime if necessary + if (UpdateMTime > 0 && + (Now - St.st_mtime > (signed)UpdateMTime || St.st_mtime > Now)) + { + struct utimbuf Buf; + Buf.actime = Buf.modtime = Now; + utime(I->Output.c_str(),&Buf); + Changed = true; + } + } + + // Force the file permissions + if (St.st_mode != Permissions) + chmod(I->Output.c_str(),Permissions); + + OutSize += St.st_size; + } + + if (Changed == false) + OutSize = 0; + + return true; +} + /*}}}*/ +// MultiCompress::OpenCompress - Open the compressor /*{{{*/ +// --------------------------------------------------------------------- +/* This opens the compressor, either in compress mode or decompress + mode. FileFd is always the compressor input/output file, + OutFd is the created pipe, Input for Compress, Output for Decompress. */ +bool MultiCompress::OpenCompress(const CompType *Prog,pid_t &Pid,int FileFd, + int &OutFd,bool Comp) +{ + Pid = -1; + + // No compression + if (Prog->Binary == 0) + { + OutFd = dup(FileFd); + return true; + } + + // Create a data pipe + int Pipe[2] = {-1,-1}; + if (pipe(Pipe) != 0) + return _error->Errno("pipe",_("Failed to create subprocess IPC")); + for (int J = 0; J != 2; J++) + SetCloseExec(Pipe[J],true); + + if (Comp == true) + OutFd = Pipe[1]; + else + OutFd = Pipe[0]; + + // The child.. + Pid = ExecFork(); + if (Pid == 0) + { + if (Comp == true) + { + dup2(FileFd,STDOUT_FILENO); + dup2(Pipe[0],STDIN_FILENO); + } + else + { + dup2(FileFd,STDIN_FILENO); + dup2(Pipe[1],STDOUT_FILENO); + } + + SetCloseExec(STDOUT_FILENO,false); + SetCloseExec(STDIN_FILENO,false); + + const char *Args[3]; + Args[0] = Prog->Binary; + if (Comp == true) + Args[1] = Prog->CompArgs; + else + Args[1] = Prog->UnCompArgs; + Args[2] = 0; + execvp(Args[0],(char **)Args); + cerr << _("Failed to exec compressor ") << Args[0] << endl; + _exit(100); + }; + if (Comp == true) + close(Pipe[0]); + else + close(Pipe[1]); + return true; +} + /*}}}*/ +// MultiCompress::OpenOld - Open an old file /*{{{*/ +// --------------------------------------------------------------------- +/* This opens one of the original output files, possibly decompressing it. */ +bool MultiCompress::OpenOld(int &Fd,pid_t &Proc) +{ + Files *Best = Outputs; + for (Files *I = Outputs; I != 0; I = I->Next) + if (Best->CompressProg->Cost > I->CompressProg->Cost) + Best = I; + + // Open the file + FileFd F(Best->Output,FileFd::ReadOnly); + if (_error->PendingError() == true) + return false; + + // Decompress the file so we can read it + if (OpenCompress(Best->CompressProg,Proc,F.Fd(),Fd,false) == false) + return false; + + return true; +} + /*}}}*/ +// MultiCompress::CloseOld - Close the old file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool MultiCompress::CloseOld(int Fd,pid_t Proc) +{ + close(Fd); + if (Proc != -1) + if (ExecWait(Proc,_("decompressor"),false) == false) + return false; + return true; +} + /*}}}*/ +// MultiCompress::Child - The writer child /*{{{*/ +// --------------------------------------------------------------------- +/* The child process forks a bunch of compression children and takes + input on FD and passes it to all the compressor childer. On the way it + computes the MD5 of the raw data. After this the raw data in the + original files is compared to see if this data is new. If the data + is new then the temp files are renamed, otherwise they are erased. */ +bool MultiCompress::Child(int FD) +{ + // Start the compression children. + for (Files *I = Outputs; I != 0; I = I->Next) + { + if (OpenCompress(I->CompressProg,I->CompressProc,I->TmpFile.Fd(), + I->Fd,true) == false) + return false; + } + + /* Okay, now we just feed data from FD to all the other FDs. Also + stash a hash of the data to use later. */ + SetNonBlock(FD,false); + unsigned char Buffer[32*1024]; + unsigned long FileSize = 0; + MD5Summation MD5; + while (1) + { + WaitFd(FD,false); + int Res = read(FD,Buffer,sizeof(Buffer)); + if (Res == 0) + break; + if (Res < 0) + continue; + + MD5.Add(Buffer,Res); + FileSize += Res; + for (Files *I = Outputs; I != 0; I = I->Next) + { + if (write(I->Fd,Buffer,Res) != Res) + { + _error->Errno("write",_("IO to subprocess/file failed")); + break; + } + } + } + + // Close all the writers + for (Files *I = Outputs; I != 0; I = I->Next) + close(I->Fd); + + // Wait for the compressors to exit + for (Files *I = Outputs; I != 0; I = I->Next) + { + if (I->CompressProc != -1) + ExecWait(I->CompressProc,I->CompressProg->Binary,false); + } + + if (_error->PendingError() == true) + return false; + + /* Now we have to copy the files over, or erase them if they + have not changed. First find the cheapest decompressor */ + bool Missing = false; + for (Files *I = Outputs; I != 0; I = I->Next) + { + if (I->OldMTime == 0) + { + Missing = true; + break; + } + } + + // Check the MD5 of the lowest cost entity. + while (Missing == false) + { + int CompFd = -1; + pid_t Proc = -1; + if (OpenOld(CompFd,Proc) == false) + { + _error->Discard(); + break; + } + + // Compute the hash + MD5Summation OldMD5; + unsigned long NewFileSize = 0; + while (1) + { + int Res = read(CompFd,Buffer,sizeof(Buffer)); + if (Res == 0) + break; + if (Res < 0) + return _error->Errno("read",_("Failed to read while computing MD5")); + NewFileSize += Res; + OldMD5.Add(Buffer,Res); + } + + // Tidy the compressor + if (CloseOld(CompFd,Proc) == false) + return false; + + // Check the hash + if (OldMD5.Result() == MD5.Result() && + FileSize == NewFileSize) + { + for (Files *I = Outputs; I != 0; I = I->Next) + { + I->TmpFile.Close(); + if (unlink(I->TmpFile.Name().c_str()) != 0) + _error->Errno("unlink",_("Problem unlinking %s"), + I->TmpFile.Name().c_str()); + } + return !_error->PendingError(); + } + break; + } + + // Finalize + for (Files *I = Outputs; I != 0; I = I->Next) + { + // Set the correct file modes + fchmod(I->TmpFile.Fd(),Permissions); + + if (rename(I->TmpFile.Name().c_str(),I->Output.c_str()) != 0) + _error->Errno("rename",_("Failed to rename %s to %s"), + I->TmpFile.Name().c_str(),I->Output.c_str()); + I->TmpFile.Close(); + } + + return !_error->PendingError(); +} + /*}}}*/ + diff --git a/ftparchive/multicompress.h b/ftparchive/multicompress.h new file mode 100644 index 0000000..444d862 --- /dev/null +++ b/ftparchive/multicompress.h @@ -0,0 +1,80 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: multicompress.h,v 1.2 2001/02/20 07:03:18 jgg Exp $ +/* ###################################################################### + + MultiCompressor + + Multiple output class. Takes a single FILE* and writes it simultaneously + to many compressed files. Then checks if the resulting output is + different from any previous output and overwrites the old files. Care is + taken to ensure that the new files are not generally readable while they + are being written. + + ##################################################################### */ + /*}}}*/ +#ifndef MULTICOMPRESS_H +#define MULTICOMPRESS_H + +#ifdef __GNUG__ +#pragma interface "multicompress.h" +#endif + +#include +#include +#include +#include + +class MultiCompress +{ + // Enumeration of all supported compressors + struct CompType + { + const char *Name; + const char *Extension; + const char *Binary; + const char *CompArgs; + const char *UnCompArgs; + unsigned char Cost; + }; + + // An output file + struct Files + { + string Output; + const CompType *CompressProg; + Files *Next; + FileFd TmpFile; + pid_t CompressProc; + time_t OldMTime; + int Fd; + }; + + Files *Outputs; + pid_t Outputter; + mode_t Permissions; + static const CompType Compressors[]; + + bool OpenCompress(const CompType *Prog,pid_t &Pid,int FileFd, + int &OutFd,bool Comp); + bool Child(int Fd); + bool Start(); + bool Die(); + + public: + + // The FD to write to for compression. + FILE *Input; + unsigned long UpdateMTime; + + bool Finalize(unsigned long &OutSize); + bool OpenOld(int &Fd,pid_t &Proc); + bool CloseOld(int Fd,pid_t Proc); + static bool GetStat(string Output,string Compress,struct stat &St); + + MultiCompress(string Output,string Compress,mode_t Permissions, + bool Write = true); + ~MultiCompress(); +}; + +#endif diff --git a/ftparchive/override.cc b/ftparchive/override.cc new file mode 100644 index 0000000..b8b9484 --- /dev/null +++ b/ftparchive/override.cc @@ -0,0 +1,293 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: override.cc,v 1.4 2003/02/10 07:34:41 doogie Exp $ +/* ###################################################################### + + Override + + Store the override file. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "override.h" +#endif + +#include "override.h" + +#include +#include +#include + +#include + +#include "override.h" + /*}}}*/ + +// Override::ReadOverride - Read the override file /*{{{*/ +// --------------------------------------------------------------------- +/* This parses the override file and reads it into the map */ +bool Override::ReadOverride(string File,bool Source) +{ + if (File.empty() == true) + return true; + + FILE *F = fopen(File.c_str(),"r"); + if (F == 0) + return _error->Errno("fopen",_("Unable to open %s"),File.c_str()); + + char Line[500]; + unsigned long Counter = 0; + while (fgets(Line,sizeof(Line),F) != 0) + { + Counter++; + Item Itm; + + // Silence + for (char *I = Line; *I != 0; I++) + if (*I == '#') + *I = 0; + + // Strip space leading up to the package name, skip blank lines + char *Pkg = Line; + for (; isspace(*Pkg) && *Pkg != 0;Pkg++); + if (Pkg == 0) + continue; + + // Find the package and zero.. + char *Start = Pkg; + char *End = Pkg; + for (; isspace(*End) == 0 && *End != 0; End++); + if (*End == 0) + { + _error->Warning(_("Malformed override %s line %lu #1"),File.c_str(), + Counter); + continue; + } + *End = 0; + + // Find the priority + if (Source == false) + { + for (End++; isspace(*End) != 0 && *End != 0; End++); + Start = End; + for (; isspace(*End) == 0 && *End != 0; End++); + if (*End == 0) + { + _error->Warning(_("Malformed override %s line %lu #2"),File.c_str(), + Counter); + continue; + } + *End = 0; + Itm.Priority = Start; + } + + // Find the Section + for (End++; isspace(*End) != 0 && *End != 0; End++); + Start = End; + for (; isspace(*End) == 0 && *End != 0; End++); + if (*End == 0) + { + _error->Warning(_("Malformed override %s line %lu #3"),File.c_str(), + Counter); + continue; + } + *End = 0; + Itm.FieldOverride["Section"] = Start; + + // Source override files only have the two columns + if (Source == true) + { + Mapping[Pkg] = Itm; + continue; + } + + // Find the => + for (End++; isspace(*End) != 0 && *End != 0; End++); + if (*End != 0) + { + Start = End; + for (; *End != 0 && (End[0] != '=' || End[1] != '>'); End++); + if (*End == 0 || strlen(End) < 4) + { + Itm.OldMaint = "*"; + Itm.NewMaint = _strstrip(Start); + } + else + { + *End = 0; + Itm.OldMaint = _strstrip(Start); + + End += 3; + Itm.NewMaint = _strstrip(End); + } + } + + Mapping[Pkg] = Itm; + } + + if (ferror(F)) + _error->Errno("fgets",_("Failed to read the override file %s"),File.c_str()); + fclose(F); + return true; +} + /*}}}*/ +// Override::ReadExtraOverride - Read the extra override file /*{{{*/ +// --------------------------------------------------------------------- +/* This parses the extra override file and reads it into the map */ +bool Override::ReadExtraOverride(string File,bool Source) +{ + if (File.empty() == true) + return true; + + FILE *F = fopen(File.c_str(),"r"); + if (F == 0) + return _error->Errno("fopen",_("Unable to open %s"),File.c_str()); + + char Line[500]; + unsigned long Counter = 0; + while (fgets(Line,sizeof(Line),F) != 0) + { + Counter++; + + // Silence + for (char *I = Line; *I != 0; I++) + if (*I == '#') + *I = 0; + + // Strip space leading up to the package name, skip blank lines + char *Pkg = Line; + for (; isspace(*Pkg) && *Pkg != 0;Pkg++); + if (Pkg == 0) + continue; + + // Find the package and zero.. + char *End = Pkg; + for (; isspace(*End) == 0 && *End != 0; End++); + if (*End == 0) + { + _error->Warning(_("Malformed override %s line %lu #1"),File.c_str(), + Counter); + continue; + } + *End = 0; + + // Find the field + for (End++; isspace(*End) != 0 && *End != 0; End++); + char *Field = End; + for (; isspace(*End) == 0 && *End != 0; End++); + if (*End == 0) + { + _error->Warning(_("Malformed override %s line %lu #2"),File.c_str(), + Counter); + continue; + } + *End = 0; + + // Find the field value + for (End++; isspace(*End) != 0 && *End != 0; End++); + char *Value = End; + for (; *End != 0; End++); + for (; isspace(*(End-1)) && End > Value; End--); + if (End == Value) + { + _error->Warning(_("Malformed override %s line %lu #3"),File.c_str(), + Counter); + continue; + } + *End = 0; + + Mapping[Pkg].FieldOverride[Field] = Value; + } + + if (ferror(F)) + _error->Errno("fgets",_("Failed to read the override file %s"),File.c_str()); + fclose(F); + return true; +} + /*}}}*/ + +// Override::GetItem - Get a architecture specific item /*{{{*/ +// --------------------------------------------------------------------- +/* Returns a override item for the given package and the given architecture. + * Treats "all" special + */ +Override::Item* Override::GetItem(string Package, string Architecture) +{ + map::iterator I = Mapping.find(Package); + map::iterator J = Mapping.find(Package + "/" + Architecture); + + if (I == Mapping.end() && J == Mapping.end()) + { + return 0; + } + + Item *result = new Item; + if (I == Mapping.end()) *result = J->second; + else + { + *result = I->second; + if (J != Mapping.end()) + { + Item *R = &J->second; + if (R->Priority != "") result->Priority = R->Priority; + if (R->OldMaint != "") result->OldMaint = R->OldMaint; + if (R->NewMaint != "") result->NewMaint = R->NewMaint; + for (map::iterator foI = R->FieldOverride.begin(); + foI != R->FieldOverride.end(); foI++) + { + result->FieldOverride[foI->first] = foI->second; + } + } + } + return result; +}; + + +// Override::Item::SwapMaint - Swap the maintainer field if necessary /*{{{*/ +// --------------------------------------------------------------------- +/* Returns the new maintainer string after evaluating the rewriting rule. If + there is a rule but it does not match then the empty string is returned, + also if there was no rewrite rule the empty string is returned. Failed + indicates if there was some kind of problem while rewriting. */ +string Override::Item::SwapMaint(string Orig,bool &Failed) +{ + Failed = false; + + // Degenerate case.. + if (NewMaint.empty() == true) + return OldMaint; + + if (OldMaint == "*") + return NewMaint; + + /* James: ancient, eliminate it, however it is still being used in the main + override file. Thus it persists.*/ +#if 1 + // Break OldMaint up into little bits on double slash boundaries. + string::iterator End = OldMaint.begin(); + while (1) + { + string::iterator Start = End; + for (; End < OldMaint.end() && + (End + 3 >= OldMaint.end() || End[0] != ' ' || + End[1] != '/' || End[2] != '/'); End++); + if (stringcasecmp(Start,End,Orig.begin(),Orig.end()) == 0) + return NewMaint; + + if (End >= OldMaint.end()) + break; + + // Skip the divider and white space + for (; End < OldMaint.end() && (*End == '/' || *End == ' '); End++); + } +#else + if (stringcasecmp(OldMaint.begin(),OldMaint.end(),Orig.begin(),Orig.end()) == 0) + return NewMaint; +#endif + + Failed = true; + return string(); +} + /*}}}*/ diff --git a/ftparchive/override.h b/ftparchive/override.h new file mode 100644 index 0000000..e646417 --- /dev/null +++ b/ftparchive/override.h @@ -0,0 +1,53 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: override.h,v 1.4 2001/06/26 02:50:27 jgg Exp $ +/* ###################################################################### + + Override + + Store the override file. + + ##################################################################### */ + /*}}}*/ +#ifndef OVERRIDE_H +#define OVERRIDE_H + +#ifdef __GNUG__ +#pragma interface "override.h" +#endif + +#include +#include + +using std::string; +using std::map; + +class Override +{ + public: + + struct Item + { + string Priority; + string OldMaint; + string NewMaint; + + map FieldOverride; + string SwapMaint(string Orig,bool &Failed); + ~Item() {}; + }; + + map Mapping; + + inline Item *GetItem(string Package) + { + return GetItem(Package, ""); + } + Item *GetItem(string Package, string Architecture); + + bool ReadOverride(string File,bool Source = false); + bool ReadExtraOverride(string File,bool Source = false); +}; + +#endif + diff --git a/ftparchive/writer.cc b/ftparchive/writer.cc new file mode 100644 index 0000000..ea242d6 --- /dev/null +++ b/ftparchive/writer.cc @@ -0,0 +1,947 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: writer.cc,v 1.14 2004/03/24 01:40:43 mdz Exp $ +/* ###################################################################### + + Writer + + The file writer classes. These write various types of output, sources, + packages and contents. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#ifdef __GNUG__ +#pragma implementation "writer.h" +#endif + +#include "writer.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "cachedb.h" +#include "apt-ftparchive.h" +#include "multicompress.h" + /*}}}*/ +using namespace std; +FTWScanner *FTWScanner::Owner; + +// SetTFRewriteData - Helper for setting rewrite lists /*{{{*/ +// --------------------------------------------------------------------- +/* */ +inline void SetTFRewriteData(struct TFRewriteData &tfrd, + const char *tag, + const char *rewrite, + const char *newtag = 0) +{ + tfrd.Tag = tag; + tfrd.Rewrite = rewrite; + tfrd.NewTag = newtag; +} + /*}}}*/ + +// FTWScanner::FTWScanner - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +FTWScanner::FTWScanner() +{ + ErrorPrinted = false; + NoLinkAct = !_config->FindB("APT::FTPArchive::DeLinkAct",true); + RealPath = 0; + long PMax = pathconf(".",_PC_PATH_MAX); + if (PMax > 0) + RealPath = new char[PMax]; +} + /*}}}*/ +// FTWScanner::Scanner - FTW Scanner /*{{{*/ +// --------------------------------------------------------------------- +/* This is the FTW scanner, it processes each directory element in the + directory tree. */ +int FTWScanner::ScannerFTW(const char *File,const struct stat *sb,int Flag) +{ + if (Flag == FTW_DNR) + { + Owner->NewLine(1); + ioprintf(c1out, _("W: Unable to read directory %s\n"), File); + } + if (Flag == FTW_NS) + { + Owner->NewLine(1); + ioprintf(c1out, _("W: Unable to stat %s\n"), File); + } + if (Flag != FTW_F) + return 0; + + return ScannerFile(File, true); +} + /*}}}*/ +// FTWScanner::ScannerFile - File Scanner /*{{{*/ +// --------------------------------------------------------------------- +/* */ +int FTWScanner::ScannerFile(const char *File, bool ReadLink) +{ + const char *LastComponent = strrchr(File, '/'); + if (LastComponent == NULL) + LastComponent = File; + else + LastComponent++; + + vector::iterator I; + for(I = Owner->Patterns.begin(); I != Owner->Patterns.end(); ++I) + { + if (fnmatch((*I).c_str(), LastComponent, 0) == 0) + break; + } + if (I == Owner->Patterns.end()) + return 0; + + /* Process it. If the file is a link then resolve it into an absolute + name.. This works best if the directory components the scanner are + given are not links themselves. */ + char Jnk[2]; + Owner->OriginalPath = File; + if (ReadLink && Owner->RealPath != 0 && + readlink(File,Jnk,sizeof(Jnk)) != -1 && + realpath(File,Owner->RealPath) != 0) + Owner->DoPackage(Owner->RealPath); + else + Owner->DoPackage(File); + + if (_error->empty() == false) + { + // Print any errors or warnings found + string Err; + bool SeenPath = false; + while (_error->empty() == false) + { + Owner->NewLine(1); + + bool Type = _error->PopMessage(Err); + if (Type == true) + cerr << _("E: ") << Err << endl; + else + cerr << _("W: ") << Err << endl; + + if (Err.find(File) != string::npos) + SeenPath = true; + } + + if (SeenPath == false) + cerr << _("E: Errors apply to file ") << "'" << File << "'" << endl; + return 0; + } + + return 0; +} + /*}}}*/ +// FTWScanner::RecursiveScan - Just scan a directory tree /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool FTWScanner::RecursiveScan(string Dir) +{ + /* If noprefix is set then jam the scan root in, so we don't generate + link followed paths out of control */ + if (InternalPrefix.empty() == true) + { + if (realpath(Dir.c_str(),RealPath) == 0) + return _error->Errno("realpath",_("Failed to resolve %s"),Dir.c_str()); + InternalPrefix = RealPath; + } + + // Do recursive directory searching + Owner = this; + int Res = ftw(Dir.c_str(),ScannerFTW,30); + + // Error treewalking? + if (Res != 0) + { + if (_error->PendingError() == false) + _error->Errno("ftw",_("Tree walking failed")); + return false; + } + + return true; +} + /*}}}*/ +// FTWScanner::LoadFileList - Load the file list from a file /*{{{*/ +// --------------------------------------------------------------------- +/* This is an alternative to using FTW to locate files, it reads the list + of files from another file. */ +bool FTWScanner::LoadFileList(string Dir,string File) +{ + /* If noprefix is set then jam the scan root in, so we don't generate + link followed paths out of control */ + if (InternalPrefix.empty() == true) + { + if (realpath(Dir.c_str(),RealPath) == 0) + return _error->Errno("realpath",_("Failed to resolve %s"),Dir.c_str()); + InternalPrefix = RealPath; + } + + Owner = this; + FILE *List = fopen(File.c_str(),"r"); + if (List == 0) + return _error->Errno("fopen",_("Failed to open %s"),File.c_str()); + + /* We are a tad tricky here.. We prefix the buffer with the directory + name, that way if we need a full path with just use line.. Sneaky and + fully evil. */ + char Line[1000]; + char *FileStart; + if (Dir.empty() == true || Dir.end()[-1] != '/') + FileStart = Line + snprintf(Line,sizeof(Line),"%s/",Dir.c_str()); + else + FileStart = Line + snprintf(Line,sizeof(Line),"%s",Dir.c_str()); + while (fgets(FileStart,sizeof(Line) - (FileStart - Line),List) != 0) + { + char *FileName = _strstrip(FileStart); + if (FileName[0] == 0) + continue; + + if (FileName[0] != '/') + { + if (FileName != FileStart) + memmove(FileStart,FileName,strlen(FileStart)); + FileName = Line; + } + +#if 0 + struct stat St; + int Flag = FTW_F; + if (stat(FileName,&St) != 0) + Flag = FTW_NS; +#endif + + if (ScannerFile(FileName, false) != 0) + break; + } + + fclose(List); + return true; +} + /*}}}*/ +// FTWScanner::Delink - Delink symlinks /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool FTWScanner::Delink(string &FileName,const char *OriginalPath, + unsigned long &DeLinkBytes, + off_t FileSize) +{ + // See if this isn't an internaly prefix'd file name. + if (InternalPrefix.empty() == false && + InternalPrefix.length() < FileName.length() && + stringcmp(FileName.begin(),FileName.begin() + InternalPrefix.length(), + InternalPrefix.begin(),InternalPrefix.end()) != 0) + { + if (DeLinkLimit != 0 && DeLinkBytes/1024 < DeLinkLimit) + { + // Tidy up the display + if (DeLinkBytes == 0) + cout << endl; + + NewLine(1); + ioprintf(c1out, _(" DeLink %s [%s]\n"), (OriginalPath + InternalPrefix.length()), + SizeToStr(FileSize).c_str()); + c1out << flush; + + if (NoLinkAct == false) + { + char OldLink[400]; + if (readlink(OriginalPath,OldLink,sizeof(OldLink)) == -1) + _error->Errno("readlink",_("Failed to readlink %s"),OriginalPath); + else + { + if (unlink(OriginalPath) != 0) + _error->Errno("unlink",_("Failed to unlink %s"),OriginalPath); + else + { + if (link(FileName.c_str(),OriginalPath) != 0) + { + // Panic! Restore the symlink + symlink(OldLink,OriginalPath); + return _error->Errno("link",_("*** Failed to link %s to %s"), + FileName.c_str(), + OriginalPath); + } + } + } + } + + DeLinkBytes += FileSize; + if (DeLinkBytes/1024 >= DeLinkLimit) + ioprintf(c1out, _(" DeLink limit of %sB hit.\n"), SizeToStr(DeLinkBytes).c_str()); + } + + FileName = OriginalPath; + } + + return true; +} + /*}}}*/ + +// PackagesWriter::PackagesWriter - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +PackagesWriter::PackagesWriter(string DB,string Overrides,string ExtOverrides, + string aArch) : + Db(DB),Stats(Db.Stats), Arch(aArch) +{ + Output = stdout; + SetExts(".deb .udeb .foo .bar .baz"); + AddPattern("*.deb"); + DeLinkLimit = 0; + + // Process the command line options + DoMD5 = _config->FindB("APT::FTPArchive::MD5",true); + DoSHA1 = _config->FindB("APT::FTPArchive::SHA1",true); + DoSHA256 = _config->FindB("APT::FTPArchive::SHA256",true); + DoContents = _config->FindB("APT::FTPArchive::Contents",true); + NoOverride = _config->FindB("APT::FTPArchive::NoOverrideMsg",false); + + if (Db.Loaded() == false) + DoContents = false; + + // Read the override file + if (Overrides.empty() == false && Over.ReadOverride(Overrides) == false) + return; + else + NoOverride = true; + + if (ExtOverrides.empty() == false) + Over.ReadExtraOverride(ExtOverrides); + + _error->DumpErrors(); +} + /*}}}*/ +// FTWScanner::SetExts - Set extensions to support /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool FTWScanner::SetExts(string Vals) +{ + ClearPatterns(); + string::size_type Start = 0; + while (Start <= Vals.length()-1) + { + string::size_type Space = Vals.find(' ',Start); + string::size_type Length; + if (Space == string::npos) + { + Length = Vals.length()-Start; + } + else + { + Length = Space-Start; + } + AddPattern(string("*") + Vals.substr(Start, Length)); + Start += Length + 1; + } + + return true; +} + + /*}}}*/ +// PackagesWriter::DoPackage - Process a single package /*{{{*/ +// --------------------------------------------------------------------- +/* This method takes a package and gets its control information and + MD5, SHA1 and SHA256 then writes out a control record with the proper fields + rewritten and the path/size/hash appended. */ +bool PackagesWriter::DoPackage(string FileName) +{ + // Pull all the data we need form the DB + if (Db.GetFileInfo(FileName, true, DoContents, true, DoMD5, DoSHA1, DoSHA256) + == false) + { + return false; + } + + off_t FileSize = Db.GetFileSize(); + if (Delink(FileName,OriginalPath,Stats.DeLinkBytes,FileSize) == false) + return false; + + // Lookup the overide information + pkgTagSection &Tags = Db.Control.Section; + string Package = Tags.FindS("Package"); + string Architecture; + // if we generate a Packages file for a given arch, we use it to + // look for overrides. if we run in "simple" mode without the + // "Architecures" variable in the config we use the architecure value + // from the deb file + if(Arch != "") + Architecture = Arch; + else + Architecture = Tags.FindS("Architecture"); + auto_ptr OverItem(Over.GetItem(Package,Architecture)); + + if (Package.empty() == true) + return _error->Error(_("Archive had no package field")); + + // If we need to do any rewriting of the header do it now.. + if (OverItem.get() == 0) + { + if (NoOverride == false) + { + NewLine(1); + ioprintf(c1out, _(" %s has no override entry\n"), Package.c_str()); + } + + OverItem = auto_ptr(new Override::Item); + OverItem->FieldOverride["Section"] = Tags.FindS("Section"); + OverItem->Priority = Tags.FindS("Priority"); + } + + char Size[40]; + sprintf(Size,"%lu", (unsigned long) FileSize); + + // Strip the DirStrip prefix from the FileName and add the PathPrefix + string NewFileName; + if (DirStrip.empty() == false && + FileName.length() > DirStrip.length() && + stringcmp(FileName.begin(),FileName.begin() + DirStrip.length(), + DirStrip.begin(),DirStrip.end()) == 0) + NewFileName = string(FileName.begin() + DirStrip.length(),FileName.end()); + else + NewFileName = FileName; + if (PathPrefix.empty() == false) + NewFileName = flCombine(PathPrefix,NewFileName); + + // This lists all the changes to the fields we are going to make. + // (7 hardcoded + maintainer + suggests + end marker) + TFRewriteData Changes[6+2+OverItem->FieldOverride.size()+1]; + + unsigned int End = 0; + SetTFRewriteData(Changes[End++], "Size", Size); + SetTFRewriteData(Changes[End++], "MD5sum", Db.MD5Res.c_str()); + SetTFRewriteData(Changes[End++], "SHA1", Db.SHA1Res.c_str()); + SetTFRewriteData(Changes[End++], "SHA256", Db.SHA256Res.c_str()); + SetTFRewriteData(Changes[End++], "Filename", NewFileName.c_str()); + SetTFRewriteData(Changes[End++], "Priority", OverItem->Priority.c_str()); + SetTFRewriteData(Changes[End++], "Status", 0); + SetTFRewriteData(Changes[End++], "Optional", 0); + + // Rewrite the maintainer field if necessary + bool MaintFailed; + string NewMaint = OverItem->SwapMaint(Tags.FindS("Maintainer"),MaintFailed); + if (MaintFailed == true) + { + if (NoOverride == false) + { + NewLine(1); + ioprintf(c1out, _(" %s maintainer is %s not %s\n"), + Package.c_str(), Tags.FindS("Maintainer").c_str(), OverItem->OldMaint.c_str()); + } + } + + if (NewMaint.empty() == false) + SetTFRewriteData(Changes[End++], "Maintainer", NewMaint.c_str()); + + /* Get rid of the Optional tag. This is an ugly, ugly, ugly hack that + dpkg-scanpackages does.. Well sort of. dpkg-scanpackages just does renaming + but dpkg does this append bit. So we do the append bit, at least that way the + status file and package file will remain similar. There are other transforms + but optional is the only legacy one still in use for some lazy reason. */ + string OptionalStr = Tags.FindS("Optional"); + if (OptionalStr.empty() == false) + { + if (Tags.FindS("Suggests").empty() == false) + OptionalStr = Tags.FindS("Suggests") + ", " + OptionalStr; + SetTFRewriteData(Changes[End++], "Suggests", OptionalStr.c_str()); + } + + for (map::iterator I = OverItem->FieldOverride.begin(); + I != OverItem->FieldOverride.end(); I++) + SetTFRewriteData(Changes[End++],I->first.c_str(),I->second.c_str()); + + SetTFRewriteData(Changes[End++], 0, 0); + + // Rewrite and store the fields. + if (TFRewrite(Output,Tags,TFRewritePackageOrder,Changes) == false) + return false; + fprintf(Output,"\n"); + + return Db.Finish(); +} + /*}}}*/ + +// SourcesWriter::SourcesWriter - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +SourcesWriter::SourcesWriter(string BOverrides,string SOverrides, + string ExtOverrides) +{ + Output = stdout; + AddPattern("*.dsc"); + DeLinkLimit = 0; + Buffer = 0; + BufSize = 0; + + // Process the command line options + NoOverride = _config->FindB("APT::FTPArchive::NoOverrideMsg",false); + + // Read the override file + if (BOverrides.empty() == false && BOver.ReadOverride(BOverrides) == false) + return; + else + NoOverride = true; + + // WTF?? The logic above: if we can't read binary overrides, don't even try + // reading source overrides. if we can read binary overrides, then say there + // are no overrides. THIS MAKES NO SENSE! -- ajt@d.o, 2006/02/28 + + if (ExtOverrides.empty() == false) + SOver.ReadExtraOverride(ExtOverrides); + + if (SOverrides.empty() == false && FileExists(SOverrides) == true) + SOver.ReadOverride(SOverrides,true); +} + /*}}}*/ +// SourcesWriter::DoPackage - Process a single package /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool SourcesWriter::DoPackage(string FileName) +{ + // Open the archive + FileFd F(FileName,FileFd::ReadOnly); + if (_error->PendingError() == true) + return false; + + // Stat the file for later + struct stat St; + if (fstat(F.Fd(),&St) != 0) + return _error->Errno("fstat","Failed to stat %s",FileName.c_str()); + + if (St.st_size > 128*1024) + return _error->Error("DSC file '%s' is too large!",FileName.c_str()); + + if (BufSize < (unsigned)St.st_size+1) + { + BufSize = St.st_size+1; + Buffer = (char *)realloc(Buffer,St.st_size+1); + } + + if (F.Read(Buffer,St.st_size) == false) + return false; + + // Hash the file + char *Start = Buffer; + char *BlkEnd = Buffer + St.st_size; + MD5Summation MD5; + MD5.Add((unsigned char *)Start,BlkEnd - Start); + + // Add an extra \n to the end, just in case + *BlkEnd++ = '\n'; + + /* Remove the PGP trailer. Some .dsc's have this without a blank line + before */ + const char *Key = "-----BEGIN PGP SIGNATURE-----"; + for (char *MsgEnd = Start; MsgEnd < BlkEnd - strlen(Key) -1; MsgEnd++) + { + if (*MsgEnd == '\n' && strncmp(MsgEnd+1,Key,strlen(Key)) == 0) + { + MsgEnd[1] = '\n'; + break; + } + } + + /* Read records until we locate the Source record. This neatly skips the + GPG header (which is RFC822 formed) without any trouble. */ + pkgTagSection Tags; + do + { + unsigned Pos; + if (Tags.Scan(Start,BlkEnd - Start) == false) + return _error->Error("Could not find a record in the DSC '%s'",FileName.c_str()); + if (Tags.Find("Source",Pos) == true) + break; + Start += Tags.size(); + } + while (1); + Tags.Trim(); + + // Lookup the overide information, finding first the best priority. + string BestPrio; + string Bins = Tags.FindS("Binary"); + char Buffer[Bins.length() + 1]; + auto_ptr OverItem(0); + if (Bins.empty() == false) + { + strcpy(Buffer,Bins.c_str()); + + // Ignore too-long errors. + char *BinList[400]; + TokSplitString(',',Buffer,BinList,sizeof(BinList)/sizeof(BinList[0])); + + // Look at all the binaries + unsigned char BestPrioV = pkgCache::State::Extra; + for (unsigned I = 0; BinList[I] != 0; I++) + { + auto_ptr Itm(BOver.GetItem(BinList[I])); + if (Itm.get() == 0) + continue; + + unsigned char NewPrioV = debListParser::GetPrio(Itm->Priority); + if (NewPrioV < BestPrioV || BestPrio.empty() == true) + { + BestPrioV = NewPrioV; + BestPrio = Itm->Priority; + } + + if (OverItem.get() == 0) + OverItem = Itm; + } + } + + // If we need to do any rewriting of the header do it now.. + if (OverItem.get() == 0) + { + if (NoOverride == false) + { + NewLine(1); + ioprintf(c1out, _(" %s has no override entry\n"), Tags.FindS("Source").c_str()); + } + + OverItem = auto_ptr(new Override::Item); + } + + auto_ptr SOverItem(SOver.GetItem(Tags.FindS("Source"))); + // const auto_ptr autoSOverItem(SOverItem); + if (SOverItem.get() == 0) + { + ioprintf(c1out, _(" %s has no source override entry\n"), Tags.FindS("Source").c_str()); + SOverItem = auto_ptr(BOver.GetItem(Tags.FindS("Source"))); + if (SOverItem.get() == 0) + { + ioprintf(c1out, _(" %s has no binary override entry either\n"), Tags.FindS("Source").c_str()); + SOverItem = auto_ptr(new Override::Item); + *SOverItem = *OverItem; + } + } + + // Add the dsc to the files hash list + char Files[1000]; + snprintf(Files,sizeof(Files),"\n %s %lu %s\n %s", + string(MD5.Result()).c_str(),St.st_size, + flNotDir(FileName).c_str(), + Tags.FindS("Files").c_str()); + + // Strip the DirStrip prefix from the FileName and add the PathPrefix + string NewFileName; + if (DirStrip.empty() == false && + FileName.length() > DirStrip.length() && + stringcmp(DirStrip,OriginalPath,OriginalPath + DirStrip.length()) == 0) + NewFileName = string(OriginalPath + DirStrip.length()); + else + NewFileName = OriginalPath; + if (PathPrefix.empty() == false) + NewFileName = flCombine(PathPrefix,NewFileName); + + string Directory = flNotFile(OriginalPath); + string Package = Tags.FindS("Source"); + + // Perform the delinking operation over all of the files + string ParseJnk; + const char *C = Files; + for (;isspace(*C); C++); + while (*C != 0) + { + // Parse each of the elements + if (ParseQuoteWord(C,ParseJnk) == false || + ParseQuoteWord(C,ParseJnk) == false || + ParseQuoteWord(C,ParseJnk) == false) + return _error->Error("Error parsing file record"); + + char Jnk[2]; + string OriginalPath = Directory + ParseJnk; + if (RealPath != 0 && readlink(OriginalPath.c_str(),Jnk,sizeof(Jnk)) != -1 && + realpath(OriginalPath.c_str(),RealPath) != 0) + { + string RP = RealPath; + if (Delink(RP,OriginalPath.c_str(),Stats.DeLinkBytes,St.st_size) == false) + return false; + } + } + + Directory = flNotFile(NewFileName); + if (Directory.length() > 2) + Directory.erase(Directory.end()-1); + + // This lists all the changes to the fields we are going to make. + // (5 hardcoded + maintainer + end marker) + TFRewriteData Changes[5+1+SOverItem->FieldOverride.size()+1]; + + unsigned int End = 0; + SetTFRewriteData(Changes[End++],"Source",Package.c_str(),"Package"); + SetTFRewriteData(Changes[End++],"Files",Files); + if (Directory != "./") + SetTFRewriteData(Changes[End++],"Directory",Directory.c_str()); + SetTFRewriteData(Changes[End++],"Priority",BestPrio.c_str()); + SetTFRewriteData(Changes[End++],"Status",0); + + // Rewrite the maintainer field if necessary + bool MaintFailed; + string NewMaint = OverItem->SwapMaint(Tags.FindS("Maintainer"),MaintFailed); + if (MaintFailed == true) + { + if (NoOverride == false) + { + NewLine(1); + ioprintf(c1out, _(" %s maintainer is %s not %s\n"), Package.c_str(), + Tags.FindS("Maintainer").c_str(), OverItem->OldMaint.c_str()); + } + } + if (NewMaint.empty() == false) + SetTFRewriteData(Changes[End++], "Maintainer", NewMaint.c_str()); + + for (map::iterator I = SOverItem->FieldOverride.begin(); + I != SOverItem->FieldOverride.end(); I++) + SetTFRewriteData(Changes[End++],I->first.c_str(),I->second.c_str()); + + SetTFRewriteData(Changes[End++], 0, 0); + + // Rewrite and store the fields. + if (TFRewrite(Output,Tags,TFRewriteSourceOrder,Changes) == false) + return false; + fprintf(Output,"\n"); + + Stats.Packages++; + + return true; +} + /*}}}*/ + +// ContentsWriter::ContentsWriter - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +ContentsWriter::ContentsWriter(string DB) : + Db(DB), Stats(Db.Stats) + +{ + AddPattern("*.deb"); + Output = stdout; +} + /*}}}*/ +// ContentsWriter::DoPackage - Process a single package /*{{{*/ +// --------------------------------------------------------------------- +/* If Package is the empty string the control record will be parsed to + determine what the package name is. */ +bool ContentsWriter::DoPackage(string FileName,string Package) +{ + if (!Db.GetFileInfo(FileName, Package.empty(), true, false, false, false, false)) + { + return false; + } + + // Parse the package name + if (Package.empty() == true) + { + Package = Db.Control.Section.FindS("Package"); + } + + Db.Contents.Add(Gen,Package); + + return Db.Finish(); +} + /*}}}*/ +// ContentsWriter::ReadFromPkgs - Read from a packages file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool ContentsWriter::ReadFromPkgs(string PkgFile,string PkgCompress) +{ + MultiCompress Pkgs(PkgFile,PkgCompress,0,false); + if (_error->PendingError() == true) + return false; + + // Open the package file + int CompFd = -1; + pid_t Proc = -1; + if (Pkgs.OpenOld(CompFd,Proc) == false) + return false; + + // No auto-close FD + FileFd Fd(CompFd,false); + pkgTagFile Tags(&Fd); + if (_error->PendingError() == true) + { + Pkgs.CloseOld(CompFd,Proc); + return false; + } + + // Parse. + pkgTagSection Section; + while (Tags.Step(Section) == true) + { + string File = flCombine(Prefix,Section.FindS("FileName")); + string Package = Section.FindS("Section"); + if (Package.empty() == false && Package.end()[-1] != '/') + { + Package += '/'; + Package += Section.FindS("Package"); + } + else + Package += Section.FindS("Package"); + + DoPackage(File,Package); + if (_error->empty() == false) + { + _error->Error("Errors apply to file '%s'",File.c_str()); + _error->DumpErrors(); + } + } + + // Tidy the compressor + if (Pkgs.CloseOld(CompFd,Proc) == false) + return false; + + return true; +} + + /*}}}*/ + +// ReleaseWriter::ReleaseWriter - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +ReleaseWriter::ReleaseWriter(string DB) +{ + AddPattern("Packages"); + AddPattern("Packages.gz"); + AddPattern("Packages.bz2"); + AddPattern("Sources"); + AddPattern("Sources.gz"); + AddPattern("Sources.bz2"); + AddPattern("Release"); + AddPattern("md5sum.txt"); + + Output = stdout; + time_t now = time(NULL); + char datestr[128]; + if (strftime(datestr, sizeof(datestr), "%a, %d %b %Y %H:%M:%S UTC", + gmtime(&now)) == 0) + { + datestr[0] = '\0'; + } + + map Fields; + Fields["Origin"] = ""; + Fields["Label"] = ""; + Fields["Suite"] = ""; + Fields["Version"] = ""; + Fields["Codename"] = ""; + Fields["Date"] = datestr; + Fields["Architectures"] = ""; + Fields["Components"] = ""; + Fields["Description"] = ""; + + for(map::const_iterator I = Fields.begin(); + I != Fields.end(); + ++I) + { + string Config = string("APT::FTPArchive::Release::") + (*I).first; + string Value = _config->Find(Config, (*I).second.c_str()); + if (Value == "") + continue; + + fprintf(Output, "%s: %s\n", (*I).first.c_str(), Value.c_str()); + } +} + /*}}}*/ +// ReleaseWriter::DoPackage - Process a single package /*{{{*/ +// --------------------------------------------------------------------- +bool ReleaseWriter::DoPackage(string FileName) +{ + // Strip the DirStrip prefix from the FileName and add the PathPrefix + string NewFileName; + if (DirStrip.empty() == false && + FileName.length() > DirStrip.length() && + stringcmp(FileName.begin(),FileName.begin() + DirStrip.length(), + DirStrip.begin(),DirStrip.end()) == 0) + { + NewFileName = string(FileName.begin() + DirStrip.length(),FileName.end()); + while (NewFileName[0] == '/') + NewFileName = string(NewFileName.begin() + 1,NewFileName.end()); + } + else + NewFileName = FileName; + + if (PathPrefix.empty() == false) + NewFileName = flCombine(PathPrefix,NewFileName); + + FileFd fd(FileName, FileFd::ReadOnly); + + if (!fd.IsOpen()) + { + return false; + } + + CheckSums[NewFileName].size = fd.Size(); + + MD5Summation MD5; + MD5.AddFD(fd.Fd(), fd.Size()); + CheckSums[NewFileName].MD5 = MD5.Result(); + + fd.Seek(0); + SHA1Summation SHA1; + SHA1.AddFD(fd.Fd(), fd.Size()); + CheckSums[NewFileName].SHA1 = SHA1.Result(); + + fd.Seek(0); + SHA256Summation SHA256; + SHA256.AddFD(fd.Fd(), fd.Size()); + CheckSums[NewFileName].SHA256 = SHA256.Result(); + + fd.Close(); + + return true; +} + + /*}}}*/ +// ReleaseWriter::Finish - Output the checksums /*{{{*/ +// --------------------------------------------------------------------- +void ReleaseWriter::Finish() +{ + fprintf(Output, "MD5Sum:\n"); + for(map::iterator I = CheckSums.begin(); + I != CheckSums.end(); + ++I) + { + fprintf(Output, " %s %16ld %s\n", + (*I).second.MD5.c_str(), + (*I).second.size, + (*I).first.c_str()); + } + + fprintf(Output, "SHA1:\n"); + for(map::iterator I = CheckSums.begin(); + I != CheckSums.end(); + ++I) + { + fprintf(Output, " %s %16ld %s\n", + (*I).second.SHA1.c_str(), + (*I).second.size, + (*I).first.c_str()); + } + + fprintf(Output, "SHA256:\n"); + for(map::iterator I = CheckSums.begin(); + I != CheckSums.end(); + ++I) + { + fprintf(Output, " %s %16ld %s\n", + (*I).second.SHA256.c_str(), + (*I).second.size, + (*I).first.c_str()); + } +} + diff --git a/ftparchive/writer.h b/ftparchive/writer.h new file mode 100644 index 0000000..1d47d57 --- /dev/null +++ b/ftparchive/writer.h @@ -0,0 +1,184 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: writer.h,v 1.4.2.2 2003/12/26 22:55:43 mdz Exp $ +/* ###################################################################### + + Writer + + The file writer classes. These write various types of output, sources, + packages and contents. + + ##################################################################### */ + /*}}}*/ +#ifndef WRITER_H +#define WRITER_H + +#ifdef __GNUG__ +#pragma interface "writer.h" +#endif + +#include +#include +#include +#include +#include + +#include "cachedb.h" +#include "override.h" +#include "apt-ftparchive.h" + +using std::string; +using std::cout; +using std::endl; +using std::vector; +using std::map; + +class FTWScanner +{ + protected: + vector Patterns; + const char *OriginalPath; + char *RealPath; + bool ErrorPrinted; + + // Stuff for the delinker + bool NoLinkAct; + + static FTWScanner *Owner; + static int ScannerFTW(const char *File,const struct stat *sb,int Flag); + static int ScannerFile(const char *File, bool ReadLink); + + bool Delink(string &FileName,const char *OriginalPath, + unsigned long &Bytes,off_t FileSize); + + inline void NewLine(unsigned Priority) + { + if (ErrorPrinted == false && Quiet <= Priority) + { + cout << endl; + ErrorPrinted = true; + } + } + + public: + + unsigned long DeLinkLimit; + string InternalPrefix; + + virtual bool DoPackage(string FileName) = 0; + bool RecursiveScan(string Dir); + bool LoadFileList(string BaseDir,string File); + void ClearPatterns() { Patterns.clear(); }; + void AddPattern(string Pattern) { Patterns.push_back(Pattern); }; + bool SetExts(string Vals); + + FTWScanner(); + virtual ~FTWScanner() {delete [] RealPath;}; +}; + +class PackagesWriter : public FTWScanner +{ + Override Over; + CacheDB Db; + + public: + + // Some flags + bool DoMD5; + bool DoSHA1; + bool DoSHA256; + bool NoOverride; + bool DoContents; + + // General options + string PathPrefix; + string DirStrip; + FILE *Output; + struct CacheDB::Stats &Stats; + string Arch; + + inline bool ReadOverride(string File) {return Over.ReadOverride(File);}; + inline bool ReadExtraOverride(string File) + {return Over.ReadExtraOverride(File);}; + virtual bool DoPackage(string FileName); + + PackagesWriter(string DB,string Overrides,string ExtOverrides=string(), + string Arch=string()); + virtual ~PackagesWriter() {}; +}; + +class ContentsWriter : public FTWScanner +{ + CacheDB Db; + + GenContents Gen; + + public: + + // General options + FILE *Output; + struct CacheDB::Stats &Stats; + string Prefix; + + bool DoPackage(string FileName,string Package); + virtual bool DoPackage(string FileName) + {return DoPackage(FileName,string());}; + bool ReadFromPkgs(string PkgFile,string PkgCompress); + + void Finish() {Gen.Print(Output);}; + inline bool ReadyDB(string DB) {return Db.ReadyDB(DB);}; + + ContentsWriter(string DB); + virtual ~ContentsWriter() {}; +}; + +class SourcesWriter : public FTWScanner +{ + Override BOver; + Override SOver; + char *Buffer; + unsigned long BufSize; + + public: + + bool NoOverride; + + // General options + string PathPrefix; + string DirStrip; + FILE *Output; + struct CacheDB::Stats Stats; + + virtual bool DoPackage(string FileName); + + SourcesWriter(string BOverrides,string SOverrides, + string ExtOverrides=string()); + virtual ~SourcesWriter() {free(Buffer);}; +}; + +class ReleaseWriter : public FTWScanner +{ +public: + ReleaseWriter(string DB); + virtual bool DoPackage(string FileName); + void Finish(); + + FILE *Output; + // General options + string PathPrefix; + string DirStrip; + +protected: + struct CheckSum + { + string MD5; + string SHA1; + string SHA256; + // Limited by FileFd::Size() + unsigned long size; + ~CheckSum() {}; + }; + map CheckSums; +}; + +#endif diff --git a/methods/cdrom.cc b/methods/cdrom.cc new file mode 100644 index 0000000..d1ae320 --- /dev/null +++ b/methods/cdrom.cc @@ -0,0 +1,204 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: cdrom.cc,v 1.20.2.1 2004/01/16 18:58:50 mdz Exp $ +/* ###################################################################### + + CDROM URI method for APT + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include + /*}}}*/ + +using namespace std; + +class CDROMMethod : public pkgAcqMethod +{ + bool DatabaseLoaded; + ::Configuration Database; + string CurrentID; + string CDROM; + bool Mounted; + + virtual bool Fetch(FetchItem *Itm); + string GetID(string Name); + virtual void Exit(); + + public: + + CDROMMethod(); +}; + +// CDROMMethod::CDROMethod - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +CDROMMethod::CDROMMethod() : pkgAcqMethod("1.0",SingleInstance | LocalOnly | + SendConfig | NeedsCleanup | + Removable), + DatabaseLoaded(false), + Mounted(false) +{ +}; + /*}}}*/ +// CDROMMethod::Exit - Unmount the disc if necessary /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void CDROMMethod::Exit() +{ + if (Mounted == true) + UnmountCdrom(CDROM); +} + /*}}}*/ +// CDROMMethod::GetID - Search the database for a matching string /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string CDROMMethod::GetID(string Name) +{ + // Search for an ID + const Configuration::Item *Top = Database.Tree("CD"); + if (Top != 0) + Top = Top->Child; + + for (; Top != 0;) + { + if (Top->Value == Name) + return Top->Tag; + + Top = Top->Next; + } + return string(); +} + /*}}}*/ +// CDROMMethod::Fetch - Fetch a file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool CDROMMethod::Fetch(FetchItem *Itm) +{ + URI Get = Itm->Uri; + string File = Get.Path; + FetchResult Res; + + bool Debug = _config->FindB("Debug::Acquire::cdrom",false); + + /* All IMS queries are returned as a hit, CDROMs are readonly so + time stamps never change */ + if (Itm->LastModified != 0) + { + Res.LastModified = Itm->LastModified; + Res.IMSHit = true; + Res.Filename = Itm->DestFile; + URIDone(Res); + return true; + } + + // Load the database + if (DatabaseLoaded == false) + { + // Read the database + string DFile = _config->FindFile("Dir::State::cdroms"); + if (FileExists(DFile) == true) + { + if (ReadConfigFile(Database,DFile) == false) + return _error->Error(_("Unable to read the cdrom database %s"), + DFile.c_str()); + } + DatabaseLoaded = true; + } + + // All non IMS queries for package files fail. + if (Itm->IndexFile == true || GetID(Get.Host).empty() == true) + { + Fail(_("Please use apt-cdrom to make this CD-ROM recognized by APT." + " apt-get update cannot be used to add new CD-ROMs")); + return true; + } + + // We already have a CD inserted, but it is the wrong one + if (CurrentID.empty() == false && Database.Find("CD::" + CurrentID) != Get.Host) + { + Fail(_("Wrong CD-ROM"),true); + return true; + } + + CDROM = _config->FindDir("Acquire::cdrom::mount","/cdrom/"); + if (CDROM[0] == '.') + CDROM= SafeGetCWD() + '/' + CDROM; + string NewID; + while (CurrentID.empty() == true) + { + bool Hit = false; + Mounted = MountCdrom(CDROM); + for (unsigned int Version = 2; Version != 0; Version--) + { + if (IdentCdrom(CDROM,NewID,Version) == false) + return false; + + if (Debug == true) + clog << "ID " << Version << " " << NewID << endl; + + // A hit + if (Database.Find("CD::" + NewID) == Get.Host) + { + Hit = true; + break; + } + } + + if (Hit == true) + break; + + // I suppose this should prompt somehow? + if (UnmountCdrom(CDROM) == false) + return _error->Error(_("Unable to unmount the CD-ROM in %s, it may still be in use."), + CDROM.c_str()); + if (MediaFail(Get.Host,CDROM) == false) + { + CurrentID = "FAIL"; + return _error->Error(_("Disk not found.")); + } + } + + // Found a CD + Res.Filename = CDROM + File; + struct stat Buf; + if (stat(Res.Filename.c_str(),&Buf) != 0) + return _error->Error(_("File not found")); + + if (NewID.empty() == false) + CurrentID = NewID; + Res.LastModified = Buf.st_mtime; + Res.Size = Buf.st_size; + + Hashes Hash; + FileFd Fd(Res.Filename, FileFd::ReadOnly); + Hash.AddFD(Fd.Fd(), Fd.Size()); + Res.TakeHashes(Hash); + + URIDone(Res); + return true; +} + /*}}}*/ + +int main_(); +int main() { + _exit(main_()); +} +int main_() +{ + setlocale(LC_ALL, ""); + + CDROMMethod Mth; + return Mth.Run(); +} diff --git a/methods/connect.cc b/methods/connect.cc new file mode 100644 index 0000000..8c2ac6d --- /dev/null +++ b/methods/connect.cc @@ -0,0 +1,225 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: connect.cc,v 1.10.2.1 2004/01/16 18:58:50 mdz Exp $ +/* ###################################################################### + + Connect - Replacement connect call + + This was originally authored by Jason Gunthorpe + and is placed in the Public Domain, do with it what you will. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#include "connect.h" +#include +#include + +#include +#include +#include + +// Internet stuff +#include +#include +#include +#include + +#include "rfc2553emu.h" +#include + /*}}}*/ + +static string LastHost; +static int LastPort = 0; +static struct addrinfo *LastHostAddr = 0; +static struct addrinfo *LastUsed = 0; + +// RotateDNS - Select a new server from a DNS rotation /*{{{*/ +// --------------------------------------------------------------------- +/* This is called during certain errors in order to recover by selecting a + new server */ +void RotateDNS() +{ + if (LastUsed != 0 && LastUsed->ai_next != 0) + LastUsed = LastUsed->ai_next; + else + LastUsed = LastHostAddr; +} + /*}}}*/ +// DoConnect - Attempt a connect operation /*{{{*/ +// --------------------------------------------------------------------- +/* This helper function attempts a connection to a single address. */ +static bool DoConnect(struct addrinfo *Addr,string Host, + unsigned long TimeOut,int &Fd,pkgAcqMethod *Owner) +{ + // Show a status indicator + char Name[NI_MAXHOST]; + char Service[NI_MAXSERV]; + + Name[0] = 0; + Service[0] = 0; + getnameinfo(Addr->ai_addr,Addr->ai_addrlen, + Name,sizeof(Name),Service,sizeof(Service), + NI_NUMERICHOST|NI_NUMERICSERV); + Owner->Status(_("Connecting to %s (%s)"),Host.c_str(),Name); + + /* If this is an IP rotation store the IP we are using.. If something goes + wrong this will get tacked onto the end of the error message */ + if (LastHostAddr->ai_next != 0) + { + char Name2[NI_MAXHOST + NI_MAXSERV + 10]; + snprintf(Name2,sizeof(Name2),_("[IP: %s %s]"),Name,Service); + Owner->SetFailExtraMsg(string(Name2)); + } + else + Owner->SetFailExtraMsg(""); + + // Get a socket + if ((Fd = socket(Addr->ai_family,Addr->ai_socktype, + Addr->ai_protocol)) < 0) + return _error->Errno("socket",_("Could not create a socket for %s (f=%u t=%u p=%u)"), + Name,Addr->ai_family,Addr->ai_socktype,Addr->ai_protocol); + + SetNonBlock(Fd,true); + if (connect(Fd,Addr->ai_addr,Addr->ai_addrlen) < 0 && + errno != EINPROGRESS) + return _error->Errno("connect",_("Cannot initiate the connection " + "to %s:%s (%s)."),Host.c_str(),Service,Name); + + /* This implements a timeout for connect by opening the connection + nonblocking */ + if (WaitFd(Fd,true,TimeOut) == false) { + Owner->SetFailExtraMsg("\nFailReason: Timeout"); + return _error->Error(_("Could not connect to %s:%s (%s), " + "connection timed out"),Host.c_str(),Service,Name); + } + + // Check the socket for an error condition + unsigned int Err; + unsigned int Len = sizeof(Err); + if (getsockopt(Fd,SOL_SOCKET,SO_ERROR,&Err,&Len) != 0) + return _error->Errno("getsockopt",_("Failed")); + + if (Err != 0) + { + errno = Err; + if(errno == ECONNREFUSED) + Owner->SetFailExtraMsg("\nFailReason: ConnectionRefused"); + return _error->Errno("connect",_("Could not connect to %s:%s (%s)."),Host.c_str(), + Service,Name); + } + + return true; +} + /*}}}*/ +// Connect - Connect to a server /*{{{*/ +// --------------------------------------------------------------------- +/* Performs a connection to the server */ +bool Connect(string Host,int Port,const char *Service,int DefPort,int &Fd, + unsigned long TimeOut,pkgAcqMethod *Owner) +{ + if (_error->PendingError() == true) + return false; + + // Convert the port name/number + char ServStr[300]; + if (Port != 0) + snprintf(ServStr,sizeof(ServStr),"%u",Port); + else + snprintf(ServStr,sizeof(ServStr),"%s",Service); + + /* We used a cached address record.. Yes this is against the spec but + the way we have setup our rotating dns suggests that this is more + sensible */ + if (LastHost != Host || LastPort != Port) + { + Owner->Status(_("Connecting to %s"),Host.c_str()); + + // Free the old address structure + if (LastHostAddr != 0) + { + freeaddrinfo(LastHostAddr); + LastHostAddr = 0; + LastUsed = 0; + } + + // We only understand SOCK_STREAM sockets. + struct addrinfo Hints; + memset(&Hints,0,sizeof(Hints)); + Hints.ai_socktype = SOCK_STREAM; + Hints.ai_protocol = 0; + + // Resolve both the host and service simultaneously + while (1) + { + int Res; + if ((Res = getaddrinfo(Host.c_str(),ServStr,&Hints,&LastHostAddr)) != 0 || + LastHostAddr == 0) + { + if (Res == EAI_NONAME || Res == EAI_SERVICE) + { + if (DefPort != 0) + { + snprintf(ServStr,sizeof(ServStr),"%u",DefPort); + DefPort = 0; + continue; + } + return _error->Error(_("Could not resolve '%s'"),Host.c_str()); + } + + if (Res == EAI_AGAIN) + { + Owner->SetFailExtraMsg("\nFailReason: TmpResolveFailure"); + return _error->Error(_("Temporary failure resolving '%s'"), + Host.c_str()); + } + return _error->Error(_("Something wicked happened resolving '%s:%s' (%i)"), + Host.c_str(),ServStr,Res); + } + break; + } + + LastHost = Host; + LastPort = Port; + } + + // When we have an IP rotation stay with the last IP. + struct addrinfo *CurHost = LastHostAddr; + if (LastUsed != 0) + CurHost = LastUsed; + + while (CurHost != 0) + { + if (DoConnect(CurHost,Host,TimeOut,Fd,Owner) == true) + { + LastUsed = CurHost; + return true; + } + close(Fd); + Fd = -1; + + // Ignore UNIX domain sockets + do + { + CurHost = CurHost->ai_next; + } + while (CurHost != 0 && CurHost->ai_family == AF_UNIX); + + /* If we reached the end of the search list then wrap around to the + start */ + if (CurHost == 0 && LastUsed != 0) + CurHost = LastHostAddr; + + // Reached the end of the search cycle + if (CurHost == LastUsed) + break; + + if (CurHost != 0) + _error->Discard(); + } + + if (_error->PendingError() == true) + return false; + return _error->Error(_("Unable to connect to %s %s:"),Host.c_str(),ServStr); +} + /*}}}*/ diff --git a/methods/connect.h b/methods/connect.h new file mode 100644 index 0000000..6f208e3 --- /dev/null +++ b/methods/connect.h @@ -0,0 +1,20 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: connect.h,v 1.3 2001/02/20 07:03:18 jgg Exp $ +/* ###################################################################### + + Connect - Replacement connect call + + ##################################################################### */ + /*}}}*/ +#ifndef CONNECT_H +#define CONNECT_H + +#include +#include + +bool Connect(string To,int Port,const char *Service,int DefPort, + int &Fd,unsigned long TimeOut,pkgAcqMethod *Owner); +void RotateDNS(); + +#endif diff --git a/methods/copy.cc b/methods/copy.cc new file mode 100644 index 0000000..85f7e30 --- /dev/null +++ b/methods/copy.cc @@ -0,0 +1,97 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: copy.cc,v 1.7.2.1 2004/01/16 18:58:50 mdz Exp $ +/* ###################################################################### + + Copy URI - This method takes a uri like a file: uri and copies it + to the destination file. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#include +#include +#include + +#include +#include +#include +#include + /*}}}*/ + +class CopyMethod : public pkgAcqMethod +{ + virtual bool Fetch(FetchItem *Itm); + + public: + + CopyMethod() : pkgAcqMethod("1.0",SingleInstance) {}; +}; + +// CopyMethod::Fetch - Fetch a file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool CopyMethod::Fetch(FetchItem *Itm) +{ + URI Get = Itm->Uri; + string File = Get.Path; + + // Stat the file and send a start message + struct stat Buf; + if (stat(File.c_str(),&Buf) != 0) + return _error->Errno("stat",_("Failed to stat")); + + // Forumulate a result and send a start message + FetchResult Res; + Res.Size = Buf.st_size; + Res.Filename = Itm->DestFile; + Res.LastModified = Buf.st_mtime; + Res.IMSHit = false; + URIStart(Res); + + // See if the file exists + FileFd From(File,FileFd::ReadOnly); + FileFd To(Itm->DestFile,FileFd::WriteEmpty); + To.EraseOnFailure(); + if (_error->PendingError() == true) + { + To.OpFail(); + return false; + } + + // Copy the file + if (CopyFile(From,To) == false) + { + To.OpFail(); + return false; + } + + From.Close(); + To.Close(); + + // Transfer the modification times + struct utimbuf TimeBuf; + TimeBuf.actime = Buf.st_atime; + TimeBuf.modtime = Buf.st_mtime; + if (utime(Itm->DestFile.c_str(),&TimeBuf) != 0) + { + To.OpFail(); + return _error->Errno("utime",_("Failed to set modification time")); + } + + URIDone(Res); + return true; +} + /*}}}*/ + +int main_(); +int main() { + _exit(main_()); +} +int main_() +{ + setlocale(LC_ALL, ""); + + CopyMethod Mth; + return Mth.Run(); +} diff --git a/methods/file.cc b/methods/file.cc new file mode 100644 index 0000000..d78b6a9 --- /dev/null +++ b/methods/file.cc @@ -0,0 +1,100 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: file.cc,v 1.9.2.1 2004/01/16 18:58:50 mdz Exp $ +/* ###################################################################### + + File URI method for APT + + This simply checks that the file specified exists, if so the relevent + information is returned. If a .gz filename is specified then the file + name with .gz removed will also be checked and information about it + will be returned in Alt-* + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#include +#include +#include +#include + +#include +#include +#include + /*}}}*/ + +class FileMethod : public pkgAcqMethod +{ + virtual bool Fetch(FetchItem *Itm); + + public: + + FileMethod() : pkgAcqMethod("1.0",SingleInstance | LocalOnly) {}; +}; + +// FileMethod::Fetch - Fetch a file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool FileMethod::Fetch(FetchItem *Itm) +{ + URI Get = Itm->Uri; + string File = Get.Path; + FetchResult Res; + if (Get.Host.empty() == false) + return _error->Error(_("Invalid URI, local URIS must not start with //")); + + // See if the file exists + struct stat Buf; + if (stat(File.c_str(),&Buf) == 0) + { + Res.Size = Buf.st_size; + Res.Filename = File; + Res.LastModified = Buf.st_mtime; + Res.IMSHit = false; + if (Itm->LastModified == Buf.st_mtime && Itm->LastModified != 0) + Res.IMSHit = true; + } + + // See if we can compute a file without a .gz exentsion + string::size_type Pos = File.rfind(".gz"); + if (Pos + 3 == File.length()) + { + File = string(File,0,Pos); + if (stat(File.c_str(),&Buf) == 0) + { + FetchResult AltRes; + AltRes.Size = Buf.st_size; + AltRes.Filename = File; + AltRes.LastModified = Buf.st_mtime; + AltRes.IMSHit = false; + if (Itm->LastModified == Buf.st_mtime && Itm->LastModified != 0) + AltRes.IMSHit = true; + + URIDone(Res,&AltRes); + return true; + } + } + + if (Res.Filename.empty() == true) + return _error->Error(_("File not found")); + + Hashes Hash; + FileFd Fd(Res.Filename, FileFd::ReadOnly); + Hash.AddFD(Fd.Fd(), Fd.Size()); + Res.TakeHashes(Hash); + URIDone(Res); + return true; +} + /*}}}*/ + +int main_(); +int main() { +_exit(main_()); +} +int main_() +{ + setlocale(LC_ALL, ""); + + FileMethod Mth; + return Mth.Run(); +} diff --git a/methods/ftp.cc b/methods/ftp.cc new file mode 100644 index 0000000..383e426 --- /dev/null +++ b/methods/ftp.cc @@ -0,0 +1,1121 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: ftp.cc,v 1.31.2.1 2004/01/16 18:58:50 mdz Exp $ +/* ###################################################################### + + FTP Aquire Method - This is the FTP aquire method for APT. + + This is a very simple implementation that does not try to optimize + at all. Commands are sent syncronously with the FTP server (as the + rfc recommends, but it is not really necessary..) and no tricks are + done to speed things along. + + RFC 2428 describes the IPv6 FTP behavior + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Internet stuff +#include +#include +#include +#include + +#include "rfc2553emu.h" +#include "connect.h" +#include "ftp.h" + /*}}}*/ + +using namespace std; + +/* This table is for the EPRT and EPSV commands, it maps the OS address + family to the IETF address families */ +struct AFMap +{ + unsigned long Family; + unsigned long IETFFamily; +}; + +#ifndef AF_INET6 +struct AFMap AFMap[] = {{AF_INET,1},{}}; +#else +struct AFMap AFMap[] = {{AF_INET,1},{AF_INET6,2},{}}; +#endif + +unsigned long TimeOut = 120; +URI Proxy; +string FtpMethod::FailFile; +int FtpMethod::FailFd = -1; +time_t FtpMethod::FailTime = 0; + +// FTPConn::FTPConn - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +FTPConn::FTPConn(URI Srv) : Len(0), ServerFd(-1), DataFd(-1), + DataListenFd(-1), ServerName(Srv) +{ + Debug = _config->FindB("Debug::Acquire::Ftp",false); + PasvAddr = 0; +} + /*}}}*/ +// FTPConn::~FTPConn - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +FTPConn::~FTPConn() +{ + Close(); +} + /*}}}*/ +// FTPConn::Close - Close down the connection /*{{{*/ +// --------------------------------------------------------------------- +/* Just tear down the socket and data socket */ +void FTPConn::Close() +{ + close(ServerFd); + ServerFd = -1; + close(DataFd); + DataFd = -1; + close(DataListenFd); + DataListenFd = -1; + + if (PasvAddr != 0) + freeaddrinfo(PasvAddr); + PasvAddr = 0; +} + /*}}}*/ +// FTPConn::Open - Open a new connection /*{{{*/ +// --------------------------------------------------------------------- +/* Connect to the server using a non-blocking connection and perform a + login. */ +bool FTPConn::Open(pkgAcqMethod *Owner) +{ + // Use the already open connection if possible. + if (ServerFd != -1) + return true; + + Close(); + + // Determine the proxy setting + if (getenv("ftp_proxy") == 0) + { + string DefProxy = _config->Find("Acquire::ftp::Proxy"); + string SpecificProxy = _config->Find("Acquire::ftp::Proxy::" + ServerName.Host); + if (SpecificProxy.empty() == false) + { + if (SpecificProxy == "DIRECT") + Proxy = ""; + else + Proxy = SpecificProxy; + } + else + Proxy = DefProxy; + } + else + Proxy = getenv("ftp_proxy"); + + // Parse no_proxy, a , separated list of domains + if (getenv("no_proxy") != 0) + { + if (CheckDomainList(ServerName.Host,getenv("no_proxy")) == true) + Proxy = ""; + } + + // Determine what host and port to use based on the proxy settings + int Port = 0; + string Host; + if (Proxy.empty() == true) + { + if (ServerName.Port != 0) + Port = ServerName.Port; + Host = ServerName.Host; + } + else + { + if (Proxy.Port != 0) + Port = Proxy.Port; + Host = Proxy.Host; + } + + /* Connect to the remote server. Since FTP is connection oriented we + want to make sure we get a new server every time we reconnect */ + RotateDNS(); + if (Connect(Host,Port,"ftp",21,ServerFd,TimeOut,Owner) == false) + return false; + + // Login must be before getpeername otherwise dante won't work. + Owner->Status(_("Logging in")); + bool Res = Login(); + + // Get the remote server's address + PeerAddrLen = sizeof(PeerAddr); + if (getpeername(ServerFd,(sockaddr *)&PeerAddr,&PeerAddrLen) != 0) + return _error->Errno("getpeername",_("Unable to determine the peer name")); + + // Get the local machine's address + ServerAddrLen = sizeof(ServerAddr); + if (getsockname(ServerFd,(sockaddr *)&ServerAddr,&ServerAddrLen) != 0) + return _error->Errno("getsockname",_("Unable to determine the local name")); + + return Res; +} + /*}}}*/ +// FTPConn::Login - Login to the remote server /*{{{*/ +// --------------------------------------------------------------------- +/* This performs both normal login and proxy login using a simples script + stored in the config file. */ +bool FTPConn::Login() +{ + unsigned int Tag; + string Msg; + + // Setup the variables needed for authentication + string User = "anonymous"; + string Pass = "apt_get_ftp_2.1@debian.linux.user"; + + // Fill in the user/pass + if (ServerName.User.empty() == false) + User = ServerName.User; + if (ServerName.Password.empty() == false) + Pass = ServerName.Password; + + // Perform simple login + if (Proxy.empty() == true) + { + // Read the initial response + if (ReadResp(Tag,Msg) == false) + return false; + if (Tag >= 400) + return _error->Error(_("The server refused the connection and said: %s"),Msg.c_str()); + + // Send the user + if (WriteMsg(Tag,Msg,"USER %s",User.c_str()) == false) + return false; + if (Tag >= 400) + return _error->Error(_("USER failed, server said: %s"),Msg.c_str()); + + if (Tag == 331) { // 331 User name okay, need password. + // Send the Password + if (WriteMsg(Tag,Msg,"PASS %s",Pass.c_str()) == false) + return false; + if (Tag >= 400) + return _error->Error(_("PASS failed, server said: %s"),Msg.c_str()); + } + + // Enter passive mode + if (_config->Exists("Acquire::FTP::Passive::" + ServerName.Host) == true) + TryPassive = _config->FindB("Acquire::FTP::Passive::" + ServerName.Host,true); + else + TryPassive = _config->FindB("Acquire::FTP::Passive",true); + } + else + { + // Read the initial response + if (ReadResp(Tag,Msg) == false) + return false; + if (Tag >= 400) + return _error->Error(_("The server refused the connection and said: %s"),Msg.c_str()); + + // Perform proxy script execution + Configuration::Item const *Opts = _config->Tree("Acquire::ftp::ProxyLogin"); + if (Opts == 0 || Opts->Child == 0) + return _error->Error(_("A proxy server was specified but no login " + "script, Acquire::ftp::ProxyLogin is empty.")); + Opts = Opts->Child; + + // Iterate over the entire login script + for (; Opts != 0; Opts = Opts->Next) + { + if (Opts->Value.empty() == true) + continue; + + // Substitute the variables into the command + char SitePort[20]; + if (ServerName.Port != 0) + sprintf(SitePort,"%u",ServerName.Port); + else + strcpy(SitePort,"21"); + string Tmp = Opts->Value; + Tmp = SubstVar(Tmp,"$(PROXY_USER)",Proxy.User); + Tmp = SubstVar(Tmp,"$(PROXY_PASS)",Proxy.Password); + Tmp = SubstVar(Tmp,"$(SITE_USER)",User); + Tmp = SubstVar(Tmp,"$(SITE_PASS)",Pass); + Tmp = SubstVar(Tmp,"$(SITE_PORT)",SitePort); + Tmp = SubstVar(Tmp,"$(SITE)",ServerName.Host); + + // Send the command + if (WriteMsg(Tag,Msg,"%s",Tmp.c_str()) == false) + return false; + if (Tag >= 400) + return _error->Error(_("Login script command '%s' failed, server said: %s"),Tmp.c_str(),Msg.c_str()); + } + + // Enter passive mode + TryPassive = false; + if (_config->Exists("Acquire::FTP::Passive::" + ServerName.Host) == true) + TryPassive = _config->FindB("Acquire::FTP::Passive::" + ServerName.Host,true); + else + { + if (_config->Exists("Acquire::FTP::Proxy::Passive") == true) + TryPassive = _config->FindB("Acquire::FTP::Proxy::Passive",true); + else + TryPassive = _config->FindB("Acquire::FTP::Passive",true); + } + } + + // Force the use of extended commands + if (_config->Exists("Acquire::FTP::ForceExtended::" + ServerName.Host) == true) + ForceExtended = _config->FindB("Acquire::FTP::ForceExtended::" + ServerName.Host,true); + else + ForceExtended = _config->FindB("Acquire::FTP::ForceExtended",false); + + // Binary mode + if (WriteMsg(Tag,Msg,"TYPE I") == false) + return false; + if (Tag >= 400) + return _error->Error(_("TYPE failed, server said: %s"),Msg.c_str()); + + return true; +} + /*}}}*/ +// FTPConn::ReadLine - Read a line from the server /*{{{*/ +// --------------------------------------------------------------------- +/* This performs a very simple buffered read. */ +bool FTPConn::ReadLine(string &Text) +{ + if (ServerFd == -1) + return false; + + // Suck in a line + while (Len < sizeof(Buffer)) + { + // Scan the buffer for a new line + for (unsigned int I = 0; I != Len; I++) + { + // Escape some special chars + if (Buffer[I] == 0) + Buffer[I] = '?'; + + // End of line? + if (Buffer[I] != '\n') + continue; + + I++; + Text = string(Buffer,I); + memmove(Buffer,Buffer+I,Len - I); + Len -= I; + return true; + } + + // Wait for some data.. + if (WaitFd(ServerFd,false,TimeOut) == false) + { + Close(); + return _error->Error(_("Connection timeout")); + } + + // Suck it back + int Res = read(ServerFd,Buffer + Len,sizeof(Buffer) - Len); + if (Res == 0) + _error->Error(_("Server closed the connection")); + if (Res <= 0) + { + _error->Errno("read",_("Read error")); + Close(); + return false; + } + Len += Res; + } + + return _error->Error(_("A response overflowed the buffer.")); +} + /*}}}*/ +// FTPConn::ReadResp - Read a full response from the server /*{{{*/ +// --------------------------------------------------------------------- +/* This reads a reply code from the server, it handles both p */ +bool FTPConn::ReadResp(unsigned int &Ret,string &Text) +{ + // Grab the first line of the response + string Msg; + if (ReadLine(Msg) == false) + return false; + + // Get the ID code + char *End; + Ret = strtol(Msg.c_str(),&End,10); + if (End - Msg.c_str() != 3) + return _error->Error(_("Protocol corruption")); + + // All done ? + Text = Msg.c_str()+4; + if (*End == ' ') + { + if (Debug == true) + cerr << "<- '" << QuoteString(Text,"") << "'" << endl; + return true; + } + + if (*End != '-') + return _error->Error(_("Protocol corruption")); + + /* Okay, here we do the continued message trick. This is foolish, but + proftpd follows the protocol as specified and wu-ftpd doesn't, so + we filter. I wonder how many clients break if you use proftpd and + put a '- in the 3rd spot in the message? */ + char Leader[4]; + strncpy(Leader,Msg.c_str(),3); + Leader[3] = 0; + while (ReadLine(Msg) == true) + { + // Short, it must be using RFC continuation.. + if (Msg.length() < 4) + { + Text += Msg; + continue; + } + + // Oops, finished + if (strncmp(Msg.c_str(),Leader,3) == 0 && Msg[3] == ' ') + { + Text += Msg.c_str()+4; + break; + } + + // This message has the wu-ftpd style reply code prefixed + if (strncmp(Msg.c_str(),Leader,3) == 0 && Msg[3] == '-') + { + Text += Msg.c_str()+4; + continue; + } + + // Must be RFC style prefixing + Text += Msg; + } + + if (Debug == true && _error->PendingError() == false) + cerr << "<- '" << QuoteString(Text,"") << "'" << endl; + + return !_error->PendingError(); +} + /*}}}*/ +// FTPConn::WriteMsg - Send a message to the server /*{{{*/ +// --------------------------------------------------------------------- +/* Simple printf like function.. */ +bool FTPConn::WriteMsg(unsigned int &Ret,string &Text,const char *Fmt,...) +{ + va_list args; + va_start(args,Fmt); + + // sprintf the description + char S[400]; + vsnprintf(S,sizeof(S) - 4,Fmt,args); + strcat(S,"\r\n"); + + if (Debug == true) + cerr << "-> '" << QuoteString(S,"") << "'" << endl; + + // Send it off + unsigned long Len = strlen(S); + unsigned long Start = 0; + while (Len != 0) + { + if (WaitFd(ServerFd,true,TimeOut) == false) + { + Close(); + return _error->Error(_("Connection timeout")); + } + + int Res = write(ServerFd,S + Start,Len); + if (Res <= 0) + { + _error->Errno("write",_("Write error")); + Close(); + return false; + } + + Len -= Res; + Start += Res; + } + + return ReadResp(Ret,Text); +} + /*}}}*/ +// FTPConn::GoPasv - Enter Passive mode /*{{{*/ +// --------------------------------------------------------------------- +/* Try to enter passive mode, the return code does not indicate if passive + mode could or could not be established, only if there was a fatal error. + We have to enter passive mode every time we make a data connection :| */ +bool FTPConn::GoPasv() +{ + /* The PASV command only works on IPv4 sockets, even though it could + in theory suppory IPv6 via an all zeros reply */ + if (((struct sockaddr *)&PeerAddr)->sa_family != AF_INET || + ForceExtended == true) + return ExtGoPasv(); + + if (PasvAddr != 0) + freeaddrinfo(PasvAddr); + PasvAddr = 0; + + // Try to enable pasv mode + unsigned int Tag; + string Msg; + if (WriteMsg(Tag,Msg,"PASV") == false) + return false; + + // Unsupported function + string::size_type Pos = Msg.find('('); + if (Tag >= 400 || Pos == string::npos) + return true; + + // Scan it + unsigned a0,a1,a2,a3,p0,p1; + if (sscanf(Msg.c_str() + Pos,"(%u,%u,%u,%u,%u,%u)",&a0,&a1,&a2,&a3,&p0,&p1) != 6) + return true; + + /* Some evil servers return 0 to mean their addr. We can actually speak + to these servers natively using IPv6 */ + if (a0 == 0 && a1 == 0 && a2 == 0 && a3 == 0) + { + // Get the IP in text form + char Name[NI_MAXHOST]; + char Service[NI_MAXSERV]; + getnameinfo((struct sockaddr *)&PeerAddr,PeerAddrLen, + Name,sizeof(Name),Service,sizeof(Service), + NI_NUMERICHOST|NI_NUMERICSERV); + + struct addrinfo Hints; + memset(&Hints,0,sizeof(Hints)); + Hints.ai_socktype = SOCK_STREAM; + Hints.ai_family = ((struct sockaddr *)&PeerAddr)->sa_family; + Hints.ai_flags |= AI_NUMERICHOST; + + // Get a new passive address. + char Port[100]; + snprintf(Port,sizeof(Port),"%u",(p0 << 8) + p1); + if (getaddrinfo(Name,Port,&Hints,&PasvAddr) != 0) + return true; + return true; + } + + struct addrinfo Hints; + memset(&Hints,0,sizeof(Hints)); + Hints.ai_socktype = SOCK_STREAM; + Hints.ai_family = AF_INET; + Hints.ai_flags |= AI_NUMERICHOST; + + // Get a new passive address. + char Port[100]; + snprintf(Port,sizeof(Port),"%u",(p0 << 8) + p1); + char Name[100]; + snprintf(Name,sizeof(Name),"%u.%u.%u.%u",a0,a1,a2,a3); + if (getaddrinfo(Name,Port,&Hints,&PasvAddr) != 0) + return true; + return true; +} + /*}}}*/ +// FTPConn::ExtGoPasv - Enter Extended Passive mode /*{{{*/ +// --------------------------------------------------------------------- +/* Try to enter extended passive mode. See GoPasv above and RFC 2428 */ +bool FTPConn::ExtGoPasv() +{ + if (PasvAddr != 0) + freeaddrinfo(PasvAddr); + PasvAddr = 0; + + // Try to enable pasv mode + unsigned int Tag; + string Msg; + if (WriteMsg(Tag,Msg,"EPSV") == false) + return false; + + // Unsupported function + string::size_type Pos = Msg.find('('); + if (Tag >= 400 || Pos == string::npos) + return true; + + // Scan it + string::const_iterator List[4]; + unsigned Count = 0; + Pos++; + for (string::const_iterator I = Msg.begin() + Pos; I < Msg.end(); I++) + { + if (*I != Msg[Pos]) + continue; + if (Count >= 4) + return true; + List[Count++] = I; + } + if (Count != 4) + return true; + + // Break it up .. + unsigned long Proto = 0; + unsigned long Port = 0; + string IP; + IP = string(List[1]+1,List[2]); + Port = atoi(string(List[2]+1,List[3]).c_str()); + if (IP.empty() == false) + Proto = atoi(string(List[0]+1,List[1]).c_str()); + + if (Port == 0) + return false; + + // String version of the port + char PStr[100]; + snprintf(PStr,sizeof(PStr),"%lu",Port); + + // Get the IP in text form + struct addrinfo Hints; + memset(&Hints,0,sizeof(Hints)); + Hints.ai_socktype = SOCK_STREAM; + Hints.ai_flags |= AI_NUMERICHOST; + + /* The RFC defined case, connect to the old IP/protocol using the + new port. */ + if (IP.empty() == true) + { + // Get the IP in text form + char Name[NI_MAXHOST]; + char Service[NI_MAXSERV]; + getnameinfo((struct sockaddr *)&PeerAddr,PeerAddrLen, + Name,sizeof(Name),Service,sizeof(Service), + NI_NUMERICHOST|NI_NUMERICSERV); + IP = Name; + Hints.ai_family = ((struct sockaddr *)&PeerAddr)->sa_family; + } + else + { + // Get the family.. + Hints.ai_family = 0; + for (unsigned J = 0; AFMap[J].Family != 0; J++) + if (AFMap[J].IETFFamily == Proto) + Hints.ai_family = AFMap[J].Family; + if (Hints.ai_family == 0) + return true; + } + + // Get a new passive address. + int Res; + if ((Res = getaddrinfo(IP.c_str(),PStr,&Hints,&PasvAddr)) != 0) + return true; + + return true; +} + /*}}}*/ +// FTPConn::Size - Return the size of a file /*{{{*/ +// --------------------------------------------------------------------- +/* Grab the file size from the server, 0 means no size or empty file */ +bool FTPConn::Size(const char *Path,unsigned long &Size) +{ + // Query the size + unsigned int Tag; + string Msg; + Size = 0; + if (WriteMsg(Tag,Msg,"SIZE %s",Path) == false) + return false; + + char *End; + Size = strtol(Msg.c_str(),&End,10); + if (Tag >= 400 || End == Msg.c_str()) + Size = 0; + return true; +} + /*}}}*/ +// FTPConn::ModTime - Return the modification time of the file /*{{{*/ +// --------------------------------------------------------------------- +/* Like Size no error is returned if the command is not supported. If the + command fails then time is set to the current time of day to fool + date checks. */ +bool FTPConn::ModTime(const char *Path, time_t &Time) +{ + Time = time(&Time); + + // Query the mod time + unsigned int Tag; + string Msg; + if (WriteMsg(Tag,Msg,"MDTM %s",Path) == false) + return false; + if (Tag >= 400 || Msg.empty() == true || isdigit(Msg[0]) == 0) + return true; + + // Parse it + StrToTime(Msg,Time); + return true; +} + /*}}}*/ +// FTPConn::CreateDataFd - Get a data connection /*{{{*/ +// --------------------------------------------------------------------- +/* Create the data connection. Call FinalizeDataFd after this though.. */ +bool FTPConn::CreateDataFd() +{ + close(DataFd); + DataFd = -1; + + // Attempt to enter passive mode. + if (TryPassive == true) + { + if (GoPasv() == false) + return false; + + // Oops, didn't work out, don't bother trying again. + if (PasvAddr == 0) + TryPassive = false; + } + + // Passive mode? + if (PasvAddr != 0) + { + // Get a socket + if ((DataFd = socket(PasvAddr->ai_family,PasvAddr->ai_socktype, + PasvAddr->ai_protocol)) < 0) + return _error->Errno("socket",_("Could not create a socket")); + + // Connect to the server + SetNonBlock(DataFd,true); + if (connect(DataFd,PasvAddr->ai_addr,PasvAddr->ai_addrlen) < 0 && + errno != EINPROGRESS) + return _error->Errno("socket",_("Could not create a socket")); + + /* This implements a timeout for connect by opening the connection + nonblocking */ + if (WaitFd(DataFd,true,TimeOut) == false) + return _error->Error(_("Could not connect data socket, connection timed out")); + unsigned int Err; + unsigned int Len = sizeof(Err); + if (getsockopt(DataFd,SOL_SOCKET,SO_ERROR,&Err,&Len) != 0) + return _error->Errno("getsockopt",_("Failed")); + if (Err != 0) + return _error->Error(_("Could not connect passive socket.")); + + return true; + } + + // Port mode :< + close(DataListenFd); + DataListenFd = -1; + + // Get the information for a listening socket. + struct addrinfo *BindAddr = 0; + struct addrinfo Hints; + memset(&Hints,0,sizeof(Hints)); + Hints.ai_socktype = SOCK_STREAM; + Hints.ai_flags |= AI_PASSIVE; + Hints.ai_family = ((struct sockaddr *)&ServerAddr)->sa_family; + int Res; + if ((Res = getaddrinfo(0,"0",&Hints,&BindAddr)) != 0) + return _error->Error(_("getaddrinfo was unable to get a listening socket")); + + // Construct the socket + if ((DataListenFd = socket(BindAddr->ai_family,BindAddr->ai_socktype, + BindAddr->ai_protocol)) < 0) + { + freeaddrinfo(BindAddr); + return _error->Errno("socket",_("Could not create a socket")); + } + + // Bind and listen + if (bind(DataListenFd,BindAddr->ai_addr,BindAddr->ai_addrlen) < 0) + { + freeaddrinfo(BindAddr); + return _error->Errno("bind",_("Could not bind a socket")); + } + freeaddrinfo(BindAddr); + if (listen(DataListenFd,1) < 0) + return _error->Errno("listen",_("Could not listen on the socket")); + SetNonBlock(DataListenFd,true); + + // Determine the name to send to the remote + struct sockaddr_storage Addr; + socklen_t AddrLen = sizeof(Addr); + if (getsockname(DataListenFd,(sockaddr *)&Addr,&AddrLen) < 0) + return _error->Errno("getsockname",_("Could not determine the socket's name")); + + + // Reverse the address. We need the server address and the data port. + char Name[NI_MAXHOST]; + char Service[NI_MAXSERV]; + char Service2[NI_MAXSERV]; + getnameinfo((struct sockaddr *)&Addr,AddrLen, + Name,sizeof(Name),Service,sizeof(Service), + NI_NUMERICHOST|NI_NUMERICSERV); + getnameinfo((struct sockaddr *)&ServerAddr,ServerAddrLen, + Name,sizeof(Name),Service2,sizeof(Service2), + NI_NUMERICHOST|NI_NUMERICSERV); + + // Send off an IPv4 address in the old port format + if (((struct sockaddr *)&Addr)->sa_family == AF_INET && + ForceExtended == false) + { + // Convert the dots in the quad into commas + for (char *I = Name; *I != 0; I++) + if (*I == '.') + *I = ','; + unsigned long Port = atoi(Service); + + // Send the port command + unsigned int Tag; + string Msg; + if (WriteMsg(Tag,Msg,"PORT %s,%d,%d", + Name, + (int)(Port >> 8) & 0xff, (int)(Port & 0xff)) == false) + return false; + if (Tag >= 400) + return _error->Error(_("Unable to send PORT command")); + return true; + } + + // Construct an EPRT command + unsigned Proto = 0; + for (unsigned J = 0; AFMap[J].Family != 0; J++) + if (AFMap[J].Family == ((struct sockaddr *)&Addr)->sa_family) + Proto = AFMap[J].IETFFamily; + if (Proto == 0) + return _error->Error(_("Unknown address family %u (AF_*)"), + ((struct sockaddr *)&Addr)->sa_family); + + // Send the EPRT command + unsigned int Tag; + string Msg; + if (WriteMsg(Tag,Msg,"EPRT |%u|%s|%s|",Proto,Name,Service) == false) + return false; + if (Tag >= 400) + return _error->Error(_("EPRT failed, server said: %s"),Msg.c_str()); + return true; +} + /*}}}*/ +// FTPConn::Finalize - Complete the Data connection /*{{{*/ +// --------------------------------------------------------------------- +/* If the connection is in port mode this waits for the other end to hook + up to us. */ +bool FTPConn::Finalize() +{ + // Passive mode? Do nothing + if (PasvAddr != 0) + return true; + + // Close any old socket.. + close(DataFd); + DataFd = -1; + + // Wait for someone to connect.. + if (WaitFd(DataListenFd,false,TimeOut) == false) + return _error->Error(_("Data socket connect timed out")); + + // Accept the connection + struct sockaddr_in Addr; + socklen_t Len = sizeof(Addr); + DataFd = accept(DataListenFd,(struct sockaddr *)&Addr,&Len); + if (DataFd < 0) + return _error->Errno("accept",_("Unable to accept connection")); + + close(DataListenFd); + DataListenFd = -1; + + return true; +} + /*}}}*/ +// FTPConn::Get - Get a file /*{{{*/ +// --------------------------------------------------------------------- +/* This opens a data connection, sends REST and RETR and then + transfers the file over. */ +bool FTPConn::Get(const char *Path,FileFd &To,unsigned long Resume, + Hashes &Hash,bool &Missing) +{ + Missing = false; + if (CreateDataFd() == false) + return false; + + unsigned int Tag; + string Msg; + if (Resume != 0) + { + if (WriteMsg(Tag,Msg,"REST %u",Resume) == false) + return false; + if (Tag >= 400) + Resume = 0; + } + + if (To.Truncate(Resume) == false) + return false; + + if (To.Seek(0) == false) + return false; + + if (Resume != 0) + { + if (Hash.AddFD(To.Fd(),Resume) == false) + { + _error->Errno("read",_("Problem hashing file")); + return false; + } + } + + // Send the get command + if (WriteMsg(Tag,Msg,"RETR %s",Path) == false) + return false; + + if (Tag >= 400) + { + if (Tag == 550) + Missing = true; + return _error->Error(_("Unable to fetch file, server said '%s'"),Msg.c_str()); + } + + // Finish off the data connection + if (Finalize() == false) + return false; + + // Copy loop + unsigned char Buffer[4096]; + while (1) + { + // Wait for some data.. + if (WaitFd(DataFd,false,TimeOut) == false) + { + Close(); + return _error->Error(_("Data socket timed out")); + } + + // Read the data.. + int Res = read(DataFd,Buffer,sizeof(Buffer)); + if (Res == 0) + break; + if (Res < 0) + { + if (errno == EAGAIN) + continue; + break; + } + + Hash.Add(Buffer,Res); + if (To.Write(Buffer,Res) == false) + { + Close(); + return false; + } + } + + // All done + close(DataFd); + DataFd = -1; + + // Read the closing message from the server + if (ReadResp(Tag,Msg) == false) + return false; + if (Tag >= 400) + return _error->Error(_("Data transfer failed, server said '%s'"),Msg.c_str()); + return true; +} + /*}}}*/ + +// FtpMethod::FtpMethod - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +FtpMethod::FtpMethod() : pkgAcqMethod("1.0",SendConfig) +{ + signal(SIGTERM,SigTerm); + signal(SIGINT,SigTerm); + + Server = 0; + FailFd = -1; +} + /*}}}*/ +// FtpMethod::SigTerm - Handle a fatal signal /*{{{*/ +// --------------------------------------------------------------------- +/* This closes and timestamps the open file. This is neccessary to get + resume behavoir on user abort */ +void FtpMethod::SigTerm(int) +{ + if (FailFd == -1) + _exit(100); + close(FailFd); + + // Timestamp + struct utimbuf UBuf; + UBuf.actime = FailTime; + UBuf.modtime = FailTime; + utime(FailFile.c_str(),&UBuf); + + _exit(100); +} + /*}}}*/ +// FtpMethod::Configuration - Handle a configuration message /*{{{*/ +// --------------------------------------------------------------------- +/* We stash the desired pipeline depth */ +bool FtpMethod::Configuration(string Message) +{ + if (pkgAcqMethod::Configuration(Message) == false) + return false; + + TimeOut = _config->FindI("Acquire::Ftp::Timeout",TimeOut); + return true; +} + /*}}}*/ +// FtpMethod::Fetch - Fetch a file /*{{{*/ +// --------------------------------------------------------------------- +/* Fetch a single file, called by the base class.. */ +bool FtpMethod::Fetch(FetchItem *Itm) +{ + URI Get = Itm->Uri; + const char *File = Get.Path.c_str(); + FetchResult Res; + Res.Filename = Itm->DestFile; + Res.IMSHit = false; + + // Connect to the server + if (Server == 0 || Server->Comp(Get) == false) + { + delete Server; + Server = new FTPConn(Get); + } + + // Could not connect is a transient error.. + if (Server->Open(this) == false) + { + Server->Close(); + Fail(true); + return true; + } + + // Get the files information + Status(_("Query")); + unsigned long Size; + if (Server->Size(File,Size) == false || + Server->ModTime(File,FailTime) == false) + { + Fail(true); + return true; + } + Res.Size = Size; + + // See if it is an IMS hit + if (Itm->LastModified == FailTime) + { + Res.Size = 0; + Res.IMSHit = true; + URIDone(Res); + return true; + } + + // See if the file exists + struct stat Buf; + if (stat(Itm->DestFile.c_str(),&Buf) == 0) + { + if (Size == (unsigned)Buf.st_size && FailTime == Buf.st_mtime) + { + Res.Size = Buf.st_size; + Res.LastModified = Buf.st_mtime; + Res.ResumePoint = Buf.st_size; + URIDone(Res); + return true; + } + + // Resume? + if (FailTime == Buf.st_mtime && Size > (unsigned)Buf.st_size) + Res.ResumePoint = Buf.st_size; + } + + // Open the file + Hashes Hash; + { + FileFd Fd(Itm->DestFile,FileFd::WriteAny); + if (_error->PendingError() == true) + return false; + + URIStart(Res); + + FailFile = Itm->DestFile; + FailFile.c_str(); // Make sure we dont do a malloc in the signal handler + FailFd = Fd.Fd(); + + bool Missing; + if (Server->Get(File,Fd,Res.ResumePoint,Hash,Missing) == false) + { + Fd.Close(); + + // Timestamp + struct utimbuf UBuf; + UBuf.actime = FailTime; + UBuf.modtime = FailTime; + utime(FailFile.c_str(),&UBuf); + + // If the file is missing we hard fail and delete the destfile + // otherwise transient fail + if (Missing == true) { + unlink(FailFile.c_str()); + return false; + } + Fail(true); + return true; + } + + Res.Size = Fd.Size(); + } + + Res.LastModified = FailTime; + Res.TakeHashes(Hash); + + // Timestamp + struct utimbuf UBuf; + UBuf.actime = FailTime; + UBuf.modtime = FailTime; + utime(Queue->DestFile.c_str(),&UBuf); + FailFd = -1; + + URIDone(Res); + + return true; +} + /*}}}*/ + +int main_(int argc, const char *argv[]); +int main(int argc, const char *argv[]) { + _exit(main_(argc, argv)); +} +int main_(int argc, const char *argv[]) +{ + setlocale(LC_ALL, ""); + + /* See if we should be come the http client - we do this for http + proxy urls */ + if (getenv("ftp_proxy") != 0) + { + URI Proxy = string(getenv("ftp_proxy")); + + // Run the HTTP method + if (Proxy.Access == "http") + { + // Copy over the environment setting + char S[300]; + snprintf(S,sizeof(S),"http_proxy=%s",getenv("ftp_proxy")); + putenv(S); + putenv("no_proxy="); + + // Run the http method + string Path = flNotFile(argv[0]) + "http"; + execl(Path.c_str(),Path.c_str(),(char *)NULL); + cerr << _("Unable to invoke ") << Path << endl; + exit(100); + } + } + + FtpMethod Mth; + + return Mth.Run(); +} diff --git a/methods/ftp.h b/methods/ftp.h new file mode 100644 index 0000000..1bcea41 --- /dev/null +++ b/methods/ftp.h @@ -0,0 +1,82 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/// $Id: ftp.h,v 1.4 2001/03/06 07:15:29 jgg Exp $ +// $Id: ftp.h,v 1.4 2001/03/06 07:15:29 jgg Exp $ +/* ###################################################################### + + FTP Aquire Method - This is the FTP aquire method for APT. + + ##################################################################### */ + /*}}}*/ +#ifndef APT_FTP_H +#define APT_FTP_H + +class FTPConn +{ + char Buffer[1024*10]; + unsigned long Len; + int ServerFd; + int DataFd; + int DataListenFd; + URI ServerName; + bool ForceExtended; + bool TryPassive; + bool Debug; + + struct addrinfo *PasvAddr; + + // Generic Peer Address + struct sockaddr_storage PeerAddr; + socklen_t PeerAddrLen; + + // Generic Server Address (us) + struct sockaddr_storage ServerAddr; + socklen_t ServerAddrLen; + + // Private helper functions + bool ReadLine(string &Text); + bool Login(); + bool CreateDataFd(); + bool Finalize(); + + public: + + bool Comp(URI Other) {return Other.Host == ServerName.Host && Other.Port == ServerName.Port;}; + + // Raw connection IO + bool ReadResp(unsigned int &Ret,string &Text); + bool WriteMsg(unsigned int &Ret,string &Text,const char *Fmt,...); + + // Connection control + bool Open(pkgAcqMethod *Owner); + void Close(); + bool GoPasv(); + bool ExtGoPasv(); + + // Query + bool Size(const char *Path,unsigned long &Size); + bool ModTime(const char *Path, time_t &Time); + bool Get(const char *Path,FileFd &To,unsigned long Resume, + Hashes &MD5,bool &Missing); + + FTPConn(URI Srv); + ~FTPConn(); +}; + +class FtpMethod : public pkgAcqMethod +{ + virtual bool Fetch(FetchItem *Itm); + virtual bool Configuration(string Message); + + FTPConn *Server; + + static string FailFile; + static int FailFd; + static time_t FailTime; + static void SigTerm(int); + + public: + + FtpMethod(); +}; + +#endif diff --git a/methods/gpgv.cc b/methods/gpgv.cc new file mode 100644 index 0000000..46c8a24 --- /dev/null +++ b/methods/gpgv.cc @@ -0,0 +1,314 @@ +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define GNUPGPREFIX "[GNUPG:]" +#define GNUPGBADSIG "[GNUPG:] BADSIG" +#define GNUPGNOPUBKEY "[GNUPG:] NO_PUBKEY" +#define GNUPGVALIDSIG "[GNUPG:] VALIDSIG" +#define GNUPGNODATA "[GNUPG:] NODATA" + +class GPGVMethod : public pkgAcqMethod +{ + private: + string VerifyGetSigners(const char *file, const char *outfile, + vector &GoodSigners, vector &BadSigners, + vector &NoPubKeySigners); + + protected: + virtual bool Fetch(FetchItem *Itm); + + public: + + GPGVMethod() : pkgAcqMethod("1.0",SingleInstance | SendConfig) {}; +}; + +string GPGVMethod::VerifyGetSigners(const char *file, const char *outfile, + vector &GoodSigners, + vector &BadSigners, + vector &NoPubKeySigners) +{ + // setup a (empty) stringstream for formating the return value + std::stringstream ret; + ret.str(""); + + if (_config->FindB("Debug::Acquire::gpgv", false)) + { + std::cerr << "inside VerifyGetSigners" << std::endl; + } + pid_t pid; + int fd[2]; + FILE *pipein; + int status; + struct stat buff; + string gpgvpath = _config->Find("Dir::Bin::gpg", "/usr/bin/gpgv"); + string pubringpath = _config->Find("APT::GPGV::TrustedKeyring", "/etc/apt/trusted.gpg"); + if (_config->FindB("Debug::Acquire::gpgv", false)) + { + std::cerr << "gpgv path: " << gpgvpath << std::endl; + std::cerr << "Keyring path: " << pubringpath << std::endl; + } + + if (stat(pubringpath.c_str(), &buff) != 0) + { + ioprintf(ret, _("Couldn't access keyring: '%s'"), strerror(errno)); + return ret.str(); + } + if (pipe(fd) < 0) + { + return "Couldn't create pipe"; + } + + pid = fork(); + if (pid < 0) + { + return string("Couldn't spawn new process") + strerror(errno); + } + else if (pid == 0) + { + const char *Args[400]; + unsigned int i = 0; + + Args[i++] = gpgvpath.c_str(); + Args[i++] = "--status-fd"; + Args[i++] = "3"; + Args[i++] = "--keyring"; + Args[i++] = pubringpath.c_str(); + + Configuration::Item const *Opts; + Opts = _config->Tree("Acquire::gpgv::Options"); + if (Opts != 0) + { + Opts = Opts->Child; + for (; Opts != 0; Opts = Opts->Next) + { + if (Opts->Value.empty() == true) + continue; + Args[i++] = Opts->Value.c_str(); + if(i >= 395) { + std::cerr << _("E: Argument list from Acquire::gpgv::Options too long. Exiting.") << std::endl; + exit(111); + } + } + } + Args[i++] = file; + Args[i++] = outfile; + Args[i++] = NULL; + + if (_config->FindB("Debug::Acquire::gpgv", false)) + { + std::cerr << "Preparing to exec: " << gpgvpath; + for(unsigned int j=0;Args[j] != NULL; j++) + std::cerr << " " << Args[j]; + std::cerr << std::endl; + } + int nullfd = open("/dev/null", O_RDONLY); + close(fd[0]); + // Redirect output to /dev/null; we read from the status fd + dup2(nullfd, STDOUT_FILENO); + dup2(nullfd, STDERR_FILENO); + // Redirect the pipe to the status fd (3) + dup2(fd[1], 3); + + putenv("LANG="); + putenv("LC_ALL="); + putenv("LC_MESSAGES="); + execvp(gpgvpath.c_str(), (char **)Args); + + exit(111); + } + close(fd[1]); + + pipein = fdopen(fd[0], "r"); + + // Loop over the output of gpgv, and check the signatures. + size_t buffersize = 64; + char *buffer = (char *) malloc(buffersize); + size_t bufferoff = 0; + while (1) + { + int c; + + // Read a line. Sigh. + while ((c = getc(pipein)) != EOF && c != '\n') + { + if (bufferoff == buffersize) + buffer = (char *) realloc(buffer, buffersize *= 2); + *(buffer+bufferoff) = c; + bufferoff++; + } + if (bufferoff == 0 && c == EOF) + break; + *(buffer+bufferoff) = '\0'; + bufferoff = 0; + if (_config->FindB("Debug::Acquire::gpgv", false)) + std::cerr << "Read: " << buffer << std::endl; + + // Push the data into three separate vectors, which + // we later concatenate. They're kept separate so + // if we improve the apt method communication stuff later + // it will be better. + if (strncmp(buffer, GNUPGBADSIG, sizeof(GNUPGBADSIG)-1) == 0) + { + if (_config->FindB("Debug::Acquire::gpgv", false)) + std::cerr << "Got BADSIG! " << std::endl; + BadSigners.push_back(string(buffer+sizeof(GNUPGPREFIX))); + } + + if (strncmp(buffer, GNUPGNOPUBKEY, sizeof(GNUPGNOPUBKEY)-1) == 0) + { + if (_config->FindB("Debug::Acquire::gpgv", false)) + std::cerr << "Got NO_PUBKEY " << std::endl; + NoPubKeySigners.push_back(string(buffer+sizeof(GNUPGPREFIX))); + } + if (strncmp(buffer, GNUPGNODATA, sizeof(GNUPGBADSIG)-1) == 0) + { + if (_config->FindB("Debug::Acquire::gpgv", false)) + std::cerr << "Got NODATA! " << std::endl; + BadSigners.push_back(string(buffer+sizeof(GNUPGPREFIX))); + } + if (strncmp(buffer, GNUPGVALIDSIG, sizeof(GNUPGVALIDSIG)-1) == 0) + { + char *sig = buffer + sizeof(GNUPGPREFIX); + char *p = sig + sizeof("VALIDSIG"); + while (*p && isxdigit(*p)) + p++; + *p = 0; + if (_config->FindB("Debug::Acquire::gpgv", false)) + std::cerr << "Got VALIDSIG, key ID:" << sig << std::endl; + GoodSigners.push_back(string(sig)); + } + } + fclose(pipein); + + waitpid(pid, &status, 0); + if (_config->FindB("Debug::Acquire::gpgv", false)) + { + std::cerr << "gpgv exited\n"; + } + + if (WEXITSTATUS(status) == 0) + { + if (GoodSigners.empty()) + return _("Internal error: Good signature, but could not determine key fingerprint?!"); + return ""; + } + else if (WEXITSTATUS(status) == 1) + { + return _("At least one invalid signature was encountered."); + } + else if (WEXITSTATUS(status) == 111) + { + ioprintf(ret, _("Could not execute '%s' to verify signature (is gnupg installed?)"), gpgvpath.c_str()); + return ret.str(); + } + else + { + return _("Unknown error executing gpgv"); + } +} + +bool GPGVMethod::Fetch(FetchItem *Itm) +{ + URI Get = Itm->Uri; + string Path = Get.Host + Get.Path; // To account for relative paths + string keyID; + vector GoodSigners; + vector BadSigners; + vector NoPubKeySigners; + + FetchResult Res; + Res.Filename = Itm->DestFile; + URIStart(Res); + + // Run gpgv on file, extract contents and get the key ID of the signer + string msg = VerifyGetSigners(Path.c_str(), Itm->DestFile.c_str(), + GoodSigners, BadSigners, NoPubKeySigners); + if (GoodSigners.empty() || !BadSigners.empty() || !NoPubKeySigners.empty()) + { + string errmsg; + // In this case, something bad probably happened, so we just go + // with what the other method gave us for an error message. + if (BadSigners.empty() && NoPubKeySigners.empty()) + errmsg = msg; + else + { + if (!BadSigners.empty()) + { + errmsg += _("The following signatures were invalid:\n"); + for (vector::iterator I = BadSigners.begin(); + I != BadSigners.end(); I++) + errmsg += (*I + "\n"); + } + if (!NoPubKeySigners.empty()) + { + errmsg += _("The following signatures couldn't be verified because the public key is not available:\n"); + for (vector::iterator I = NoPubKeySigners.begin(); + I != NoPubKeySigners.end(); I++) + errmsg += (*I + "\n"); + } + } + // this is only fatal if we have no good sigs or if we have at + // least one bad signature. good signatures and NoPubKey signatures + // happen easily when a file is signed with multiple signatures + if(GoodSigners.empty() or !BadSigners.empty()) + return _error->Error(errmsg.c_str()); + } + + // Transfer the modification times + struct stat Buf; + if (stat(Path.c_str(),&Buf) != 0) + return _error->Errno("stat",_("Failed to stat %s"), Path.c_str()); + + struct utimbuf TimeBuf; + TimeBuf.actime = Buf.st_atime; + TimeBuf.modtime = Buf.st_mtime; + if (utime(Itm->DestFile.c_str(),&TimeBuf) != 0) + return _error->Errno("utime",_("Failed to set modification time")); + + if (stat(Itm->DestFile.c_str(),&Buf) != 0) + return _error->Errno("stat",_("Failed to stat")); + + // Return a Done response + Res.LastModified = Buf.st_mtime; + Res.Size = Buf.st_size; + // Just pass the raw output up, because passing it as a real data + // structure is too difficult with the method stuff. We keep it + // as three separate vectors for future extensibility. + Res.GPGVOutput = GoodSigners; + Res.GPGVOutput.insert(Res.GPGVOutput.end(),BadSigners.begin(),BadSigners.end()); + Res.GPGVOutput.insert(Res.GPGVOutput.end(),NoPubKeySigners.begin(),NoPubKeySigners.end()); + URIDone(Res); + + if (_config->FindB("Debug::Acquire::gpgv", false)) + { + std::cerr << "gpgv succeeded\n"; + } + + return true; +} + + +int main_(); +int main() { +_exit(main_()); +} +int main_() +{ + setlocale(LC_ALL, ""); + + GPGVMethod Mth; + + return Mth.Run(); +} diff --git a/methods/gzip.cc b/methods/gzip.cc new file mode 100644 index 0000000..9f87e71 --- /dev/null +++ b/methods/gzip.cc @@ -0,0 +1,177 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: gzip.cc,v 1.17.2.1 2004/01/16 18:58:50 mdz Exp $ +/* ###################################################################### + + GZip method - Take a file URI in and decompress it into the target + file. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + /*}}}*/ + +const char *Prog; + +class GzipMethod : public pkgAcqMethod +{ + virtual bool Fetch(FetchItem *Itm); + + public: + + GzipMethod() : pkgAcqMethod("1.1",SingleInstance | SendConfig) {}; +}; + + +// GzipMethod::Fetch - Decompress the passed URI /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool GzipMethod::Fetch(FetchItem *Itm) +{ + URI Get = Itm->Uri; + string Path = Get.Host + Get.Path; // To account for relative paths + + string GzPathOption = "Dir::bin::"+string(Prog); + + FetchResult Res; + Res.Filename = Itm->DestFile; + URIStart(Res); + + // Open the source and destination files + FileFd From(Path,FileFd::ReadOnly); + + // if the file is empty, just rename it and return + if(From.Size() == 0) + { + rename(Path.c_str(), Itm->DestFile.c_str()); + return true; + } + + int GzOut[2]; + if (pipe(GzOut) < 0) + return _error->Errno("pipe",_("Couldn't open pipe for %s"),Prog); + + // Fork gzip + pid_t Process = ExecFork(); + if (Process == 0) + { + close(GzOut[0]); + dup2(From.Fd(),STDIN_FILENO); + dup2(GzOut[1],STDOUT_FILENO); + From.Close(); + close(GzOut[1]); + SetCloseExec(STDIN_FILENO,false); + SetCloseExec(STDOUT_FILENO,false); + + const char *Args[3]; + string Tmp = _config->Find(GzPathOption,Prog); + Args[0] = Tmp.c_str(); + Args[1] = "-d"; + Args[2] = 0; + execvp(Args[0],(char **)Args); + _exit(100); + } + From.Close(); + close(GzOut[1]); + + FileFd FromGz(GzOut[0]); // For autoclose + FileFd To(Itm->DestFile,FileFd::WriteEmpty); + To.EraseOnFailure(); + if (_error->PendingError() == true) + return false; + + // Read data from gzip, generate checksums and write + Hashes Hash; + bool Failed = false; + while (1) + { + unsigned char Buffer[4*1024]; + unsigned long Count; + + Count = read(GzOut[0],Buffer,sizeof(Buffer)); + if (Count < 0 && errno == EINTR) + continue; + + if (Count < 0) + { + _error->Errno("read", _("Read error from %s process"),Prog); + Failed = true; + break; + } + + if (Count == 0) + break; + + Hash.Add(Buffer,Count); + if (To.Write(Buffer,Count) == false) + { + Failed = true; + FromGz.Close(); + break; + } + } + + // Wait for gzip to finish + if (ExecWait(Process,_config->Find(GzPathOption,Prog).c_str(),false) == false) + { + To.OpFail(); + return false; + } + + To.Close(); + + if (Failed == true) + return false; + + // Transfer the modification times + struct stat Buf; + if (stat(Path.c_str(),&Buf) != 0) + return _error->Errno("stat",_("Failed to stat")); + + struct utimbuf TimeBuf; + TimeBuf.actime = Buf.st_atime; + TimeBuf.modtime = Buf.st_mtime; + if (utime(Itm->DestFile.c_str(),&TimeBuf) != 0) + return _error->Errno("utime",_("Failed to set modification time")); + + if (stat(Itm->DestFile.c_str(),&Buf) != 0) + return _error->Errno("stat",_("Failed to stat")); + + // Return a Done response + Res.LastModified = Buf.st_mtime; + Res.Size = Buf.st_size; + Res.TakeHashes(Hash); + + URIDone(Res); + + return true; +} + /*}}}*/ + +int main_(int argc, const char *argv[]); +int main(int argc, const char *argv[]) { + _exit(main_(argc, argv)); +} +int main_(int argc, const char *argv[]) +{ + setlocale(LC_ALL, ""); + + GzipMethod Mth; + + Prog = strrchr(argv[0],'/'); + Prog++; + + return Mth.Run(); +} diff --git a/methods/http.cc b/methods/http.cc new file mode 100644 index 0000000..ff680f3 --- /dev/null +++ b/methods/http.cc @@ -0,0 +1,1238 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: http.cc,v 1.59 2004/05/08 19:42:35 mdz Exp $ +/* ###################################################################### + + HTTP Aquire Method - This is the HTTP aquire method for APT. + + It uses HTTP/1.1 and many of the fancy options there-in, such as + pipelining, range, if-range and so on. + + It is based on a doubly buffered select loop. A groupe of requests are + fed into a single output buffer that is constantly fed out the + socket. This provides ideal pipelining as in many cases all of the + requests will fit into a single packet. The input socket is buffered + the same way and fed into the fd for the file (may be a pipe in future). + + This double buffering provides fairly substantial transfer rates, + compared to wget the http method is about 4% faster. Most importantly, + when HTTP is compared with FTP as a protocol the speed difference is + huge. In tests over the internet from two sites to llug (via ATM) this + program got 230k/s sustained http transfer rates. FTP on the other + hand topped out at 170k/s. That combined with the time to setup the + FTP connection makes HTTP a vastly superior protocol. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Internet stuff +#include + +#include "connect.h" +#include "rfc2553emu.h" +#include "http.h" + + /*}}}*/ +using namespace std; + +string HttpMethod::FailFile; +int HttpMethod::FailFd = -1; +time_t HttpMethod::FailTime = 0; +unsigned long PipelineDepth = 10; +unsigned long TimeOut = 120; +bool Debug = false; + +unsigned long CircleBuf::BwReadLimit=0; +unsigned long CircleBuf::BwTickReadData=0; +struct timeval CircleBuf::BwReadTick={0,0}; +const unsigned int CircleBuf::BW_HZ=10; + +// CircleBuf::CircleBuf - Circular input buffer /*{{{*/ +// --------------------------------------------------------------------- +/* */ +CircleBuf::CircleBuf(unsigned long Size) : Size(Size), Hash(0) +{ + Buf = new unsigned char[Size]; + Reset(); + + CircleBuf::BwReadLimit = _config->FindI("Acquire::http::Dl-Limit",0)*1024; +} + /*}}}*/ +// CircleBuf::Reset - Reset to the default state /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void CircleBuf::Reset() +{ + InP = 0; + OutP = 0; + StrPos = 0; + MaxGet = (unsigned int)-1; + OutQueue = string(); + if (Hash != 0) + { + delete Hash; + Hash = new Hashes; + } +}; + /*}}}*/ +// CircleBuf::Read - Read from a FD into the circular buffer /*{{{*/ +// --------------------------------------------------------------------- +/* This fills up the buffer with as much data as is in the FD, assuming it + is non-blocking.. */ +bool CircleBuf::Read(int Fd) +{ + unsigned long BwReadMax; + + while (1) + { + // Woops, buffer is full + if (InP - OutP == Size) + return true; + + // what's left to read in this tick + BwReadMax = CircleBuf::BwReadLimit/BW_HZ; + + if(CircleBuf::BwReadLimit) { + struct timeval now; + gettimeofday(&now,0); + + unsigned long d = (now.tv_sec-CircleBuf::BwReadTick.tv_sec)*1000000 + + now.tv_usec-CircleBuf::BwReadTick.tv_usec; + if(d > 1000000/BW_HZ) { + CircleBuf::BwReadTick = now; + CircleBuf::BwTickReadData = 0; + } + + if(CircleBuf::BwTickReadData >= BwReadMax) { + usleep(1000000/BW_HZ); + return true; + } + } + + // Write the buffer segment + int Res; + if(CircleBuf::BwReadLimit) { + Res = read(Fd,Buf + (InP%Size), + BwReadMax > LeftRead() ? LeftRead() : BwReadMax); + } else + Res = read(Fd,Buf + (InP%Size),LeftRead()); + + if(Res > 0 && BwReadLimit > 0) + CircleBuf::BwTickReadData += Res; + + if (Res == 0) + return false; + if (Res < 0) + { + if (errno == EAGAIN) + return true; + return false; + } + + if (InP == 0) + gettimeofday(&Start,0); + InP += Res; + } +} + /*}}}*/ +// CircleBuf::Read - Put the string into the buffer /*{{{*/ +// --------------------------------------------------------------------- +/* This will hold the string in and fill the buffer with it as it empties */ +bool CircleBuf::Read(string Data) +{ + OutQueue += Data; + FillOut(); + return true; +} + /*}}}*/ +// CircleBuf::FillOut - Fill the buffer from the output queue /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void CircleBuf::FillOut() +{ + if (OutQueue.empty() == true) + return; + while (1) + { + // Woops, buffer is full + if (InP - OutP == Size) + return; + + // Write the buffer segment + unsigned long Sz = LeftRead(); + if (OutQueue.length() - StrPos < Sz) + Sz = OutQueue.length() - StrPos; + memcpy(Buf + (InP%Size),OutQueue.c_str() + StrPos,Sz); + + // Advance + StrPos += Sz; + InP += Sz; + if (OutQueue.length() == StrPos) + { + StrPos = 0; + OutQueue = ""; + return; + } + } +} + /*}}}*/ +// CircleBuf::Write - Write from the buffer into a FD /*{{{*/ +// --------------------------------------------------------------------- +/* This empties the buffer into the FD. */ +bool CircleBuf::Write(int Fd) +{ + while (1) + { + FillOut(); + + // Woops, buffer is empty + if (OutP == InP) + return true; + + if (OutP == MaxGet) + return true; + + // Write the buffer segment + int Res; + Res = write(Fd,Buf + (OutP%Size),LeftWrite()); + + if (Res == 0) + return false; + if (Res < 0) + { + if (errno == EAGAIN) + return true; + + return false; + } + + if (Hash != 0) + Hash->Add(Buf + (OutP%Size),Res); + + OutP += Res; + } +} + /*}}}*/ +// CircleBuf::WriteTillEl - Write from the buffer to a string /*{{{*/ +// --------------------------------------------------------------------- +/* This copies till the first empty line */ +bool CircleBuf::WriteTillEl(string &Data,bool Single) +{ + // We cheat and assume it is unneeded to have more than one buffer load + for (unsigned long I = OutP; I < InP; I++) + { + if (Buf[I%Size] != '\n') + continue; + ++I; + + if (Single == false) + { + if (I < InP && Buf[I%Size] == '\r') + ++I; + if (I >= InP || Buf[I%Size] != '\n') + continue; + ++I; + } + + Data = ""; + while (OutP < I) + { + unsigned long Sz = LeftWrite(); + if (Sz == 0) + return false; + if (I - OutP < Sz) + Sz = I - OutP; + Data += string((char *)(Buf + (OutP%Size)),Sz); + OutP += Sz; + } + return true; + } + return false; +} + /*}}}*/ +// CircleBuf::Stats - Print out stats information /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void CircleBuf::Stats() +{ + if (InP == 0) + return; + + struct timeval Stop; + gettimeofday(&Stop,0); +/* float Diff = Stop.tv_sec - Start.tv_sec + + (float)(Stop.tv_usec - Start.tv_usec)/1000000; + clog << "Got " << InP << " in " << Diff << " at " << InP/Diff << endl;*/ +} + /*}}}*/ + +// ServerState::ServerState - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +ServerState::ServerState(URI Srv,HttpMethod *Owner) : Owner(Owner), + In(64*1024), Out(4*1024), + ServerName(Srv) +{ + Reset(); +} + /*}}}*/ +// ServerState::Open - Open a connection to the server /*{{{*/ +// --------------------------------------------------------------------- +/* This opens a connection to the server. */ +bool ServerState::Open() +{ + // Use the already open connection if possible. + if (ServerFd != -1) + return true; + + Close(); + In.Reset(); + Out.Reset(); + Persistent = true; + + // Determine the proxy setting + if (getenv("http_proxy") == 0) + { + string DefProxy = _config->Find("Acquire::http::Proxy"); + string SpecificProxy = _config->Find("Acquire::http::Proxy::" + ServerName.Host); + if (SpecificProxy.empty() == false) + { + if (SpecificProxy == "DIRECT") + Proxy = ""; + else + Proxy = SpecificProxy; + } + else + Proxy = DefProxy; + } + else + Proxy = getenv("http_proxy"); + + // Parse no_proxy, a , separated list of domains + if (getenv("no_proxy") != 0) + { + if (CheckDomainList(ServerName.Host,getenv("no_proxy")) == true) + Proxy = ""; + } + + // Determine what host and port to use based on the proxy settings + int Port = 0; + string Host; + if (Proxy.empty() == true || Proxy.Host.empty() == true) + { + if (ServerName.Port != 0) + Port = ServerName.Port; + Host = ServerName.Host; + } + else + { + if (Proxy.Port != 0) + Port = Proxy.Port; + Host = Proxy.Host; + } + + // Connect to the remote server + if (Connect(Host,Port,"http",80,ServerFd,TimeOut,Owner) == false) + return false; + + return true; +} + /*}}}*/ +// ServerState::Close - Close a connection to the server /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool ServerState::Close() +{ + close(ServerFd); + ServerFd = -1; + return true; +} + /*}}}*/ +// ServerState::RunHeaders - Get the headers before the data /*{{{*/ +// --------------------------------------------------------------------- +/* Returns 0 if things are OK, 1 if an IO error occursed and 2 if a header + parse error occured */ +int ServerState::RunHeaders() +{ + State = Header; + + Owner->Status(_("Waiting for headers")); + + Major = 0; + Minor = 0; + Result = 0; + Size = 0; + StartPos = 0; + Encoding = Closes; + HaveContent = false; + time(&Date); + + do + { + string Data; + if (In.WriteTillEl(Data) == false) + continue; + + if (Debug == true) + clog << Data; + + for (string::const_iterator I = Data.begin(); I < Data.end(); I++) + { + string::const_iterator J = I; + for (; J != Data.end() && *J != '\n' && *J != '\r';J++); + if (HeaderLine(string(I,J)) == false) + return 2; + I = J; + } + + // 100 Continue is a Nop... + if (Result == 100) + continue; + + // Tidy up the connection persistance state. + if (Encoding == Closes && HaveContent == true) + Persistent = false; + + return 0; + } + while (Owner->Go(false,this) == true); + + return 1; +} + /*}}}*/ +// ServerState::RunData - Transfer the data from the socket /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool ServerState::RunData() +{ + State = Data; + + // Chunked transfer encoding is fun.. + if (Encoding == Chunked) + { + while (1) + { + // Grab the block size + bool Last = true; + string Data; + In.Limit(-1); + do + { + if (In.WriteTillEl(Data,true) == true) + break; + } + while ((Last = Owner->Go(false,this)) == true); + + if (Last == false) + return false; + + // See if we are done + unsigned long Len = strtol(Data.c_str(),0,16); + if (Len == 0) + { + In.Limit(-1); + + // We have to remove the entity trailer + Last = true; + do + { + if (In.WriteTillEl(Data,true) == true && Data.length() <= 2) + break; + } + while ((Last = Owner->Go(false,this)) == true); + if (Last == false) + return false; + return !_error->PendingError(); + } + + // Transfer the block + In.Limit(Len); + while (Owner->Go(true,this) == true) + if (In.IsLimit() == true) + break; + + // Error + if (In.IsLimit() == false) + return false; + + // The server sends an extra new line before the next block specifier.. + In.Limit(-1); + Last = true; + do + { + if (In.WriteTillEl(Data,true) == true) + break; + } + while ((Last = Owner->Go(false,this)) == true); + if (Last == false) + return false; + } + } + else + { + /* Closes encoding is used when the server did not specify a size, the + loss of the connection means we are done */ + if (Encoding == Closes) + In.Limit(-1); + else + In.Limit(Size - StartPos); + + // Just transfer the whole block. + do + { + if (In.IsLimit() == false) + continue; + + In.Limit(-1); + return !_error->PendingError(); + } + while (Owner->Go(true,this) == true); + } + + return Owner->Flush(this) && !_error->PendingError(); +} + /*}}}*/ +// ServerState::HeaderLine - Process a header line /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool ServerState::HeaderLine(string Line) +{ + if (Line.empty() == true) + return true; + + // The http server might be trying to do something evil. + if (Line.length() >= MAXLEN) + return _error->Error(_("Got a single header line over %u chars"),MAXLEN); + + string::size_type Pos = Line.find(' '); + if (Pos == string::npos || Pos+1 > Line.length()) + { + // Blah, some servers use "connection:closes", evil. + Pos = Line.find(':'); + if (Pos == string::npos || Pos + 2 > Line.length()) + return _error->Error(_("Bad header line")); + Pos++; + } + + // Parse off any trailing spaces between the : and the next word. + string::size_type Pos2 = Pos; + while (Pos2 < Line.length() && isspace(Line[Pos2]) != 0) + Pos2++; + + string Tag = string(Line,0,Pos); + string Val = string(Line,Pos2); + + if (stringcasecmp(Tag.c_str(),Tag.c_str()+4,"HTTP") == 0) + { + // Evil servers return no version + if (Line[4] == '/') + { + if (sscanf(Line.c_str(),"HTTP/%u.%u %u %[^\n]",&Major,&Minor, + &Result,Code) != 4) + return _error->Error(_("The HTTP server sent an invalid reply header")); + } + else + { + Major = 0; + Minor = 9; + if (sscanf(Line.c_str(),"HTTP %u %[^\n]",&Result,Code) != 2) + return _error->Error(_("The HTTP server sent an invalid reply header")); + } + + /* Check the HTTP response header to get the default persistance + state. */ + if (Major < 1) + Persistent = false; + else + { + if (Major == 1 && Minor <= 0) + Persistent = false; + else + Persistent = true; + } + + return true; + } + + if (stringcasecmp(Tag,"Content-Length:") == 0) + { + if (Encoding == Closes) + Encoding = Stream; + HaveContent = true; + + // The length is already set from the Content-Range header + if (StartPos != 0) + return true; + + if (sscanf(Val.c_str(),"%lu",&Size) != 1) + return _error->Error(_("The HTTP server sent an invalid Content-Length header")); + return true; + } + + if (stringcasecmp(Tag,"Content-Type:") == 0) + { + HaveContent = true; + return true; + } + + if (stringcasecmp(Tag,"Content-Range:") == 0) + { + HaveContent = true; + + if (sscanf(Val.c_str(),"bytes %lu-%*u/%lu",&StartPos,&Size) != 2) + return _error->Error(_("The HTTP server sent an invalid Content-Range header")); + if ((unsigned)StartPos > Size) + return _error->Error(_("This HTTP server has broken range support")); + return true; + } + + if (stringcasecmp(Tag,"Transfer-Encoding:") == 0) + { + HaveContent = true; + if (stringcasecmp(Val,"chunked") == 0) + Encoding = Chunked; + return true; + } + + if (stringcasecmp(Tag,"Connection:") == 0) + { + if (stringcasecmp(Val,"close") == 0) + Persistent = false; + if (stringcasecmp(Val,"keep-alive") == 0) + Persistent = true; + return true; + } + + if (stringcasecmp(Tag,"Last-Modified:") == 0) + { + if (StrToTime(Val,Date) == false) + return _error->Error(_("Unknown date format")); + return true; + } + + return true; +} + /*}}}*/ + +// HttpMethod::SendReq - Send the HTTP request /*{{{*/ +// --------------------------------------------------------------------- +/* This places the http request in the outbound buffer */ +void HttpMethod::SendReq(FetchItem *Itm,CircleBuf &Out) +{ + URI Uri = Itm->Uri; + + // The HTTP server expects a hostname with a trailing :port + char Buf[1000]; + string ProperHost = Uri.Host; + if (Uri.Port != 0) + { + sprintf(Buf,":%u",Uri.Port); + ProperHost += Buf; + } + + // Just in case. + if (Itm->Uri.length() >= sizeof(Buf)) + abort(); + + /* Build the request. We include a keep-alive header only for non-proxy + requests. This is to tweak old http/1.0 servers that do support keep-alive + but not HTTP/1.1 automatic keep-alive. Doing this with a proxy server + will glitch HTTP/1.0 proxies because they do not filter it out and + pass it on, HTTP/1.1 says the connection should default to keep alive + and we expect the proxy to do this */ + if (Proxy.empty() == true || Proxy.Host.empty()) + sprintf(Buf,"GET %s HTTP/1.1\r\nHost: %s\r\nConnection: keep-alive\r\n", + QuoteString(Uri.Path,"~").c_str(),ProperHost.c_str()); + else + { + /* Generate a cache control header if necessary. We place a max + cache age on index files, optionally set a no-cache directive + and a no-store directive for archives. */ + sprintf(Buf,"GET %s HTTP/1.1\r\nHost: %s\r\n", + Itm->Uri.c_str(),ProperHost.c_str()); + // only generate a cache control header if we actually want to + // use a cache + if (_config->FindB("Acquire::http::No-Cache",false) == false) + { + if (Itm->IndexFile == true) + sprintf(Buf+strlen(Buf),"Cache-Control: max-age=%u\r\n", + _config->FindI("Acquire::http::Max-Age",0)); + else + { + if (_config->FindB("Acquire::http::No-Store",false) == true) + strcat(Buf,"Cache-Control: no-store\r\n"); + } + } + } + // generate a no-cache header if needed + if (_config->FindB("Acquire::http::No-Cache",false) == true) + strcat(Buf,"Cache-Control: no-cache\r\nPragma: no-cache\r\n"); + + + string Req = Buf; + + // Check for a partial file + struct stat SBuf; + if (stat(Itm->DestFile.c_str(),&SBuf) >= 0 && SBuf.st_size > 0) + { + // In this case we send an if-range query with a range header + sprintf(Buf,"Range: bytes=%li-\r\nIf-Range: %s\r\n",(long)SBuf.st_size - 1, + TimeRFC1123(SBuf.st_mtime).c_str()); + Req += Buf; + } + else + { + if (Itm->LastModified != 0) + { + sprintf(Buf,"If-Modified-Since: %s\r\n",TimeRFC1123(Itm->LastModified).c_str()); + Req += Buf; + } + } + + if (Proxy.User.empty() == false || Proxy.Password.empty() == false) + Req += string("Proxy-Authorization: Basic ") + + Base64Encode(Proxy.User + ":" + Proxy.Password) + "\r\n"; + + if (Uri.User.empty() == false || Uri.Password.empty() == false) + Req += string("Authorization: Basic ") + + Base64Encode(Uri.User + ":" + Uri.Password) + "\r\n"; + + Req += "User-Agent: Debian APT-HTTP/1.3\r\n\r\n"; + + if (Debug == true) + cerr << Req << endl; + + Out.Read(Req); +} + /*}}}*/ +// HttpMethod::Go - Run a single loop /*{{{*/ +// --------------------------------------------------------------------- +/* This runs the select loop over the server FDs, Output file FDs and + stdin. */ +bool HttpMethod::Go(bool ToFile,ServerState *Srv) +{ + // Server has closed the connection + if (Srv->ServerFd == -1 && (Srv->In.WriteSpace() == false || + ToFile == false)) + return false; + + fd_set rfds,wfds; + FD_ZERO(&rfds); + FD_ZERO(&wfds); + + /* Add the server. We only send more requests if the connection will + be persisting */ + if (Srv->Out.WriteSpace() == true && Srv->ServerFd != -1 + && Srv->Persistent == true) + FD_SET(Srv->ServerFd,&wfds); + if (Srv->In.ReadSpace() == true && Srv->ServerFd != -1) + FD_SET(Srv->ServerFd,&rfds); + + // Add the file + int FileFD = -1; + if (File != 0) + FileFD = File->Fd(); + + if (Srv->In.WriteSpace() == true && ToFile == true && FileFD != -1) + FD_SET(FileFD,&wfds); + + // Add stdin + FD_SET(STDIN_FILENO,&rfds); + + // Figure out the max fd + int MaxFd = FileFD; + if (MaxFd < Srv->ServerFd) + MaxFd = Srv->ServerFd; + + // Select + struct timeval tv; + tv.tv_sec = TimeOut; + tv.tv_usec = 0; + int Res = 0; + if ((Res = select(MaxFd+1,&rfds,&wfds,0,&tv)) < 0) + { + if (errno == EINTR) + return true; + return _error->Errno("select",_("Select failed")); + } + + if (Res == 0) + { + _error->Error(_("Connection timed out")); + return ServerDie(Srv); + } + + // Handle server IO + if (Srv->ServerFd != -1 && FD_ISSET(Srv->ServerFd,&rfds)) + { + errno = 0; + if (Srv->In.Read(Srv->ServerFd) == false) + return ServerDie(Srv); + } + + if (Srv->ServerFd != -1 && FD_ISSET(Srv->ServerFd,&wfds)) + { + errno = 0; + if (Srv->Out.Write(Srv->ServerFd) == false) + return ServerDie(Srv); + } + + // Send data to the file + if (FileFD != -1 && FD_ISSET(FileFD,&wfds)) + { + if (Srv->In.Write(FileFD) == false) + return _error->Errno("write",_("Error writing to output file")); + } + + // Handle commands from APT + if (FD_ISSET(STDIN_FILENO,&rfds)) + { + if (Run(true) != -1) + exit(100); + } + + return true; +} + /*}}}*/ +// HttpMethod::Flush - Dump the buffer into the file /*{{{*/ +// --------------------------------------------------------------------- +/* This takes the current input buffer from the Server FD and writes it + into the file */ +bool HttpMethod::Flush(ServerState *Srv) +{ + if (File != 0) + { + // on GNU/kFreeBSD, apt dies on /dev/null because non-blocking + // can't be set + if (File->Name() != "/dev/null") + SetNonBlock(File->Fd(),false); + if (Srv->In.WriteSpace() == false) + return true; + + while (Srv->In.WriteSpace() == true) + { + if (Srv->In.Write(File->Fd()) == false) + return _error->Errno("write",_("Error writing to file")); + if (Srv->In.IsLimit() == true) + return true; + } + + if (Srv->In.IsLimit() == true || Srv->Encoding == ServerState::Closes) + return true; + } + return false; +} + /*}}}*/ +// HttpMethod::ServerDie - The server has closed the connection. /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool HttpMethod::ServerDie(ServerState *Srv) +{ + unsigned int LErrno = errno; + + // Dump the buffer to the file + if (Srv->State == ServerState::Data) + { + // on GNU/kFreeBSD, apt dies on /dev/null because non-blocking + // can't be set + if (File->Name() != "/dev/null") + SetNonBlock(File->Fd(),false); + while (Srv->In.WriteSpace() == true) + { + if (Srv->In.Write(File->Fd()) == false) + return _error->Errno("write",_("Error writing to the file")); + + // Done + if (Srv->In.IsLimit() == true) + return true; + } + } + + // See if this is because the server finished the data stream + if (Srv->In.IsLimit() == false && Srv->State != ServerState::Header && + Srv->Encoding != ServerState::Closes) + { + Srv->Close(); + if (LErrno == 0) + return _error->Error(_("Error reading from server. Remote end closed connection")); + errno = LErrno; + return _error->Errno("read",_("Error reading from server")); + } + else + { + Srv->In.Limit(-1); + + // Nothing left in the buffer + if (Srv->In.WriteSpace() == false) + return false; + + // We may have got multiple responses back in one packet.. + Srv->Close(); + return true; + } + + return false; +} + /*}}}*/ +// HttpMethod::DealWithHeaders - Handle the retrieved header data /*{{{*/ +// --------------------------------------------------------------------- +/* We look at the header data we got back from the server and decide what + to do. Returns + 0 - File is open, + 1 - IMS hit + 3 - Unrecoverable error + 4 - Error with error content page + 5 - Unrecoverable non-server error (close the connection) */ +int HttpMethod::DealWithHeaders(FetchResult &Res,ServerState *Srv) +{ + // Not Modified + if (Srv->Result == 304) + { + unlink(Queue->DestFile.c_str()); + Res.IMSHit = true; + Res.LastModified = Queue->LastModified; + return 1; + } + + /* We have a reply we dont handle. This should indicate a perm server + failure */ + if (Srv->Result < 200 || Srv->Result >= 300) + { + _error->Error("%u %s",Srv->Result,Srv->Code); + if (Srv->HaveContent == true) + return 4; + return 3; + } + + // This is some sort of 2xx 'data follows' reply + Res.LastModified = Srv->Date; + Res.Size = Srv->Size; + + // Open the file + delete File; + File = new FileFd(Queue->DestFile,FileFd::WriteAny); + if (_error->PendingError() == true) + return 5; + + FailFile = Queue->DestFile; + FailFile.c_str(); // Make sure we dont do a malloc in the signal handler + FailFd = File->Fd(); + FailTime = Srv->Date; + + // Set the expected size + if (Srv->StartPos >= 0) + { + Res.ResumePoint = Srv->StartPos; + ftruncate(File->Fd(),Srv->StartPos); + } + + // Set the start point + lseek(File->Fd(),0,SEEK_END); + + delete Srv->In.Hash; + Srv->In.Hash = new Hashes; + + // Fill the Hash if the file is non-empty (resume) + if (Srv->StartPos > 0) + { + lseek(File->Fd(),0,SEEK_SET); + if (Srv->In.Hash->AddFD(File->Fd(),Srv->StartPos) == false) + { + _error->Errno("read",_("Problem hashing file")); + return 5; + } + lseek(File->Fd(),0,SEEK_END); + } + + SetNonBlock(File->Fd(),true); + return 0; +} + /*}}}*/ +// HttpMethod::SigTerm - Handle a fatal signal /*{{{*/ +// --------------------------------------------------------------------- +/* This closes and timestamps the open file. This is neccessary to get + resume behavoir on user abort */ +void HttpMethod::SigTerm(int) +{ + if (FailFd == -1) + _exit(100); + close(FailFd); + + // Timestamp + struct utimbuf UBuf; + UBuf.actime = FailTime; + UBuf.modtime = FailTime; + utime(FailFile.c_str(),&UBuf); + + _exit(100); +} + /*}}}*/ +// HttpMethod::Fetch - Fetch an item /*{{{*/ +// --------------------------------------------------------------------- +/* This adds an item to the pipeline. We keep the pipeline at a fixed + depth. */ +bool HttpMethod::Fetch(FetchItem *) +{ + if (Server == 0) + return true; + + // Queue the requests + int Depth = -1; + bool Tail = false; + for (FetchItem *I = Queue; I != 0 && Depth < (signed)PipelineDepth; + I = I->Next, Depth++) + { + // If pipelining is disabled, we only queue 1 request + if (Server->Pipeline == false && Depth >= 0) + break; + + // Make sure we stick with the same server + if (Server->Comp(I->Uri) == false) + break; + if (QueueBack == I) + Tail = true; + if (Tail == true) + { + QueueBack = I->Next; + SendReq(I,Server->Out); + continue; + } + } + + return true; +}; + /*}}}*/ +// HttpMethod::Configuration - Handle a configuration message /*{{{*/ +// --------------------------------------------------------------------- +/* We stash the desired pipeline depth */ +bool HttpMethod::Configuration(string Message) +{ + if (pkgAcqMethod::Configuration(Message) == false) + return false; + + TimeOut = _config->FindI("Acquire::http::Timeout",TimeOut); + PipelineDepth = _config->FindI("Acquire::http::Pipeline-Depth", + PipelineDepth); + Debug = _config->FindB("Debug::Acquire::http",false); + + return true; +} + /*}}}*/ +// HttpMethod::Loop - Main loop /*{{{*/ +// --------------------------------------------------------------------- +/* */ +int HttpMethod::Loop() +{ + signal(SIGTERM,SigTerm); + signal(SIGINT,SigTerm); + + Server = 0; + + int FailCounter = 0; + while (1) + { + // We have no commands, wait for some to arrive + if (Queue == 0) + { + if (WaitFd(STDIN_FILENO) == false) + return 0; + } + + /* Run messages, we can accept 0 (no message) if we didn't + do a WaitFd above.. Otherwise the FD is closed. */ + int Result = Run(true); + if (Result != -1 && (Result != 0 || Queue == 0)) + return 100; + + if (Queue == 0) + continue; + + // Connect to the server + if (Server == 0 || Server->Comp(Queue->Uri) == false) + { + delete Server; + Server = new ServerState(Queue->Uri,this); + } + + /* If the server has explicitly said this is the last connection + then we pre-emptively shut down the pipeline and tear down + the connection. This will speed up HTTP/1.0 servers a tad + since we don't have to wait for the close sequence to + complete */ + if (Server->Persistent == false) + Server->Close(); + + // Reset the pipeline + if (Server->ServerFd == -1) + QueueBack = Queue; + + // Connnect to the host + if (Server->Open() == false) + { + Fail(true); + delete Server; + Server = 0; + continue; + } + + // Fill the pipeline. + Fetch(0); + + // Fetch the next URL header data from the server. + switch (Server->RunHeaders()) + { + case 0: + break; + + // The header data is bad + case 2: + { + _error->Error(_("Bad header data")); + Fail(true); + RotateDNS(); + continue; + } + + // The server closed a connection during the header get.. + default: + case 1: + { + FailCounter++; + _error->Discard(); + Server->Close(); + Server->Pipeline = false; + + if (FailCounter >= 2) + { + Fail(_("Connection failed"),true); + FailCounter = 0; + } + + RotateDNS(); + continue; + } + }; + + // Decide what to do. + FetchResult Res; + Res.Filename = Queue->DestFile; + switch (DealWithHeaders(Res,Server)) + { + // Ok, the file is Open + case 0: + { + URIStart(Res); + + // Run the data + bool Result = Server->RunData(); + + /* If the server is sending back sizeless responses then fill in + the size now */ + if (Res.Size == 0) + Res.Size = File->Size(); + + // Close the file, destroy the FD object and timestamp it + FailFd = -1; + delete File; + File = 0; + + // Timestamp + struct utimbuf UBuf; + time(&UBuf.actime); + UBuf.actime = Server->Date; + UBuf.modtime = Server->Date; + utime(Queue->DestFile.c_str(),&UBuf); + + // Send status to APT + if (Result == true) + { + Res.TakeHashes(*Server->In.Hash); + URIDone(Res); + } + else + Fail(true); + + break; + } + + // IMS hit + case 1: + { + URIDone(Res); + break; + } + + // Hard server error, not found or something + case 3: + { + Fail(); + break; + } + + // Hard internal error, kill the connection and fail + case 5: + { + delete File; + File = 0; + + Fail(); + RotateDNS(); + Server->Close(); + break; + } + + // We need to flush the data, the header is like a 404 w/ error text + case 4: + { + Fail(); + + // Send to content to dev/null + File = new FileFd("/dev/null",FileFd::WriteExists); + Server->RunData(); + delete File; + File = 0; + break; + } + + default: + Fail(_("Internal error")); + break; + } + + FailCounter = 0; + } + + return 0; +} + /*}}}*/ + +int main_(); +int main() { +_exit(main_()); +} +int main_() +{ + setlocale(LC_ALL, ""); + + HttpMethod Mth; + + return Mth.Loop(); +} + + diff --git a/methods/http.h b/methods/http.h new file mode 100644 index 0000000..541e295 --- /dev/null +++ b/methods/http.h @@ -0,0 +1,163 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/// $Id: http.h,v 1.12 2002/04/18 05:09:38 jgg Exp $ +// $Id: http.h,v 1.12 2002/04/18 05:09:38 jgg Exp $ +/* ###################################################################### + + HTTP Aquire Method - This is the HTTP aquire method for APT. + + ##################################################################### */ + /*}}}*/ + +#ifndef APT_HTTP_H +#define APT_HTTP_H + +#define MAXLEN 360 + +#include + +using std::cout; +using std::endl; + +class HttpMethod; + +class CircleBuf +{ + unsigned char *Buf; + unsigned long Size; + unsigned long InP; + unsigned long OutP; + string OutQueue; + unsigned long StrPos; + unsigned long MaxGet; + struct timeval Start; + + static unsigned long BwReadLimit; + static unsigned long BwTickReadData; + static struct timeval BwReadTick; + static const unsigned int BW_HZ; + + unsigned long LeftRead() + { + unsigned long Sz = Size - (InP - OutP); + if (Sz > Size - (InP%Size)) + Sz = Size - (InP%Size); + return Sz; + } + unsigned long LeftWrite() + { + unsigned long Sz = InP - OutP; + if (InP > MaxGet) + Sz = MaxGet - OutP; + if (Sz > Size - (OutP%Size)) + Sz = Size - (OutP%Size); + return Sz; + } + void FillOut(); + + public: + + Hashes *Hash; + + // Read data in + bool Read(int Fd); + bool Read(string Data); + + // Write data out + bool Write(int Fd); + bool WriteTillEl(string &Data,bool Single = false); + + // Control the write limit + void Limit(long Max) {if (Max == -1) MaxGet = 0-1; else MaxGet = OutP + Max;} + bool IsLimit() {return MaxGet == OutP;}; + void Print() {cout << MaxGet << ',' << OutP << endl;}; + + // Test for free space in the buffer + bool ReadSpace() {return Size - (InP - OutP) > 0;}; + bool WriteSpace() {return InP - OutP > 0;}; + + // Dump everything + void Reset(); + void Stats(); + + CircleBuf(unsigned long Size); + ~CircleBuf() {delete [] Buf; delete Hash;}; +}; + +struct ServerState +{ + // This is the last parsed Header Line + unsigned int Major; + unsigned int Minor; + unsigned int Result; + char Code[MAXLEN]; + + // These are some statistics from the last parsed header lines + unsigned long Size; + signed long StartPos; + time_t Date; + bool HaveContent; + enum {Chunked,Stream,Closes} Encoding; + enum {Header, Data} State; + bool Persistent; + + // This is a Persistent attribute of the server itself. + bool Pipeline; + + HttpMethod *Owner; + + // This is the connection itself. Output is data FROM the server + CircleBuf In; + CircleBuf Out; + int ServerFd; + URI ServerName; + + bool HeaderLine(string Line); + bool Comp(URI Other) {return Other.Host == ServerName.Host && Other.Port == ServerName.Port;}; + void Reset() {Major = 0; Minor = 0; Result = 0; Size = 0; StartPos = 0; + Encoding = Closes; time(&Date); ServerFd = -1; + Pipeline = true;}; + int RunHeaders(); + bool RunData(); + + bool Open(); + bool Close(); + + ServerState(URI Srv,HttpMethod *Owner); + ~ServerState() {Close();}; +}; + +class HttpMethod : public pkgAcqMethod +{ + void SendReq(FetchItem *Itm,CircleBuf &Out); + bool Go(bool ToFile,ServerState *Srv); + bool Flush(ServerState *Srv); + bool ServerDie(ServerState *Srv); + int DealWithHeaders(FetchResult &Res,ServerState *Srv); + + virtual bool Fetch(FetchItem *); + virtual bool Configuration(string Message); + + // In the event of a fatal signal this file will be closed and timestamped. + static string FailFile; + static int FailFd; + static time_t FailTime; + static void SigTerm(int); + + public: + friend class ServerState; + + FileFd *File; + ServerState *Server; + + int Loop(); + + HttpMethod() : pkgAcqMethod("1.2",Pipeline | SendConfig) + { + File = 0; + Server = 0; + }; +}; + +URI Proxy; + +#endif diff --git a/methods/makefile b/methods/makefile new file mode 100644 index 0000000..d0b5a28 --- /dev/null +++ b/methods/makefile @@ -0,0 +1,89 @@ +# -*- make -*- +BASE=.. +SUBDIR=methods + +# Bring in the default rules +include ../buildlib/defaults.mak +BIN := $(BIN)/methods + +# FIXME.. +LIB_APT_PKG_MAJOR = 3.11 +APT_DOMAIN := libapt-pkg$(LIB_APT_PKG_MAJOR) + +# The file method +PROGRAM=file +SLIBS = -lapt-pkg +LIB_MAKES = apt-pkg/makefile +SOURCE = file.cc +include $(PROGRAM_H) + +# The copy method +PROGRAM=copy +SLIBS = -lapt-pkg +LIB_MAKES = apt-pkg/makefile +SOURCE = copy.cc +include $(PROGRAM_H) + +# The gzip method +PROGRAM=gzip +SLIBS = -lapt-pkg +LIB_MAKES = apt-pkg/makefile +SOURCE = gzip.cc +include $(PROGRAM_H) + +# The gpgv method +PROGRAM=gpgv +SLIBS = -lapt-pkg +LIB_MAKES = apt-pkg/makefile +SOURCE = gpgv.cc +include $(PROGRAM_H) + +# The cdrom method +PROGRAM=cdrom +SLIBS = -lapt-pkg +LIB_MAKES = apt-pkg/makefile +SOURCE = cdrom.cc +include $(PROGRAM_H) + +# The http method +PROGRAM=http +SLIBS = -lapt-pkg $(SOCKETLIBS) +LIB_MAKES = apt-pkg/makefile +SOURCE = http.cc rfc2553emu.cc connect.cc +include $(PROGRAM_H) + +# The ftp method +PROGRAM=ftp +SLIBS = -lapt-pkg $(SOCKETLIBS) +LIB_MAKES = apt-pkg/makefile +SOURCE = ftp.cc rfc2553emu.cc connect.cc +include $(PROGRAM_H) + +# The rred method +PROGRAM=rred +SLIBS = -lapt-pkg $(SOCKETLIBS) +LIB_MAKES = apt-pkg/makefile +SOURCE = rred.cc +include $(PROGRAM_H) + +# The rsh method +PROGRAM=rsh +SLIBS = -lapt-pkg +LIB_MAKES = apt-pkg/makefile +SOURCE = rsh.cc +include $(PROGRAM_H) + +# SSH and vzip2 method symlink +binary: $(BIN)/ssh $(BIN)/bzip2 +veryclean: clean-$(BIN)/ssh clean-$(BIN)/bzip2 +$(BIN)/ssh: + echo "Installing ssh method link" + ln -fs rsh $(BIN)/ssh +clean-$(BIN)/ssh: + -rm $(BIN)/ssh + +$(BIN)/bzip2: + echo "Installing bzip2 method link" + ln -fs gzip $(BIN)/bzip2 +clean-$(BIN)/bzip2: + -rm $(BIN)/bzip2 diff --git a/methods/rfc2553emu.cc b/methods/rfc2553emu.cc new file mode 100644 index 0000000..66bc906 --- /dev/null +++ b/methods/rfc2553emu.cc @@ -0,0 +1,245 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: rfc2553emu.cc,v 1.8 2001/02/20 07:03:18 jgg Exp $ +/* ###################################################################### + + RFC 2553 Emulation - Provides emulation for RFC 2553 getaddrinfo, + freeaddrinfo and getnameinfo + + This is really C code, it just has a .cc extensions to play nicer with + the rest of APT. + + Originally written by Jason Gunthorpe and placed into + the Public Domain, do with it what you will. + + ##################################################################### */ + /*}}}*/ +#include "rfc2553emu.h" +#include +#include +#include +#include +#include + +#ifndef HAVE_GETADDRINFO +// getaddrinfo - Resolve a hostname /*{{{*/ +// --------------------------------------------------------------------- +/* */ +int getaddrinfo(const char *nodename, const char *servname, + const struct addrinfo *hints, + struct addrinfo **res) +{ + struct addrinfo **Result = res; + hostent *Addr; + unsigned int Port; + int Proto; + const char *End; + char **CurAddr; + + // Try to convert the service as a number + Port = htons(strtol(servname,(char **)&End,0)); + Proto = SOCK_STREAM; + + if (hints != 0 && hints->ai_socktype != 0) + Proto = hints->ai_socktype; + + // Not a number, must be a name. + if (End != servname + strlen(servname)) + { + struct servent *Srv = 0; + + // Do a lookup in the service database + if (hints == 0 || hints->ai_socktype == SOCK_STREAM) + Srv = getservbyname(servname,"tcp"); + if (hints != 0 && hints->ai_socktype == SOCK_DGRAM) + Srv = getservbyname(servname,"udp"); + if (Srv == 0) + return EAI_NONAME; + + // Get the right protocol + Port = Srv->s_port; + if (strcmp(Srv->s_proto,"tcp") == 0) + Proto = SOCK_STREAM; + else + { + if (strcmp(Srv->s_proto,"udp") == 0) + Proto = SOCK_DGRAM; + else + return EAI_NONAME; + } + + if (hints != 0 && hints->ai_socktype != Proto && + hints->ai_socktype != 0) + return EAI_SERVICE; + } + + // Hostname lookup, only if this is not a listening socket + if (hints != 0 && (hints->ai_flags & AI_PASSIVE) != AI_PASSIVE) + { + Addr = gethostbyname(nodename); + if (Addr == 0) + { + if (h_errno == TRY_AGAIN) + return EAI_AGAIN; + if (h_errno == NO_RECOVERY) + return EAI_FAIL; + return EAI_NONAME; + } + + // No A records + if (Addr->h_addr_list[0] == 0) + return EAI_NONAME; + + CurAddr = Addr->h_addr_list; + } + else + CurAddr = (char **)&End; // Fake! + + // Start constructing the linked list + *res = 0; + for (; *CurAddr != 0; CurAddr++) + { + // New result structure + *Result = (struct addrinfo *)calloc(sizeof(**Result),1); + if (*Result == 0) + { + freeaddrinfo(*res); + return EAI_MEMORY; + } + if (*res == 0) + *res = *Result; + + (*Result)->ai_family = AF_INET; + (*Result)->ai_socktype = Proto; + + // If we have the IPPROTO defines we can set the protocol field + #ifdef IPPROTO_TCP + if (Proto == SOCK_STREAM) + (*Result)->ai_protocol = IPPROTO_TCP; + if (Proto == SOCK_DGRAM) + (*Result)->ai_protocol = IPPROTO_UDP; + #endif + + // Allocate space for the address + (*Result)->ai_addrlen = sizeof(struct sockaddr_in); + (*Result)->ai_addr = (struct sockaddr *)calloc(sizeof(sockaddr_in),1); + if ((*Result)->ai_addr == 0) + { + freeaddrinfo(*res); + return EAI_MEMORY; + } + + // Set the address + ((struct sockaddr_in *)(*Result)->ai_addr)->sin_family = AF_INET; + ((struct sockaddr_in *)(*Result)->ai_addr)->sin_port = Port; + + if (hints != 0 && (hints->ai_flags & AI_PASSIVE) != AI_PASSIVE) + ((struct sockaddr_in *)(*Result)->ai_addr)->sin_addr = *(in_addr *)(*CurAddr); + else + { + // Already zerod by calloc. + break; + } + + Result = &(*Result)->ai_next; + } + + return 0; +} + /*}}}*/ +// freeaddrinfo - Free the result of getaddrinfo /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void freeaddrinfo(struct addrinfo *ai) +{ + struct addrinfo *Tmp; + while (ai != 0) + { + free(ai->ai_addr); + Tmp = ai; + ai = ai->ai_next; + free(ai); + } +} + /*}}}*/ +#endif // HAVE_GETADDRINFO + +#ifndef HAVE_GETNAMEINFO +// getnameinfo - Convert a sockaddr to a string /*{{{*/ +// --------------------------------------------------------------------- +/* */ +int getnameinfo(const struct sockaddr *sa, socklen_t salen, + char *host, size_t hostlen, + char *serv, size_t servlen, + int flags) +{ + struct sockaddr_in *sin = (struct sockaddr_in *)sa; + + // This routine only supports internet addresses + if (sa->sa_family != AF_INET) + return EAI_ADDRFAMILY; + + if (host != 0) + { + // Try to resolve the hostname + if ((flags & NI_NUMERICHOST) != NI_NUMERICHOST) + { + struct hostent *Ent = gethostbyaddr((char *)&sin->sin_addr,sizeof(sin->sin_addr), + AF_INET); + if (Ent != 0) + strncpy(host,Ent->h_name,hostlen); + else + { + if ((flags & NI_NAMEREQD) == NI_NAMEREQD) + { + if (h_errno == TRY_AGAIN) + return EAI_AGAIN; + if (h_errno == NO_RECOVERY) + return EAI_FAIL; + return EAI_NONAME; + } + + flags |= NI_NUMERICHOST; + } + } + + // Resolve as a plain numberic + if ((flags & NI_NUMERICHOST) == NI_NUMERICHOST) + { + strncpy(host,inet_ntoa(sin->sin_addr),hostlen); + } + } + + if (serv != 0) + { + // Try to resolve the hostname + if ((flags & NI_NUMERICSERV) != NI_NUMERICSERV) + { + struct servent *Ent; + if ((flags & NI_DATAGRAM) == NI_DATAGRAM) + Ent = getservbyport(ntohs(sin->sin_port),"udp"); + else + Ent = getservbyport(ntohs(sin->sin_port),"tcp"); + + if (Ent != 0) + strncpy(serv,Ent->s_name,servlen); + else + { + if ((flags & NI_NAMEREQD) == NI_NAMEREQD) + return EAI_NONAME; + + flags |= NI_NUMERICSERV; + } + } + + // Resolve as a plain numberic + if ((flags & NI_NUMERICSERV) == NI_NUMERICSERV) + { + snprintf(serv,servlen,"%u",ntohs(sin->sin_port)); + } + } + + return 0; +} + /*}}}*/ +#endif // HAVE_GETNAMEINFO diff --git a/methods/rfc2553emu.h b/methods/rfc2553emu.h new file mode 100644 index 0000000..b15facb --- /dev/null +++ b/methods/rfc2553emu.h @@ -0,0 +1,113 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: rfc2553emu.h,v 1.4 2000/06/18 06:04:45 jgg Exp $ +/* ###################################################################### + + RFC 2553 Emulation - Provides emulation for RFC 2553 getaddrinfo, + freeaddrinfo and getnameinfo + + These functions are necessary to write portable protocol independent + networking. They transparently support IPv4, IPv6 and probably many + other protocols too. This implementation is needed when the host does + not support these standards. It implements a simple wrapper that + basically supports only IPv4. + + Perfect emulation is not provided, but it is passable.. + + Originally written by Jason Gunthorpe and placed into + the Public Domain, do with it what you will. + + ##################################################################### */ + /*}}}*/ +#ifndef RFC2553EMU_H +#define RFC2553EMU_H + +#include +#include +#include + +// Autosense getaddrinfo +#if defined(AI_PASSIVE) && defined(EAI_NONAME) +#define HAVE_GETADDRINFO +#endif + +// Autosense getnameinfo +#if defined(NI_NUMERICHOST) +#define HAVE_GETNAMEINFO +#endif + +// getaddrinfo support? +#ifndef HAVE_GETADDRINFO + // Renamed to advoid type clashing.. (for debugging) + struct addrinfo_emu + { + int ai_flags; /* AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST */ + int ai_family; /* PF_xxx */ + int ai_socktype; /* SOCK_xxx */ + int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */ + size_t ai_addrlen; /* length of ai_addr */ + char *ai_canonname; /* canonical name for nodename */ + struct sockaddr *ai_addr; /* binary address */ + struct addrinfo_emu *ai_next; /* next structure in linked list */ + }; + #define addrinfo addrinfo_emu + + int getaddrinfo(const char *nodename, const char *servname, + const struct addrinfo *hints, + struct addrinfo **res); + void freeaddrinfo(struct addrinfo *ai); + + #ifndef AI_PASSIVE + #define AI_PASSIVE (1<<1) + #endif + + #ifndef EAI_NONAME + #define EAI_NONAME -1 + #define EAI_AGAIN -2 + #define EAI_FAIL -3 + #define EAI_NODATA -4 + #define EAI_FAMILY -5 + #define EAI_SOCKTYPE -6 + #define EAI_SERVICE -7 + #define EAI_ADDRFAMILY -8 + #define EAI_SYSTEM -10 + #define EAI_MEMORY -11 + #endif + + /* If we don't have getaddrinfo then we probably don't have + sockaddr_storage either (same RFC) so we definately will not be + doing any IPv6 stuff. Do not use the members of this structure to + retain portability, cast to a sockaddr. */ + #define sockaddr_storage sockaddr_in +#endif + +// getnameinfo support (glibc2.0 has getaddrinfo only) +#ifndef HAVE_GETNAMEINFO + + int getnameinfo(const struct sockaddr *sa, socklen_t salen, + char *host, size_t hostlen, + char *serv, size_t servlen, + int flags); + + #ifndef NI_MAXHOST + #define NI_MAXHOST 1025 + #define NI_MAXSERV 32 + #endif + + #ifndef NI_NUMERICHOST + #define NI_NUMERICHOST (1<<0) + #define NI_NUMERICSERV (1<<1) +// #define NI_NOFQDN (1<<2) + #define NI_NAMEREQD (1<<3) + #define NI_DATAGRAM (1<<4) + #endif + + #define sockaddr_storage sockaddr_in +#endif + +// Glibc 2.0.7 misses this one +#ifndef AI_NUMERICHOST +#define AI_NUMERICHOST 0 +#endif + +#endif diff --git a/methods/rred.cc b/methods/rred.cc new file mode 100644 index 0000000..37932c3 --- /dev/null +++ b/methods/rred.cc @@ -0,0 +1,266 @@ +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +/* this method implements a patch functionality similar to "patch --ed" that is + * used by the "tiffany" incremental packages download stuff. it differs from + * "ed" insofar that it is way more restricted (and therefore secure). in the + * moment only the "c", "a" and "d" commands of ed are implemented (diff + * doesn't output any other). additionally the records must be reverse sorted + * by line number and may not overlap (diff *seems* to produce this kind of + * output). + * */ + +const char *Prog; + +class RredMethod : public pkgAcqMethod +{ + bool Debug; + // the size of this doesn't really matter (except for performance) + const static int BUF_SIZE = 1024; + // the ed commands + enum Mode {MODE_CHANGED, MODE_DELETED, MODE_ADDED}; + // return values + enum State {ED_OK, ED_ORDERING, ED_PARSER, ED_FAILURE}; + // this applies a single hunk, it uses a tail recursion to + // reverse the hunks in the file + int ed_rec(FILE *ed_cmds, FILE *in_file, FILE *out_file, int line, + char *buffer, unsigned int bufsize, Hashes *hash); + // apply a patch file + int ed_file(FILE *ed_cmds, FILE *in_file, FILE *out_file, Hashes *hash); + // the methods main method + virtual bool Fetch(FetchItem *Itm); + + public: + + RredMethod() : pkgAcqMethod("1.1",SingleInstance | SendConfig) {}; +}; + +int RredMethod::ed_rec(FILE *ed_cmds, FILE *in_file, FILE *out_file, int line, + char *buffer, unsigned int bufsize, Hashes *hash) { + int pos; + int startline; + int stopline; + int mode; + int written; + char *idx; + + /* get the current command and parse it*/ + if (fgets(buffer, bufsize, ed_cmds) == NULL) { + return line; + } + startline = strtol(buffer, &idx, 10); + if (startline < line) { + return ED_ORDERING; + } + if (*idx == ',') { + idx++; + stopline = strtol(idx, &idx, 10); + } + else { + stopline = startline; + } + if (*idx == 'c') { + mode = MODE_CHANGED; + if (Debug == true) { + std::clog << "changing from line " << startline + << " to " << stopline << std::endl; + } + } + else if (*idx == 'a') { + mode = MODE_ADDED; + if (Debug == true) { + std::clog << "adding after line " << startline << std::endl; + } + } + else if (*idx == 'd') { + mode = MODE_DELETED; + if (Debug == true) { + std::clog << "deleting from line " << startline + << " to " << stopline << std::endl; + } + } + else { + return ED_PARSER; + } + /* get the current position */ + pos = ftell(ed_cmds); + /* if this is add or change then go to the next full stop */ + if ((mode == MODE_CHANGED) || (mode == MODE_ADDED)) { + do { + fgets(buffer, bufsize, ed_cmds); + while ((strlen(buffer) == (bufsize - 1)) + && (buffer[bufsize - 2] != '\n')) { + fgets(buffer, bufsize, ed_cmds); + buffer[0] = ' '; + } + } while (strncmp(buffer, ".", 1) != 0); + } + /* do the recursive call */ + line = ed_rec(ed_cmds, in_file, out_file, line, buffer, bufsize, + hash); + /* pass on errors */ + if (line < 0) { + return line; + } + /* apply our hunk */ + fseek(ed_cmds, pos, SEEK_SET); + /* first wind to the current position */ + if (mode != MODE_ADDED) { + startline -= 1; + } + while (line < startline) { + fgets(buffer, bufsize, in_file); + written = fwrite(buffer, 1, strlen(buffer), out_file); + hash->Add((unsigned char*)buffer, written); + while ((strlen(buffer) == (bufsize - 1)) + && (buffer[bufsize - 2] != '\n')) { + fgets(buffer, bufsize, in_file); + written = fwrite(buffer, 1, strlen(buffer), out_file); + hash->Add((unsigned char*)buffer, written); + } + line++; + } + /* include from ed script */ + if ((mode == MODE_ADDED) || (mode == MODE_CHANGED)) { + do { + fgets(buffer, bufsize, ed_cmds); + if (strncmp(buffer, ".", 1) != 0) { + written = fwrite(buffer, 1, strlen(buffer), out_file); + hash->Add((unsigned char*)buffer, written); + while ((strlen(buffer) == (bufsize - 1)) + && (buffer[bufsize - 2] != '\n')) { + fgets(buffer, bufsize, ed_cmds); + written = fwrite(buffer, 1, strlen(buffer), out_file); + hash->Add((unsigned char*)buffer, written); + } + } + else { + break; + } + } while (1); + } + /* ignore the corresponding number of lines from input */ + if ((mode == MODE_DELETED) || (mode == MODE_CHANGED)) { + while (line < stopline) { + fgets(buffer, bufsize, in_file); + while ((strlen(buffer) == (bufsize - 1)) + && (buffer[bufsize - 2] != '\n')) { + fgets(buffer, bufsize, in_file); + } + line++; + } + } + return line; +} + +int RredMethod::ed_file(FILE *ed_cmds, FILE *in_file, FILE *out_file, + Hashes *hash) { + char buffer[BUF_SIZE]; + int result; + int written; + + /* we do a tail recursion to read the commands in the right order */ + result = ed_rec(ed_cmds, in_file, out_file, 0, buffer, BUF_SIZE, + hash); + + /* read the rest from infile */ + if (result > 0) { + while (fgets(buffer, BUF_SIZE, in_file) != NULL) { + written = fwrite(buffer, 1, strlen(buffer), out_file); + hash->Add((unsigned char*)buffer, written); + } + } + else { + return ED_FAILURE; + } + return ED_OK; +} + + +bool RredMethod::Fetch(FetchItem *Itm) +{ + Debug = _config->FindB("Debug::pkgAcquire::RRed",false); + URI Get = Itm->Uri; + string Path = Get.Host + Get.Path; // To account for relative paths + // Path contains the filename to patch + FetchResult Res; + Res.Filename = Itm->DestFile; + URIStart(Res); + // Res.Filename the destination filename + + if (Debug == true) + std::clog << "Patching " << Path << " with " << Path + << ".ed and putting result into " << Itm->DestFile << std::endl; + // Open the source and destination files (the d'tor of FileFd will do + // the cleanup/closing of the fds) + FileFd From(Path,FileFd::ReadOnly); + FileFd Patch(Path+".ed",FileFd::ReadOnly); + FileFd To(Itm->DestFile,FileFd::WriteEmpty); + To.EraseOnFailure(); + if (_error->PendingError() == true) + return false; + + Hashes Hash; + FILE* fFrom = fdopen(From.Fd(), "r"); + FILE* fPatch = fdopen(Patch.Fd(), "r"); + FILE* fTo = fdopen(To.Fd(), "w"); + // now do the actual patching + if (ed_file(fPatch, fFrom, fTo, &Hash) != ED_OK) { + _error->Errno("rred", _("Could not patch file")); + return false; + } + + // write out the result + fflush(fFrom); + fflush(fPatch); + fflush(fTo); + From.Close(); + Patch.Close(); + To.Close(); + + // Transfer the modification times + struct stat Buf; + if (stat(Path.c_str(),&Buf) != 0) + return _error->Errno("stat",_("Failed to stat")); + + struct utimbuf TimeBuf; + TimeBuf.actime = Buf.st_atime; + TimeBuf.modtime = Buf.st_mtime; + if (utime(Itm->DestFile.c_str(),&TimeBuf) != 0) + return _error->Errno("utime",_("Failed to set modification time")); + + if (stat(Itm->DestFile.c_str(),&Buf) != 0) + return _error->Errno("stat",_("Failed to stat")); + + // return done + Res.LastModified = Buf.st_mtime; + Res.Size = Buf.st_size; + Res.TakeHashes(Hash); + URIDone(Res); + + return true; +} + +int main_(int argc, const char *argv[]); +int main(int argc, const char *argv[]) { +_exit(main_(argc, argv)); +} +int main_(int argc,const char *argv[]) +{ + RredMethod Mth; + + Prog = strrchr(argv[0],'/'); + Prog++; + + return Mth.Run(); +} diff --git a/methods/rsh.cc b/methods/rsh.cc new file mode 100644 index 0000000..73674f5 --- /dev/null +++ b/methods/rsh.cc @@ -0,0 +1,524 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: rsh.cc,v 1.6.2.1 2004/01/16 18:58:50 mdz Exp $ +/* ###################################################################### + + RSH method - Transfer files via rsh compatible program + + Written by Ben Collins , Copyright (c) 2000 + Licensed under the GNU General Public License v2 [no exception clauses] + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#include "rsh.h" +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + /*}}}*/ + +const char *Prog; +unsigned long TimeOut = 120; +Configuration::Item const *RshOptions = 0; +time_t RSHMethod::FailTime = 0; +string RSHMethod::FailFile; +int RSHMethod::FailFd = -1; + +// RSHConn::RSHConn - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +RSHConn::RSHConn(URI Srv) : Len(0), WriteFd(-1), ReadFd(-1), + ServerName(Srv), Process(-1) {} + /*}}}*/ +// RSHConn::RSHConn - Destructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +RSHConn::~RSHConn() +{ + Close(); +} + /*}}}*/ +// RSHConn::Close - Forcibly terminate the connection /*{{{*/ +// --------------------------------------------------------------------- +/* Often this is called when things have gone wrong to indicate that the + connection is no longer usable. */ +void RSHConn::Close() +{ + if (Process == -1) + return; + + close(WriteFd); + close(ReadFd); + kill(Process,SIGINT); + ExecWait(Process,"",true); + WriteFd = -1; + ReadFd = -1; + Process = -1; +} + /*}}}*/ +// RSHConn::Open - Connect to a host /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool RSHConn::Open() +{ + // Use the already open connection if possible. + if (Process != -1) + return true; + + if (Connect(ServerName.Host,ServerName.User) == false) + return false; + + return true; +} + /*}}}*/ +// RSHConn::Connect - Fire up rsh and connect /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool RSHConn::Connect(string Host, string User) +{ + // Create the pipes + int Pipes[4] = {-1,-1,-1,-1}; + if (pipe(Pipes) != 0 || pipe(Pipes+2) != 0) + { + _error->Errno("pipe",_("Failed to create IPC pipe to subprocess")); + for (int I = 0; I != 4; I++) + close(Pipes[I]); + return false; + } + for (int I = 0; I != 4; I++) + SetCloseExec(Pipes[I],true); + + Process = ExecFork(); + + // The child + if (Process == 0) + { + const char *Args[400]; + unsigned int i = 0; + + dup2(Pipes[1],STDOUT_FILENO); + dup2(Pipes[2],STDIN_FILENO); + + // Probably should do + // dup2(open("/dev/null",O_RDONLY),STDERR_FILENO); + + // Insert user-supplied command line options + Configuration::Item const *Opts = RshOptions; + if (Opts != 0) + { + Opts = Opts->Child; + for (; Opts != 0; Opts = Opts->Next) + { + if (Opts->Value.empty() == true) + continue; + Args[i++] = Opts->Value.c_str(); + } + } + + Args[i++] = Prog; + if (User.empty() == false) { + Args[i++] = "-l"; + Args[i++] = User.c_str(); + } + if (Host.empty() == false) { + Args[i++] = Host.c_str(); + } + Args[i++] = "/bin/sh"; + Args[i] = 0; + execvp(Args[0],(char **)Args); + exit(100); + } + + ReadFd = Pipes[0]; + WriteFd = Pipes[3]; + SetNonBlock(Pipes[0],true); + SetNonBlock(Pipes[3],true); + close(Pipes[1]); + close(Pipes[2]); + + return true; +} + /*}}}*/ +// RSHConn::ReadLine - Very simple buffered read with timeout /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool RSHConn::ReadLine(string &Text) +{ + if (Process == -1 || ReadFd == -1) + return false; + + // Suck in a line + while (Len < sizeof(Buffer)) + { + // Scan the buffer for a new line + for (unsigned int I = 0; I != Len; I++) + { + // Escape some special chars + if (Buffer[I] == 0) + Buffer[I] = '?'; + + // End of line? + if (Buffer[I] != '\n') + continue; + + I++; + Text = string(Buffer,I); + memmove(Buffer,Buffer+I,Len - I); + Len -= I; + return true; + } + + // Wait for some data.. + if (WaitFd(ReadFd,false,TimeOut) == false) + { + Close(); + return _error->Error(_("Connection timeout")); + } + + // Suck it back + int Res = read(ReadFd,Buffer + Len,sizeof(Buffer) - Len); + if (Res <= 0) + { + _error->Errno("read",_("Read error")); + Close(); + return false; + } + Len += Res; + } + + return _error->Error(_("A response overflowed the buffer.")); +} + /*}}}*/ +// RSHConn::WriteMsg - Send a message with optional remote sync. /*{{{*/ +// --------------------------------------------------------------------- +/* The remote sync flag appends a || echo which will insert blank line + once the command completes. */ +bool RSHConn::WriteMsg(string &Text,bool Sync,const char *Fmt,...) +{ + va_list args; + va_start(args,Fmt); + + // sprintf the description + char S[512]; + vsnprintf(S,sizeof(S) - 4,Fmt,args); + if (Sync == true) + strcat(S," 2> /dev/null || echo\n"); + else + strcat(S," 2> /dev/null\n"); + + // Send it off + unsigned long Len = strlen(S); + unsigned long Start = 0; + while (Len != 0) + { + if (WaitFd(WriteFd,true,TimeOut) == false) + { + + Close(); + return _error->Error(_("Connection timeout")); + } + + int Res = write(WriteFd,S + Start,Len); + if (Res <= 0) + { + _error->Errno("write",_("Write error")); + Close(); + return false; + } + + Len -= Res; + Start += Res; + } + + if (Sync == true) + return ReadLine(Text); + return true; +} + /*}}}*/ +// RSHConn::Size - Return the size of the file /*{{{*/ +// --------------------------------------------------------------------- +/* Right now for successfull transfer the file size must be known in + advance. */ +bool RSHConn::Size(const char *Path,unsigned long &Size) +{ + // Query the size + string Msg; + Size = 0; + + if (WriteMsg(Msg,true,"find %s -follow -printf '%%s\\n'",Path) == false) + return false; + + // FIXME: Sense if the bad reply is due to a File Not Found. + + char *End; + Size = strtoul(Msg.c_str(),&End,10); + if (End == Msg.c_str()) + return _error->Error(_("File not found")); + return true; +} + /*}}}*/ +// RSHConn::ModTime - Get the modification time in UTC /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool RSHConn::ModTime(const char *Path, time_t &Time) +{ + Time = time(&Time); + // Query the mod time + string Msg; + + if (WriteMsg(Msg,true,"TZ=UTC find %s -follow -printf '%%TY%%Tm%%Td%%TH%%TM%%TS\\n'",Path) == false) + return false; + + // Parse it + StrToTime(Msg,Time); + return true; +} + /*}}}*/ +// RSHConn::Get - Get a file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool RSHConn::Get(const char *Path,FileFd &To,unsigned long Resume, + Hashes &Hash,bool &Missing, unsigned long Size) +{ + Missing = false; + + // Round to a 2048 byte block + Resume = Resume - (Resume % 2048); + + if (To.Truncate(Resume) == false) + return false; + if (To.Seek(0) == false) + return false; + + if (Resume != 0) { + if (Hash.AddFD(To.Fd(),Resume) == false) { + _error->Errno("read",_("Problem hashing file")); + return false; + } + } + + // FIXME: Detect file-not openable type errors. + string Jnk; + if (WriteMsg(Jnk,false,"dd if=%s bs=2048 skip=%u", Path, Resume / 2048) == false) + return false; + + // Copy loop + unsigned int MyLen = Resume; + unsigned char Buffer[4096]; + while (MyLen < Size) + { + // Wait for some data.. + if (WaitFd(ReadFd,false,TimeOut) == false) + { + Close(); + return _error->Error(_("Data socket timed out")); + } + + // Read the data.. + int Res = read(ReadFd,Buffer,sizeof(Buffer)); + if (Res == 0) + { + Close(); + return _error->Error(_("Connection closed prematurely")); + } + + if (Res < 0) + { + if (errno == EAGAIN) + continue; + break; + } + MyLen += Res; + + Hash.Add(Buffer,Res); + if (To.Write(Buffer,Res) == false) + { + Close(); + return false; + } + } + + return true; +} + /*}}}*/ + +// RSHMethod::RSHMethod - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +RSHMethod::RSHMethod() : pkgAcqMethod("1.0",SendConfig) +{ + signal(SIGTERM,SigTerm); + signal(SIGINT,SigTerm); + Server = 0; + FailFd = -1; +}; + /*}}}*/ +// RSHMethod::Configuration - Handle a configuration message /*{{{*/ +// --------------------------------------------------------------------- +bool RSHMethod::Configuration(string Message) +{ + char ProgStr[100]; + + if (pkgAcqMethod::Configuration(Message) == false) + return false; + + snprintf(ProgStr, sizeof ProgStr, "Acquire::%s::Timeout", Prog); + TimeOut = _config->FindI(ProgStr,TimeOut); + snprintf(ProgStr, sizeof ProgStr, "Acquire::%s::Options", Prog); + RshOptions = _config->Tree(ProgStr); + + return true; +} + /*}}}*/ +// RSHMethod::SigTerm - Clean up and timestamp the files on exit /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void RSHMethod::SigTerm(int sig) +{ + if (FailFd == -1) + _exit(100); + close(FailFd); + + // Timestamp + struct utimbuf UBuf; + UBuf.actime = FailTime; + UBuf.modtime = FailTime; + utime(FailFile.c_str(),&UBuf); + + _exit(100); +} + /*}}}*/ +// RSHMethod::Fetch - Fetch a URI /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool RSHMethod::Fetch(FetchItem *Itm) +{ + URI Get = Itm->Uri; + const char *File = Get.Path.c_str(); + FetchResult Res; + Res.Filename = Itm->DestFile; + Res.IMSHit = false; + + // Connect to the server + if (Server == 0 || Server->Comp(Get) == false) { + delete Server; + Server = new RSHConn(Get); + } + + // Could not connect is a transient error.. + if (Server->Open() == false) { + Server->Close(); + Fail(true); + return true; + } + + // We say this mainly because the pause here is for the + // ssh connection that is still going + Status(_("Connecting to %s"), Get.Host.c_str()); + + // Get the files information + unsigned long Size; + if (Server->Size(File,Size) == false || + Server->ModTime(File,FailTime) == false) + { + //Fail(true); + //_error->Error(_("File not found")); // Will be handled by Size + return false; + } + Res.Size = Size; + + // See if it is an IMS hit + if (Itm->LastModified == FailTime) { + Res.Size = 0; + Res.IMSHit = true; + URIDone(Res); + return true; + } + + // See if the file exists + struct stat Buf; + if (stat(Itm->DestFile.c_str(),&Buf) == 0) { + if (Size == (unsigned)Buf.st_size && FailTime == Buf.st_mtime) { + Res.Size = Buf.st_size; + Res.LastModified = Buf.st_mtime; + Res.ResumePoint = Buf.st_size; + URIDone(Res); + return true; + } + + // Resume? + if (FailTime == Buf.st_mtime && Size > (unsigned)Buf.st_size) + Res.ResumePoint = Buf.st_size; + } + + // Open the file + Hashes Hash; + { + FileFd Fd(Itm->DestFile,FileFd::WriteAny); + if (_error->PendingError() == true) + return false; + + URIStart(Res); + + FailFile = Itm->DestFile; + FailFile.c_str(); // Make sure we dont do a malloc in the signal handler + FailFd = Fd.Fd(); + + bool Missing; + if (Server->Get(File,Fd,Res.ResumePoint,Hash,Missing,Res.Size) == false) + { + Fd.Close(); + + // Timestamp + struct utimbuf UBuf; + UBuf.actime = FailTime; + UBuf.modtime = FailTime; + utime(FailFile.c_str(),&UBuf); + + // If the file is missing we hard fail otherwise transient fail + if (Missing == true) + return false; + Fail(true); + return true; + } + + Res.Size = Fd.Size(); + } + + Res.LastModified = FailTime; + Res.TakeHashes(Hash); + + // Timestamp + struct utimbuf UBuf; + UBuf.actime = FailTime; + UBuf.modtime = FailTime; + utime(Queue->DestFile.c_str(),&UBuf); + FailFd = -1; + + URIDone(Res); + + return true; +} + /*}}}*/ + +int main_(int argc, const char *argv[]); +int main(int argc, const char *argv[]) { +_exit(main_(argc, argv)); +} +int main_(int argc,const char *argv[]) +{ + setlocale(LC_ALL, ""); + + RSHMethod Mth; + Prog = strrchr(argv[0],'/'); + Prog++; + return Mth.Run(); +} diff --git a/methods/rsh.h b/methods/rsh.h new file mode 100644 index 0000000..b06d5a9 --- /dev/null +++ b/methods/rsh.h @@ -0,0 +1,70 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/// $Id: rsh.h,v 1.4 2002/11/09 23:33:26 doogie Exp $ +// $Id: rsh.h,v 1.4 2002/11/09 23:33:26 doogie Exp $ +/* ###################################################################### + + RSH method - Transfer files via rsh compatible program + + ##################################################################### */ + /*}}}*/ +#ifndef APT_RSH_H +#define APT_RSH_H + +#include +#include +#include +#include +#include + +class RSHConn +{ + char Buffer[1024*10]; + unsigned long Len; + int WriteFd; + int ReadFd; + URI ServerName; + + // Private helper functions + bool ReadLine(string &Text); + + public: + + pid_t Process; + + // Raw connection IO + bool WriteMsg(string &Text,bool Sync,const char *Fmt,...); + bool Connect(string Host, string User); + bool Comp(URI Other) {return Other.Host == ServerName.Host && Other.Port == ServerName.Port;}; + + // Connection control + bool Open(); + void Close(); + + // Query + bool Size(const char *Path,unsigned long &Size); + bool ModTime(const char *Path, time_t &Time); + bool Get(const char *Path,FileFd &To,unsigned long Resume, + Hashes &Hash,bool &Missing, unsigned long Size); + + RSHConn(URI Srv); + ~RSHConn(); +}; + +class RSHMethod : public pkgAcqMethod +{ + virtual bool Fetch(FetchItem *Itm); + virtual bool Configuration(string Message); + + RSHConn *Server; + + static string FailFile; + static int FailFd; + static time_t FailTime; + static void SigTerm(int); + + public: + + RSHMethod(); +}; + +#endif diff --git a/po/ChangeLog b/po/ChangeLog new file mode 100644 index 0000000..1171d28 --- /dev/null +++ b/po/ChangeLog @@ -0,0 +1,427 @@ +2006-11-04 Artem Bondarenko + + * uk.po: New Ukrainian translation: 483t28f3u + +2006-11-02 Emmanuel Galatoulas + + * el.po: Update to 503t9f2u + +2006-10-24 Michael Piefel + + * de.po: Updates and corrections. + +2006-10-22 Jordi Mallach + + * ca.po: Updated to 514t + +2006-10-22 Bart Cornelis + + * be.po: Updated to 514t + +2006-10-21 Samuele Giovanni Tonon + + * it.po: Updated to 514t + +2006-10-21 SZERVÁC Attila + + * hu.po: Updated to 514t + +2006-10-21 Asho Yeh + + * zh_TW.po: Updated to 514t + +2006-10-21 Ossama M. Khayat + + * ar.po: Updated to 293t221u. + +2006-10-16 Yuri Kozlov + + * ru.po: Updated to 514t. Closes: #392466 + +2006-10-16 Hans Fredrik Nordhaug + + * nb.po: Updated to 514t. Closes: #392466 + +2006-10-15 Rui Az. + + * pt.po: Updated to 514t. Closes: #393199 + +2006-10-14 Christian Perrier + + * fr.po: One spelling error corrected: s/accèder/accéder + +2006-10-13 Khoem Sokhem + + * km.po: Updated to 514t. + +2006-10-13 Sunjae Park + + * ko.po: Updated to 514t. + +2006-10-12 Yavor Doganov + + * bg.po: Updated to 514t. + +2006-10-12 Michael Piefel + + * de.po: Updated to 514t. + +2006-10-12 Neil Williams + + * en_GB.po: Updated to 514t. + +2006-10-08 Javier Fernández-Sanguino Peña + + * es.po: Updated to 514t. Closes: #391661 + +2006-10-06 Claus Hindsgaul + + * da.po: Updated to 514t. Closes: #391424 + +2006-10-04 Miroslav Kure + + * cs.po: Updated. Closes: #391064 + +2006-09-29 Tapio Lehtonen + + * fi.po: Updated to 514t. Closes: #390149 + +2006-09-27 Piarres Beobide + + * eu.po: Updated to 514t. Closes: #389725 + +2006-09-21 Clytie Siddall + + * vi.po: Updated to 514t. Closes: #388555 + +2006-09-20 Sorin Batariuc + + * ro.po: Updated to 514t. Closes: #388402 + +2006-09-18 Kinley Tshering + + * dz.po: Updated to 514t. Closes: #388184 + +2006-09-17 Davide Viti + + * it.po: Fixed typos. Closes: #387812 + +2006-09-17 Erdal Ronahi + + * ku.po: New kurdish translation. Closes: #387766 + 71t40f403u + +2006-09-10 Peter Mann + + * sk.po: Updated to 514t. Closes: #386851 + +2006-09-08 Christian Perrier + + * LINGUAS: re-enabled Hebrew translation on translator's request. + +2006-09-08 Kenshi Muto + + * ja.po: Updated to 514t. Closes: #386537 + +2006-09-06 Jacobo Tarrio + + * gl.po: Updated to 514t. Closes: #386397 + +2006-09-02 Christian Perrier + + * fr.po: Updated to 516t. + +2006-09-02 Christian Perrier + + * fr.po: Updated to 516t. + +2006-08-20 Christian Perrier + + * Update all PO and the POT. Gives 512t3f1uf for formerly + complete translations + +2006-08-13 Tapio Lehtonen + + * fi.po: Updated to 512t. Closes: #382702 + +2006-07-19 Sunjae Park + + * ko.po: Updated to 512t. Closes: #378901 + +2006-07-02 SZERVAC Attila + + * hu.po: Updated to 512t. Closes: #376330 + +2006-07-01 Leang Chumsoben + + * km.po: New Khmer translation: 506t6f. Closes: #375068 + +2006-07-01 Shiva Pokharel + + * ne.po: New Nepali translation: 512t. Closes: #373729 + +2006-07-01 Clytie Siddall + + * vi.po: Updated to 512t. Closes: #368038 + +2006-07-01 Christian Perrier + + * zh_TW.po: Remove an extra %s in one string. Closes: #370551 + +2006-07-01 Kinley Tshering + + * dz.po: New Dzongkha translation: 512t + +2006-06-25 Sorin Batariuc + + * ro.po: Updated to 512t + +2006-06-21 Piarres Beobide + + * eu.po: Updated + +2006-06-07 Piarres Beobide + + * eu.po: Updated + +2006-05-29 Peter Mann + + * sk.po: Completed to 512t + +2006-05-28 Piarres Beobide + + * eu.po: Completed to 512t + +2006-05-17 Christian Perrier + + * fr.po: Completed to 512t + +2006-05-17 Daniel Nylander + + * sv.po: Completed to 512t + +2006-05-16 Christian Perrier + + * Update all PO and the POT. Gives 506t6f for formerly + complete translations + +2006-04-01 Yavor Doganov + + * bg.po: Added, complete to 512t. Closes: #360262 + +2006-03-16 eric pareja + + * tl.po: Completed to 512t. Closes: #357215 + +2006-03-13 Sorin Batariuc + + * ro.po: Completed to 512t. Closes: #355897 + +2006-03-12 Miguel Figueiredo + + * pt.po: Completed to 512t. Closes: #355798 + +2006-02-14 Carlos Z.F. Liu + + * zh_CN.po: Completed to 512t. Closes: #353936 + +2006-02-14 Samuele Giovanni Tonon + + * it.po: Completed to 512t. Closes: #352803 + +2006-02-13 Andre Luis Lopes + + * ca.po: Completed to 512t. Closes: #352419 + +2006-02-06 Jordi Mallach + + * ca.po: Completed to 512t. Closes: #351592 + +2006-01-30 Piarres Beobide + + * eu.po: Completed to 512t. Closes: #350483 + +2006-01-24 Kenshi Muto + + * ja.po: Completed to 512t. Closes: #349806 + +2006-01-23 Bartosz Fenski aka fEnIo + + * pl.po: Completed to 512t. Closes: #349514 + +2006-01-23 Peter Mann + + * sk.po: Completed to 512t. Closes: #349474 + +2006-01-23 Jacobo Tarrio + + * gl.po: Completed to 512 strings + Closes: #349407 + +2006-01-22 Clytie Siddall + + * vi.po: Completed to 512 strings + +2006-01-21 Daniel Nylander + + * sv.po: Completed to 512 strings + Closes: #349210 + +2006-01-21 Yuri Kozlov + + * ru.po: Completed to 512 strings + Closes: #349154 + +2006-01-21 Claus Hindsgaul + + * da.po: Completed to 512 strings + Closes: #349084 + +2006-01-20 Christian Perrier + + * fr.po: Completed to 512 strings + * LINGUAS: Add Welsh + +2006-01-20 Christian Perrier + + * *.po: Updated from sources (512 strings) + +2006-01-20 Clytie Siddall + + * vi.po: Completed to 511 strings + Closes: #348968 + +2006-01-18 Konstantinos Margaritis + + * el.po: Completed to 511 strings + Closes: #344642 + +2005-11-07 Claus Hindsgaul + + * da.po: Completed to 511 strings + Closes: #348574 + +2005-11-16 Andrew Deason + + * en_GB.po: Minor errors correction + +2005-11-12 Ruben Porras + + * es.po: Updated to 510t1f + Closes: #348158 + +2005-11-12 Jacobo Tarrio + + * gl.po: Completed to 511 strings + Closes: #347729 + +2006-01-10 Samuele Giovanni Tonon + + * it.po: Yet another update + Closes: #347435 + +2006-01-09 Jonas Koelker + + * en_GB.po, de.po: fix spaces errors in "Ign " translations + Closes: #347258 + +2006-01-09 Thomas Huriaux + + * makefile: make update-po a pre-requisite of clean target so + that POT and PO files are always up-to-date + +2006-01-08 Daniel Nylander + + * sv.po: Completed to 511t. Closes: #346450 + +2006-01-06 Peter Mann + + * sk.po: Completed to 511t. Closes: #346369 + +2006-01-06 Christian Perrier + + * *.po: Updated from sources (511 strings) + * fr.po: Completed to 511t + +2006-01-01 Samuele Giovanni Tonon + + * it.po: Completed to 510t + +2006-01-01 Neil Williams + + * en_GB.po: Completed to 510t + +2005-12-30 Miroslav Kure + + * cs.po: Completed to 510t + +2005-12-25 Ming Hua + + * zh_CN.po: Completed to 510t + +2005-12-25 Konstantinos Margaritis + + * el.po: Updated to 510t + +2005-12-19 Clytie Siddall + + * vi.po: Updated to 383t93f34u + +2005-12-19 eric pareja + + * tl.po: Completed to 510 strings + Closes: #344306 + +2005-12-19 Daniel Nylander + + * sv.po: Completed to 510 strings + Closes: #344056 + +2005-11-29 Christian Perrier + + * LINGUAS: disabled Hebrew translation. Closes: #313283 + +2005-12-05 Piarres Beobide + + * eu.po: Completed to 510 strings + Closes: #342091 + +2005-11-29 Christian Perrier + + * fr.po: Completed to 510 strings + * *.po : Synced with the POT files + +2005-11-14 Kov Tchai + + * zh_CN.po: Completed to 510 strings + Definitely Closes: #338267 + +2005-11-13 Kov Tchai + + * zh_CN.po: Completed to 507 strings + Closes: #338267 + +2005-11-09 Jacobo Tarrio + + * gl.po: Completed to 510 strings + Closes: #338356 + +2005-11-08 Piarres Beobide + + * eu.po: Completed to 510 strings + Closes: #338101 + +2005-11-07 Claus Hindsgaul + + * da.po: Completed to 510 strings + Closes: #337949 + +2005-11-04 Eric Pareja + + * tl.po: Completed to 510 strings + Closes: #337306 + +2005-11-04 Christian Perrier + + * Changelog: added to better track down fixed issues + diff --git a/po/LINGUAS b/po/LINGUAS new file mode 100644 index 0000000..eaf179b --- /dev/null +++ b/po/LINGUAS @@ -0,0 +1 @@ +bg bs ca cs cy da de el en_GB es eu fi fr gl he hu it ja ko nb nl nn pl pt pt_BR ro ru sk sl sv tl vi zh_CN zh_TW diff --git a/po/apt-all.pot b/po/apt-all.pot new file mode 100644 index 0000000..7f66ee8 --- /dev/null +++ b/po/apt-all.pot @@ -0,0 +1,2549 @@ +# SOME DESCRIPTIVE TITLE. +# This file is put in the public domain. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "" + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr "" + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr "" + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr "" + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr "" + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr "" + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "" + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "" + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "" + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "" + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "" + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "" + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "" + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "" + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "" + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr "" + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr "" + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr "" + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr "" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr "" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "" + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "" + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "" + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "" + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "" + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr "" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr "" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr "" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr "" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr "" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr "" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "" + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr "" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "" + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "" + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "" + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "" + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "" + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr "" + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr "" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "" + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "" + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "" + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "" + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "" + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "" + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "" + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "" + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "" + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "" + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "" + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr "" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "" + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "" + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "" + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "" + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "" + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "" + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "" + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr "" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "" + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "" + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "" + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "" + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "" + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "" + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "" + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "" + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "" + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "" + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "" + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "" + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "" + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "" + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "" + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "" + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "" + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "" + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "" + +#: apt-pkg/acquire-item.cc:1070 +msgid "There is no public key available for the following key IDs:\n" +msgstr "" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "" + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "" + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "" + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "" + +#: methods/rred.cc:219 +msgid "Could not patch file" +msgstr "" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "" diff --git a/po/ar.po b/po/ar.po new file mode 100644 index 0000000..8a0b747 --- /dev/null +++ b/po/ar.po @@ -0,0 +1,2566 @@ +# translation of apt_po.po to Arabic +# This file is put in the public domain. +# +# Ossama M. Khayat , 2005, 2006. +msgid "" +msgstr "" +"Project-Id-Version: apt_po\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-10-11 20:34+0200\n" +"PO-Revision-Date: 2006-10-20 21:28+0300\n" +"Last-Translator: Ossama M. Khayat \n" +"Language-Team: Arabic \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Arabic\n" +"X-Poedit-Country: Lebanon\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Generator: KBabel 1.11.4\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "الحزمة %s النسخة %s لها معتمد غير مستوفى:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "تعذر العثور على الحزمة %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "أسماء الحزم الكلية :" + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " الحزم العادية:" + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr "الحزمة الوهمية تماماً:" + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " الحزمة الوهمية المفردة:" + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " الحزم الوهمية المختلطة:" + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " مفقودة:" + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "مجموع النسخ الفريدة:" + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "مجموع المعتمدات:" + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "مجموع علاقات النسخ/الملفات:" + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "مجموع علاقات النسخ/الملفات:" + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "" + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "" + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "" + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "مجموع المساحة المحسوب حسابها:" + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "" + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "يجب أن تعطي صيغة واحدة بالضبط" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "لم يُعثر على أية حزم" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "ملفات الحزم:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "الحزم المُدبّسة:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(غير موجود)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " مُثبّت:" + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(لاشيء)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " مرشّح: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr "" + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " جدول النسخ:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s لـ%s %s مُجمّع على %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "الرجاء كتابة اسم لهذا القرص، مثال 'Debian 2.1r1 Disk 1'" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "الرجاء إدخال قرص في السواقة وضغط الزر enter" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "كرر هذه العملية لباقي الأقراص المدمجة في المجموعة." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s ليس حزمة DEB صالحة." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "تعذرت الكتابة إلى %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "تعذر الحصول على نسخة debconf. هل هي مثبتة؟" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "قائمة توسيعات الحزمة طويلة جداً" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "خطأ في معالجة الدليل %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "قائمة توسيعات المصدر طويلة جداً" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "خطأ في كتابة الترويسة إلى ملف المحتويات" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "خطأ في معالجة المحتويات %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "لم تُطابق أية تحديدات" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "بعض الملفات مفقودة في مجموعة ملف الحزمة `%s'" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "قاعدة البيانات كانت فاسدة، فتم تغيير اسمها إلى %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "قاعدة البيانات قديمة، محاولة ترقية %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "تعذر فتح ملف قاعدة البيانات %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: تعذرت قراءة الدليل %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "" + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "فشل فتح %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " DeLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** فشل ربط %s بـ%s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr "" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr "" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr "" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr "" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr "" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "خطأ داخلي، تعذر العثور على العضو %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - فشل تعيين الذاكرة" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "تعذر فتح %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "خطأ داخلي، تعذر إنشاء %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "" + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "فشل تغيير اسم %s إلى %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "Y" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "إلا أن %s مثبت" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "إلا أنه سيتم تثبيت %s" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "إلا أنه غير قابل للتثبيت" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "إلا أنها حزمة وهمية" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "إلا أنها غير مثبتة" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "إلا أنه لن يتم تثبيتها" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " أو" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "سيتم تثبيت الحزم الجديدة التالية:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "سيتم إزالة الحزم التالية:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "سيتم الإبقاء على الحزم التالية:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "ستتم ترقية الحزم التالية:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "سيتم تثبيط الحزم التالية:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "سيتم تغيير الحزم المبقاة التالية:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (بسبب %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"تحذير: ستتم إزالة الحزم الأساسية التالية.\n" +"لا يجب أن تقوم بهذا إلى إن كنت تعرف تماماً ما تقوم به!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu سيتم ترقيتها، %lu مثبتة حديثاً، " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu أعيد تثبيتها، " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu مثبطة، " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu لإزالتها و %lu لم يتم ترقيتها.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu غير مثبتة بالكامل أو مزالة.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "تصحيح المعتمدات..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " فشل." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "لم يمكن تصحيح المعتمدات" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "لم يمكن تقليص مجموعة الترقية" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " تم" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "قد ترغب بتنفيذ الأمر `apt-get -f install' لتصحيح هذه." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "مُعتمدات غير مستوفاة. حاول استخدام -f." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "تحذير: تعذرت المصادقة على الحزم التالية!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "تم غض النظر عن تحذير المصادقة.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "تثبيت هذه الحزم دون التحقق منها [y/N]؟ " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "تعذرت المصادقة على بعض الحزم" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "هناك مشاكل وتم استخدام -y دون --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "خطأ داخلي، تم طلب InstallPackages مع وجود حزم معطوبة!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "حزم بحاجة للإزالة لكن الإزالة مُعطّلة." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "خطأ داخلي، لم تنته عملية الترتيب" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "تعذر قَفْل دليل التنزيل" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "تعذرت قراءة قائمة المصادر." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "يا للغرابة.. لم تتطابق الأحجام، الرجاء مراسلة apt@packages.debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "بحاجة إلى جلب %sب/%sب من الأرشيف.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "بحاجة إلى جلب %sب من الأرشيف.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "بعد الاستخراج %sب من المساحة الإضافيّة سيتمّ استخدامها.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "بعد الاستخراج %sب من المساحة ستفرّغ.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "تعذر حساب المساحة الحرة في %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "ليس هناك مساحة كافية في %s." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "" + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "نعم، افعل ما أقوله!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"أنت على وشك أن تقوم بشيء ضارّ جداً\n" +"كي تستمر اكتب العبارة '%s'\n" +" ؟] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "إجهاض." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "هل تريد الاستمرار [Y/n]؟" + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "فشل إحضار %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "فشل تنزيل بعض الملفات" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "اكتمل التنزيل وفي وضع التنزيل فقط" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"تعذر إحضار بعض الأرشيف، ربما يمكنك محاولة تنفيذ apt-get update أو إضافة --" +"fix-missing؟" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing وتبديل الأوساط غير مدعومة حالياً" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "تعذر تصحيح الحزم المفقودة." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "إجهاض التثبيت." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "لاحظ، تحديد %s بدلاً من %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "تخطّي %s، حيث أنها مثبتة ولم يتمّ تعيين الترقية.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "الحزمة %s غير مُثبّتة، لذلك لن تُزال\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "الحزمة %s وهميّة وتوفّرها:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [مُثبّتة]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "يجب اختيار واحدة بالتحديد لتثبيتها." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "على أيّ فإن الحزم التالية تحلّ مكانها:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "الحزمة %s ليس لها مرشح تثبيت" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "إعادة تثبيت %s غير ممكنة، حيث أنّه لا يمكن تنزيلها.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s هي النسخة الأحدث.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "تعذر العثور على الإصدارة '%s' للحزمة '%s'" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "تعذر العثور على النسخة '%s' للحزمة '%s'" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "النسخة المحددة %s (%s) للإصدارة %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "لا يقبل الأمر update أية مُعطيات" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "تعذر قفل دليل القائمة" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "خطأ داخلي، عطب AllUpgrade بعض الأشياء" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "تعذر العثور على الحزمة %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "لاحظ، تحديد %s بسبب صيغة regex '%s'\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "قد ترغب بتشغيل `apt-get -f install' لتصحيح هذه:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"مُعتمدات غير مستوفاة. جرب 'apt-get -f install' بدون أسماء حزم (أو حدّد حلاً)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "قد تساعد المعلومات التالية في حل المشكلة:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "حزم معطوبة" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "سيتم تثبيت الحزم الإضافيّة التالية:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "الحزم المقترحة:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "الحزم المستحسنة:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "حساب الترقية..." + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "فشل" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "تمّ" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "يجب تحديد حزمة واحدة على الأقل لجلب مصدرها" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "تعذر العثور على مصدر الحزمة %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "تخطي الملف '%s' المنزل مسبقاً\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "ليس هناك مساحة كافية في %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "يجب جلب %sب/%sب من الأرشيفات المصدرية.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "يجب جلب %sب من الأرشيفات المصدريّة.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "إحضار المصدر %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "فشل إحضار بعض الأرشيفات." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "أمر فك الحزمة '%s' فشل.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "أمر البناء '%s' فشل.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "" + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "الوحدات المدعومة:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "" + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "جلب:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "تجاهل" + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "خطأ" + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "جلب %sب في %s (%sب/Ø«)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [يعمل]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"تغيير الوسط: الرجاء إدخال القرص المُسمّى\n" +" '%s'\n" +"في السوّاقة '%s' وضغط مفتاح الإدخال\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "سجل حزمة مجهول!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "إعداد افتراضيّ سيّء!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "اضغط مفتاح الإدخال للاستمرار." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "حدثت بعض الأخطاء أثناء فك الحزمة. سأقوم بتهيئة " + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "الحزم التي تم تثبيتها. قد يتسبب هذا بظهر أخطاء متكررة" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "أو أخطاء سبّبتها المُعتمدات المفقودة. لا بأس بهذا، فقط الأخطاء" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "أعلى هذه الرسالة مهمّة. الرجاء تصحيحها وتشغيل التثبيت مجدداً" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "دمج المعلومات المتوفرة" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "فشل تنفيذ gzip" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "أرشيف فاسد" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "فشل تحقّق Checksum لملف Tar، الأرشيف فاسد" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "توقيع الأرشيف غير صالح" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "الأرشيف قصير جداً" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "فشلت قراءة ترويسات الأرشيف" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "خطأ داخلي في AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "ملف تهيئة مُزدوج %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "فشلت كتابة الملف %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "فشل إغلاق الملف %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "المسار %s طويل جداً" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "فكّ تحزيم %s أكثر من مرّة" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "المسار طويل جداً" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "تعذرت قراءة %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "تعذرت إزالة %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "تعذر إنشاء %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "قراءة قوائم الحزم" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "فشل تغيير دليل الإدارة إلى %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "خطأ داخلي أثناء الحصول على اسم الحزمة" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "قراءة سرد الملفات" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "فشلت قراءة ملف القائمة %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "خطأ داخلي أثناء الحصول على node" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "تعذر التغيير إلى %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "خطأ داخلي، تعذر العثور على العضو" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "فشل العثور على ملف تحكّم صالح" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "تعذرت قراءة قاعدة بيانات القرص المدمج %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"الرجاء استخدام apt-cdrom لتعريف APT بهذا القرص المدمج. لا يمكن استخدام apt-" +"get update لإضافة أقراص مدمجة جديدة." + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "القرص المدمج الخطأ" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "تعذر فكّ القرص المدمج من %s، إذ قد يكون لا يزال قيد الاستخدام." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "لم يُعثر على القرص." + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "لم يُعثر على الملف" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 +msgid "Failed to stat" +msgstr "فشيل تنفيذ stat" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +msgid "Failed to set modification time" +msgstr "فشل تعيين وقت التعديل" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "تسجيل الدخول" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "رفض الخادم اتصالنا بالرد: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "فشل USER، ردّ الخادم: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "فشل PASS، ردّ الخادم: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"تم تحديد خادم بروكسي ولكن دون نص تسجيل دخول برمجي، Acquire::ftp::ProxyLogin " +"فارغ." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "فشل أمر نص تسجيل الدخول البرمجي '%s'، ردّ الخادم: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "فشل TYPE، ردّ الخادم: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "انتهى وقت الاتصال" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "أغلق الخادم الاتصال" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "خطأ في القراءة" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "" + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "خطأ في الكتابة" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "" + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "تعذر إرسال الأمر PORT" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "فشل EPRT، ردّ الخادم: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "تعذر قبول الاتصال" + +#: methods/ftp.cc:864 methods/http.cc:958 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "تعذر إحضار الملف، ردّ الخادم '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "فشل نقل البيانات، ردّ الخادم '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "استعلام" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "" + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "الاتصال بـ%s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "تعذر تمهيد الاتصال بـ%s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "تعذر الاتصال بـ%s:%s (%s)، انتهى وقت الاتصال" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "تعذر الاتصال بـ%s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "الاتصال بـ%s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "تعذر الاتصال بـ%s %s:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "" + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "" + +#: methods/http.cc:376 +msgid "Waiting for headers" +msgstr "بانتظار الترويسات" + +#: methods/http.cc:522 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "" + +#: methods/http.cc:530 +msgid "Bad header line" +msgstr "سطر ترويسة سيء" + +#: methods/http.cc:549 methods/http.cc:556 +msgid "The HTTP server sent an invalid reply header" +msgstr "أرسل خادم http ترويسة ردّ غير صالحة" + +#: methods/http.cc:585 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "أرسل خادم http ترويسة طول محتويات (ِContent-Length) غير صالحة" + +#: methods/http.cc:600 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "أرسل خادم http ترويسة مدى محتويات (ِContent-Range) غير صالحة" + +#: methods/http.cc:602 +msgid "This HTTP server has broken range support" +msgstr "خادم http له دعم مدى معطوب" + +#: methods/http.cc:626 +msgid "Unknown date format" +msgstr "نسق تاريخ مجهول" + +#: methods/http.cc:773 +msgid "Select failed" +msgstr "فشل التحديد" + +#: methods/http.cc:778 +msgid "Connection timed out" +msgstr "انتهى وقت الاتصال" + +#: methods/http.cc:801 +msgid "Error writing to output file" +msgstr "خطأ في الكتابة إلى ملف المُخرجات" + +#: methods/http.cc:832 +msgid "Error writing to file" +msgstr "خطأ في الكتابة إلى الملف" + +#: methods/http.cc:860 +msgid "Error writing to the file" +msgstr "خطأ في الكتابة إلى الملف" + +#: methods/http.cc:874 +msgid "Error reading from server. Remote end closed connection" +msgstr "خطأ في القراءة من الخادم. أقفل الطرف الآخر الاتصال" + +#: methods/http.cc:876 +msgid "Error reading from server" +msgstr "خطأ في القراءة من الخادم" + +#: methods/http.cc:1107 +msgid "Bad header data" +msgstr "بيانات ترويسة سيئة" + +#: methods/http.cc:1124 +msgid "Connection failed" +msgstr "فشل الاتصال" + +#: methods/http.cc:1215 +msgid "Internal error" +msgstr "خطأ داخلي" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "تعذر العثور على التحديد %s" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "اختصار نوع مجهول: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "فتح ملف التهيئة %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "السطر %d طويل جداً (أقصاه %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "" + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "" + +#: apt-pkg/contrib/progress.cc:154 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... خطأ!" + +#: apt-pkg/contrib/progress.cc:156 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... تمّ" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "خيار سطر الأمر '%c' [من %s] مجهول." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "خيار سطر الأمر %s غير مفهوم" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "الخيار %s يتطلّب مُعطى." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "الخيار '%s' طويل جداً" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "عمليّة غير صالحة %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "مشكلة في إغلاق الملف" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "مشكلة في مزامنة الملف" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "يعتمد" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "يعتمد مسبقاً" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "يستحسن" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "يقترح" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "يعارض" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "يستبدل" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "يُلغي" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "مهم" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "مطلوب" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "قياسي" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "اختياري" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "إضافي" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "فتح %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "" + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "" + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "" + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "" + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "" + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "الرجاء إدخال القرص المُسمّى '%s' في السوّاقة '%s' وضغط مفتاح الإدخال." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "نظام الحزم '%s' غير مدعوم" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "" + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "قد يساعدك تنفيذ الأمر apt-get update في تصحيح هذه المشاكل" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "حدث خطأ أثناء معالجة %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "حدث خطأ أثناء معالجة %s (UserPackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "حدث خطأ أثناء معالجة %s (UserPackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "حدث خطأ أثناء معالجة %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "حدث خطأ أثناء معالجة %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "حدث خطأ أثناء معالجة %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "حدث خطأ أثناء معالجة %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "" + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "" + +#: apt-pkg/acquire-item.cc:126 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "فشل إعادة التسمية ، %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:945 +msgid "MD5Sum mismatch" +msgstr "MD5Sum غير متطابقة" + +#: apt-pkg/acquire-item.cc:640 +msgid "There is no public key available for the following key IDs:\n" +msgstr "" + +#: apt-pkg/acquire-item.cc:753 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" + +#: apt-pkg/acquire-item.cc:812 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" + +#: apt-pkg/acquire-item.cc:848 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" + +#: apt-pkg/acquire-item.cc:935 +msgid "Size mismatch" +msgstr "الحجم غير متطابق" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "جاري التعرف..." + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "فك تركيب القرص المدمج\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "بانتظار القرص...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "تركيب القرص...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "هذا الاسم غير صالح، حاول مجدداً.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"هذا القرص مسمى: \n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "نسخ قوائم الحزم..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "كتابة لائحة المصادر الجديدة\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "فك تركيب القرص المدمج..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "تحضير %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "فتح %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "التحضير لتهيئة %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "تهيئة %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "تم تثبيت %s" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "التحضير لإزالة %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "إزالة %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "تم إزالة %s" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "التحضير لإزالة %s بالكامل" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "تمت إزالة %s بالكامل" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "" + +#~ msgid "File date has changed %s" +#~ msgstr "تغير تاريخ الملف %s" diff --git a/po/bg.po b/po/bg.po new file mode 100644 index 0000000..3da419e --- /dev/null +++ b/po/bg.po @@ -0,0 +1,2803 @@ +# Bulgarian translation of apt. +# Copyright (C) 2006 Free Software Foundation, Inc. +# This file is distributed under the same license as the apt package. +# Yavor Doganov , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: apt 0.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-10-12 20:14+0300\n" +"Last-Translator: Yavor Doganov \n" +"Language-Team: Bulgarian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Пакет %s версия %s има неудовлетворена зависимост:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Пакетът %s не може да бъде намерен" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Общо имена на пакети : " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Нормални пакети: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Чисти виртуални пакети: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Единични виртуални пакети: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Смесени виртуални пакети: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Липсващи: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Общо уникални версии: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Общо зависимости: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Общо отношения версия/файл: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Общо отношения „Осигурява“: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Общо разгърнати низове: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Общо пространство за зависимости по версии: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Общо празно пространство: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Общо отчетено пространство: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Пакетният файл %s не е синхронизиран." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Трябва да въведете само един израз" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Няма намерени пакети" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Пакетни файлове:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "" +"Кешът не е синхронизиран, не може да се изпълни „x-ref“ на пакетен файл" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Отбити пакети:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(не са намерени)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Инсталирана: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(няма)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Кандидат: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Отбиване на пакета: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Таблица с версиите:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s за %s %s, компилиран на %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Употреба: apt-cache [опции] команда\n" +" apt-cache [опции] add файл1 [файл2 ...]\n" +" apt-cache [опции] showpkg пакет1 [пакет2 ...]\n" +" apt-cache [опции] showsrc пакет1 [пакет2 ...]\n" +"\n" +"apt-cache е инструмент на ниско ниво за обработка на двоичните\n" +"кеш файлове на APT и извличане на информация от тях\n" +"\n" +"Команди:\n" +" add - Добавя пакетен файл към кеша на пакети с изходен код\n" +" gencaches - Генериране на кеша на пакети и пакети с изходен код\n" +" showpkg - Показва обща информация за даден пакет\n" +" showsrc - Показва записите на пакета с изходен код\n" +" stats - Показва някои общи статистики\n" +" dump - Показва целия файл в сбита форма\n" +" dumpavail - Разпечатва наличен файл в stdout\n" +" unmet - Показва неудовлетворени зависимости\n" +" search - Търси в списъка с пакети за регулярен израз\n" +" show - Показва запис за пакета\n" +" depends - Показва необработена информация за зависимости на пакета\n" +" rdepends - Показва информация за обратните зависимости на пакета\n" +" pkgnames - Списък с имената на всички пакети\n" +" dotty - Генериране на графики на пакети за GraphVis\n" +" xvcg - Генериране на графики на пакети за xvcg\n" +" policy - Показване на настройките на политиката\n" +"\n" +"Опции:\n" +" -h Този помощен текст.\n" +" -p=? Кешът за пакети.\n" +" -s=? Кешът за пакети с изходен код.\n" +" -q Премахване на индикатора за напредък.\n" +" -i Показване само на важни зависимости при командата „unmet“.\n" +" -c=? Четене на този конфигурационен файл.\n" +" -o=? Настройване на произволна конфигурационна опция, т.е. -o dir::cache=/" +"tmp\n" +"Вижте „man“ страниците apt-cache(8) и apt.conf(5) за повече информация.\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "Задайте име за този диск, като „Debian 2.1r1 Disk1“" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Сложете диск в устройството и натиснете „Enter“" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Повторете този процес за останалите дискове от комплекта." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Аргументите не са по двойки" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Употреба: apt-config [опции] команда\n" +"\n" +"apt-config е опростен инструмент за четене на конфигурационния файл на APT\n" +"\n" +"Команди:\n" +" shell - Режим с обвивка\n" +" dump - Показва конфигурацията\n" +"\n" +"Опции:\n" +" -h Този помощен текст.\n" +" -c=? Четене на този конфигурационен файл.\n" +" -o=? Настройване на произволна конфигурационна опция, т.е. -o dir::cache=/" +"tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s не е валиден DEB пакет." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Употреба: apt-extracttemplates файл1 [файл2 ...]\n" +"\n" +"apt-extracttemplates е инструмент за извличане на конфигурационна " +"информация\n" +"и шаблони от дебиански пакети\n" +"\n" +"Опции:\n" +" -h Този помощен текст.\n" +" -t Настройване на временна директория\n" +" -c=? Четене на този конфигурационен файл.\n" +" -o=? Настройване на произволна конфигурационна опция, т.е. -o dir::cache=/" +"tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Неуспех при записа на %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Не може да се извлече версията на debconf. Debconf инсталиран ли е?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Списъкът с разширения на пакети и твърде дълъг" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Грешка при обработката на директория %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Списъкът с разширения на източници е твърде дълъг" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Грешка при запазването на заглавната част във файла със съдържание" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Грешка при обработката на съдържание %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Употреба: apt-ftparchive [опции] команда\n" +"Команди: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents път\n" +" release път\n" +" generate config [групи]\n" +" clean config\n" +"\n" +"apt-ftparchive генерира индексни файлове за архиви на Debian. Поддържа\n" +"много стилове на генериране от напълно автоматично до функционални\n" +"замени на dpkg-scanpackages и dpkg-scansources.\n" +"\n" +"apt-ftparchive генерира „Package“ файлове от дърво с .deb файлове. Файлът\n" +"„Package“ представлява съдържанието на всички контролни полета на всеки\n" +"пакет, както и MD5 хеш и размер на файла. Стойностите на полетата \n" +"„Priority“ и „Section“ могат да бъдат изменени с файл „override“.\n" +"\n" +"По подобен начин apt-ftparchive генерира „Sources“ файлове от дърво с .dsc \n" +"файлове. Опцията --source-override може да се използва за указване на файл\n" +"„override“ за пакети с изходен код.\n" +"\n" +"Командите „packages“ и „sources“ трябва да се изпълняват в корена на " +"дървото.\n" +"BinaryPath трябва да сочи към основата, където започва рекурсивното търсене " +"и\n" +"файла „override“ трябва да съдържа всички флагове за преназначаване. " +"Pathprefix\n" +"се прибавя към полетата на файловите имена, ако съществува. Пример за " +"употреба\n" +"от архива на Debian:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Опции:\n" +" -h Този помощен текст.\n" +" --md5 Управление на генерирането на MD5.\n" +" -s=? Файл „override“ за пакети с изходен код.\n" +" -q Без показване на съобщения.\n" +" -d=? Избор на допълнителна база от данни за кеширане.\n" +" --no-delink Включване на режим за премахване на връзки.\n" +" --contents Управление на генерирането на файлове със съдържание.\n" +" -c=? Четене на този конфигурационен файл.\n" +" -o=? Настройване на произволна конфигурационна опция" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Няма съвпадения на избора" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Липсват някои файлове от групата с файлови пакети „%s“" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "БД е повредена, файлът е преименуван на %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "БД е стара, опит за актуализиране на %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"Форматът на БД е невалиден. Ако сте обновили от стара версия на apt, " +"премахнете базата от данни и я създайте наново." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Неуспех при отварянето на файл %s от БД: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Грешка при получаването на атрибути за %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "В архива няма поле „control“" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Неуспех при получаването на курсор" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: Неуспех при четенето на директория %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "W: Неуспех при четенето на %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E: Грешките се отнасят за файла " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Неуспех при превръщането на %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Неуспех при обхода на дървото" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Неуспех при отварянето на %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr "DeLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Неуспех при прочитането на връзка %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Неуспех при премахването на връзка %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Неуспех при създаването на връзка %s към %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr "Превишен лимит на DeLink от %sB.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Архивът няма поле „package“" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s няма запис „override“\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " поддържащия пакета %s е %s, а не %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s няма запис „source override“\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s няма също и запис „binary override“\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Вътрешна грешка, неуспех при намирането на съставна част %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Неуспех при заделянето на памет" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Неуспех при отварянето на %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Неправилно форматиран override %s, ред %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Неправилно форматиран override %s, ред %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Неправилно форматиран override %s, ред %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Неуспех при четенето на override файл %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Непознат алгоритъм за компресия „%s“" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Компресираният изход %s изисква настройка за компресирането" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Неуспех при създаването на IPC pipe към подпроцеса" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Неуспех при създаването на FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Неуспех при пускането на подпроцес" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Процес-потомък за компресиране" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Вътрешна грешка, неуспех при създаването на %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Неуспех при създаването на подпроцес IPC" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Неуспех при изпълнението на компресиращата програма " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "декомпресираща програма" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "В/И към подпроцеса/файла пропадна" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Неуспех при четене докато се изчислява MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Неуспех при премахването на връзка на %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Неуспех при преименуването на %s на %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "Y" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Грешка при компилирането на регулярния израз - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Следните пакети имат неудовлетворени зависимости:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "но е инсталиран %s" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "но ще бъде инсталиран %s" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "но той не може да бъде инсталиран" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "но той е виртуален пакет" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "но той не е инсталиран" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "но той няма да бъде инсталиран" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " или" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Следните НОВИ пакети ще бъдат инсталирани:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Следните пакети ще бъдат ПРЕМАХНАТИ:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Следните пакети няма да бъдат променени:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Следните пакети ще бъдат актуализирани:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Следните пакети ще бъдат ВЪРНАТИ КЪМ ПО-СТАРА ВЕРСИЯ:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Следните задържани пакети ще бъдат променени:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (поради %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"ПРЕДУПРЕЖДЕНИЕ: Следните необходими пакети ще бъдат премахнати.\n" +"Това НЕ би трябвало да става освен ако знаете точно какво правите!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu актуализирани, %lu нови инсталирани, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu преинсталирани, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu върнати към по-стара версия, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu за премахване и %lu без промяна.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu не са напълно инсталирани или премахнати.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Коригиране на зависимостите..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " пропадна." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Неуспех при коригирането на зависимостите" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Неуспех при минимизирането на набора актуализации" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Готово" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "" +"Възможно е да изпълните „apt-get -f install“, за да коригирате тези " +"неизправности." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Неудовлетворени зависимости. Опитайте с „-f“." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "ПРЕДУПРЕЖДЕНИЕ: Следните пакети не могат да бъдат удостоверени!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Предупреждението за удостоверяването е пренебрегнато.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Инсталиране на тези пакети без проверка [y/N]?" + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Някои пакети не можаха да бъдат удостоверени" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Има проблеми и „-y“ е използвано без „--force-yes“" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "Вътрешна грешка, „InstallPackages“ е предизвикано при счупени пакети!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Трябва да бъдат премахнати пакети, но премахването е изключено." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Вътрешна грешка, „Ordering“ не завърши" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Неуспех при заключването на директорията за изтегляне" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "Списъкът с източници не можа да бъде прочетен." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"Странно.. Размерите не съвпадат, изпратете е-поща на apt@packages.debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Необходимо е да се изтеглят %sB/%sB архиви.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Необходимо е да се изтеглят %sB архиви.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "След разпакетирането ще бъде използвано %sB дисково пространство.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "След разпакетирането ще бъде освободено %sB дисково пространство.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Неуспех при определянето на свободното пространство в %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Нямате достатъчно свободно пространство в %s." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "Указано е „Trivial Only“, но това не е тривиална операция." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Да, прави каквото казвам!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"На път сте да направите нещо потенциално опасно.\n" +"За да продължите, въведете фразата „%s“\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Прекъсване." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Искате ли да продължите [Y/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Неуспех при изтеглянето на %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Някои файлове не можаха да бъдат изтеглени" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Изтеглянето завърши в режим само на изтегляне" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Неуспех при изтеглянето на някои архиви, може да изпълните „apt-get update“ " +"или да опитате с „--fix-missing“?" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "„--fix-missing“ и превключване на носители не се поддържа все още" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Неуспех при коригирането на липсващите пакети." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Прекъсване на инсталирането." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Забележете, избиране на %s вместо %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "Пропускане на %s, вече е инсталиран и не е маркиран за актуализация.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "Пакетът %s не е инсталиран, така че не е премахнат\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Пакетът %s е виртуален пакет, осигурен от:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Инсталиран]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Трябва изрично да изберете един за инсталиране." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Пакетът %s не е наличен, но е в списъка със зависимости на друг пакет.\n" +"Това може да означава, че пакета липсва, остарял е, или е достъпен\n" +"само от друг източник\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Обаче следните пакети го заместват:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Пакетът %s няма кандидат за инсталиране" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "Преинсталацията на %s не е възможна, не може да бъде изтеглен.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s вече е най-новата версия.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Не е намерено издание „%s“ на „%s“" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Не е намерена версия „%s“ на „%s“" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Избрана е версия %s (%s) за %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "Командата „update“ не възприема аргументи" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Неуспех при заключването на директорията със списъка на пакетите" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Някои индексни файлове не можаха да бъдат изтеглени, те са пренебрегнати или " +"са използвани по-стари." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Вътрешна грешка, „AllUpgrade“ счупи нещо в системата" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Неуспех при намирането на пакет %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Забележете, избиране на %s за регулярен израз „%s“\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "Възможно е да изпълните „apt-get -f install“, за да коригирате:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Неудовлетворени зависимости. Опитайте „apt-get -f install“ без пакети (или " +"укажете разрешение)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Някои пакети не можаха да бъдат инсталирани. Това може да означава,\n" +"че сте изискали невъзможна ситуация или ако използвате нестабилната\n" +"дистрибуция, че някои необходими пакети още не са създадени или пък\n" +"са били преместени от Incoming." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Тъй като сте указали единична операция, твърде е възможно пакета просто\n" +"да не може да бъде инсталиран; в такъв случай би трябвало да се подаде\n" +"доклад за грешка за този пакет." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "" +"Следната информация може да помогне за намиране на изход от ситуацията:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Счупени пакети" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Следните допълнителни пакети ще бъдат инсталирани:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Предложени пакети:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Препоръчвани пакети:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Изчисляване на актуализацията..." + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Неуспех" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Готово" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "Вътрешна грешка, „problem resolver“ счупи нещо в системата" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "Трябва да укажете поне един пакет за изтегляне на изходния му код" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Неуспех при намирането на изходен код на пакет %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Пропускане на вече изтегления файл „%s“\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Нямате достатъчно свободно пространство в %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Необходимо е да се изтеглят %sB/%sB архиви изходен код.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Необходимо е да се изтеглят %sB архиви изходен код.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Изтегляне на изходен код %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Неуспех при изтеглянето на някои архиви." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "" +"Пропускане на разпакетирането на вече разпакетирания изходен код в %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Командата за разпакетиране „%s“ пропадна.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Проверете дали имате инсталиран пакета „dpkg-dev“.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Командата за компилиране „%s“ пропадна.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Процесът-потомък пропадна" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"Трябва да укажете поне един пакет за проверка на зависимости за компилиране" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "" +"Неуспех при получаването на информация за зависимостите за компилиране на %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s няма зависимости за компилиране.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"Зависимост %s за пакета %s не може да бъде удовлетворена, понеже пакета %s " +"не може да бъде намерен" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"Зависимост %s за пакета %s не може да бъде удовлетворена, понеже няма " +"налични версии на пакета %s, които могат да удовлетворят изискването за " +"версия" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Неуспех при удовлетворяването на зависимост %s за пакета %s: Инсталираният " +"пакет %s е твърде нов" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Неуспех при удовлетворяването на зависимост %s за пакета %s: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Зависимостите за компилиране на %s не можаха да бъдат удовлетворени." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Неуспех при обработката на зависимостите за компилиране" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Поддържани модули:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Употреба: apt-get [опции] команда\n" +" apt-get [опции] install|remove пакет1 [пакет2 ...]\n" +" apt-get [опции] source пакет1 [пакет2 ...]\n" +"\n" +"apt-get е опростен интерфейс за командния ред за изтегляне и\n" +"инсталиране на пакети. Най-често използваните команди са „update“\n" +"и „install“.\n" +"\n" +"Команди:\n" +" update - Зареждане на нови списъци с пакети\n" +" upgrade - Извършване на актуализиране\n" +" install - Инсталиране на нови пакети (пакет е libc6, а не libc6.deb)\n" +" remove - Премахване на пакети\n" +" source - Изтегляне на изходен код на пакети\n" +" build-dep - Конфигуриране на зависимостите за компилиране за изходен код " +"на пакети\n" +" dist-upgrade - Актуализиране на дистрибуцията, вижте apt-get(8)\n" +" dselect-upgrade - Следване на избора на dselect\n" +" clean - Изтриване на изтеглените файлове\n" +" autoclean - Изтриване на стари изтеглени файлове\n" +" check - Проверка за счупени зависимости\n" +"\n" +"Опции:\n" +" -h Този помощен текст.\n" +" -q Изход на съобщения, подходящи за журнал - без индикатор на напредъка\n" +" -qq Без изход на съобщения освен при грешки\n" +" -d Само изтегляне - да НЕ се инсталират или разпакетират архивите\n" +" -s Без действие. Предизвикване на симулация.\n" +" -y Отговаряне с „Да“ на всички въпроси, без питане\n" +" -f Опит за продължаване дори и при неуспех на проверката за цялост\n" +" -m Опит за продължаване дори и ако архивите са неоткриваеми\n" +" -u Показване на списък с пакетите са актуализиране\n" +" -b Компилиране на изходния код на пакета след изтеглянето му\n" +" -V Показване на подробни версии\n" +" -c=? Четене на този конфигурационен файл\n" +" -o=? Настройване на произволна конфигурационна опция, т.е. -o dir::cache=/" +"tmp\n" +"Вижте страниците на apt-get(8), sources.list(5) и apt.conf(5) за повече\n" +"информация и опции.\n" +" Това APT има Върховни Сили.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Поп " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Изт:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Игн " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Грш " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Изтеглени %sB за %s (%sB/сек)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [В процес на работа]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Смяна на носител: сложете диска с етикет\n" +" „%s“\n" +"в устройството „%s“ и натиснете „Enter“\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Непознат запис за пакет!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Употреба: apt-sortpkgs [опции] файл1 [файл2 ...]\n" +"\n" +"apt-sortpkgs е опростен инструмент за сортиране на пакетни файлове. Опцията\n" +"„-s“ се използва, за да покаже типа на файла.\n" +"\n" +"Опции:\n" +" -h Този помощен текст.\n" +" -s Използване на сортиране по изходен код.\n" +" -c=? Четене на този конфигурационен файл.\n" +" -o=? Настройване на произволна конфигурационна опция, т.е. -o dir::cache=/" +"tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Лоша стандартна настройка!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Натиснете „Enter“, за да продължите." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Възникнаха някои грешки при разпакетирането. Ще се конфигурират" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "инсталираните пакети. Това може да доведе до дублирани грешки или" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "грешки, причинени от липсващи зависимости. Това е наред, само грешките" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"над това съобщение за важни. Коригирайте ги и изпълнете [I]nstall наново" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Смесване на наличната информация" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Неуспех при създаването на програмни канали" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Неуспех при изпълнението на gzip" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Развален архив" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Невярна контролна сума на tar, развален архив" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Непозната заглавна част на TAR тип %u, елемент %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Невалиден подпис на архива" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Грешка при четене на заглавната част на елемента на архива" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Невалидна заглавна част на елемента на архива" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Архивът е твърде кратък" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Неуспех при четенето на заглавните части на архива" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "Извикан е DropNode за все още използван възел" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Грешка при намирането на хеш-елемента!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Неуспех при установяване на отклонението" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Вътрешна грешка в AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Опит за изменение на отклонение, %s -> %s и %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Двойно добавяне на отклонение %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Дублиран конфигурационен файл %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Неуспех при запис на файл %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Неуспех при затварянето на файл %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "Пътят %s е твърде дълъг" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Разпакетиране на %s повече от веднъж" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "Директорията %s е отклонена" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "Пакетът се опитва да пише в целта за отклонение %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Пътят за отклонение е твърде дълъг" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "Директорията %s се заменя с не-директория" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Неуспех при намирането на възел в неговия хеш" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Пътят е твърде дълъг" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Файловете се заменят със съдържанието на пакета %s без версия" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Файл %s/%s заменя този в пакет %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Неуспех при четенето на %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Неуспех при получаването на атрибути за %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Неуспех при премахването на %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Неуспех при създаването на %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Неуспех при получаването на атрибути %sinfo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "" +"Директориите info и temp трябва да бъдат на една и съща файлова система" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Четене на списъците с пакети" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Неуспех при преминаването в администраторската директория %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Вътрешна грешка при получаването на името на пакета" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Четене на списъка на файловете" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Неуспех при отварянето на списъка с файлове „%sinfo/%s“. Ако не може да " +"възстановите този файл, запишете го като празен и веднага преинсталирайте " +"същата версия на пакета!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Неуспех при четенето на списъка с файлове %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Вътрешна грешка при получаването на възел" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Неуспех при отварянето на файл с отклонения %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Файлът с отклонения е повреден" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Неправилен ред във файла с отклонения: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Вътрешна грешка при добавянето на отклонение" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "Първо трябва да се инициализира кеша с пакети" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Неуспех при намирането на заглавна част „Package:“, изместване %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Неправилна секция „ConfFile“ във файла за състояние. Изместване %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Грешка при анализирането на MD5. Изместване %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Това не е валиден DEB архив, липсва елемент „%s“" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "Това не е валиден DEB архив, няма елемент „%s“ или „%s“" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Неуспех при преминаването в %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Вътрешна грешка, не може да се открие елемент" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Неуспех при намирането на валиден контролен файл" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Контролен файл, невъзможен за анализ" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Неуспех при четенето на базата %s със CD-ROM" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Използвайте „apt-cdrom“, за да може този CD-ROM да се разпознава от APT. " +"„apt-get update“ не може да се използва за добавяне на нови дискове" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "Грешен CD-ROM" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "Неуспех при демонтирането на CD-ROM в %s, може все още да се използва." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Дискът не е намерен." + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Файлът не е намерен" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Неуспех при получаването на атрибути" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Неуспех при задаването на време на промяна" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "Невалиден адрес-URI, локалните адреси-URI не трябва да започват с „//“" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Влизане" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Неуспех при установяването на името на отдалечения сървър" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Неуспех при установяването на локалното име" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Сървърът отказа свързване и съобщи: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "USER се провали, сървърът съобщи: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "PASS се провали, сървърът съобщи: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Беше указан сървър-посредник, но няма скрипт за влизане, Acquire::ftp::" +"ProxyLogin е празен." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Командата „%s“ на скрипта за влизане се провали, сървърът съобщи: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "TYPE се провали, сървърът съобщи: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Допустимото време за свързването изтече" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Сървърът разпадна връзката" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Грешка при четене" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Отговорът препълни буфера." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Развален протокол" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Грешка при запис" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Неуспех при създаването на гнездо" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "" +"Неуспех при свързването на гнездо за данни, допустимото време за свъзрзване " +"изтече" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Неуспех при свързването на пасивно гнездо." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo не успя да се добере до слушащо гнездо" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Неуспех при свързването на гнездо" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Неуспех при слушането на гнездото" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Неуспех при определянето на името на гнездото" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Неуспех при изпращането на командата PORT" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Неизвестно семейство адреси %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT се провали, сървърът съобщи: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Времето за установяване на връзка с гнездо за данни изтече" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Невъзможно е да се приеме свързването" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Проблем при хеширане на файла" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Неуспех при изтеглянето на файла, сървърът съобщи „%s“" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Времето за връзка с гнездо за данни изтече" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Неуспех при прехвърлянето на данни, сървърът съобщи: „%s“" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Запитване" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Неуспех при извикването на " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Свързване с %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Неуспех при създаването на гнездо за %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Не може да се започне свързване с %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Неуспех при свързване с %s:%s (%s), допустимото време изтече" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Неуспех при свързване с %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Свързване с %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Неуспех при намирането на IP адреса на „%s“" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Временен неуспех при намирането на IP адреса на „%s“" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Нещо лошо се случи при намирането на IP адреса на „%s:%s“ (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Неуспех при свързването с %s %s:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Неуспех при достъпа до набор на ключове: „%s“" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" +"E: Списъкът с аргументи от Acquire::gpgv::Options е твърде дълъг. Завършване " +"на работа." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" +"Вътрешна грешка: Валиден подпис, но не може да се провери отпечатъка на " +"ключа?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Намерен е поне един невалиден подпис." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" +"Неуспех при изпълнението на „%s“ за проверка на подписа (инсталиран ли е " +"gnupg?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Неизвестна грешка при изпълнението на gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "Следните подписи са невалидни:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"Следните подписи не можаха да бъдат проверени, защото публичния ключ не е " +"наличен:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Неуспех при отварянето на програмен канал за %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Грешка при четене от процес %s" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Чакане на заглавни части" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Получен е един ред на заглавна част с над %u символа" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Невалиден ред на заглавна част" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "HTTP сървърът изпрати невалидна заглавна част като отговор" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "HTTP сървърът изпрати невалидна заглавна част „Content-Length“" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "HTTP сървърът изпрати невалидна заглавна част „Content-Range“" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "HTTP сървърът няма поддръжка за прехвърляне на фрагменти на файлове" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Неизвестен формат на дата" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Неуспех на избора" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Допустимото време за свързване изтече" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Грешка при записа на изходен файл" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Грешка при записа на файл" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Грешка при записа на файла" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "Грешка при четене от сървъра. Отдалеченият сървър прекъсна връзката" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Грешка при четене от сървъра" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Невалидни данни на заглавната част" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Неуспех при свързването" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Вътрешна грешка" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Невъзможно е да се прехвърли в паметта празен файл" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Неуспех при прехвърлянето в паметта на %lu байта" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Изборът %s не е намерен" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Неизвестен тип на абревиатура: „%c“" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Отваряне на конфигурационен файл %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Ред %d е твърде дълъг (максимум %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Синтактична грешка %s:%u: В началото на блока няма име." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Синтактична грешка %s:%u: Лошо форматиран таг" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Синтактична грешка %s:%u: Излишни символи след стойността" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" +"Синтактична грешка %s:%u: Директиви могат да се задават само в най-горното " +"ниво" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Синтактична грешка %s:%u: Твърде много вложени „include“" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Синтактична грешка %s:%u: Извикан „include“ оттук" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Синтактична грешка %s:%u: Неподдържана директива „%s“" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Синтактична грешка %s:%u: Излишни символи в края на файла" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Грешка!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Готово" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Неизвестна опция за команден ред „%c“ [от %s]." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Опцията за команден ред %s не е разпозната" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Опцията за команден ред %s не е булева" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "Опция %s изисква аргумент." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "Опция %s: Значението трябва да има =." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "Опция %s изисква аргумент цяло число, не „%s“" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Опция „%s“ е твърде дълга" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "Смисълът %s не е ясен, опитайте true или false." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Невалидна операция %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Неуспех при намирането на атрибутите на точка за монтиране %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Неуспех при преминаването в %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Неуспех при намирането на атрибутите на cdrom" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "" +"Не се използва заключване за файл за заключване %s, който е само за четене" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Неуспех при отварянето на файл за заключване %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "" +"Не се използва заключване за файл за заключване %s, който е монтиран по NFS" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Неуспех при достъпа до заключване %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Изчака се завършването на %s, но той не беше пуснат" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Нарушение на защитата на паметта (segmentation fault) в подпроцеса %s." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Подпроцесът %s върна код за грешка (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Подпроцесът %s завърши неочаквано" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Неуспех при отварянето на файла %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "" +"грешка при четене, все още има %lu за четене, но няма нито един останал" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "грешка при запис, все още име %lu за запис, но не успя" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Проблем при затварянето на файла" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Проблем при премахването на връзка към файла" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Проблем при синхронизиране на файла" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Празен кеш на пакети" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Файлът за кеш на пакети е повреден" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Файлът за кеш на пакети е несъвместима версия" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Тази версия на APT не поддържа система за версии „%s“" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "Кешът на пакети е бил направен за различна архитектура" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Зависи от" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Предварително зависи от" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Предлага се" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Препоръчва се" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Конфликтира с" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Заменя" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Изважда от употреба" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "важен" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "изискван" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "стандартен" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "незадължителен" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "допълнителен" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Изграждане на дървото със зависимости" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Версии кандидати" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Генериране на зависимости" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Неуспех при анализирането на пакетен файл %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Неуспех при анализирането на пакетен файл %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Лошо форматиран ред %lu в списъка с източници %s (адрес-URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Лошо форматиран ред %lu в списъка с източници %s (дистрибуция)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Лошо форматиран ред %lu в списъка с източници %s (анализ на адрес-URI)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "" +"Лошо форматиран ред %lu в списъка с източници %s (неограничена дистрибуция)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "" +"Лошо форматиран ред %lu в списъка с източници %s (анализ на дистрибуция)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Отваряне на %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Ред %u в списъка с източници %s е твърде дълъг." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Лошо форматиран ред %u в списъка с източници %s (тип)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Типът „%s“ на ред %u в списъка с източници %s е неизвестен." + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "" +"Лошо форматиран ред %u в списъка с източници %s (идентификатор на " +"производител)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"В следствие на циклични зависимости от типа „Конфликтира/Предварително " +"зависи от“, за да се продължи инсталацията трябва да се премахне необходимия " +"пакет %s. Това често е лошо, но ако наистина искате да го направите, " +"активирайте опцията APT::Force-LoopBreak." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Не се поддържа индексен файл от типа „%s“" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"Пакетът %s трябва да бъде преинсталиран, но не може да се намери архив за " +"него." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Грешка, pkgProblemResolver::Resolve генерира повреди, това може да е " +"причинено от задържани пакети." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "" +"Неуспех при коригирането на проблемите, имате задържани счупени пакети." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Директорията със списъци %spartial липсва." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Директорията за архиви %spartial липсва." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "Изтегляне на файл %li от %li (остават %s)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "Изтегляне на файл %li от %li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Неуспех при намирането на драйвер за метод %s." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Методът %s не стартира правилно" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "Сложете диска, озаглавен „%s“ в устройство „%s“ и натиснете „Enter“." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Пакетната система „%s“ не е поддържана" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Неуспех при определянето на подходяща пакетна система" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Неуспех при получаването на атрибути на %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "Трябва да добавите адреси-URI от тип „source“ в sources.list" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" +"Списъците с пакети или файлът за състояние не можаха да бъдат анализирани " +"или отворени." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "" +"Може да искате да изпълните „apt-get update“, за да коригирате тези проблеми" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Невалиден запис във файла с настройки, няма заглавна част Package" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Неизвестен тип за отбиване %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Няма указан приоритет (или е нула) на отбиването" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Кешът има несъвместима система за версии" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Възникна грешка при обработката на %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Възникна грешка при обработката на %s (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Възникна грешка при обработката на %s (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Възникна грешка при обработката на %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Възникна грешка при обработката на %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Възникна грешка при обработката на %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Възникна грешка при обработката на %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" +"Еха, надхвърлихте броя имена на пакети, на който е способна тази версия на " +"APT." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "Еха, надхвърлихте броя версии, на който е способна тази версия на APT." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" +"Еха, надхвърлихте броя зависимости, на който е способна тази версия на APT." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Възникна грешка при обработката на %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Възникна грешка при обработката на %s (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "Пакетът %s %s не беше открит при обработката на файла със зависимости" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "" +"Неуспех при получаването на атрибути на списъка с пакети с изходен код %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Събиране на информация за „Осигурява“" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "Входно/изходна грешка при запазването на кеша на пакети с изходен код" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "преименуването се провали, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "Несъответствие на контролна сума MD5" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "Няма налични публични ключове за следните идентификатори на ключове:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Неуспех при намирането на файл за пакет %s. Това може да означава, че трябва " +"ръчно да оправите този пакет (поради пропусната архитектура)." + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Неуспех при намирането на файл за пакет %s. Това може да означава, че трябва " +"ръчно да оправите този пакет." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"Индексните файлове на пакета са повредени. Няма поле Filename: за пакет %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Несъответствие на размера" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Блокът на производителя %s не съдържа отпечатък" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Използване на точка за монтиране на CD-ROM %s\n" +"Монтиране на CD-ROM\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Идентифициране..." + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Запазен етикет: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Използване на точка за монтиране на CD-ROM %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "Демонтиране на CD-ROM\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Чакане за диск...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Монтиране на CD-ROM...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Сканиране на диска за индексни файлове...\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "" +"Намерени са %i индекса на пакети, %i индекса на пакети с изходен код и %i " +"подписа.\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Това не е валидно име, опитайте отново.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Наименование на този диск: \n" +"„%s“\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Копиране на списъците с пакети..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Запазване на новия списък с източници\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Записите в списъка с източници за този диск са:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "Демонтиране на CD-ROM..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "Записани са %i записа.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "Записани са %i записа с %i липсващи файла.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "Записани са %i записа с %i несъответстващи файла\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "Записани са %i записа с %i липсващи и %i несъответстващи файла\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "Подготвяне на %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "Разпакетиране на %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "Подготвяне на %s за конфигуриране" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "Конфигуриране на %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "%s е инсталиран" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "Подготвяне за премахване на %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "Премахване на %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "%s е премахнат" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "Подготовка за пълно премахване на %s" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "%s е напълно премахнат" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Неуспех при отварянето на файла %s" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Връзката прекъсна преждевременно" diff --git a/po/bs.po b/po/bs.po new file mode 100644 index 0000000..7eafebc --- /dev/null +++ b/po/bs.po @@ -0,0 +1,2574 @@ +# APT - Advanced Package Transfer +# This file is put in the public domain. +# Safir Å ećerović , 2004 +# +msgid "" +msgstr "" +"Project-Id-Version: apt 0.5.26\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2004-05-06 15:25+0100\n" +"Last-Translator: Safir Å ećerović \n" +"Language-Team: Bosnian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Paket %s verzije %s ima nezadovoljenu zavisnost:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Ne mogu pronaći paket %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Ukupno naziva paketa:" + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Normalni paketi:" + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Čisto virtuelni paketi:" + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Pojedinačni virutuelni paketi:" + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " MijeÅ¡ani virtuelni paketi:" + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Nedostajući:" + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Ukupno različitih verzija:" + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Ukupno zavisnosti:" + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Ukupno Verzija/Datoteka odnosa:" + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "" + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "" + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "" + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "" + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "" + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "" + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Paketi nisu pronađeni" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Datoteke paketa:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Instalirano:" + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr "" + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr "" + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr "" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr "" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "" + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Argumenti nisu u parovima" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Upotreba: apt-config [opcije] naredba\n" +"\n" +"apt-config je jednostavni alat za čitanje APT konfiguracijske datoteke\n" +"\n" +"Naredbe:\n" +" shell - Shell mod\n" +" dump - Prikaz konfiguracije\n" +"\n" +"Opcije:\n" +" -h Ovaj tekst pomoći.\n" +" -c=? Pročitaj ovu konfiguracijsku datoteku\n" +" -o=? Podesi odgovarajuću konfiguracijsku opciju, npr. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s nije ispravan DEB paket." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Ne mogu zapisati na %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "" +"Ne mogu odrediti verziju debconf programa. Da li je debconf instaliran?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "DB je bila oÅ¡tećena, datoteka preimenovana u %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "DB je stara, pokuÅ¡avam nadogradnju %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/cachedb.cc:81 +#, fuzzy, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Ne mogu otvoriti DB datoteku %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Arhiva nema kontrolnog zapisa" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "" + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "" + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "" + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Ne mogu otvoriti %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr "" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr "" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr "" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr "" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr "" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr "" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "" + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "ali je %s instaliran" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "ali se %s treba instalirati" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "ali se ne može instalirati" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "ali je virtuelni paket" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "ali nije instaliran" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "ali se neće instalirati" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " ili" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Slijedeći NOVI paketi će biti instalirani:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Slijedeći paketi će biti UKLONJENI:" + +#: cmdline/apt-get.cc:423 +#, fuzzy +msgid "The following packages have been kept back:" +msgstr "Slijedeći paketi su zadržani:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Slijedeći paketi će biti nadograđeni:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "" + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "" + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "" + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "" + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Ispravljam zavisnosti..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr "" + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Ne mogu ispraviti zavisnosti" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Urađeno" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "" + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Nezadovoljene zavisnosti. PokuÅ¡ajte koristeći -f." + +#: cmdline/apt-get.cc:689 +#, fuzzy +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "Slijedeći paketi će biti nadograđeni:" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "" + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "" + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "" + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "" + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "" + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Da, uradi kako kažem!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Odustani." + +#: cmdline/apt-get.cc:889 +#, fuzzy +msgid "Do you want to continue [Y/n]? " +msgstr "Da li želite nastaviti? [Y/n]" + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "" + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Odustajem od instalacije." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr "[Instalirano]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "" + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Međutim, slijedeći paketi ga zamjenjuju:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "OÅ¡tećeni paketi" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Slijedeći dodatni paketi će biti instalirani:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Predloženi paketi:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Preporučeni paketi:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Računam nadogradnju..." + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "NeuspjeÅ¡no" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Urađeno" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "" + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "" + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Podržani moduli:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "" + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "" + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "" + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr "" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Nepoznat zapis paketa\"" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "LoÅ¡a podrazumjevana postavka!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Pritisnite enter za nastavak." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Sastavljam dostupne informacije" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Ne mogu izvrÅ¡iti gzip" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "OÅ¡tećena arhiva" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Provjera Tar kontrolnog zbira nije uspjela, arhiva oÅ¡tećena" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Arhiva je prekratka" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, fuzzy, c-format +msgid "Failed to write file %s" +msgstr "Ne mogu ukloniti %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Putanja je preduga" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Ne mogu čitati %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Ne mogu ukloniti %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Ne mogu kreirati %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Čitam spiskove paketa" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Čitam spisak datoteke" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" + +#: methods/cdrom.cc:131 +#, fuzzy +msgid "Wrong CD-ROM" +msgstr "PogreÅ¡an CD" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "Ne mogu demontirati CD-ROM na %s, moguće je da se joÅ¡ uvijek koristi." + +#: methods/cdrom.cc:169 +#, fuzzy +msgid "Disk not found." +msgstr "Datoteka nije pronađena" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Datoteka nije pronađena" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Prijavljujem se" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Server je zatvorio vezu" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "GreÅ¡ka pri čitanju" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "" + +#: methods/ftp.cc:362 methods/ftp.cc:374 +#, fuzzy +msgid "Protocol corruption" +msgstr "OÅ¡tećenje protokola" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "GreÅ¡ka pri pisanju" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "" + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "" + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "" + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "" + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Povezujem se sa %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Ne mogu se povezati sa %s %s:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "" + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "" + +#: methods/gpgv.cc:249 +#, fuzzy +msgid "The following signatures were invalid:\n" +msgstr "Slijedeći dodatni paketi će biti instalirani:" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Čekam na zaglavlja" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Nepoznat oblik datuma" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Povezivanje neuspjeÅ¡no" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "UnutraÅ¡nja greÅ¡ka" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "" + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Zavisi" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Unaprijed zavisi" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Predlaže" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Preporučuje" + +#: apt-pkg/pkgcache.cc:219 +#, fuzzy +msgid "Conflicts" +msgstr "Sukobljava se sa" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Zamjenjuje" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Zastarijeva" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "važno" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "zahtijevano" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "standardno" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "opcionalno" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "extra" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Gradim stablo zavisnosti" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Verzije kandidata" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Stvaranje zavisnosti" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Otvaram %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "" + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "" + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "" + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "" + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "" + +#: apt-pkg/acquire.cc:825 +#, fuzzy, c-format +msgid "Retrieving file %li of %li" +msgstr "Čitam spisak datoteke" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "" + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "" + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "" + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "" + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "" + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "" + +#: apt-pkg/acquire-item.cc:1070 +msgid "There is no public key available for the following key IDs:\n" +msgstr "" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "" + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "" + +#: apt-pkg/cdrom.cc:583 +#, fuzzy +msgid "Waiting for disc...\n" +msgstr "Čekam na zaglavlja" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" + +#: apt-pkg/cdrom.cc:730 +#, fuzzy +msgid "Copying package lists..." +msgstr "Čitam spiskove paketa" + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "" + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, fuzzy, c-format +msgid "Preparing %s" +msgstr "Otvaram %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, fuzzy, c-format +msgid "Unpacking %s" +msgstr "Otvaram %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, fuzzy, c-format +msgid "Configuring %s" +msgstr "Povezujem se sa %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, fuzzy, c-format +msgid "Installed %s" +msgstr " Instalirano:" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, fuzzy, c-format +msgid "Removing %s" +msgstr "Otvaram %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, fuzzy, c-format +msgid "Removed %s" +msgstr "Preporučuje" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, fuzzy, c-format +msgid "Completely removed %s" +msgstr "Ne mogu ukloniti %s" + +#: methods/rred.cc:219 +msgid "Could not patch file" +msgstr "" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "" + +#~ msgid "File date has changed %s" +#~ msgstr "Datum datoteke je promijenjen %s" diff --git a/po/ca.po b/po/ca.po new file mode 100644 index 0000000..065d8db --- /dev/null +++ b/po/ca.po @@ -0,0 +1,2820 @@ +# Catalan translation of APT. +# Copyright © 2002, 2003, 2004, 2005, 2006 Software in the Public Interest, Inc. +# Antoni Bella Perez , 2002, 2003. +# Matt Bonner , 2003. +# Jordi Mallach , 2004, 2005, 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: apt 0.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-02-05 22:00+0100\n" +"Last-Translator: Jordi Mallach \n" +"Language-Team: Catalan \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "El paquet %s versió %s té una dependència sense satisfer:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "No s'ha trobat el paquet %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Nombre total de paquets: " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Paquets normals: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Paquets virtuals purs: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Paquets virtuals únics: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Paquets virtuals mixtes: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Falten: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Total de versions diferents: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Total de dependències: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Total de relacions versió/fitxer: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Total dels mapes aportats: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Total de cadenes globals: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Total de l'espai per a dependències de versió: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Total de l'espai desperdiciat: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Total de l'espai atribuit a: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "El fitxer %s del paquet està desincronitzat." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Heu de donar exactament un patró" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "No s'han trobat paquets" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Fitxers de paquets:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "" +"Memòria cau no sincronitzada, no es pot fer x-ref a un fitxer del paquet" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Paquets etiquetats:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(no trobat)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Instal·lat: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(cap)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Candidat: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Etiqueta del paquet: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Taula de versió:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s per a %s %s compilat el %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Ús: apt-cache [opcions] ordre\n" +" apt-cache [opcions] add fitxer1 [fitxer2 ...]\n" +" apt-cache [opcions] showpkg paquet1 [paquet2 ...]\n" +" apt-cache [opcions] showsrc paquet1 [paquet2 ...]\n" +"\n" +"apt-cache és una eina usada per a manipular fitxers binaris en\n" +"el cau d'APT, i així poder consultar-ne la informació\n" +"\n" +"Ordres:\n" +" add - Afegeix un fitxer de paquet a la memòria cau de les fonts\n" +" gencaches - Crea la memòria cau de tots dos, paquet i font\n" +" showpkg - Mostra alguna informació general d'un sol paquet\n" +" showsrc - Mostra un registre de les fonts\n" +" stats - Mostra algunes estadístiques bàsiques\n" +" dump - Mostra el fitxer sencer en un format concís\n" +" dumpavail - Genera un registre llegible a stdout\n" +" unmet - Mostra dependències sense satisfer\n" +" search - Cerca en la llista de paquets per un patró d'expressió regular\n" +" show - Mostra un registre llegible pel paquet\n" +" depends - Mostra informació de dependències (en cru) d'un paquet\n" +" rdepends - Mostra informació de dependències enrere d'un paquet\n" +" pkgnames - Llista els noms de tots els paquets\n" +" dotty - Genera gràfiques del paquet per a GraphVis\n" +" xvcg - Genera gràfiques del paquet per a xvcg\n" +" policy - Mostra configuració de política\n" +"\n" +"Opcions:\n" +" -h Aquest text d'ajuda.\n" +" -p=? La memòria cau de paquets.\n" +" -s=? La memòria cau de la font.\n" +" -q Inhabilita l'indicatiu de progres.\n" +" -i Sols mostra dependències importants d'una ordre inadequada.\n" +" -c=? Llegeix aquest fitxer de configuració\n" +" -o=? Estableix una opció de conf arbitrària, p.ex. -o dir::cache=/tmp\n" +"Consulteu les pàgines del manual apt-cache(8) i apt.conf(5) per a més " +"informació.\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "Doneu un nom per a aquest disc, com per exemple «Debian 2.1r1 Disc 1»" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Inseriu un disc en la unitat i premeu Intro" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Repetiu aquest procés per a la resta de CD del vostre joc." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Els arguments no són en parells" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Ús: apt-config [opcions] ordre\n" +"\n" +"apt-config és una simple eina per a llegir el fitxer de configuració d'APT\n" +"\n" +"Ordres:\n" +" shell - Mode shell\n" +" dump - Mostra la configuració\n" +"\n" +"Opcions:\n" +" -h Aquest text d'ajuda.\n" +" -c=? Llegeix aquest fitxer de configuració\n" +" -o=? Estableix una opció de conf arbitrària, p.ex. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s no és un paquet DEB vàlid." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Ús: apt-extracttemplates fitxer1 [fitxer2 ...]\n" +"\n" +"apt-extracttemplates és una eina per a extreure informació de\n" +"configuració i plantilles dels paquets debian\n" +"\n" +"Opcions:\n" +" -h Aquest text d'ajuda.\n" +" -t Estableix el directori temporal\n" +" -c=? Llegeix aquest fitxer de configuració\n" +" -o=? Estableix una opció de conf arbitrària, p.e. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "No es pot escriure en %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "No es pot determinar la versió de debconf. Està instal·lat debconf?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "La llista de les extensions dels paquets és massa llarga" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "S'ha produït un error en processar el directori %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "La llista d'extensions de les fonts és massa llarga" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "S'ha produït un error en escriure la capçalera al fitxer de continguts" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "S'ha produït un error en processar el fitxer de continguts %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Forma d'ús: apt-ftparchive [opcions] ordre\n" +"Ordres: packages camí_binaris [fitxer_substitucions prefix_camí]]\n" +" sources camí_fonts [fitxer_substitucions [prefix_camí]]\n" +" contents camí\n" +" release camí\n" +" generate config [grups]\n" +" clean config\n" +"\n" +"apt-ftparchive genera fitxers d'índex per als arxius de Debian.\n" +"Gestiona molts estils per a generar-los, des dels completament automàtics\n" +"als substituts funcionals per dpkg-scanpackages i dpkg-scansources.\n" +"\n" +"apt-ftparchive genera fitxers Package des d'un arbre de .deb. El\n" +"fitxer Package conté tots els camps de control de cada paquet així com\n" +"la suma MD5 i la mida del fitxer. Es suporten els fitxers de substitució\n" +"per a forçar el valor de Prioritat i Secció.\n" +"\n" +"D'un mode semblant, apt-ftparchive genera fitxers Sources des d'un arbre\n" +"de .dsc. Es pot utilitzar l'opció --source-override per a especificar un\n" +"fitxer de substitucions de src.\n" +"\n" +"L'ordre «packages» i «sources» hauria d'executar-se en l'arrel de\n" +"l'arbre. CamíBinaris hauria de ser el punt base de la recerca recursiva\n" +"i el fitxer de substitucions hauria de contenir senyaladors de substitució.\n" +"Prefixcamí s'afegeix als camps del nom de fitxer si està present.\n" +"Exemple d'ús a l'arxiu de Debian:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Opcions:\n" +" -h Aquest text d'ajuda\n" +" --md5 Generació del control MD5\n" +" -s=? Fitxer de substitucions per a fonts\n" +" -q Silenciós\n" +" -d=? Selecciona la base de dades de memòria cau opcional\n" +" --no-delink Habilita el mode de depuració delink\n" +" --contents Genera el fitxer amb els continguts de control\n" +" -c=? Llegeix aquest fitxer de configuració\n" +" -o=? Estableix una opció de configuració arbitrària" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "No s'ha trobat cap selecció" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "No es troben alguns fitxers dins del grup de fitxers del paquet `%s'" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "La base de dades està corrompuda, fitxer renomenat a %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "La BD és vella, s'està intentant actualitzar %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"El format de la base de dades és invàlid. Si heu actualitzat des d'una " +"versió més antiga de l'apt, eliminieu i torneu a crear la base de dades." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "No es pot obrir el fitxer de DB %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "No es pot determinar l'estat de %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Arxiu sense registre de control" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "No es pot aconseguir un cursor" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "A: No es pot llegir el directori %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "A: No es pot veure l'estat %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "A: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E: Els errors s'apliquen al fitxer " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "No s'ha pogut resoldre %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "L'arbre està fallant" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "No s'ha pogut obrir %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " DeLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "No s'ha pogut llegir l'enllaç %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "No s'ha pogut alliberar %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** No s'ha pogut enllaçar %s a %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " DeLink s'ha arribat al límit de %sB.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Arxiu sense el camp paquet" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s no té una entrada dominant\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " el mantenidor de %s és %s, no %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s no té una entrada dominant de font\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s no té una entrada dominant de binari\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Error intern, no s'ha pogut localitzar al membre %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - No s'ha pogut assignar espai en memòria" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "No es pot obrir %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Línia predominant %s línia malformada %lu núm 1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Línia predominant %s línia malformada %lu núm 2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Línia predominant %s línia malformada %lu núm 3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "No s'ha pogut llegir la línia predominant del fitxer %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Algorisme de compressió desconegut '%s'" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "L'eixida comprimida %s necessita un joc de compressió" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "No s'ha pogut crear el conducte IPC al subprocés" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "No s'ha pogut crear FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "No s'ha pogut bifurcar" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Comprimeix el fil" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "S'ha produït un error intern, no s'ha pogut crear %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "No s'ha pogut crear el subprocés IPC" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "No s'ha pogut executar el compressor " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "decompressor" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "Ha fallat l'E/S del subprocés sobre el fitxer" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "No s'ha pogut llegir mentre es calculava la suma MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "S'ha trobat un problema treient l'enllaç %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "No s'ha pogut canviar el nom de %s a %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "S" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "S'ha produït un error de compilació de l'expressió regular - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Els següents paquets tenen dependències sense satisfer:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "però està instal·lat %s" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "però s'instal·larà %s" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "però no és instal·lable" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "però és un paquet virtual" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "però no està instal·lat" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "però no serà instal·lat" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " o" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "S'instal·laran els següents paquets NOUS:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "S'ELIMINARAN els següents paquets:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "S'han mantingut els següents paquets:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "S'actualitzaran els següents paquets:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Es DESACTUALITZARAN els següents paquets:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Es canviaran els següents paquets mantinguts:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (per %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"AVÍS: Els següents paquets essencials seran eliminats.\n" +"Això NO s'ha de fer a menys que sapigueu exactament el que esteu fent!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu actualitzats, %lu nous a instal·lar, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu reinstal·lats, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu desactualitzats, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu a eliminar i %lu no actualitzats.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu no instal·lats o eliminats completament.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "S'estan corregint les dependències..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " ha fallat." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "No es poden corregir les dependències" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "No es pot minimitzar el joc de versions revisades" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Fet" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "Potser voldreu executar `apt-get -f install' per a corregir-ho." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Dependències sense satisfer. Proveu-ho usant -f." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "AVÍS: No es poden autenticar els següents paquets!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "S'ha descartat l'avís d'autenticació.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Voleu instal·lar aquests paquets sense verificar-los [s/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "No s'ha pogut autenticar alguns paquets" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Hi ha problemes i s'ha usat -y sense --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "" +"S'ha produït un error intern, s'ha cridat a InstallPackages amb paquets " +"trencats!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Els paquets necessiten ser eliminats però Remove està inhabilitat." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "S'ha produït un error intern, l'ordenació no ha acabat" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "No és possible blocar el directori de descàrrega" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "No s'ha pogut llegir la llista de les fonts." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"Què estrany... les mides no coincideixen, informeu a apt@packages.debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Es necessita obtenir %sB/%sB d'arxius.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Es necessita obtenir %sB d'arxius.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "Després de desempaquetar s'usaran %sB d'espai en disc addicional.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Després de desempaquetar s'alliberaran %sB d'espai en disc.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "No s'ha pogut determinar l'espai lliure en %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "No teniu prou espai lliure en %s." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "Es va especificar Trivial Only però aquesta operació no és trivial." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Sí, fes el que et dic!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Esteu a punt de fer quelcom potencialment nociu.\n" +"Per a continuar escriviu la frase «%s»\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Avortat." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Voleu continuar [S/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "No s'ha pogut obtenir %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Alguns fitxers no s'han pogut descarregar" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Descàrrega completa i en mode de només descàrrega" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"No es poden descarregar alguns arxius, potser executant apt-get update o " +"intenteu-ho amb --fix-missing." + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing i medi d'intercanvi actualment no estan suportats" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "No es poden corregir els paquets que falten." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "S'està avortant la instal·lació." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Nota: s'està seleccionant %s en comptes de %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" +"S'està ometent %s, ja està instal·lat i l'actualització no està establerta.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "El paquet %s no està instal·lat, així que no s'eliminarà\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "El paquet %s és un paquet virtual proveït per:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Instal·lat]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Necessiteu seleccionar-ne un explícitament per a instal·lar-lo." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"El paquet %s no té versió disponible, però un altre paquet\n" +"en fa referència. Això normalment vol dir que el paquet falta,\n" +"s'ha tornat obsolet o només és disponible des d'una altra font.\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Tot i que els següents paquets el reemplacen:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "El paquet %s no té candidat d'instal·lació" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "" +"No es possible la reinstal·lació del paquet %s, no es pot descarregar.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s ja es troba en la versió més recent.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "No s'ha trobat la versió puntual «%s» per a «%s»" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "No s'ha trobat la versió «%s» per a «%s»" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Versió seleccionada %s (%s) per a %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "L'ordre update no pren arguments" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "No es pot blocar el directori de la llista" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"No es poden descarregar alguns fitxers índex, s'han ignorat o en el seu lloc " +"s'han usat els antics." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Error intern, AllUpgrade ha trencat coses" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "No s'ha pogut trobar el paquet %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Nota: s'està seleccionant %s per a l'expressió regular '%s'\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "Potser voldreu executar `apt-get -f install' per a corregir-ho:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Dependències insatisfetes. Intenteu 'apt-get -f install' sense paquets (o " +"especifiqueu una solució)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"No s'han pogut instal·lar alguns paquets. Això pot ser degut a que vàreu\n" +"requerir una situació imposible o a que esteu usant la distribució\n" +"unstable i alguns paquets requerits encara no han estat creats o bé\n" +"encara no els hi han afegit." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Degut a que sols heu requerit una única operació, serà molt\n" +"probable que el paquet no sigui instal·lable i que s'hagi d'emetre\n" +"un informe d'error en contra d'aquest per a arxivar-lo." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "La següent informació pot ajudar-vos a resoldre la situació:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Paquets trencats" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "S'instal·laran els següents paquets extres:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Paquets suggerits:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Paquets recomanats:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "S'està calculant l'actualització... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Ha fallat" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Fet" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "" +"S'ha produït un error intern, el solucionador de problemes ha trencat coses" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "Haureu d'especificar un paquet de codi font per a descarregar" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "No es pot trobar un paquet de fonts per a %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "S'està ometent el fitxer ja descarregat «%s»\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "No teniu prou espai lliure en %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Es necessita descarregar %sB/%sB d'arxius font.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Es necessita descarregar %sB d'arxius font.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Font descarregada %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "No s'ha pogut descarregar alguns arxius." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "" +"S'està ometent el desempaquetament de les fonts que ja ho estan en %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "L'ordre de desempaquetar «%s» ha fallat.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Comproveu si el paquet «dpkgdev» està instal·lat.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "L'ordre de construir «%s» ha fallat.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Ha fallat el procés fill" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"S'ha d'especificar un paquet per a verificar les dependències de construcció " +"per a" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "" +"No es pot obtenir informació sobre les dependències de construcció per a %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s no té dependències de construcció.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"La dependència %s en %s no es pot satisfer per que no es pot trobar el " +"paquet %s" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"La dependència %s per a %s no es pot satisfer per que cap versió del paquet %" +"s pot satisfer els requeriments de versions" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"No s'ha pogut satisfer la dependència %s per a %s: El paquet instal·lat %s " +"és massa nou" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "No s'ha pogut satisfer la dependència %s per a %s: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "No s'han pogut satisfer les dependències de construcció per a %s" + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "No es poden processar les dependències de construcció" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Mòduls suportats:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Forma d'ús: apt-get [opcions] ordre\n" +" apt-get [opcions] install|remove paq1 [paq2 ...]\n" +" apt-get [opcions] source paq1 [paq2 ...]\n" +"\n" +"apt-get és una simple interfície de línia d'ordres per a\n" +"descarregar i instal·lar paquets. Les ordres més freqüents\n" +"són update i install.\n" +"\n" +"Ordres:\n" +" update - Descarrega llistes noves dels paquets\n" +" upgrade - Realitza una actualització\n" +" install - Instal·la nous paquets (el paquet serà libc6 no libc6.deb)\n" +" remove - Elimina paquets\n" +" source - Descarrega arxius font\n" +" build-dep - Configura dependències de construcció pels paquets font\n" +" dist-upgrade - Actualitza la distribució, mireu apt-get(8)\n" +" dselect-upgrade - Segueix les seleccions de dselect\n" +" clean - Esborra els fitxers arxiu descarregats\n" +" autoclean - Esborra els fitxers arxiu descarregats antics\n" +" check - Verifica que no hi hagi dependències sense satisfer\n" +"\n" +"Opcions:\n" +" -h Aquest text d'ajuda.\n" +" -q Eixida a la bitàcola - sense indicatiu de progrés\n" +" -qq Sense eixida, excepte els errors\n" +" -d Sols descarrega - NO instal·la o desempaqueta arxius\n" +" -s No actua. Realitza les ordres en mode de simulació\n" +" -y Assumeix que Sí per a totes les preguntes, fa que no es pregunti\n" +" -f Intenta seguir si la comprovació d'integritat falla\n" +" -m Intenta seguir si no es localitzen els arxius\n" +" -u Mostra una llista dels paquets actualitzats també\n" +" -b Construeix des del paquet font després de descarregar-lo\n" +" -V Mostra els números de versió detallada\n" +" -c=? Llegeix aquest fitxer de configuració\n" +" -o=? Estableix una opció de configuració arbitrària, p.ex.\n" +" -o dir::cache=/tmp\n" +"Consulteu el manual apt-get(8), sources.list(5) i apt.conf(5)\n" +"per a més informació i opcions\n" +" Aquest APT té tots els Poders de Super Vaca.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Obj " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Des:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ign " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Err " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "%sB descarregats en %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Treballant]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"El medi ha canviat: inseriu el disc amb l'etiqueta\n" +" «%s»\n" +"en la unitat «%s» i premeu Intro\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Registre del paquet desconegut!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Ús: apt-sortpkgs [opcions] fitxer1 [fitxer2 ...]\n" +"\n" +"apt-sortpkgs és una simple eina per a ordenar fitxers de paquets.\n" +"L'opció -s s'usa per a indicar quin tipus de fitxer és.\n" +"\n" +"Opcions:\n" +" -h Aquest text d'ajuda.\n" +" -s Usar l'ordenació de fitxers font\n" +" -c=? Llegeix aquest fitxer de configuració\n" +" -o=? Estableix una opció de configuració, p.ex: -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Paràmetre establert incorrecte!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Premeu Intro per a continuar." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Alguns errors al desempaquetar. Puc configurar" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "" +"els paquets que estan instal·lats. Això pot resultar en errors duplicacats" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" +"o errors causats per dependències sense satisfer. Aquest està bé, sols els " +"errors" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"són importants abans d'aquest missatge. Si us plau, arregleu-los i torneu a " +"executar [I]nstall una altra vegada" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "S'està fusionant la informació disponible" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "No es poden crear els conductes" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "No es pot executar el gzip " + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Arxiu corromput" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "La suma de comprovació de tar ha fallat, arxiu corromput" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Capçalera TAR desconeguda del tipus %u, membre %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Signatura de l'arxiu no vàlida" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Error llegint la capçalera del membre de l'arxiu" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Capçalera del membre de l'arxiu no vàlida" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "L'arxiu és massa petit" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Ha fallat la lectura de les capçaleres de l'arxiu" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "DropNode crida a un node que encara està enllaçat" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "No s'ha trobat l'element diseminat!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "No s'ha pogut assignar la desviació" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "S'ha produït un error intern en AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "S'està intentant sobreescriure una desviació, %s -> %s i %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Afegit doble d'una desviació %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Fitxer de conf. duplicat %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "No s'ha pogut escriure el fitxer %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Ha fallat el tancament del fitxer %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "La ruta %s és massa llarga" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "S'està desempaquetant %s més d'una vegada" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "El directori %s està desviat" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "El paquet està intentant escriure en l'objectiu desviat %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "La ruta de desviació és massa llarga" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "El directori %s està sent reemplaçat per un no-directori" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "No s'ha trobat el node dins de la taula" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "La ruta és massa llarga" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "S'està sobreescrivint el corresponent paquet sense versió per a %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "El fitxer %s/%s sobreescriu al que està en el paquet %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "No es pot llegir %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "No es pot veure l'estat de %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "No es pot eliminar %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "No es pot crear %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "No s'ha pogut fer «stat» de %sinfo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "" +"La info i els directoris temp necessiten estar en el mateix sistema de " +"fitxers" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "S'està llegint la llista de paquets" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "No s'ha pogut canviar al directori d'admininstració %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "S'ha produït un error intern en obtenir un nom de paquet" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "S'està llegint el llistat de fitxers" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"No s'ha pogut obrir la llista del fitxer «%sinfo/%s». Si no podeu restaurar " +"aquest fitxer, creeu-lo buit i torneu a instal·lar immediatament la mateixa " +"versió del paquet!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "No s'ha pogut llegir la llista del fitxer %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "S'ha produït un error en obtenir un node" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "S'ha produït un error en obrir el fitxer de desviació %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "El fitxer de desviació està corrupte" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Línia no vàlida en el fitxer de desviació: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "S'ha produït un error intern en afegir una desviació" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "Primer s'ha d'inicialitzar la memòria cau d'aquest paquet" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "No s'ha trobat una capçalera Package:, desplaçament %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Secció ConfFile dolenta en el fitxer d'estat. Desplaçament %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "S'ha produït un error en analitzar la suma MD5. Desplaçament %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Aquest no és un arxiu DEB vàlid, falta el membre «%s»" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "Aquest no és un arxiu DEB vàlid, falten els membres «%s» o «%s»" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "No s'ha pogut canviar a %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "S'ha produït un error intern, no s'ha trobat el membre" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "No s'ha trobat un fitxer de control vàlid" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "El fitxer de control no es pot analitzar" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "No es pot llegir la base de dades del cdrom %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Si us plau, useu apt-cdrom per a que aquest CD sigui reconegut per APT. No " +"pot usar-se apt-get update per afegir-ne de nous" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "CD erroni" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "No es pot muntar el CD-ROM en %s, potser estigui encara en ús." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "No s'ha trobat el disc" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Fitxer no trobat" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "L'estat ha fallat" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "No s'ha pogut establir el temps de modificació" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "URI no vàlid, els URI locals no han de començar per //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "S'està accedint a" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "No es pot determinar el nom de la màquina distant" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "No es pot determinar el nom local" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "El servidor ha rebutjat la nostra connexió i ha dit: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "USER ha fallat, el servidor ha dit: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "PASS ha fallat, el servidor ha dit: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"S'ha especificat un servidor intermediari però no un script d'accés, " +"Acquire::ftp::ProxyLogin està buit." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "L'ordre '%s' de l'script d'accés ha fallat, el servidor ha dit: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "TYPE ha fallat, el servidor ha dit: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Temps de connexió finalitzat" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "El servidor ha tancat la connexió" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Error de lectura" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Una resposta ha desbordat la memòria temporal." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Protocol corrumput" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Error d'escriptura" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "No s'ha pogut crear un sòcol" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "No s'ha pogut connectar amb el sòcol de dades, connexió finalitzada" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "No s'ha pogut connectar amb el sòcol passiu." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "gettaddrinfo no es pot obtenir un sòcol que escolte" + +# abastar? huh? jm +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "No s'ha pogut abastar un connector" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "No s'ha pogut escoltar sobre el sòcol" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "No s'ha pogut determinar el nom del sòcol" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "No es pot enviar l'ordre PORT" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "La família d'adreces %u és desconeguda (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT ha fallat, el servidor ha dit: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "S'ha esgotat el temps de connexió al sòcol de dades" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "No es pot acceptar la connexió" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Problema escollint el fitxer" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "No és possible reprendre el fitxer, el servidor ha dit '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "S'ha esgotat el temps d'espera per al sòcol de dades" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Ha fallat la transferència de dades, el servidor ha dit '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Consulta" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "No es pot invocar" + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "S'està connectant amb %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "No s'ha pogut crear un sòcol per a %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "No es pot iniciar la connexió amb %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "No s'ha pogut connectar amb %s:%s (%s), temps de connexió excedit" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "No s'ha pogut connectar amb %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "S'està connectant amb %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "No s'ha pogut resoldre '%s'" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "S'ha produït un error temporal en resoldre '%s'" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Ha passat alguna cosa estranya en resoldre «%s:%s» (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "No es pot connectar amb %s %s:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "No s'ha pogut accedir a l'anell de claus: «%s»" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" +"E: La llista d'arguments d'Acquire::gpgv::Options és massa llarga. S'està " +"sortint." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" +"Error intern: La signatura és correcta, però no s'ha pogut determinar " +"l'emprempta digital de la clau!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "S'ha trobat almenys una signatura invàlida." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" +"No s'ha pogut executar «%s» per a verificar la signatura (està instal·lat el " +"gnupg?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "S'ha produït un error desconegut en executar el gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "Les següents signatures són invàlides:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"Les següents signatures no s'han pogut verificar perquè la clau pública no " +"està disponible:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "No s'ha pogut obrir un conducte per a %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Error llegint des del procés %s" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "S'estan esperant les capçaleres" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "S'ha aconseguit una sola línia de capçalera més de %u caràcters" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Línia de capçalera incorrecta" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "El servidor http ha enviat una capçalera de resposta no vàlida" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "El servidor http ha enviat una capçalera de Content-Length no vàlida" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "El servidor http ha enviat una capçalera de Content-Range no vàlida" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "Aquest servidor http té el suport d'abast trencat" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Format de la data desconegut" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Ha fallat la selecció" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Connexió finalitzada" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Error escrivint en el fitxer d'eixida" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Error escrivint en el fitxer" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Error escrivint en el fitxer" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "Error llegint, el servidor remot ha tancat la connexió" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Error llegint des del servidor" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Capçalera de dades no vàlida" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Ha fallat la connexió" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Error intern" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "No es pot transferir un fitxer buit a memòria" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "No s'ha pogut crear un mapa de memòria de %lu octets" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "No s'ha trobat la selecció %s" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Abreujament de tipus no reconegut: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "S'està obrint el fitxer de configuració %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Línia %d massa llarga (màx %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Error sintàctic %s:%u: No comença el camp amb un nom." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Error sintàctic %s:%u: Etiqueta malformada" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Error sintàctic %s:%u Text extra després del valor" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "Error sintàctic %s:%u: Es permeten directrius només al nivell més alt" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Error sintàctic %s:%u: Hi ha masses fitxers include niats" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Error sintàctic %s:%u: Inclusió des d'aqui" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Error sintàctic %s:%u: Directriu no suportada '%s'" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Error sintàctic %s:%u: Text extra al final del fitxer" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Error!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Fet" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "L'opció de la línia d'ordres '%c' [de %s] és desconeguda." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "No s'entén l'opció de la línia d'ordres %s" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "No és lògica l'opció de la línia d'ordres %s" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "L'opció de la línia d'ordres %s precisa un paràmetre." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "Opció %s: Paràmetre de configuració ha de ser en la forma =" + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "L'opció %s precisa un paràmetre numèric, no '%s'" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "L'opció '%s' és massa llarga" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "El sentit %s no s'entén, proveu 'true' (vertader) o 'false' (fals)." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Operació no vàlida %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "No es pot obtenir informació del punt de muntatge %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "No es pot canviar a %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "No s'ha pogut fer «stat» del cdrom" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "No s'usen blocats per a llegir el fitxer de blocat de sols lectura %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "No es pot resoldre el fixter de blocat %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "No s'usen blocats per al fitxer de blocat %s de muntar nfs" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "No s'ha pogut blocar %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Esperava %s però no hi era" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Sub-procés %s ha rebut una violació de segment." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Sub-procés %s ha retornat un codi d'error (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Sub-procés %s ha eixit inesperadament" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "No s'ha pogut obrir el fitxer %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "llegits, falten %lu per llegir, però no queda res" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "escrits, falten %lu per escriure però no s'ha pogut" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Ha hagut un problema en tancar el fitxer" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Ha hagut un problema en desenllaçar el fitxer" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Ha hagut un problema en sincronitzar el fitxer" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Memòria cau de paquets és buida" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "El fitxer de memòria cau de paquets està corromput" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "El fitxer de memòria cau de paquets és una versió incompatible" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Aquest APT no suporta el sistema de versions '%s'" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "La memòria cau de paquets fou creada per a una arquitectura diferent" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Depén" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Predepén" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Suggereix" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Recomana" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Entra en conflicte" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Reemplaça" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Fa obsolet" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "important" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "requerit" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "estàndard" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "opcional" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "extra" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "S'està construint l'arbre de dependències" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Versions candidates" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Dependències que genera" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "No es pot analitzar el fitxer del paquet %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "No es pot analitzar el fitxer del paquet %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Línia %lu malformada en la llista de fonts %s (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Línia %lu malformada en la llista de fonts %s (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Línia %lu malformada en la llista de fonts %s (analitzant URI)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Línia %lu malformada en la llista de fonts %s (dist absoluta)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Línia %lu malformada en la llista de fonts %s (analitzant dist)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "S'està obrint %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "La línia %u és massa llarga en la llista de fonts %s." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "La línia %u és malformada en la llista de fonts %s (tipus)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "El tipus «%s» no és conegut en la línia %u de la llista de fonts %s" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "La línia %u és malformada en la llista de fonts %s (id del proveïdor)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Aquesta instal·lació requereix eliminar temporalment el paquet essencial %s " +"per qüestió d'un bucle de Conflictes/Pre-dependències. Això sol ser una cosa " +"dolenta, però si realment desitgeu fer-la, activeu l'opció APT::Force-" +"LoopBreak." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "El tipus de fitxer índex '%s', no està suportat" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"El paquet %s necessita ser reinstal·lat, però no se li pot trobar un arxiu." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Error, pkgProblemResolver::Resolve ha generat pauses, això pot haver estat " +"causat per paquets mantinguts." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "" +"No es poden corregir els problemes, teniu paquets mantinguts que estan " +"trencats." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Falta el directori de llistes %spartial." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Falta el directori d'arxiu %spartial." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "S'està obtenint el fitxer %li de %li (falten %s)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "S'està obtenint el fitxer %li de %li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "No s'ha pogut trobar el mètode de control %s." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "El mètode %s no s'ha iniciat correctament" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "Inseriu el disc amb l'etiqueta: «%s» en la unitat «%s» i premeu Intro." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "El sistema d'empaquetament '%s' no està suportat" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "No es pot determinar un tipus de sistema d'empaquetament adequat." + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "No es pot veure l'estat de %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "Heu de posar algunes URI 'font' en el vostre sources.list" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" +"No s'han pogut analitzar o obrir les llistes de paquets o el fitxer d'estat." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "" +"Potser voldreu executar apt-get update per a corregir aquests problemes" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Registre no vàlid en el fitxer de preferències, paquet sense capçalera" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "No s'ha entès el pin de tipus %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "No hi ha prioritat especificada per al pin (o és zero)" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "La memòria cau té un sistema de versions incompatible" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "S'ha produït un error durant el processament de %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "S'ha produït un error durant el processament de %s (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "S'ha produït un error durant el processament de %s (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "S'ha produït un error durant el processament de %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "S'ha produït un error durant el processament de %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "S'ha produït un error durant el processament de %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "S'ha produït un error durant el processament de %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "Uau, heu excedit el nombre de paquets dels que aquest APT és capaç." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "" +"Uau, heu excedit el nombre de versions de les que aquest APT és capaç. " + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" +"Uau, heu excedit el nombre de dependències de les que aquest APT és capaç." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "S'ha produït un error durant el processament de %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "" +"S'ha produït un error durant el processament de %s (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "" +"No s'ha trobat el paquet %s %s en processar les dependències del fitxer" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "No s'ha pogut llegir la llista de paquets font %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "S'estan recollint els fitxers que proveeixen" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "Error d'E/S en desar la memòria cau de la font" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "no s'ha pogut canviar el nom, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "Suma MD5 diferent" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "No hi ha cap clau pública disponible per als següents ID de clau:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"No ha estat possible localitzar un fitxer pel paquet %s. Això podria " +"significar que haureu d'arreglar aquest paquet manualment (segons " +"arquitectura)." + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"No s'ha trobat un fitxer pel paquet %s. Això podria significar que haureu " +"d'arreglar aquest paquet manualment." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"L'índex dels fitxers en el paquet està corromput. Fitxer no existent: camp " +"per al paquet %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "La mida no concorda" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "El camp del proveïdor %s no té una empremta digital" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"S'està utilitzant el punt de muntatge de CD-ROM %s\n" +"S'està muntant el CD-ROM\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "S'està identificant..." + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "S'ha emmagatzemat l'etiqueta: %s\n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "S'està utilitzant el punt de muntatge de CD-ROM %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "S'està desmuntant el CD-ROM\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "S'està esperant al disc...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "S'està muntant el CD-ROM...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "S'està analitzant el disc per a fitxers d'índex...\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "S'han trobat %i índex de paquets, %i índex de fonts i %i signatures\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Aquest no és un nom vàlid, torneu-ho a provar.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"El disc es diu:\n" +"«%s»\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "S'estan copiant les llistes de paquets..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "S'està escrivint una nova llista de fonts\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Les entrades de la llista de fonts per a aquest disc són:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "S'esta desmuntant el CD-ROM..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "S'han escrit %i registres.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "S'han escrit %i registres, on falten %i fitxers.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "S'han escrit %i registres, on hi ha %i fitxers no coincidents\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" +"S'han escrit %i registres, on falten %i fitxers i hi ha %i fitxers no " +"coincidents\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "S'està preparant el paquet %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "S'està desempaquetant %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "S'està preparant per a configurar el paquet %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "S'està configurant el paquet %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "S'ha instal·lat el paquet %s" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "S'està preparant per a l'eliminació del paquet %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "S'està eliminant el paquet %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "S'ha eliminat el paquet %s" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "S'està preparant per a eliminar completament el paquet %s" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "S'ha eliminat completament el paquet %s" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "No s'ha pogut obrir el fitxer %s" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "La connexió s'ha tancat prematurament" + +#~ msgid "File date has changed %s" +#~ msgstr "La data del fitxer ha canviat %s" + +#~ msgid "Reading file list" +#~ msgstr "S'està llegint la llista de fitxers" + +#~ msgid "Could not execute " +#~ msgstr "No s'ha pogut executar " + +#~ msgid "Preparing for remove with config %s" +#~ msgstr "S'està preparant per a eliminar amb la configuració %s" + +#~ msgid "Removed with config %s" +#~ msgstr "S'ha eliminat amb la configuració %s" + +#~ msgid "Unknown vendor ID '%s' in line %u of source list %s" +#~ msgstr "" +#~ "ID del proveïdor '%s' desconeguda en la línia %u de la llista de fonts %s" + +#~ msgid "" +#~ "Some broken packages were found while trying to process build-" +#~ "dependencies for %s.\n" +#~ "You might want to run `apt-get -f install' to correct these." +#~ msgstr "" +#~ "S'han trobat alguns paquets trencats mentre es processaven les\n" +#~ "dependències de construcció per a %s.\n" +#~ "Potser voldreu executar `apt-get -f install' per a corregir-ho." diff --git a/po/cs.po b/po/cs.po new file mode 100644 index 0000000..2c899dd --- /dev/null +++ b/po/cs.po @@ -0,0 +1,2767 @@ +# Czech translation of APT +# This file is put in the public domain. +# Miroslav Kure , 2004-2006. +# +# +msgid "" +msgstr "" +"Project-Id-Version: apt\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-10-04 18:53+0200\n" +"Last-Translator: Miroslav Kure \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Balík %s verze %s má nesplněné závislosti:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Nemohu najít balík %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Celkem názvů balíků: " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Normálních balíků: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Čistě virtuálních balíků: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Jednoduchých virtuálních balíků: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Smíšených virtuálních balíků: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Chybějících: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Celkem různých verzí: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Celkem závislostí: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Celkem vztahů ver/soubor: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Celkem poskytnutých mapování: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Celkem globovaných řetězců: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Celkem místa závislých verzí: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Celkem jalového místa: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Celkem přiřazeného místa: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Soubor balíku %s je Å¡patně synchronizovaný." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Musíte zadat právě jeden vzor" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Nebyly nalezeny žádné balíky" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Soubory balíku:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "Cache není synchronizovaná, nemohu se odkázat na soubor balíku" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Vypíchnuté balíky:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(nenalezeno)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Instalovaná verze: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(žádná)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Kandidát: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Vypíchnutý balík: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Tabulka verzí:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s pro %s %s zkompilován na %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Použití: apt-cache [volby] příkaz\n" +" apt-cache [volby] add soubor1 [soubor2 ...]\n" +" apt-cache [volby] showpkg balík1 [balík2 ...]\n" +" apt-cache [volby] showsrc balík1 [balík2 ...]\n" +"\n" +"apt-cache je nízkoúrovňový nástroj pro manipulaci se soubory ve\n" +"vyrovnávací paměti APTu a pro získávání informací o balících.\n" +"\n" +"Příkazy:\n" +" add - Přidá soubor Packages do zdrojové vyrovnávací paměti\n" +" gencaches - Vybuduje vyrovnávací paměť balíků i zdrojů\n" +" showpkg - Zobrazí obecné informace o balíku\n" +" showsrc - Zobrazí zdrojové záznamy\n" +" stats - Zobrazí základní statistiky\n" +" dump - Zobrazí celý soubor ve zhuÅ¡těné podobě\n" +" dumpavail - Vytiskne na výstup dostupné balíky\n" +" unmet - Zobrazí nesplněné závislosti\n" +" search - V seznamu balíků hledá regulární výraz\n" +" show - Zobrazí informace o balíku\n" +" depends - Zobrazí závislosti balíku\n" +" rdepends - Zobrazí reverzní závislosti balíku\n" +" pkgnames - Vypíše jména vÅ¡ech balíků\n" +" dotty - Vygeneruje grafy ve formátu pro GraphVis\n" +" xvcg - Vygeneruje grafy ve formátu pro xvcg\n" +" policy - Zobrazí nastavenou politiku\n" +"\n" +"Volby:\n" +" -h Tato nápověda.\n" +" -p=? Vyrovnávací paměť balíků.\n" +" -s=? Vyrovnávací paměť zdrojů.\n" +" -q Nezobrazí indikátor postupu.\n" +" -i U příkazu unmet zobrazí pouze důležité závislosti.\n" +" -c=? Načte tento konfigurační soubor\n" +" -o=? Nastaví libovolnou volbu, např. -o dir::cache=/tmp\n" +"Více informací viz manuálové stránky apt-cache(8) a apt.conf(5).\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "Zadejte prosím název tohoto média, např. 'Debian 2.1r1 Disk 1'" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Vložte prosím médium do mechaniky a stiskněte enter" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Tento proces opakujte pro vÅ¡echna zbývající média." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Argumenty nejsou v párech" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Použití: apt-config [volby] příkaz\n" +"\n" +"apt-config je jednoduchý nástroj pro čtení konfiguračního souboru APT\n" +"\n" +"Příkazy:\n" +" shell - Shellový režim\n" +" dump - Zobrazí nastavení\n" +"\n" +"Volby:\n" +" -h Tato nápověda.\n" +" -c=? Načte tento konfigurační soubor\n" +" -o=? Nastaví libovolnou volbu, např. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s není platný DEB balík." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Použití: apt-extracttemplates soubor1 [soubor2 ...]\n" +"\n" +"apt-extracttemplates umí z balíků vytáhnout konfigurační skripty a Å¡ablony\n" +"\n" +"Volby:\n" +" -h Tato nápověda.\n" +" -t Nastaví dočasný adresář\n" +" -c=? Načte tento konfigurační soubor\n" +" -o=? Nastaví libovolnou volbu, např. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Nemohu zapsat do %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Nemohu určit verzi programu debconf. Je debconf nainstalován?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Seznam rozšíření balíku je příliÅ¡ dlouhý" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Chyba zpracování adresáře %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Seznam zdrojových rozšíření je příliÅ¡ dlouhý" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Chyba při zapisování hlavičky do souboru" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Chyba při zpracovávání obsahu %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Použití: apt-ftparchive [volby] příkaz\n" +"Příkazy: packages binárnícesta [souboroverride [prefixcesty]]\n" +" sources zdrojovácesta [souboroverride [prefixcesty]]\n" +" contents cesta\n" +" release cesta\n" +" generate konfiguračnísoubor [skupiny]\n" +" clean konfiguračnísoubor\n" +"\n" +"apt-ftparchive generuje indexové soubory debianích archivů. Podporuje\n" +"několik režimů vytváření - od plně automatického až po funkční ekvivalent\n" +"příkazů dpkg-scanpackages a dpkg-scansources.\n" +"\n" +"apt-ftparchive vytvoří ze stromu .deb souborů soubory Packages. Soubor\n" +"Packages obsahuje kromě vÅ¡ech kontrolních polí každého balíku také jeho\n" +"velikost a MD5 součet. Podporován je také soubor override, kterým můžete \n" +"vynutit hodnoty polí Priority a Section.\n" +"\n" +"Podobně umí apt-ftparchive vygenerovat ze stromu souborů .dsc soubory\n" +"Sources. Volbou --source-override můžete zadat zdrojový soubor override.\n" +"\n" +"Příkazy 'packages' a 'sources' by se měly spouÅ¡tět z kořene stromu.\n" +"BinárníCesta by měla ukazovat na začátek rekurzivního hledání a soubor \n" +"override by měl obsahovat příznaky pro přepis. PrefixCesty, pokud je\n" +"přítomen, je přidán do polí Filename.\n" +"Reálný příklad na archivu Debianu:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Volby:\n" +" -h Tato nápověda\n" +" --md5 Vygeneruje kontrolní MD5\n" +" -s=? Zdrojový soubor override\n" +" -q Tichý režim\n" +" -d=? Vybere volitelnou databázi pro vyrovnávací paměť\n" +" --no-delink Povolí ladicí režim\n" +" --contents Vygeneruje soubor Contents\n" +" -c=? Načte tento konfigurační soubor\n" +" -o=? Nastaví libovolnou volbu" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Žádný výběr nevyhověl" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Některé soubory chybí v balíkovém souboru skupiny %s" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "DB je poruÅ¡ená, soubor přejmenován na %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "DB je stará, zkouším aktualizovat %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"Formát databáze je neplatný. Pokud jste přeÅ¡li ze starší verze apt, databázi " +"prosím odstraňte a poté ji znovu vytvořte." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Nemohu otevřít DB soubor %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Nemohu vyhodnotit %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Archiv nemá kontrolní záznam" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Nemohu získat kurzor" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: Nemohu číst adresář %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "W: Nemohu vyhodnotit %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E: Chyby se týkají souboru " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Chyba při zjiÅ¡Å¥ování %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Průchod stromem selhal" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Nelze otevřít %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr "Odlinkování %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Nemohu přečíst link %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Nemohu odlinkovat %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Nezdařilo se slinkovat %s s %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " Odlinkovací limit %sB dosažen.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Archiv nemá pole Package" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s nemá žádnou položku pro override\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " správce %s je %s, ne %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s nemá žádnou zdrojovou položku pro override\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s nemá ani žádnou binární položku pro override\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Vnitřní chyba, nemohu najít část %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Selhal pokus o přidělení paměti" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Nemohu otevřít %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Zkomolený soubor %s, řádek %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Zkomolený soubor %s, řádek %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Zkomolený soubor %s, řádek %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Nezdařilo se přečíst override soubor %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Neznámý kompresní algoritmus '%s'" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Komprimovaný výstup %s potřebuje kompresní sadu" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Selhalo vytvoření meziprocesové roury k podprocesu" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Selhalo vytvoření FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Volání fork() se nezdařilo" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Komprimovat potomka" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Interní chyba, nezdařilo se vytvořit %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Nemohu vytvořit podproces IPC" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Nezdařilo se spustit kompresor " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "dekompresor" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "V/V operace s podprocesem/souborem selhala" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Chyba čtení při výpočtu MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Problém s odlinkováním %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Selhalo přejmenování %s na %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "Y" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Chyba při kompilaci regulárního výrazu - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Následující balíky mají nesplněné závislosti:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "ale %s je nainstalován" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "ale %s se bude instalovat" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "ale nedá se nainstalovat" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "ale je to virtuální balík" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "ale není nainstalovaný" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "ale nebude se instalovat" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " nebo" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Následující NOVÉ balíky budou nainstalovány:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Následující balíky budou ODSTRANĚNY:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Následující balíky jsou podrženy v aktuální verzi:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Následující balíky budou aktualizovány:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Následující balíky budou DEGRADOVÁNY:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Následující podržené balíky budou změněny:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (kvůli %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"VAROVÁNÍ: Následující nezbytné balíky budou odstraněny.\n" +"Pokud přesně nevíte, co děláte, NEDĚLEJTE to!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu aktualizováno, %lu nově instalováno, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu reinstalováno, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu degradováno, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu k odstranění a %lu neaktualizováno.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu instalováno nebo odstraněno pouze částečně.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Opravuji závislosti..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " selhalo." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Nemohu opravit závislosti" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Nemohu minimalizovat sadu pro aktualizaci" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Hotovo" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "Pro opravení můžete spustit `apt-get -f install'." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Nesplněné závislosti. Zkuste použít -f." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "VAROVÁNÍ: Následující balíky nemohou být autentizovány!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Autentizační varování potlačeno.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Instalovat tyto balíky bez ověření [y/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Některé balíky nemohly být autentizovány" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Vyskytly se problémy a -y bylo použito bez --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "Vnitřní chyba, InstallPackages byl zavolán s poruÅ¡enými balíky!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Balík je potřeba odstranit ale funkce Odstranit je vypnuta." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Vnitřní chyba, třídění nedoběhlo do konce" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Nemohu zamknout adresář pro stahování" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "Nelze přečíst seznam zdrojů." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"Jak podivné... velikosti nesouhlasí, ohlaste to na apt@packages.debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Potřebuji stáhnout %sB/%sB archivů.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Potřebuji stáhnout %sB archivů.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "Po rozbalení bude na disku použito dalších %sB.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Po rozbalení bude na disku uvolněno %sB.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Nemohu určit volné místo v %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "V %s nemáte dostatek volného místa." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "Udáno 'pouze triviální', ovÅ¡em toto není triviální operace." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Ano, udělej to tak, jak říkám!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Chystáte se vykonat něco potenciálně Å¡kodlivého.\n" +"Pro pokračování opiÅ¡te frázi '%s'\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "PřeruÅ¡eno." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Chcete pokračovat [Y/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Selhalo stažení %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Některé soubory nemohly být staženy" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Stahování dokončeno v režimu pouze stáhnout" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Nemohu stáhnout některé archivy. Možná spusÅ¥te apt-get update nebo zkuste --" +"fix-missing?" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing a výměna média nejsou momentálně podporovány" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Nemohu opravit chybějící balíky." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "PřeruÅ¡uji instalaci." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Pozn: Vybírám %s místo %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "Přeskakuji %s, protože je již nainstalován.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "Balík %s není nainstalován, nelze tedy odstranit\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Balík %s je virtuální balík poskytovaný:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr "[Instalovaný]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Měli byste explicitně vybrat jeden k instalaci." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Balík %s není dostupný, ale jiný balík se na něj odkazuje.\n" +"To může znamenat že balík chybí, byl zastarán, nebo je dostupný\n" +"pouze z jiného zdroje\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Nicméně následující balíky jej nahrazují:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Balík %s nemá kandidáta pro instalaci" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "Reinstalace %s není možná, protože nelze stáhnout.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s je již nejnovější verze.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Vydání '%s' pro '%s' nebylo nalezeno" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Verze '%s' pro '%s' nebyla nalezena" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Vybraná verze %s (%s) pro %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "Příkaz update neakceptuje žádné argumenty" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Nemohu uzamknout list adresář" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Některé indexové soubory se nepodařilo stáhnout, jsou ignorovány, nebo jsou " +"použity starší verze." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Vnitřní chyba, AllUpgrade pokazil věci" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Nemohu najít balík %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Pozn: vybírám %s pro regulární výraz '%s'\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "Pro opravení následujících můžete spustit `apt-get -f install':" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Nesplněné závislosti. Zkuste spustit 'apt-get -f install' bez balíků (nebo " +"navrhněte řeÅ¡ení)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Některé balíky nemohly být instalovány. To může znamenat, že požadujete\n" +"nemožnou situaci, nebo, pokud používáte nestabilní distribuci, že\n" +"vyžadované balíky jeÅ¡tě nebyly vytvořeny nebo přesunuty z Příchozí fronty." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Protože jste požádali pouze o jednoduchou operaci, je téměř jisté, že\n" +"balík není instalovatelný a měl byste o tom zaslat hlášení o chybě\n" +"(bug report)." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "Následující informace vám mohou pomoci vyřeÅ¡it tuto situaci:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "PoÅ¡kozené balíky" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Následující extra balíky budou instalovány:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Navrhované balíky:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Doporučované balíky:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Propočítávám aktualizaci... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Selhalo" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Hotovo" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "Vnitřní chyba, řeÅ¡itel problémů pokazil věci" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "Musíte zadat aspoň jeden balík, pro který se stáhnou zdrojové texty" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Nemohu najít zdrojový balík pro %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Přeskakuji dříve stažený soubor '%s'\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Na %s nemáte dostatek volného místa" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Potřebuji stáhnout %sB/%sB zdrojových archivů.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Potřebuji stáhnout %sB zdrojových archivů.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Stáhnout zdroj %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Stažení některých archivů selhalo." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Přeskakuji rozbalení již rozbaleného zdroje v %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Příkaz pro rozbalení '%s' selhal.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Zkontrolujte, zda je nainstalován balíček 'dpkg-dev'.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Příkaz pro sestavení '%s' selhal.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Synovský proces selhal" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"Musíte zadat alespoň jeden balík, pro který budou kontrolovány závislosti " +"pro sestavení" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Nemohu získat závislosti pro sestavení %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s nemá žádné závislosti pro sestavení.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "%s závislost pro %s nemůže být splněna, protože balík %s nebyl nalezen" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"%s závislost pro %s nemůže být splněna protože není k dispozici verze balíku " +"%s, která odpovídá požadavku na verzi" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Selhalo splnění %s závislosti pro %s: Instalovaný balík %s je příliÅ¡ nový" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Selhalo splnění %s závislosti pro %s: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Závislosti pro sestavení %s nemohly být splněny." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Chyba při zpracování závislostí pro sestavení" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Podporované moduly:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Použití: apt-get [volby] příkaz\n" +" apt-get [volby] install|remove balík1 [balík2 ...]\n" +" apt-get [volby] source balík1 [balík2 ...]\n" +"\n" +"apt-get je jednoduché řádkové rozhraní pro stahování a instalování\n" +"balíků. Nejpoužívanější příkazy jsou update a install.\n" +"\n" +"Příkazy:\n" +" update - Získá seznam nových balíků\n" +" upgrade - Provede aktualizaci\n" +" install - Instaluje nové balíky (balík je libc6, ne libc6.deb)\n" +" remove - Odstraní balíky\n" +" source - Stáhne zdrojové archivy\n" +" build-dep - Pro zdrojové balíky nastaví build-dependencies\n" +" dist-upgrade - Aktualizace distribuce, viz apt-get(8)\n" +" dselect-upgrade - Řídí se podle výběru v dselectu\n" +" clean - Smaže stažené archivy\n" +" autoclean - Smaže staré stažené archivy\n" +" check - Ověří, zda se nevyskytují poÅ¡kozené závislosti\n" +"\n" +"Volby:\n" +" -h Tato nápověda\n" +" -q Nezobrazí indikátor postupu - pro záznam\n" +" -qq Nezobrazí nic než chyby\n" +" -d Pouze stáhne - neinstaluje ani nerozbaluje archivy\n" +" -s Pouze simuluje prováděné akce\n" +" -y Na vÅ¡echny otázky odpovídá Ano\n" +" -f Zkusí pokračovat, i když selže kontrola integrity\n" +" -m Zkusí pokračovat, i když se nepodaří najít archivy\n" +" -u Zobrazí také seznam aktualizovaných balíků\n" +" -b Po stažení zdrojového balíku jej i zkompiluje\n" +" -V Zobrazí čísla verzí\n" +" -c=? Načte tento konfigurační soubor\n" +" -o=? Nastaví libovolnou volbu, např. -o dir::cache=/tmp\n" +"Více voleb naleznete v manuálových stránkách apt-get(8), sources.list(5)\n" +"a apt.conf(5).\n" +" Tato APT má schopnosti svaté krávy.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Cíl " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Mám:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ign " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Err " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Staženo %sB za %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Pracuji]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Výměna média: Vložte disk nazvaný\n" +" '%s'\n" +"do mechaniky '%s' a stiskněte enter\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Neznámý záznam o balíku!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Použití: apt-sortpkgs [volby] soubor1 [soubor2 ...]\n" +"\n" +"apt-sortpkgs je jednoduchý nástroj pro setřídění souborů Packages.\n" +"Volbou -s volíte typ souboru.\n" +"\n" +"Volby:\n" +" -h Tato nápověda\n" +" -s Setřídí zdrojový soubor\n" +" -c=? Načte tento konfigurační soubor\n" +" -o=? Nastaví libovolnou volbu, např. -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Chybné standardní nastavení!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Pro pokračování stiskněte enter." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Během rozbalování se vyskytly chyby. Zkusím teď nakonfigurovat" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "balíky, které se nainstalovaly. To může způsobit chybové hlášky" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "o nesplněných závislostech. To je v pořádku, důležité jsou pouze" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "chyby nad touto hláškou. Opravte je a poté znovu spusÅ¥te [I]nstalovat" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Slučuji dostupné informace" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Selhalo vytvoření roury" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Selhalo spuÅ¡tění gzipu " + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "PoruÅ¡ený archiv" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Kontrolní součet taru selhal, archiv je poÅ¡kozený" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Neznámá hlavička TARu typ %u, člen %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Neplatný podpis archivu" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Chyba při čtení záhlaví prvku archivu" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Neplatné záhlaví prvku archivu" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Archiv je příliÅ¡ krátký" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Chyba při čtení hlaviček archivu" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "Pokus o uvolnění uzlu (DropNode) na stále propojeném uzlu" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Nemohu lokalizovat hashovací prvek!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Nemohu alokovat diverzi" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Vnitřní chyba při AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Pokus o přepsání diverze, %s -> %s a %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Dvojí přidání diverze %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Duplicitní konfigurační soubor %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Selhal zápis souboru %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Selhalo zavření souboru %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "Cesta %s je příliÅ¡ dlouhá" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Rozbaluji %s vícekrát" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "Adresář %s je odkloněn" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "Balík se pokouší zapisovat do diverzního cíle %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Diverzní cesta je příliÅ¡ dlouhá" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "Adresář %s bude nahrazen neadresářem" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Nemohu nalézt uzel v jeho hashovacím kbelíku" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Cesta je příliÅ¡ dlouhá" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Přepsat vyhovující balík bez udání verze pro %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Soubor %s/%s přepisuje ten z balíku %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Nemohu číst %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Nemohu vyhodnotit %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Selhalo odstranění %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Nemohu vytvořit %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Selhalo vyhodnocení %sinfo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "Adresáře info a temp musí být na stejném souborovém systému" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Čtu seznamy balíků" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Nepodařilo se změnit na admin adresář %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Vnitřní chyba při získávání jména balíku" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Čtu výpis souborů" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Selhalo otevření souboru seznamů '%sinfo/%s'. Pokud nemůžete tento soubor " +"obnovit, vytvořte jej nový prázdný a ihned znovu nainstalujte tu samou verzi " +"balíku!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Chyba při čtení souboru se seznamy %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Vnitřní chyba při získávání uzlu" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Selhalo otevření souboru s diverzemi %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Diverzní soubor je poruÅ¡en" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Neplatná řádka v diverzním souboru: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Vnitřní chyba při přidávání diverze" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "Cache balíků se musí nejprve inicializovat" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Chyba při hledání Balíku: Hlavička, offset %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Å patná sekce ConfFile ve stavovém souboru na pozici %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Chyba při zpracování MD5. Offset %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Toto není platný DEB archiv, chybí část '%s'" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "Toto není platný DEB archiv, neobsahuje část '%s' ani '%s'" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Nemohu přejít do %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Vnitřní chyba, nemohu nalézt člen" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Nelze najít platný kontrolní soubor" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Nezpracovatelný kontrolní soubor" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Nemohu číst databázi na cdrom %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Pro přidání CD do APTu použijte apt-cdrom. apt-get update nelze využít pro " +"přidávání nových CD." + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "Chybné CD" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "Nemohu odpojit CD-ROM v %s - možná se stále používá." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Disk nebyl nalezen." + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Soubor nebyl nalezen" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Selhalo vyhodnocení" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Nelze nastavit čas modifikace" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "Neplatné URI, lokální URI nesmí začínat na //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "PřihlaÅ¡uji se" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Nemohu určit jméno druhé strany" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Nemohu určit lokální jméno" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Server zamítl naÅ¡e spojení a řekl: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "USER selhal, server řekl: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "PASS selhal, server řekl: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Byl zadán proxy server, ale ne přihlaÅ¡ovací skript. Acquire::ftp::ProxyLogin " +"je prázdný." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Příkaz '%s' přihlaÅ¡ovacího skriptu selhal, server řekl: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "TYPE selhal, server řekl: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Čas spojení vyprÅ¡el" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Server uzavřel spojení" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Chyba čtení" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Odpověď přeplnila buffer." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "PoruÅ¡ení protokolu" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Chyba zápisu" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Nemohu vytvořit socket" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "Nemohu připojit datový socket, čas spojení vyprÅ¡el" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Nemohu připojit pasivní socket." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo nezískal naslouchající socket" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Nemohu navázat socket" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Nemohu naslouchat na socketu" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Nemohu určit jméno socketu" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Nemohu odeslat příkaz PORT" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Neznámá rodina adres %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT selhal, server řekl: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Spojení datového socketu vyprÅ¡elo" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Nemohu přijmout spojení" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Problém s hashováním souboru" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Nemohu stáhnout soubor, server řekl '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Datový socket vyprÅ¡el" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Přenos dat selhal, server řekl '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Dotaz" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Nemohu vyvolat " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Připojuji se k %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Nemohu vytvořit socket pro %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Nemohu navázat spojení na %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Nemohu se připojit k %s:%s (%s), čas spojení vyprÅ¡el" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Nemohu se připojit k %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Připojuji se k %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Nemohu zjistit '%s'" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Dočasné selhání při zjiÅ¡Å¥ování '%s'" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Něco hodně oÅ¡klivého se přihodilo při zjiÅ¡Å¥ování '%s:%s' (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Nemohu se připojit k %s %s:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Nemohu přistoupit ke klíčence: '%s'" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "E: Seznam argumentů Acquire::gpgv::Options je příliÅ¡ dlouhý. Končím." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "Vnitřní chyba: Dobrý podpis, ale nemohu zjistit otisk klíče?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Byl zaznamenán nejméně jeden neplatný podpis. " + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" +"Nepodařilo se spustit '%s' pro ověření podpisu (je gnupg nainstalováno?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Neznámá chyba při spouÅ¡tění gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "Následující podpisy jsou neplatné:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"Následující podpisy nemohly být ověřeny, protože není dostupný veřejný " +"klíč:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Nemohu otevřít rouru pro %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Chyba čtení z procesu %s" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Čekám na hlavičky" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Získal jsem jednu řádku hlavičky přes %u znaků" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Chybná hlavička" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "Http server poslal neplatnou hlavičku odpovědi" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "Http server poslal neplatnou hlavičku Content-Length" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "Http server poslal neplatnou hlavičku Content-Range" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "Tento HTTP server má porouchanou podporu rozsahů" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Neznámý formát data" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Výběr selhal" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Čas spojení vyprÅ¡el" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Chyba zápisu do výstupního souboru" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Chyba zápisu do souboru" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Chyba zápisu do souboru" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "Chyba čtení ze serveru. Druhá strana zavřela spojení" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Chyba čtení ze serveru" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Å patné datové záhlaví" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Spojení selhalo" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Vnitřní chyba" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Nemohu provést mmap prázdného souboru" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "NeÅ¡lo mmapovat %lu bajtů" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Výběr %s nenalezen" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Nerozpoznaná zkratka typu: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Otevírám konfigurační soubor %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Řádek %d je příliÅ¡ dlouhý (max %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Syntaktická chyba %s:%u: Blok nezačíná jménem." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Syntaktická chyba %s:%u: Zkomolená značka" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Syntaktická chyba %s:%u: Za hodnotou následuje zbytečné smetí" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" +"Syntaktická chyba %s:%u: Direktivy je možné provádět pouze na nejvyšší úrovni" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Syntaktická chyba %s:%u: PříliÅ¡ mnoho vnořených propojení (include)" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Syntaktická chyba %s:%u: Zahrnuto odtud" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Syntaktická chyba %s:%u: Nepodporovaná direktiva '%s'" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Syntaktická chyba %s:%u: Na konci souboru je zbytečné smetí" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Chyba!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Hotovo" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Parametr příkazové řádky '%c' [z %s] je neznámý" + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Nerozumím parametru %s příkazové řádky" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Parametr příkazové řádky %s není pravdivostní hodnota" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "Volba %s vyžaduje argument." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "Parametr %s: Zadání konfigurační položky musí obsahovat =." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "Volba %s vyžaduje jako argument celé číslo (integer), ne '%s'" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Volba '%s' je příliÅ¡ dlouhá" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "Nechápu význam %s, zkuste true nebo false." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Neplatná operace %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Nelze vyhodnotit přípojný bod %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Nemohu přejít do %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Nezdařilo se vyhodnotit cdrom" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "Nepoužívám zamykání pro zámkový soubor %s, který je pouze pro čtení" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "NeÅ¡lo otevřít zámkový soubor %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "Nepoužívám zamykání pro zámkový soubor %s připojený přes nfs" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Nemohu získat zámek %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Čekal jsem na %s, ale nebyl tam" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Podproces %s obdržel chybu segmentace." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Podproces %s vrátil chybový kód (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Podproces %s neočekávaně skončil" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Nemohu otevřít soubor %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "čtení, stále mám k přečtení %lu, ale už nic nezbývá" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "zápis, stále mám %lu k zápisu, ale nejde to" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Problém při zavírání souboru" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Problém při odstraňování souboru" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Problém při synchronizování souboru" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Cache balíků je prázdná" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Cache soubor balíků je poÅ¡kozen" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Cache soubor balíků je v nekompatibilní verzi" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Tento APT nepodporuje systém pro správu verzí '%s'" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "Cache balíků byla vytvořena pro jinou architekturu" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Závisí na" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Předzávisí na" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Navrhuje" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Doporučuje" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Koliduje s" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Nahrazuje" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Zastarává" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "důležitý" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "vyžadovaný" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "standardní" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "volitelný" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "extra" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Vytvářím strom závislostí" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Kandidátské verze" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Generování závislostí" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Nelze zpracovat soubor %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Nelze zpracovat soubor %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Zkomolený řádek %lu v seznamu zdrojů %s (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Zkomolený řádek %lu v seznamu zdrojů %s (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Zkomolený řádek %lu v seznamu zdrojů %s (zpracování URI)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Zkomolený řádek %lu v seznamu zdrojů %s (Absolutní dist)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Zkomolený řádek %lu v seznamu zdrojů %s (zpracování dist)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Otevírám %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Řádek %u v seznamu zdrojů %s je příliÅ¡ dlouhý." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Zkomolený řádek %u v seznamu zdrojů %s (typ)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Typ '%s' na řádce %u v seznamu zdrojů %s není známý" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Zkomolený řádek %u v seznamu zdrojů %s (id výrobce)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Tento běh instalace si vyžádá dočasné odstranění klíčového balíku %s kvůli " +"smyčce v Conflicts/Pre-Depends. To je často Å¡patné, ale pokud to skutečně " +"chcete udělat, aktivujte možnost APT::Force-LoopBreak." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Indexový typ souboru '%s' není podporován" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "Balík %s je potřeba přeinstalovat, ale nemohu pro něj nalézt archiv." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Chyba, pkgProblemResolver::Resolve vytváří poruchy, to může být způsobeno " +"podrženými balíky." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "Nemohu opravit problémy, některé balíky držíte v porouchaném stavu." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Adresář seznamů %spartial chybí." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Archivní adresář %spartial chybí." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "Stahuji soubor %li z %li (%s zbývá)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "Stahuji soubor %li z %li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Ovladač metody %s nemohl být nalezen." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Metoda %s nebyla spuÅ¡těna správně" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "Vložte prosím disk nazvaný '%s' do mechaniky '%s' a stiskněte enter." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Balíčkovací systém '%s' není podporován" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Nebylo možno určit vhodný typ balíčkovacího systému" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Nebylo možno vyhodnotit %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "Do sources.list musíte zadat 'zdrojové' URI" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" +"Seznamy balíků nebo stavový soubor nemohly být zpracovány nebo otevřeny." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "Pro nápravu těchto problémů můžete zkusit spustit apt-get update" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Neplatný záznam v souboru preferencí, žádné záhlaví balíku" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Nerozumím vypíchnutí typu %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Pro vypíchnutí nebyla zadána žádná (nebo nulová) priorita" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Cache má nekompatibilní systém správy verzí" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Při zpracování %s se objevila chyba (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Při zpracování %s se objevila chyba (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Při zpracování %s se objevila chyba (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Při zpracování %s se objevila chyba (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Při zpracování %s se objevila chyba (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Při zpracování %s se objevila chyba (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Při zpracování %s se objevila chyba (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" +"Wow, překročili jste počet jmen balíků, které tato APT zvládá zpracovat." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "Wow, překročili jste počet verzí, které tato APT zvládá zpracovat." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" +"Wow, překročili jste počet závislostí, které tato APT zvládá zpracovat." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Chyba při zpracování %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Při zpracování %s se objevila chyba (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "Při zpracování závislostí nebyl nalezen balík %s %s" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "NeÅ¡lo vyhodnotit seznam zdrojových balíků %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Collecting File poskytuje" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "Chyba IO při ukládání zdrojové cache" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "přejmenování selhalo, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "Neshoda MD5 součtů" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "K následujícím ID klíčů není dostupný veřejný klíč:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Nebyl jsem schopen nalézt soubor s balíkem %s. To by mohlo znamenat, že " +"tento balík je třeba opravit ručně (kvůli chybějící architektuře)" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Nebyl jsem schopen nalézt soubor s balíkem %s. Asi budete muset tento balík " +"opravit ručně." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"Indexové soubory balíku jsou naruÅ¡eny. Chybí pole Filename: u balíku %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Velikosti nesouhlasí" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Blok výrobce %s neobsahuje otisk klíče" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Používám přípojný bod %s\n" +"Připojuji CD-ROM\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Rozpoznávám... " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Uložený název: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Používám přípojný bod %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "Odpojuji CD-ROM\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Čekám na disk...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Připojuji CD-ROM...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Hledám na disku indexové soubory...\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "Nalezl jsem indexy balíků (%i), indexy zdrojů (%i) a podpisy (%i)\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Nejedná se o platné jméno, zkuste to znovu.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Tento disk se nazývá: \n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Kopíruji seznamy balíků..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Zapisuji nový seznam balíků\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Seznamy zdrojů na tomto disku jsou:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "Odpojuji CD-ROM..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "Zapsal jsem %i záznamů.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "Zapsal jsem %i záznamů s chybějícími soubory (%i).\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "Zapsal jsem %i záznamů s nesouhlasícími soubory (%i).\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" +"Zapsal jsem %i záznamů s chybějícími (%i) a nesouhlasícími (%i) soubory.\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "Připravuji %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "Rozbaluji %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "Připravuji nastavení %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "Nastavuji %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "Nainstalován %s" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "Připravuji odstranění %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "Odstraňuji %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "Odstraněn %s" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "Připravuji úplné odstranění %s" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "Kompletně odstraněn %s" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Nemohu otevřít soubor %s" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Spojení bylo předčasně ukončeno" + +#~ msgid "File date has changed %s" +#~ msgstr "Datum souboru se změnil %s" + +#~ msgid "Reading file list" +#~ msgstr "Čtu seznam souborů" + +#~ msgid "Could not execute " +#~ msgstr "Nemohu spustit " + +#~ msgid "Preparing for remove with config %s" +#~ msgstr "Připravuji odstranění %s včetně konfiguračních souborů" + +#~ msgid "Removed with config %s" +#~ msgstr "Odstraněn %s včetně konfiguračního souboru" diff --git a/po/cy.po b/po/cy.po new file mode 100644 index 0000000..14d749f --- /dev/null +++ b/po/cy.po @@ -0,0 +1,2876 @@ +# APT yn Gymraeg: APT in Welsh. +# This file is under the same licence as APT itself. +# Dafydd Harries , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: APT\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2005-06-06 13:46+0100\n" +"Last-Translator: Dafydd Harries \n" +"Language-Team: Welsh \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Mae gan y pecyn %s fersiwn %s ddibyniaeth heb ei gwrdd:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Ni ellir lleoli'r pecyn %s" + +#: cmdline/apt-cache.cc:232 +#, fuzzy +msgid "Total package names : " +msgstr "Cyfanswm Enwau Pecynnau : " + +#: cmdline/apt-cache.cc:272 +#, fuzzy +msgid " Normal packages: " +msgstr " Pecynnau Normal: " + +#: cmdline/apt-cache.cc:273 +#, fuzzy +msgid " Pure virtual packages: " +msgstr " Pecynnau Cwbl Rhithwir: " + +#: cmdline/apt-cache.cc:274 +#, fuzzy +msgid " Single virtual packages: " +msgstr " Pecynnau Rhithwir Sengl: " + +#: cmdline/apt-cache.cc:275 +#, fuzzy +msgid " Mixed virtual packages: " +msgstr " Pecynnau Rhithwir Cymysg: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Ar Goll: " + +#: cmdline/apt-cache.cc:278 +#, fuzzy +msgid "Total distinct versions: " +msgstr "Cyfanswm Fersiynau Gwahanol: " + +#: cmdline/apt-cache.cc:280 +#, fuzzy +msgid "Total dependencies: " +msgstr "Cyfanswm Dibyniaethau: " + +#: cmdline/apt-cache.cc:283 +#, fuzzy +msgid "Total ver/file relations: " +msgstr "Cyfanswm perthyniadau fersiwn/ffeil: " + +#: cmdline/apt-cache.cc:285 +#, fuzzy +msgid "Total Provides mappings: " +msgstr "Cyfanswm Mapiau Darpariath: " + +#: cmdline/apt-cache.cc:297 +#, fuzzy +msgid "Total globbed strings: " +msgstr "Cyfanswm Llinynau Glob: " + +#: cmdline/apt-cache.cc:311 +#, fuzzy +msgid "Total dependency version space: " +msgstr "Cyfanswm gofod Fersiwn Dibyniaeth: " + +#: cmdline/apt-cache.cc:316 +#, fuzzy +msgid "Total slack space: " +msgstr "Cyfanswm gofod Slac: " + +#: cmdline/apt-cache.cc:324 +#, fuzzy +msgid "Total space accounted for: " +msgstr "Cyfanswm Gofod Cyfrifwyd: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Nid yw'r ffeil pecyn %s yn gydamseredig." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Rhaid i chi ddarparu un patrwm yn union" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Canfuwyd dim pecyn" + +#: cmdline/apt-cache.cc:1462 +#, fuzzy +msgid "Package files:" +msgstr "Ffeiliau Pecynnau:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "Nid yw'r storfa yn gydamserol, ni ellir croesgyfeirio ffeil pecym" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +#, fuzzy +msgid "Pinned packages:" +msgstr "Pecynnau wedi eu Pinio:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(heb ganfod)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Wedi Sefydlu: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(dim)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Ymgeisydd: " + +#: cmdline/apt-cache.cc:1532 +#, fuzzy +msgid " Package pin: " +msgstr " Pin Pecyn: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +#, fuzzy +msgid " Version table:" +msgstr " Tabl Fersiynnau:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s ar gyfer %s %s wedi ei grynhow ar %s %s\n" + +#: cmdline/apt-cache.cc:1659 +#, fuzzy +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Defnydd: apt-cache [opsiynnau] gorchymyn\n" +" apt-cache [opsiynnau] add ffeil1 [ffeil2 ...]\n" +" apt-cache [opsiynnau] showpkg pecyn1 [pecyn2 ...]\n" +" apt-cache [opsiynnau] showsrc pecyn1 [pecyn2 ...]\n" +"\n" +"Mae apt-cache yn erfyn lefel isel a ddefnyddir i ymdrin a ffeiliau storfa " +"deuol APT, ac ymholi gwybodaeth ohonynt\n" +"\n" +"Gorchmynion:\n" +" add - Ychwanegu ffeil pecyn i'r storfa ffynhonell\n" +" gencaches - Adeiladu'r storfeydd pecyn a ffynhonell\n" +" showpkg - Dangos gwybodaeth cyffredinol am becyn sengl\n" +" showsrc - Dangos cofnodion ffynhonell\n" +" stats - Dangos rhyw ystadegau sylfaenol\n" +" dump - Dangos y ffeil cyfan mewn ffurf syml\n" +" dumpavail - Dangos ffeil argaeledd\n" +" unmet - Dangos dibyniaethau heb eu darparu\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "" + +#: cmdline/apt-cdrom.cc:93 +#, fuzzy +msgid "Please insert a Disc in the drive and press enter" +msgstr "" +"Newid Cyfrwng: Os gwelwch yn dda, rhowch y disg a'r label\n" +" '%s'\n" +"yn y gyrriant '%s' a gwasgwch Enter\n" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "" + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Nid yw ymresymiadau mewn parau" + +#: cmdline/apt-config.cc:76 +#, fuzzy +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Defnydd: apt-config [opsiynnau] gorchymyn\n" +"\n" +"Mae apt-config yn erfyn syml sy'n darllen ffeil cyfluniad APT\n" +"\n" +"Gorchmynion:\n" +" shell - Modd plisgyn\n" +" dump - Dangod y cyfluniad\n" +"\n" +"Opsiynnau:\n" +" -h Y testun cymorth hwn\n" +" -c=? Darllen y ffeil cyfluniad\n" +" -o=? Gosod opsiwn cyfluniad mympwyol, ee -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "Nid yw %s yn becyn DEB dilys." + +# FIXME: "debian" +#: cmdline/apt-extracttemplates.cc:232 +#, fuzzy +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Defnydd: apt-extracttemplates ffeil1 [ffeil2 ...]\n" +"\n" +"Mae apt-extracttemplates yn erfyn ar gyfer echdynnu manylion cyfluniad a\n" +"templed o becynnau Debian.\n" +"\n" +"Opsiynnau:\n" +" -h Dangos y testun cymorth hwn\n" +" -t Gosod y cyfeiriadur dros dro\n" +" -c=? Darllen y ffeil cyfluniad hwn\n" +" -o=? Gosod opsiwn cyfluniad mympwyol e.e. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Ni ellir ysgrifennu i %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Ni ellir cael fersiwn debconf. Ydi debconf wedi ei sefydlu?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Mae'r rhestr estyniad pecyn yn rhy hir." + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, fuzzy, c-format +msgid "Error processing directory %s" +msgstr "Gwall wrth brosesu'r cyfeiriadur %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Mae'r rhestr estyniad ffynhonell yn rhy hir" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Gwall wrth ysgrifennu pennawd i'r ffeil cynnwys" + +#: ftparchive/apt-ftparchive.cc:401 +#, fuzzy, c-format +msgid "Error processing contents %s" +msgstr "Gwall wrth Brosesu Cynnwys %s" + +# FIXME: full stops +#: ftparchive/apt-ftparchive.cc:556 +#, fuzzy +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Defnydd: apt-ftparchive [opsiynnau] gorchymyn\n" +"Gorchmynion: packages llwybrdeuol [ffeilgwrthwneud [cynddodiadllwybr]]\n" +" sources llwybrffynhonell [ffeilgwrthwneud [cynddodiadllwybr]]\n" +" contents llwybr\n" +" release llwybr\n" +" generate cyfluniad [grŵpiau]\n" +" clean cyfluniad\n" +"\n" +"Mae apt-ftparchive yn cynhyrchu ffeiliau mynegai ar gyfer archifau Debian.\n" +"Mae'n cynnal nifer o arddulliau o gynhyrchiad, yn cynnwys modd wedi\n" +"awtomeiddio'n llwyr a modd yn debyg i dpkg-scanpackages a dpkg-scansources.\n" +"\n" +"Gall apt-ftparchive gynhyrchu ffeil Package o goeden o ffeiliau .deb.\n" +"Mae'r ffeil Package yn cynnwys yr holl feysydd rheoli o bob pecyn yn\n" +"ogystal a'r stwnsh MD5 a maint y ffeil. Cynhelir ffeil gwrthwneud er mwyn\n" +"gorfodi'r gwerthoedd Priority a Section.\n" +"\n" +"Yn debyg, gall apt-ftparchive gynhyrchu ffeil Sources o goeden o ffeiliau\n" +".dsc. Gellir defnyddio'r opsiwn --source-override er mwyn penodi ffeil\n" +"gwrthwneud ffynhonell.\n" +"\n" +"Dylid rhedeg y gorchmynion 'packages' a 'sources' yng ngwraidd y goeden.\n" +"Fe ddylai llwybrdeuol bwyntio at sail y chwilio ailadroddus a fe ddylai\n" +"ffeilgwrthwneud gynnwys y gosodiadau gwrthwneud. Ychwanegir\n" +"cynddodiadllwybr i'r meysydd enw ffeil os ydynt yn bresennol. Esiampl\n" +"defnydd o'r archif Debian:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Opsiynnau:\n" +" -h Y testun cymorth hwn\n" +" --md5 Rheoli cynhyrchiad stwnch MD5\n" +" -s=? Ffeil gwrthwneud ffynhonell\n" +" -q Tawel\n" +" -d=? Dewis cronda data storfa opsiynnol\n" +" --no-delink Galluogi'r modd datgysylltu datnamu\n" +" --contents Rheoli cynhyrchiad ffeil cynnwys\n" +" -c=? Darllen y ffeil cyfluniad hwn\n" +" -o=? Gosod opsiwn cyfluniad mympwyol" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Dim dewisiadau'n cyfateb" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Mae rhai ffeiliau ar goll yn y grŵp ffeiliau pecyn `%s'" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "Llygrwyd y cronfa data, ailenwyd y ffeil i %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "Hen gronfa data, yn ceisio uwchraddio %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Ni ellir agor y ffeil DB2 %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Methodd stat() o %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Does dim cofnod rheoli gan yr archif" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Ni ellir cael cyrchydd" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "Rh: Ni ellir darllen y cyfeiriadur %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "Rh: Ni ellir gwneud stat() o %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "G: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "Rh: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "G: Mae gwallau yn cymhwyso i'r ffeil " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Methwyd datrys %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Methwyd cerdded y goeden" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Methwyd agor %s" + +# FIXME +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " DatGysylltu %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Methwyd darllen y cyswllt %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Methwyd datgysylltu %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Methwyd cysylltu %s at %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " Tarwyd y terfyn cyswllt %sB.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Doedd dim maes pecyn gan yr archif" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " Does dim cofnod gwrthwneud gan %s\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " Cynaliwr %s yw %s nid %s\n" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " Does dim cofnod gwrthwneud gan %s\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " Does dim cofnod gwrthwneud gan %s\n" + +#: ftparchive/contents.cc:317 +#, fuzzy, c-format +msgid "Internal error, could not locate member %s" +msgstr "Gwall Mewnol, methwyd lleoli aelod %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Methwyd neilltuo cof" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Ni ellir agor %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Gwrthwneud camffurfiol %s llinell %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Gwrthwneud camffurfiol %s llinell %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Gwrthwneud camffurfiol %s llinell %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Methwydd darllen y ffeil dargyfeirio %s" + +#: ftparchive/multicompress.cc:75 +#, fuzzy, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Dull Cywasgu Anhysbys '%s'" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Mae'r allbwn cywasgiedig %s angen cywasgiad wedi ei osod" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Methwyd creu pibell cyfathrebu at isbroses" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Methwyd creu FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Methodd fork()" + +#: ftparchive/multicompress.cc:215 +#, fuzzy +msgid "Compress child" +msgstr "Plentyn Cywasgu" + +#: ftparchive/multicompress.cc:238 +#, fuzzy, c-format +msgid "Internal error, failed to create %s" +msgstr "Gwall Mewnol, Methwyd creu %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Methwyd creu isbroses IPC" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Methwyd gweithredu cywasgydd " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "datgywasgydd" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "Methodd MA i isbroses/ffeil" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Methwyd darllen wrth gyfrifo MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Gwall wrth datgysylltu %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Methwyd ailenwi %s at %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "I" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Gwall crynhoi patrwm - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Mae gan y pecynnau canlynol ddibyniaethau heb eu bodloni:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "ond mae %s wedi ei sefydlu" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "ond mae %s yn mynd i gael ei sefydlu" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "ond ni ellir ei sefydlu" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "ond mae'n becyn rhithwir" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "ond nid yw wedi ei sefydlu" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "ond nid yw'n mynd i gael ei sefydlu" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " neu" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Caiff y pecynnau NEWYDD canlynol eu sefydlu:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Caiff y pecynnau canlynol eu TYNNU:" + +#: cmdline/apt-get.cc:423 +#, fuzzy +msgid "The following packages have been kept back:" +msgstr "Mae'r pecynnau canlynol wedi eu dal yn ôl" + +#: cmdline/apt-get.cc:444 +#, fuzzy +msgid "The following packages will be upgraded:" +msgstr "Caiff y pecynnau canlynol eu uwchraddio" + +#: cmdline/apt-get.cc:465 +#, fuzzy +msgid "The following packages will be DOWNGRADED:" +msgstr "Caiff y pecynnau canlynol eu ISRADDIO" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Caiff y pecynnau wedi eu dal canlynol eu newid:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (oherwydd %s) " + +#: cmdline/apt-get.cc:546 +#, fuzzy +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"RHYBUDD: Caiff y pecynnau hanfodol canlynol eu tynnu\n" +"NI DDYLIR gwneud hyn os nad ydych chi'n gwybod yn union beth rydych chi'n\n" +"ei wneud!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu wedi uwchraddio, %lu newydd eu sefydlu, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu wedi ailsefydlu, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu wedi eu israddio, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu i'w tynnu a %lu heb eu uwchraddio.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu heb eu sefydlu na tynnu'n gyflawn.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Yn cywiro dibyniaethau..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " wedi methu." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Ni ellir cywiro dibyniaethau" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Ni ellir bychanu y set uwchraddio" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Wedi Gorffen" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "Efallai hoffech rhedeg `apt-get -f install' er mwyn cywiro'r rhain." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Dibyniaethau heb eu bodloni. Ceisiwch ddefnyddio -f." + +#: cmdline/apt-get.cc:689 +#, fuzzy +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "RHYBUDD: Ni ellir dilysu'r pecynnau canlynol yn ddiogel!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "" + +#: cmdline/apt-get.cc:702 +#, fuzzy +msgid "Some packages could not be authenticated" +msgstr "RHYBUDD: Ni ellir dilysu'r pecynnau canlynol yn ddiogel!" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Mae problemau a defnyddwyd -y heb --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "" + +#: cmdline/apt-get.cc:764 +#, fuzzy +msgid "Packages need to be removed but remove is disabled." +msgstr "Rhaid tynnu pecynnau on mae Tynnu wedi ei analluogi." + +#: cmdline/apt-get.cc:775 +#, fuzzy +msgid "Internal error, Ordering didn't finish" +msgstr "Gwall Mewnol wrth ychwanegu dargyfeiriad" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Ni ellir cloi'r cyfeiriadur lawrlwytho" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "Methwyd darllen y rhestr ffynhonellau." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Mae angeyn cyrchu %sB/%sB o archifau.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Mae angen cyrchu %sB o archifau.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "Ar ôl dadbacio defnyddir %sB o ofod disg ychwanegol.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Ar ôl dadbactio caiff %sB o ofod disg ei rhyddhau.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, fuzzy, c-format +msgid "Couldn't determine free space in %s" +msgstr "Does dim digon o le rhydd yn %s gennych" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Does dim digon o le rhydd gennych yn %s." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "Penodwyd Syml Yn Unig ond nid yw hyn yn weithred syml." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Ie, gwna fel rydw i'n dweud!" + +#: cmdline/apt-get.cc:868 +#, fuzzy, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Rydych ar fin gwneud rhywbeth a all fod yn niweidiol\n" +"Er mwyn mynd ymlaen, teipiwch y frawddeg '%s'\n" +" ?]" + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Erthylu." + +#: cmdline/apt-get.cc:889 +#, fuzzy +msgid "Do you want to continue [Y/n]? " +msgstr "Ydych chi eisiau mynd ymlaen? [Y/n] " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Methwyd cyrchu %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Methodd rhai ffeiliau lawrlwytho" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Lawrlwytho yn gyflawn ac yn y modd lawrlwytho'n unig" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Ni ellir cyrchu rhai archifau, efallai dylwch rhedeg apt-get update, neu " +"geidio defnyddio --fix-missing?" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "Ni chynhelir cyfnewid cyfrwng efo --fix-missing ar hyn o bryd" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Ni ellir cywiro pecynnau ar goll." + +#: cmdline/apt-get.cc:996 +#, fuzzy +msgid "Aborting install." +msgstr "Yn Erthylu'r Sefydliad." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Sylwer, yn dewis %s yn hytrach na %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "Yn hepgor %s, mae wedi ei sefydlu a nid yw uwchraddio wedi ei osod.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "Nid yw'r pecyn %s wedi ei sefydlu, felly ni chaif ei dynnu\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Mae'r pecyn %s yn becyn rhithwir a ddarparir gan:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Sefydliwyd]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Dylech ddewis un yn benodol i'w sefydlu." + +# FIXME: punctuation +#: cmdline/apt-get.cc:1091 +#, fuzzy, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Does dim fersiwn gan y pecyn %s, ond mae'n bodoli yn y cronfa data.\n" +"Mae hyn fel arfer yn golygu y crybwyllwyd y pecyn mewn dibyniaeth ond heb\n" +"gael ei uwchlwytho, cafodd ei ddarfod neu nid yw ar gael drwy gynnwys y\n" +"ffeil sources.list.\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Fodd bynnag, mae'r pecynnau canlynol yn cymryd ei le:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Does dim ymgeisydd sefydlu gan y pecyn %s" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "Nid yw ailsefydlu %s yn bosib, gan ni ellir ei lawrlwytho.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "Mae %s y fersiwn mwyaf newydd eisioes.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Ni chanfuwyd y rhyddhad '%s' o '%s'" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Ni chanfuwyd y fersiwn '%s' o '%s' " + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Dewiswyd fersiwn %s (%s) ar gyfer %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "Nid yw'r gorchymyn diweddaru yn derbyn ymresymiadau" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Ni ellir cloi'r cyfeiriadur rhestr" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Methwodd rhai ffeiliau mynegai lawrlwytho: maent wedi eu anwybyddu, neu hen " +"rai eu defnyddio yn lle." + +#: cmdline/apt-get.cc:1403 +#, fuzzy +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Gwall Mewnol, torrodd AllUpgrade bethau" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Methwyd canfod pecyn %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Sylwer, yn dewis %s ar gyfer y patrwm '%s'\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "Efallai hoffech rhedeg `apt-get -f install' er mwyn cywiro'r rhain:" + +# FIXME +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Dibyniaethau heb eu bodloni. Ceisiwch rhedeg 'apt-get -f install' efo dim " +"pecyn (neu penodwch ddatrys)" + +# FIXME: needs commas +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Methwyd sefydlu rhai pecynnau. Gall hyn olygu eich bod chi wedi gofyn\n" +"am sefyllfa amhosib neu, os ydych chi'n defnyddio'r dosraniad\n" +"ansefydlog, fod rhai pecynnau angenrheidiol heb gael eu creu eto neu\n" +"heb gael eu symud allan o Incoming." + +# FIXME: commas, wrapping +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Gan y gofynnoch am weithred syml yn unig, mae'n debygol nad yw'r pecyn\n" +"yn sefydladwy a dylid cyflwyno adroddiad nam yn erbyn y pecyn hwnnw." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "Gall y wybodaeth canlynol gynorthwyo'n datrys y sefyllfa:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Pecynnau wedi torri" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Caiff y pecynnau canlynol ychwanegol eu sefydlu:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Pecynnau a awgrymmir:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Pecynnau a argymhellir:" + +#: cmdline/apt-get.cc:1713 +#, fuzzy +msgid "Calculating upgrade... " +msgstr "Yn Cyfrifo'r Uwchraddiad... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Methwyd" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Wedi Gorffen" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +#, fuzzy +msgid "Internal error, problem resolver broke stuff" +msgstr "Gwall Mewnol, torrodd AllUpgrade bethau" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "Rhaid penodi o leiaf un pecyn i gyrchi ffynhonell ar ei gyfer" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Ni ellir canfod pecyn ffynhonell ar gyfer %s" + +#: cmdline/apt-get.cc:1968 +#, fuzzy, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Yn hepgor dadbacio y ffynhonell wedi ei dadbacio eisioes yn %s\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Does dim digon o le rhydd yn %s gennych" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Rhaid cyrchu %sB/%sB o archifau ffynhonell.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Rhaid cyrchu %sB o archifau ffynhonell.\n" + +#: cmdline/apt-get.cc:2006 +#, fuzzy, c-format +msgid "Fetch source %s\n" +msgstr "Cyrchu Ffynhonell %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Methwyd cyrchu rhai archifau." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Yn hepgor dadbacio y ffynhonell wedi ei dadbacio eisioes yn %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Methodd y gorchymyn dadbacio '%s'.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Methodd y gorchymyn adeiladu '%s'.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Methodd proses plentyn" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"Rhaid penodi o leiaf un pecyn i wirio dibyniaethau adeiladu ar eu cyfer" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Ni ellir cyrchu manylion dibyniaeth adeiladu ar gyfer %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "Nid oes dibyniaethau adeiladu gan %s.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"Ni ellir bodloni dibyniaeth %s ar gyfer %s oherwydd ni ellir canfod y pecyn %" +"s" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"Ni ellir bodloni'r dibyniaeth %s ar gyfer %s oherwydd does dim fersiwn sydd " +"ar gael o'r pecyn %s yn gallu bodloni'r gofynion ferswin" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Methwyd bodloni dibynniaeth %s am %s: Mae'r pecyn sefydliedig %s yn rhy " +"newydd" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Methwyd bodloni dibyniaeth %s am %s: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Methwyd bodloni'r dibyniaethau adeiladu ar gyfer %s." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Methwyd prosesu dibyniaethau adeiladu" + +#: cmdline/apt-get.cc:2392 +#, fuzzy +msgid "Supported modules:" +msgstr "Modylau a Gynhelir:" + +# FIXME: split +#: cmdline/apt-get.cc:2433 +#, fuzzy +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Defnydd: apt-get [opsiynnau] gorchymyn\n" +" apt-get [opsiynnau] install|remove pecyn1 [pecyn2 ...]\n" +" apt-get [opsiynnau] source pecyn1 [pecyn2 ...]\n" +"\n" +"Mae apt-get yn rhyngwyneb llinell orchymyn syml ar gyfer lawrlwytho a\n" +"sefydlu pecynnau. Y gorchmynion \"update\" a \"install\" yw'r rhai a\n" +"ddefnyddir amlaf.\n" +"\n" +"Gorchmynion:\n" +" update - Cyrchu rhestrau pecynnau newydd\n" +" update - Uwchraddio pecynnau wedi sefydlu\n" +" install - Sefydlu pecynnau newydd (defnyddiwch libc6 nid libc6.deb)\n" +" remove - Tynnu pecynnau\n" +" source - Lawrlwytho archifau ffynhonell\n" +" build-dep - Cyflunio dibyniaethau adeiladu ar gyfer pecynnau ffynhonell\n" +" dist-upgrade - Uwchraddio dosraniad, gweler apt-get(8)\n" +" dselect-upgrade - Dilyn dewisiadau dselect\n" +" clean - Dileu ffeiliau archif wedi eu lawrlwytho\n" +" autoclean - Dileu hen ffeiliau archif wedi eu lawrlwytho\n" +" check - Gwirio fod dim dibyniaethau torredig\n" +"\n" +"Opsiynnau:\n" +" -h Y testun cymorth hwn.\n" +" -q Allbwn cofnodadwy - dim dangosydd cynydd\n" +" -qq Dim allbwn ar wahan i wallau\n" +" -d Lawrlwytho yn unig - peidio a sefydlu na dadbacio archifau\n" +" -s Peidio gweithredu. Gwneir efelychiad trefn.\n" +" -y Peidio a gofyn cwestiynnau a chymryd yn ganiataol mai 'Ie' yw'r ateb\n" +" -f Ceisio mynd ymlaen os mae'r prawf integredd yn methu\n" +" -m Ceisio mynd ymlaen os methir dod o hyd i archifau\n" +" -u Dangos rhestr o archifau a uwchraddir hefyd\n" +" -b Adeiladu'r pecyn ffynhonell ar ôl ei lawrlwytho\n" +" -V Dangos rhifau fersiwn cyflawn\n" +" -c=? Darllen y ffeil cyfluniad hwn\n" +" -o=? Gosod opsiwn cyfluniad mympwyol, ee -o dir::cache=/tmp\n" +"\n" +"Gweler y tudalenau llawlyfr apt-get(8) sources.list(5) a apt.conf(5) am\n" +"fwy o wybodaeth ac opsiynnau.\n" +"\n" +" Mae gan yr APT hwn bŵerau buwch hudol.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Presennol " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Cyrchu:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Anwybyddu " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Gwall " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Cyrchwyd %sB yn %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Gweithio]" + +#: cmdline/acqprogress.cc:271 +#, fuzzy, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Newid Cyfrwng: Os gwelwch yn dda, rhowch y disg a'r label\n" +" '%s'\n" +"yn y gyrriant '%s' a gwasgwch Enter\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Cofnod pecyn anhysbys!" + +#: cmdline/apt-sortpkgs.cc:150 +#, fuzzy +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Defnydd: apt-sortpkgs [opsiynnau] ffeil1 [ffeil2 ...]\n" +"\n" +"Mae apt-sortpkgs yn erfyn syml er mwyn trefnu ffeiliau pecyn. Defnyddir yr\n" +"opsiwn -s er mwyn penodi pa fath o ffeil ydyw.\n" +"\n" +"Opsiynnau:\n" +" -h Y testun cymorth hwn\n" +" -s Defnyddio trefnu ffeil ffynhonell\n" +" -c=? Darllen y ffeil cyfluniad hwn\n" +" -o=? Gosod opsiwn cyfluniad mympwyol, ee -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Rhagosodiad gwael!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Gwasgwch Enter er mwyn mynd ymlaen." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Digwyddod rhau gwallau wrth dadbacio. Rydw i'n mynd i gyflunio'r" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "pecynnau a gafwyd eu sefydlu. Gall hyn achosi gwallau dyblyg neu" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "wallau a achosir gan ddibyniaethau coll. Mae hyn yn iawn, dim ond y" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"gwallau uwchben y neges hwn sy'n bwysig. Trwsiwch nhw a rhedwch [S]efydlu " +"eto." + +#: dselect/update:30 +#, fuzzy +msgid "Merging available information" +msgstr "Yn cyfuno manylion Ar Gael" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Methwyd creu pibau" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Methwyd gweithredu gzip" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Archif llygredig" + +#: apt-inst/contrib/extracttar.cc:196 +#, fuzzy +msgid "Tar checksum failed, archive corrupted" +msgstr "Methodd swm gwirio Tar, archif llygredig" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Math pennawd TAR anhysbys %u, aelod %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Llofnod archif annilys" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Gwall wrth ddarllen pennawd aelod archif" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Pennawd aelod archif annilys" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Mae'r archif yn rhy fyr" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Methwyd darllen pennawdau'r archif" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "Galwyd DropNode ar nôd sydd o hyd wedi ei gysylltu" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Methyd lleoli yr elfen !" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Methwyd neilltuo dargyfeiriad" + +#: apt-inst/filelist.cc:468 +#, fuzzy +msgid "Internal error in AddDiversion" +msgstr "Gwall Mewnol yn AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Yn ceisio trosysgrifo dargyfeiriad, %s -> %s a %s/%s" + +# FIXME: "the" +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Ychwanegiad dwbl o'r dargyfeiriad %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Ffeil cyfluniad dyblyg %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, fuzzy, c-format +msgid "Failed to write file %s" +msgstr "Methwyd ysgrifennu ffeil %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Methwyd cau ffeil %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "Mae'r llwybr %s yn rhy hir" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Yn dadbacio %s mwy nag unwaith" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "Mae'r cyfeiriadur %s wedi ei ddargyfeirio" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "Mae'r pecyn yn ceisio ysgrifennu i'r targed dargyfeiriad %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Mae llwybr y dargyfeiriad yn rhy hir" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "" +"Mae'r cyfeiriadur %s yn cael ei amnewid efo rhywbeth nid cyfeiriadur ydyw" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Methwyd lleoli nôd yn ei fwced stwnsh" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Mae'r llwybr yn rhy hir" + +# FIXME: wtf? +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Cyfatebiad pecyn trosysgrifo gyda dim fersiwn am %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Mae'r ffeil %s/%s yn trosysgrifo'r un yn y pecyn %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Ni ellir darllen %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Ni ellir gwneud stat() o %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Methwyd dileu %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Ni ellir creu %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Methwyd stat() ar %sinfo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "Rhaid i'r cyfeiriaduron 'info' a 'temp' for ar yr un system ffeiliau" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +#, fuzzy +msgid "Reading package lists" +msgstr "Yn Darllen Rhestrau Pecynnau" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Methwyd newid i'r cyfeiriadur gweinyddiaeth %sinfo" + +# FIXME +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +#, fuzzy +msgid "Internal error getting a package name" +msgstr "Gwall mewnol wrth gyrchu enw pecyn" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +#, fuzzy +msgid "Reading file listing" +msgstr "Yn Darllen Rhestr Ffeiliau" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Methwyd agor y ffeil rhestr '%sinfo/%s'. Os na allwch adfer y ffeil hwn yna " +"gwnewch e'n wag ac yna ail sefydlwch yr un ferswin o'r pecyn yn syth!" + +# FIXME +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Methwyd darllen y ffeil rhestr %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +#, fuzzy +msgid "Internal error getting a node" +msgstr "Gwall Mewnol wrth gael Nôd" + +# FIXME: literal +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Methwyd agor y ffeil dargyfeirio %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Mae'r ffeil dargyfeirio wed ei lygru" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Llinell annilys yn y ffeil dargyfeirio: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +#, fuzzy +msgid "Internal error adding a diversion" +msgstr "Gwall Mewnol wrth ychwanegu dargyfeiriad" + +#: apt-inst/deb/dpkgdb.cc:383 +#, fuzzy +msgid "The pkg cache must be initialized first" +msgstr "Rhaid i'r storfa pecynnau gael ei ymgychwyn yn gyntaf" + +#: apt-inst/deb/dpkgdb.cc:443 +#, fuzzy, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Methwyd canfod pennawd \"Package:\". Atred: %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Adrean \"ConfFile\" gwael yn y ffeil statws. Atred: %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Gwall wrth ramadegu MD5. Atred: %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Nid yw hyn yn archif DEB dilys, aelod '%s' ar goll" + +#: apt-inst/deb/debfile.cc:52 +#, fuzzy, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "Nid yw hyn yn archif DEB dilys, aelod '%s' ar goll" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Methwyd newid i %s" + +#: apt-inst/deb/debfile.cc:138 +#, fuzzy +msgid "Internal error, could not locate member" +msgstr "Gwall Methwyd, methwyd lleoli aelod" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Methwyd lleoli ffeil rheoli dilys" + +#: apt-inst/deb/debfile.cc:256 +#, fuzzy +msgid "Unparsable control file" +msgstr "Ffeil rheoli ni ellir ei ramadegu" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Methwyd darllen y cronfa ddata CD-ROM %s" + +#: methods/cdrom.cc:123 +#, fuzzy +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Defnyddiwch apt-cdrom fel bo APT yn adnabod y CD hwn. Ni ellir defnyddio apt-" +"get update i ychwanegu CDau newydd." + +#: methods/cdrom.cc:131 +#, fuzzy +msgid "Wrong CD-ROM" +msgstr "CD Anghywir" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "" +"Ni ellir datglymu'r CD-ROM yn %s. Efallai ei fod e'n cael ei ddefnyddio." + +#: methods/cdrom.cc:169 +#, fuzzy +msgid "Disk not found." +msgstr "Ffeil heb ei ganfod" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Ffeil heb ei ganfod" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Methwyd stat()" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Methwyd gosod amser newid" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "URI annilys: rhaid i URIs lleol beidio a cychwyn efo \"//\"" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Yn mewngofnodi" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Ni ellir darganfod enw'r cymar" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Ni ellir darganfod yr enw lleol" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, fuzzy, c-format +msgid "The server refused the connection and said: %s" +msgstr "Gwrthodwyd y gweinydd ein cysyllriad, a dwedodd: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "Methodd gorchymyn USER; meddai'r gweinydd: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "Methodd gorchymyn PASS; meddai'r gweinydd: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Penodwyd gweinydd dirprwy ond dim sgript mengofnodi. (Mae Acquire::ftp::" +"ProxyLogin yn wag.)" + +# FIXME +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Methodd y gorchymyn sgript mewngofnodi '%s'; meddai'r gweinydd: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "Methodd gorchymyn TYPE; meddai'r gweinydd: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Goramser cysylltu" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Caeodd y gweinydd y cysylltiad" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Gwall darllen" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Gorlifodd ateb y byffer." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Llygr protocol" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Gwall ysgrifennu" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Methwyd creu soced" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "Methwyd cysylltu soced data, goramserodd y cyslltiad" + +#: methods/ftp.cc:704 +#, fuzzy +msgid "Could not connect passive socket." +msgstr "Methwyd cysylltu soced goddefol" + +# FIXME +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "Methodd getaddrinfo gael soced gwrando" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Methwyd rhwymo soced" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Methwyd gwrando ar y soced" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Methwyd canfod enw'r soced" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Methwyd danfod gorchymyn PORT" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Teulu cyfeiriad anhysbys %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "Methodd gorchymyn EPRT; meddai'r gweinydd: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Goramserodd cysylltiad y soced data" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Methwyd derbyn cysylltiad" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Problem wrth stwnshio ffeil" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Methwyd cyrchu ffeil; meddai'r gweinydd '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Goramserodd soced data" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Methodd trosgludiad data; meddai'r gweinydd '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Ymholiad" + +# FIXME +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Methwyd gweithredu " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Yn cysylltu i %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Methwyd creu soced ar gyfer %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Ni ellir cychwyn y cysylltiad i %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Methwyd cysylltu i %s:%s (%s), goramserodd y cysylltiad" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Methwyd cysylltu i %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Yn cysylltu i %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Methwyd datrys '%s'" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Methiant dros dro yn datrys '%s'" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Digwyddodd rhywbweth hyll wrth ddatrys '%s:%s' (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Methwyd cysylltu i %s %s:" + +#: methods/gpgv.cc:65 +#, fuzzy, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Methwyd datrys '%s'" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "" + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "" + +#: methods/gpgv.cc:249 +#, fuzzy +msgid "The following signatures were invalid:\n" +msgstr "Caiff y pecynnau canlynol ychwanegol eu sefydlu:" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Methwyd agor pibell ar gyfer %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Gwall darllen o broses %s" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Yn aros am benawdau" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Derbynnwyd llinell pennaws sengl dros %u nod" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Llinell pennawd gwael" + +#: methods/http.cc:548 methods/http.cc:555 +#, fuzzy +msgid "The HTTP server sent an invalid reply header" +msgstr "Danfonodd y gweinydd HTTP bennawd ateb annilys" + +#: methods/http.cc:584 +#, fuzzy +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "Danfonodd y gweinydd HTTP bennawd Content-Length annilys" + +#: methods/http.cc:599 +#, fuzzy +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "Danfonodd y gweinydd HTTP bennawd Content-Range annilys" + +#: methods/http.cc:601 +#, fuzzy +msgid "This HTTP server has broken range support" +msgstr "Mae cynaliaeth amrediad y gweinydd hwn wedi torri" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Fformat dyddiad anhysbys" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Methwyd dewis" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Goramserodd y cysylltiad" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Gwall wrth ysgrifennu i ffeil allbwn" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Gwall wrth ysgrifennu at ffeil" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Gwall wrth ysgrifennu at y ffeil" + +#: methods/http.cc:873 +#, fuzzy +msgid "Error reading from server. Remote end closed connection" +msgstr "Gwall wrth ddarllen o'r gweinydd: caeodd yr ochr pell y cysylltiad" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Gwall wrth ddarllen o'r gweinydd" + +#: methods/http.cc:1106 +#, fuzzy +msgid "Bad header data" +msgstr "Data pennawd gwael" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Methodd y cysylltiad" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Gwall mewnol" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Ni ellir defnyddio mmap() ar ffeil gwag" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Methwyd gwneud mmap() efo %lu beit" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Ni chanfuwyd y dewis %s" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Talgryniad math anhysbys: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Yn agor y ffeil cyfluniad %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Linell %d yn rhy hir (uchaf %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Gwall cystrawen %s:%u: Mae bloc yn cychwyn efo dim enw." + +# FIXME +#: apt-pkg/contrib/configuration.cc:627 +#, fuzzy, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Gwall cystrawen %s:%u: Tag wedi camffurfio" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Gwall cystrawen %s:%u: Sbwriel ychwanegol ar ôl y gwerth" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" +"Gwall cystrawen %s:%u: Ceir defnyddio cyfarwyddyd ar y lefel dop yn unig" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Gwall cystrawen %s:%u: Gormod o gynhwysion nythol" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Gwall cystrawen %s:%u: Cynhwyswyd o fan hyn" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Gwall cystrawen %s:%u: Cyfarwyddyd ni gynhelir '%s'" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Gwall cystrawen %s:%u: Sbwriel ychwanegol ar ddiwedd y ffeil" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Gwall!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Wedi Gorffen" + +# FIXME +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Ni adnabyddir yr opsiwn llinell orchymyn '%c' (o %s)." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Ni adnabyddir yr opsiwn llinell orchymyn %s" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Nid yw'r opsiwn llinell orchymyn %s yn fŵleaidd" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "Mae'r opsiwn %s yn mynnu ymresymiad." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "Opsiwn %s: Rhaid i benodiad eitem cyfluniad gael =." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "Mae'r opsiwn %s yn mynnu ymresymiad cyfanrif, nid '%s'" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Opsiwn '%s' yn rhy hir" + +# FIXME: 'Sense'? +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "Ni ddeallir %s, ceiswich ddefnyddio 'true' neu 'false'." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Gweithred annilys %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Ni ellir gwneud stat() o'r pwynt clymu %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Ni ellir newid i %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Methwyd gwneud stat() o'r CD-ROM" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "Ddim yn cloi'r ffeil clo darllen-yn-unig %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Methwyd agor y ffeil clo %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "Ddim yn cloi'r ffeil clo ar NFS %s" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Methwyd cael y clo %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, fuzzy, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Arhoswyd am %s ond nid oedd e yna" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Derbyniodd is-broses %s wall segmentu." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Dychwelodd is-broses %s gôd gwall (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Gorffenodd is-broses %s yn annisgwyl" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Methwyd agor ffeil %s" + +# FIXME +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "o hyd %lu i ddarllen ond dim ar ôl" + +# FIXME +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "o hyd %lu i ysgrifennu ond methwyd" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Gwall wrth gau'r ffeil" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Gwall wrth dadgysylltu'r ffeil" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Gwall wrth gyfamseru'r ffeil" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Storfa pecyn gwag" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Mae'r ffeil storfa pecyn yn llygredig" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Mae'r ffeil storfa pecyn yn fersiwn anghyflawn" + +# FIXME: capitalisation? +#: apt-pkg/pkgcache.cc:142 +#, fuzzy, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Nid yw'r APT yma yn cefnogi'r system fersiwn '%s'" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "Adeiladwyd y storfa pecyn ar gyfer pernsaerniaeth gwahanol" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Dibynnu" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "CynDdibynnu" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Awgrymu" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Argymell" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Gwrthdaro" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Amnewid" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Darfodi" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "pwysig" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "angenrheidiol" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "safonnol" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "opsiynnol" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "ychwanegol" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +#, fuzzy +msgid "Building dependency tree" +msgstr "Yn Aideladu Coeden Dibyniaeth" + +#: apt-pkg/depcache.cc:62 +#, fuzzy +msgid "Candidate versions" +msgstr "Fersiynau Posib" + +#: apt-pkg/depcache.cc:91 +#, fuzzy +msgid "Dependency generation" +msgstr "Cynhyrchaid Dibyniaeth" + +# FIXME: number? +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Ni ellir gramadegu ffeil becynnau %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Ni ellir gramadegu ffeil becynnau %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Llinell camffurfiol %lu yn y rhestr ffynhonell %s (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Llinell camffurfiol %lu yn y rhestr ffynhonell %s (dosranniad)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Llinell camffurfiol %lu yn y rhestr ffynhonell %s (gramadegu URI)" + +#: apt-pkg/sourcelist.cc:105 +#, fuzzy, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Llinell camffurfiol %lu yn y rhestr ffynhonell %s (dosranniad llwyr)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "" +"Llinell camffurfiol %lu yn y rhestr ffynhonell %s (gramadegu dosranniad)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Yn agor %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Llinell %u yn rhy hir yn y rhestr ffynhonell %s." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Llinell camffurfiol %u yn y rhestr ffynhonell %s (math)" + +#: apt-pkg/sourcelist.cc:244 +#, fuzzy, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Mae'r math '%s' yn anhysbys ar linell %u yn y rhestr ffynhonell %s" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, fuzzy, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Llinell camffurfiol %lu yn y rhestr ffynhonell %s (dosranniad)" + +# FIXME: %s may have an arbirrary length +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Bydd y rhediad sefydlu hwn yn gorfodi tynnu'r pecyn angenrheidiol %s " +"oherwydd lŵp gwrthdaro/cynddibynu. Mae hyn yn aml yn wael, ond os ydych wir " +"eisiau ei wneud ef, gweithredwch yr opsiwn APT::Force-LoopBreak." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Ni chynhelir y math ffeil mynegai '%s'" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"Mae angen ailsefydlu'r pecyn %s, ond dydw i ddim yn gallu canfod archif ar " +"ei gyfer." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Gwall: Cynhyrchodd pkgProblemResolver::Resolve doriadau. Fe all hyn fod wedi " +"ei achosi gan pecynnau wedi eu dal." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "" +"Ni ellir cywiro'r problemau gan eich bod chi wedi dal pecynnau torredig." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Mae'r cyfeiriadur rhestrau %spartial ar goll." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Mae'r cyfeiriadur archif %spartial ar goll." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "" + +#: apt-pkg/acquire.cc:825 +#, fuzzy, c-format +msgid "Retrieving file %li of %li" +msgstr "Yn Darllen Rhestr Ffeiliau" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Methwyd canfod y gyrrydd dull %s." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Ni gychwynodd y dull %s yn gywir" + +#: apt-pkg/acquire-worker.cc:377 +#, fuzzy, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "" +"Newid Cyfrwng: Os gwelwch yn dda, rhowch y disg a'r label\n" +" '%s'\n" +"yn y gyrriant '%s' a gwasgwch Enter\n" + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Ni chynhelir y system pecynnu '%s'" + +#: apt-pkg/init.cc:136 +#, fuzzy +msgid "Unable to determine a suitable packaging system type" +msgstr "Ni ellir canfod math system addas" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Ni ellir gwneud stat() o %s." + +# FIXME: ...file +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "Rhaid i chi rhoi rhai URI 'source' yn eich ffeil sources.list" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "Methwyd agor neu ramadegu'r ffeil rhestrau neu statws." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "Efallai hoffech rhedege apt-get update er mwyn cywiro'r problemau hyn." + +# FIXME: literal +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Cofnod annilys yn y ffeil hoffterau, dim pennawd 'Package'" + +# FIXME: tense +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Methwyd daeall y math pin %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Dim blaenoriath (neu sero) wedi ei benodi ar gyfer pin" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Mae can y storfa system fersiwn anghyfaddas" + +#: apt-pkg/pkgcachegen.cc:117 +#, fuzzy, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Digwyddod gwall wrth brosesu %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, fuzzy, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Digwyddod gwall wrth brosesu %s (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, fuzzy, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Digwyddod gwall wrth brosesu %s (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, fuzzy, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Digwyddod gwall wrth brosesu %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, fuzzy, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Digwyddod gwall wrth brosesu %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, fuzzy, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Digwyddod gwall wrth brosesu %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, fuzzy, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Digwyddod gwall wrth brosesu %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" +"Jiw, rhagoroch chi'r nifer o enwau pecyn mae'r APT hwn yn gallu ei drin." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "Jiw, rhagoroch chi'r nifer o fersiynau mae'r APT hwn yn gallu ei drin." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" +"Jiw, rhagoroch chi'r nifer o ddibyniaethau mae'r APT hwn yn gallu ei drin." + +#: apt-pkg/pkgcachegen.cc:241 +#, fuzzy, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Digwyddod gwall wrth brosesu %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, fuzzy, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Digwyddod gwall wrth brosesu %s (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "Ni chanfuwyd pecyn %s %s wrth brosesu dibyniaethau ffeil" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Methwyd stat() o'r rhestr pecyn ffynhonell %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Yn Casglu Darpariaethau Ffeil" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "Gwall M/A wrth gadw'r storfa ffynhonell" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "methwyd ailenwi, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "Camgyfatebiaeth swm MD5" + +#: apt-pkg/acquire-item.cc:1070 +msgid "There is no public key available for the following key IDs:\n" +msgstr "" + +# FIXME: case +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Methais i leoli ffeila r gyfer y pecyn %s. Fa all hyn olygu bod rhaid i chi " +"drwsio'r pecyn hyn a law. (Oherwydd pensaerniaeth coll.)" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Methais i leoli ffeila r gyfer y pecyn %s. Fa all hyn olygu bod rhaid i chi " +"drwsio'r pecyn hyn a law." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"Mae'r ffeiliau mynegai pecyn yn llygr. Dim maes Filename: gan y pecyn %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Camgyfatebiaeth maint" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Nid yw'r bloc darparwr %s yn cynnwys ôl bys" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "" + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "" + +#: apt-pkg/cdrom.cc:583 +#, fuzzy +msgid "Waiting for disc...\n" +msgstr "Yn aros am benawdau" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" + +#: apt-pkg/cdrom.cc:730 +#, fuzzy +msgid "Copying package lists..." +msgstr "Yn Darllen Rhestrau Pecynnau" + +#: apt-pkg/cdrom.cc:754 +#, fuzzy +msgid "Writing new source list\n" +msgstr "Llinell %u yn rhy hir yn y rhestr ffynhonell %s." + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "" + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, fuzzy, c-format +msgid "Preparing %s" +msgstr "Yn agor %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, fuzzy, c-format +msgid "Unpacking %s" +msgstr "Yn agor %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, fuzzy, c-format +msgid "Preparing to configure %s" +msgstr "Yn agor y ffeil cyfluniad %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, fuzzy, c-format +msgid "Configuring %s" +msgstr "Yn cysylltu i %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, fuzzy, c-format +msgid "Installed %s" +msgstr " Wedi Sefydlu: " + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, fuzzy, c-format +msgid "Removing %s" +msgstr "Yn agor %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, fuzzy, c-format +msgid "Removed %s" +msgstr "Argymell" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, fuzzy, c-format +msgid "Preparing to completely remove %s" +msgstr "Yn agor y ffeil cyfluniad %s" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, fuzzy, c-format +msgid "Completely removed %s" +msgstr "Methwyd dileu %s" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Methwyd agor ffeil %s" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Caewyd y cysylltiad yn gynnar" + +#~ msgid "File date has changed %s" +#~ msgstr "Dyddiad ffeil wedi newid %s" + +#, fuzzy +#~ msgid "Reading file list" +#~ msgstr "Yn Darllen Rhestr Ffeiliau" + +#, fuzzy +#~ msgid "Could not execute " +#~ msgstr "Methwyd cael y clo %s" + +#~ msgid "Abort? [Y/n] " +#~ msgstr "Erthylu? [I/n] " + +#~ msgid "Write Error" +#~ msgstr "Gwall Ysgrifennu" + +#~ msgid "File Not Found" +#~ msgstr "Ni Chanfuwyd Y Ffeil" diff --git a/po/da.po b/po/da.po new file mode 100644 index 0000000..e423e4e --- /dev/null +++ b/po/da.po @@ -0,0 +1,3030 @@ +# translation of apt_po_da.po to Danish +# translation of da.po to Danish +# Advanced Package Transfer - APT message translation catalog +# Danish messages +# +# Claus Hindsgaul , 2002,2003, 2004, 2005, 2006. +# Claus Hindsgaul , 2006. +msgid "" +msgstr "" +"Project-Id-Version: apt-da\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-10-06 15:57+0200\n" +"Last-Translator: Claus Hindsgaul \n" +"Language-Team: Danish\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Pakken %s version %s har en uopfyldt afhængighed:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Kunne ikke lokalisere pakken %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Totale pakkenavne : " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Normale pakker: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Rene virtuelle pakker: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Enkelte virtuelle pakker: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Blandede virtuelle pakker: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Manglende: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Totale forskellige versioner: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Totale afhængigheder: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Totale version/fil-relationer: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Totale 'tilbyder'-markeringer: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Totalle søgemønsterstrenge: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Total afhængighedsversions-plads: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Total 'Slack'-plads: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Total plads, der kan gøres rede for: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Pakkefilen %s er ude af trit." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Du skal angive nøjagtig ét mønster" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Fandt ingen pakker" + +# Overskriften til apt-cache policy, +# forkorter "Package" væk. CH +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Pakkefiler:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "Mellemlageret er ude af trit, kan ikke krydsreferere en pakkefil" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "'Pinned' pakker:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(ikke fundet)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Installeret: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(ingen)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Kandidat: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Pakke-pin: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Versionstabel:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s for %s %s oversat på %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Brug: apt-cache [tilvalg] kommando\n" +" apt-cache [tilvalg] add fil1 [fil2 ...]\n" +" apt-cache [tilvalg] showpkg pakke1 [pakke2 ...]\n" +" apt-cache [tilvalg] showsrc pakke1 [pakke2 ...]\n" +"\n" +"apt-cache er et lavniveau-værktøj, der bruge håndtere APTs\n" +"binære mellemlager-filer og hente oplysninger fra dem.\n" +"\n" +"Kommandoer:\n" +" add - Tilføj en pakkefil til kilde-mellemlageret\n" +" gencaches - Opbyg både pakke- og kilde-mellemlageret\n" +" showpkg - Vis generelle oplysninger om en enkelt pakke\n" +" showsrc - Vis kildetekstposter\n" +" stats - Vis nogle grundlæggende statistikker\n" +" dump - Vis hele filen i kort form\n" +" dumpavail - Udlæs en 'available'-fil til standard-ud\n" +" unmet - Vis uopfyldte afhængigheder\n" +" search - Gennemsøg pakkelisten med et regulært udtryk\n" +" show - Vis en læsbar post for pakken\n" +" depends - Vis de rå afhængighedsoplysninger for en pakke\n" +" rdepends - Vis omvendte afhængighedsoplysninger for en pakke\n" +" pkgnames - Vis navnene på alle pakker\n" +" dotty - Generér pakkegrafer til GraphVis\n" +" xvcg - Generér pakkegrafer til xvcg\n" +" policy - Vis policy-indstillinger\n" +"\n" +"Tilvalg:\n" +" -h Denne hjælpetekst.\n" +" -p=? Pakke-mellemlageret.\n" +" -s=? Kilde-mellemlageret.\n" +" -q Deaktivér fremgangsindikatoren.\n" +" -i Vis kun vigtige afhængigheder for 'unmet'-kommandoen.\n" +" -c=? Læs denne opsætningsfil\n" +" -o=? Angiv et opsætningstilvalg. F.eks. -o dir::cache=/tmp\n" +"Se manualsiderne for apt-cache(8) og apt.conf(5) for flere oplysninger.\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "Angiv et navn for denne disk, som f.eks. 'Debian 2.1r1 Disk 1'" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Indsæt en disk i drevet og tryk retur" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Gentag processen for resten af cd'erne i dit sæt." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Parametre ikke angivet i par" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Brug: apt-config [tilvalg] kommando\n" +"\n" +"apt-config er et simpelt værktøj til at læse APTs opsætningsfil\n" +"\n" +"Kommandoer:\n" +" shell - Skal-tilstand\n" +" dump - Vis opsætningen\n" +"\n" +"Tilvalg:\n" +" -h Denne hjælpetekst.\n" +" -c=? Læs denne opsætningsfil\n" +" -o=? Angiv et opsætningstilvalg. F.eks. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s er ikke en gyldig DEB-pakke." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Brug: apt-extracttemplates fil1 [fil2 ...]\n" +"\n" +"apt-extracttemplates er et værktøj til at uddrage opsætnings- og skabelon-" +"oplysninger fra Debianpakker\n" +"\n" +"Tilvalg:\n" +" -h Denne hjælpetekst\n" +" -t Angiv temp-mappe\n" +" -c=? Læs denne opsætningsfil\n" +" -o=? Angiv et opsætningstilvalg. F.eks. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Kunne ikke skrive til %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Kan ikke finde debconfs version. Er debconf installeret?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Pakkeudvidelseslisten er for lang" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Fejl under behandling af mappen %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Kildeudvidelseslisten er for lang" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Fejl under skrivning af hovedet til indholdsfil" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Fejl under behandling af indhold %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Brug: apt-ftparchive [tilvalg] kommando\n" +"Kommandoer: packges binærsti [tvangsfil [sti]]\n" +" sources kildesti [tvangsfil [sti]]\n" +" contents sti\n" +" release sti\n" +" generate config [grupper]\n" +" clean config\n" +"\n" +"apt-ftparchive laver indeksfiler til Debianarkiver. Det understøtter \n" +"mange former for generering, lige fra fuldautomatiske til funktionelle\n" +"erstatninger for dpkg-scanpackages og dpkg-scansources\n" +"\n" +"apt-ftparchive genererer Package-filer ud fra træer af .deb'er.\n" +"Package-filen indeholder alle styrefelterne fra hver pakke såvel\n" +"som MD5-mønstre og filstørrelser. En tvangsfil understøttes til at\n" +"gennemtvinge indholdet af Priority og Section.\n" +"\n" +"På samme måde genererer apt-ftparchive Sources-filer ud fra træer\n" +"med .dsc'er. Tvangstilvalget --source-override kan bruges til at\n" +"angive en src-tvangsfil.\n" +"\n" +"Kommandoerne 'packages' og 'sources' skal køres i roden af træet.\n" +"binærsti skal pege på basen af rekursive søgninger og tvangsfilen\n" +"skal indeholde tvangsflagene. Sti foranstilles eventuelle\n" +"filnavnfelter. Et eksempel på brug fra Debianarkivet:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Tilvalg:\n" +" -h Denne hjælpetekst\n" +" --md5 Styr generering af MD5\n" +" -s=? Kilde-tvangsfil\n" +" -q Stille\n" +" -d=? Vælg den valgfrie mellemlager-database\n" +" --no-delink Aktivér \"delinking\"-fejlsporingstilstand\n" +" --contents Bestem generering af indholdsfil\n" +" -c=? Læs denne opsætningsfil\n" +" -o=? Sæt en opsætnings-indstilling" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Ingen valg passede" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Visse filer mangler i pakkefilgruppen '%s'" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "DB var ødelagt, filen omdøbt til %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "DB er gammel, forsøger at opgradere %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"Databaseformatet er ugyldigt. Hvis du har opgraderet fra en tidligere " +"version af apt, så fjern og genskab databasen." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Kunne ikke åbne DB-filen %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Kunne ikke finde %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Arkivet har ingen kontrolindgang" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Kunne skaffe en markør" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "A: Kunne ikke læse mappen %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "W: Kunne ikke finde finde %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "F: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "A: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "F: Fejlene vedrører filen " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Kunne ikke omsætte navnet %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Trævandring mislykkedes" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Kunne ikke åbne %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " DeLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Kunne ikke 'readlink' %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Kunne ikke frigøre %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Kunne ikke lænke %s til %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " Nåede DeLink-begrænsningen på %sB.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Arkivet havde intet package-felt" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s har ingen tvangs-post\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " pakkeansvarlig for %s er %s, ikke %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s har ingen linje med tilsidesættelse af standard for kildefiler\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr "" +" %s har ingen linje med tilsidesættelse af standard for binøre filer\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Intern fejl, kunne ikke finde elementet %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Kunne ikke allokere hukommelse" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Kunne ikke åbne %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Ugyldig gennemtvangs %s-linje %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Ugyldig gennemtvangs %s-linje %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Ugyldig gennemtvangs %s-linje %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Kunne ikke læse gennemtvangsfilen %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Ukendt komprimeringsalgoritme '%s'" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Komprimerede uddata %s kræver et komprimeringssæt" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Kunne ikke oprette IPC-videreførsel til underproces" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Kunne ikke oprette FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Kunne ikke spalte" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Komprimer barn" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Intern fejl. Kunne ikke oprette %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Kunne ikke oprette underproces IPC" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Kunne ikke udføre komprimeringsprogram" + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "dekomprimerings-program" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "IO til underproces/fil mislykkedes" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Kunne ikke læse under beregning af MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Problem under aflænkning af %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Kunne ikke omdøbe %s til %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "J" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Fejl ved tolkning af regulært udtryk - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Følgende pakker har uopfyldte afhængigheder:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "men %s er installeret" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "men %s forventes installeret" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "men den kan ikke installeres" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "men det er en virtuel pakke" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "men den er ikke installeret" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "men den bliver ikke installeret" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " eller" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Følgende NYE pakker vil blive installeret:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Følgende pakker vil blive AFINSTALLERET:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Følgende pakker er blevet holdt tilbage:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Følgende pakker vil blive opgraderet:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Følgende pakker vil blive NEDGRADERET:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Følgende tilbageholdte pakker vil blive ændret:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (grundet %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"ADVARSEL: Følgende essentielle pakker vil blive afinstalleret\n" +"Dette bør IKKE ske medmindre du er helt klar over, hvad du laver!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu opgraderes, %lu nyinstalleres, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu geninstalleres, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu nedgraderes, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu afinstalleres og %lu opgraderes ikke.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu ikke fuldstændigt installerede eller afinstallerede.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Retter afhængigheder..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " mislykkedes." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Kunne ikke rette afhængigheder" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Kunne ikke minimere opgraderingssættet" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Færdig" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "Du kan muligvis rette dette ved at køre 'apt-get -f install'." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Uopfyldte afhængigheder. Prøv med -f." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "ADVARSEL: Følgende pakkers autensitet kunne ikke verificeres!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Autentifikationsadvarsel tilsidesat.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Installér disse pakker uden verifikation (y/N)? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Nogle pakker kunne ikke autentificeres" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Der er problemer og -y blev brugt uden --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "Intern fejl. InstallPackages blev kaldt med ødelagte pakker!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Pakker skal afinstalleres, men Remove er deaktiveret." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Intern fejl. Sortering blev ikke fuldført" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Kunne ikke låse nedhentningsmappen" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "Listen med kilder kunne ikke læses." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "Mystisk.. Størrelserne passede ikke, skriv til apt@packages.debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "%sB/%sB skal hentes fra arkiverne.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "%sB skal hentes fra arkiverne.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "Efter udpakning vil %sB yderligere diskplads være brugt.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Efter udpakning vil %sB diskplads blive frigjort.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Kunne ikke bestemme ledig plads i %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Du har ikke nok ledig plads i %s." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "'Trivial Only' angivet, men dette er ikke en triviel handling." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Ja, gør som jeg siger!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Du er ved at gøre noget, der kan være skadeligt\n" +"For at fortsætte, skal du skrive '%s'\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Afbryder." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Vil du fortsætte [J/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Kunne ikke hente %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Nedhentningen af filer mislykkedes" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Nedhentning afsluttet i 'hent-kun'-tilstand" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Kunne ikke hente nogle af arkiverne. Prøv evt. at køre 'apt-get update' " +"eller prøv med --fix-missing." + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing og medieskift understøttes endnu ikke" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Kunne ikke rette manglende pakker." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Afbryder installationen." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Bemærk, at %s vælges fremfor %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" +"Overspringer %s, da den allerede er installeret og opgradering er " +"deaktiveret.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "Pakken %s er ikke installeret, så den afinstalleres ikke\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Pakken %s er en virtuel pakke, der kan leveres af:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Installeret]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Du bør eksplicit vælge en at installere." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Pakken %s har ingen tilgængelig version, men der refereres til den i en \n" +"anden pakke. Det kan betyde at denne pakke blevet overflødiggjort eller \n" +"kun kan hentes fra andre kilder\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Dog kan følgende pakker erstatte den:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Pakken %s har ingen installationskandidat" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "Geninstallering af %s er ikke mulig, da den ikke kan hentes.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s er i forvejen den nyeste version.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Udgaven '%s' for '%s' blev ikke fundet" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Versionen '%s' for '%s' blev ikke fundet" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Valgte version %s (%s) af %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "'update'-kommandoen benytter ingen parametre" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Kunne ikke låse listemappen" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Nogle indeksfiler kunne ikke hentes, de er blevet ignoreret eller de gamle " +"bruges i stedet." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Intern fejl, AllUpgrade ødelagde noget" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Kunne ikke finde pakken %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Bemærk, vælger %s som regulært udtryk '%s'\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "Du kan muligvis rette det ved at køre 'apt-get -f install':" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Uopfyldte afhængigheder. Prøv 'apt-get -f install' uden pakker (eller angiv " +"en løsning)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Nogle pakker kunne ikke installeres. Det kan betyde at du har ønsket\n" +"en umulig situation eller bruger den ustabile distribution, hvor enkelte\n" +"pakker endnu ikke er lavet eller gjort tilgængelige." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Siden du kan bad om en enkelt handling, kan pakken højst sandsynligt slet\n" +"ikke installeres og du bør indsende en fejlrapport for denne pakke." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "Følgende oplysninger kan hjælpe dig med at klare situationen:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Ødelagte pakker" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Følgende yderligere pakker vil blive installeret:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Foreslåede pakker:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Anbefalede pakker:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Beregner opgraderingen... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Mislykkedes" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Færdig" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "Intern fejl. Problemløseren ødelagde noget" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "Du skal angive mindst én pakke at hente kildeteksten til" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Kunne ikke finde kildetekstpakken for %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Overspringer allerede hentet fil '%s'\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Du har ikke nok ledig plads i %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "%sB/%sB skal hentes fra kildetekst-arkiverne.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "%sB skal hentes fra kildetekst-arkiverne.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Henter kildetekst %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Nogle arkiver kunne ikke hentes." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Overspringer udpakning af allerede udpakket kildetekst i %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Udpakningskommandoen '%s' fejlede.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Tjek om pakken 'dpkg-dev' er installeret.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Opbygningskommandoen '%s' fejlede.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Barneprocessen fejlede" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "Skal angive mindst én pakke at tjekke opbygningsafhængigheder for" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Kunne ikke hente oplysninger om opbygningsafhængigheder for %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s har ingen opbygningsafhængigheder.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"%s-afhængigheden for %s kan ikke opfyldes, da pakken %s ikke blev fundet" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"%s-afhængigheden for %s kan ikke opfyldes, da ingen af de tilgængelige " +"udgaver af pakken %s kan tilfredsstille versions-kravene" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Kunne ikke opfylde %s-afhængigheden for %s: Den installerede pakke %s er for " +"ny" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Kunne ikke opfylde %s-afhængigheden for %s: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Opbygningsafhængigheden for %s kunne ikke opfyldes." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Kunne ikke behandler opbygningsafhængighederne" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Understøttede moduler:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Brug: apt-get [tilvalg] kommando\n" +" apt-get [tilvalg] install|remove pakke1 [pakke2 ...]\n" +" apt-get [tilvalg] source pakke1 [pakke2 ...]\n" +"\n" +"apt-get er en simpel kommandolinjegrænseflade til at hente og\n" +"installere pakker. De hyppigst brugte kommandoer er update og\n" +"install.\n" +"\n" +"Kommandoer:\n" +" update - Hent nye lister over pakker\n" +" upgrade - Udfør en opgradering\n" +" install - Installér nye pakker (pakke er libc6, ikke libc6.deb)\n" +" remove - Afinstallér pakker\n" +" source - Hent kildetekstarkiver\n" +" build-dep - Sæt opbygningsafhængigheder op for kildetekstpakker\n" +" dist-upgrade - Distributionsopgradering, se apt-get(8)\n" +" dselect-upgrade - Følg valgene fra dselect\n" +" clean - Slet hentede arkivfiler\n" +" autoclean - Slet gamle hentede arkivfiler\n" +" check - Tjek at der ikke er uopfyldte afhængigheder\n" +"\n" +"Tilvalg:\n" +" -h Denne hjælpetekst.\n" +" -q Uddata, der kan logges - ingen fremgangsindikator\n" +" -qq Ingen uddata, kun fejl\n" +" -d Hent kun - installér eller udpak IKKE arkiverne\n" +" -s Gør intet. Simulér handlingen\n" +" -y Antag 'ja'-svar til alle spørgsmål uden at spørge\n" +" -f Forsøg at fortsætte selvom integritetstjek fejler\n" +" -m Forsøg at fortsætte selvom arkiverne ikke kan findes\n" +" -u Vis også en liste over opgraderede pakker\n" +" -b Byg kildetekstpakken efter at have hentet den\n" +" -V Vis detaljerede versionsnumre\n" +" -c=? Læs denne opsætningsfil\n" +" -o=? Angiv et opsætningsvalg. F.eks. -o dir::cache=/tmp\n" +"Se manualsiderne for apt-get(8), sources.list(5) og apt.conf(5)\n" +"for flere oplysninger og tilvalg.\n" +" Denne APT har \"Super Cow Powers\".\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Havde " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Henter:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ignorerer " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Fejl " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Hentede %sB på %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Arbejder]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Medieskift: Indsæt disken med navnet\n" +" '%s'\n" +"i drevet '%s' og tryk retur\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Ukendt pakkeindgang!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Brug: apt-sortpkgs [tilvalg] fil1 [fil2 ...]\n" +"\n" +"apt-sortpkgs er et simpelt værktøj til at sortere pakkefiler. Tilvalget -s\n" +"bruges til at angive filens type.\n" +"\n" +"Tilvalg:\n" +" -h Denne hjælpetekst\n" +" -s Benyt kildefils-sortering\n" +" -c=? Læs denne opsætningsfil\n" +" -o=? Angiv en opsætningsindstilling. F.eks. -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Ugyldig standardindstilling!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Tryk retur for at fortsætte." + +# Note to translators: The following four messages belong together. It doesn't +# matter where sentences start, but it has to fit in just these four lines, and +# at only 80 characters per line, if possible. +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Der opstod fejl under udpakningen. Jeg vil opsætte de" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "pakker, der blev installeret. Det kan give gentagne fejl" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" +"eller fejl, der skyldes manglende afhængigheder. Dette er o.k. Det er kun" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"fejlene over denne besked, der er vigtige. Ret dem og kør [I]nstallér igen" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Sammenfletter tilgængelighedsoplysninger" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Kunne ikke oprette videreførsler" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Kunne ikke udføre gzip " + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Ødelagt arkiv" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Tar-tjeksum fejlede, arkivet er ødelagt" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Ukendt TAR-hovedtype %u, element %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Ugyldig arkivsignatur" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Fejl under læsning af arkivelements hoved" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Ugyldigt arkivelementhoved" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Arkivet er for kort" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Kunne ikke læse arkivhovederne" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "DropNode kaldt med endnu forbundet knude" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Kunne ikke finde hash-element!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Kunne ikke allokere omrokering" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Intern fejl i AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Forsøger at overskrive en omrokering, %s -> %s og %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Dobbelt tilføjelse af omrokering %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Dobbelt opsætningsfil %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Kunne ikke skrive filen %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Kunne ikke lukke filen %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "Stien %s er for lang" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Pakkede %s ud flere gange" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "Mappen %s er omrokeret" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "Pakken forsøger at skrive til omrokeret mål %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Omrokeringsstien er for lang" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "Mappen %s bliver erstattet af en ikke-mappe" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Kunne ikke finde knuden i sin hash-bucket" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Stien er for lang" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Overskriv pakkematch uden version for %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "File %s/%s overskriver filen i pakken %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Kunne ikke læse %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Kunne ikke finde %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Kunne ikke slette %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Kunne ikke oprette %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Kunne ikke finde %sinfo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "Mapperne info og temp skal ligge i samme filsystem" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Indlæser pakkelisterne" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Kunne ikke skifte til admin-mappen %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Intern fejl under hentning af et pakkenavn" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Læser fillisten" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Kunne ikke åbne listefilen '%sinfo/%s'. Hvis du ikke kan genskabe denne fil, " +"kan du gøre dem tom og med det samme geninstallere den samme version af " +"pakken!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Kunne ikke læse listefilen %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Intern fejl under hentning af knude" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Kunne ikke åbne omrokeringsfilen %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Pakkeomrokeringsfilen er ødelagt" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Ugyldig linje i omrokeringsfilen: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Intern fejl under tilføjelse af omrokering" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "pkg-mellemlageret skal initialiseres først" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Kunne ikke finde et Package:-hovede, forskydning %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Ugyldig ConfFile-afsnit i statusfilen. Forskydning %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Fejl under tolkning af MD5. Forskydning %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Dette er ikke et gyldigt DEB-arkiv, mangler '%s'-elementet" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "" +"Dette er ikke et gyldigt DEB-arkiv, det har intet'%s- eller %s-elementet" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Kunne ikke skifte til %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Intern fejl, kunne ikke finde element" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Kunne ikke finde en gyldig kontrolfil" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Ikke-tolkbar kontrolfil" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Kunne ikke læse cdrom-databasen %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Brug apt-cdrom for at apt kan lære den at kende. apt-get update kan ikke " +"bruges til at tilføje nye cd'er" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "Forkert cd" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "Kunne ikke afmontere cdrommen i %s, den er muligvis stadig i brug." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Disk blev ikke fundet." + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Fil blev ikke fundet" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Kunne ikke finde" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Kunne ikke angive ændringstidspunkt" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "Ugyldig URI, lokale URI'er må ikke starte med //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Logget på" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Kunne ikke bestemme serverens navn" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Kunne ikke bestemme det lokale navn" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Serveren nægtede os forbindelse og sagde: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "angivelse af brugernavn mislykkedes, serveren sagde: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "angivelse af adgangskode mislykkedes, serveren sagde: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Der blev angivet en proxyserver men intet logpå-skript; Acquire::ftp::" +"ProxyLogin er tom." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Logpå-skriptets kommando '%s' mislykkedes. Serveren sagde: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "TYPE mislykkedes. Serveren sagde: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Tidsudløb på forbindelsen" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Serveren lukkede forbindelsen" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Læsefejl" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Mellemlageret blev overfyldt af et svar." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Protokolfejl" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Skrivefejl" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Kunne ikke oprette sokkel" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "Kunne ikke forbinde datasokkel, tidsudløb på forbindelsen" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Kunne ikke forbinde passiv sokkel." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo kunne ikke få en lyttesokkel" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Kunne ikke tilknytte en sokkel" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Kunne ikke lytte på soklen" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Kunne ikke finde soklens navn" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Kunne ikke sende PORT-kommando" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Ukendt adressefamilie %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT mislykkedes. Serveren sagde: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Tidsudløb på datasokkel-forbindelse" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Kunne ikke acceptere forbindelse" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Problem ved \"hashing\" af fil" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Kunne ikke hente fil. Serveren sagde '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Tidsudløb ved datasokkel" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Dataoverførsel mislykkedes, serveren sagde '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Forespørgsel" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Kunne ikke udføre " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Forbinder til %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Kunne ikke oprette sokkel til %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Kan ikke oprette forbindelse til %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Kunne ikke forbinde til %s:%s (%s) grundet tidsudløb" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Kunne ikke forbinde til %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Forbinder til %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Kunne ikke omsætte navnet '%s'" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Midlertidig fejl ved omsætning af navnet '%s'" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Der skete noget underligt under navneomsætning af '%s:%s' (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Kunne ikke forbinde til %s %s:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Kunne ikke tilgå nøgleringent '%s'" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "F: Argumentlisten fra Acquire::gpgv::Options er for lang. Afslutter." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" +"Intern fejl: Gyldig signatur, men kunne ikke afgøre nøgle-fingeraftryk?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Stødte på mindst én ugyldig signatur." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" +"Kunne ikke køre '%s' for at verificere signaturen (er gnupg installeret?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Ukendt fejl ved kørsel af gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "Følgende signaturer var ugyldige:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"Følgende signaturer kunne ikke verificeret, da den offentlige nøgle ikke er " +"tilgængelig:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Kunne ikke åbne datarør for %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Læsefejl fra %s-process" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Afventer hoveder" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Fandt en enkelt linje i hovedet på over %u tegn" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Ugyldig linje i hovedet" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "http-serveren sendte et ugyldigt svarhovede" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "http-serveren sendte et ugyldigt Content-Length-hovede" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "http-serveren sendte et ugyldigt Content-Range-hovede" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "" +"Denne http-servere har fejlagtig understøttelse af intervaller ('ranges')" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Ukendt datoformat" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Valg mislykkedes" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Tidsudløb på forbindelsen" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Fejl ved skrivning af uddatafil" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Fejl ved skrivning til fil" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Fejl ved skrivning til filen" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "Fejl ved læsning fra serveren. Den fjerne ende lukkede forbindelsen" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Fejl ved læsning fra server" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Ugyldige hoved-data" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Forbindelsen mislykkedes" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Intern fejl" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Kan ikke udføre mmap for en tom fil" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Kunne ikke udføre mmap for %lu byte" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Det valgte %s blev ikke fundet" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Ukendt type-forkortelse: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Åbner konfigurationsfilen %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Linjen %d er for lang (må højst være %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Syntaksfejl %s:%u: Blokken starter uden navn." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Syntaksfejl %s:%u: Forkert udformet mærke" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Syntaksfejl %s:%u: Overskydende affald efter værdien" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "Syntaksfejl %s:%u: Direktiver kan kun angives i topniveauet" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Syntaksfejl %s:%u: For mange sammenkædede inkluderinger" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Syntaksfejl %s:%u: Inkluderet herfra" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Syntaksfejl %s:%u: Ikke-understøttet direktiv '%s'" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Syntaksfejl %s:%u: Overskydende affald i slutningen af filen" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Fejl!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Færdig" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Kommandolinjetilvalget '%c' [fra %s] kendes ikke." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Kommandolinjetilvalget %s blev ikke forstået" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Kommandolinjetilvalget %s er ikke boolsk" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "Tilvalget %s kræver et parameter." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "Tilvalg %s: Opsætningspostens specifikation skal have en =." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "Tilvalget %s kræver et heltalligt parameter, ikke '%s'" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Tilvalget '%s' er for langt" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "%s blev ikke forstået, prøv med 'true' eller 'false'." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Ugyldig handling %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Kunne ikke finde monteringspunktet %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Kunne ikke skifte til %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Kunne ikke finde cdrommen" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "Benytter ikke låsning for skrivebeskyttet låsefil %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Kunne ikke åbne låsefilen %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "Benytter ikke låsning for nfs-monteret låsefil %s" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Kunne ikke opnå låsen %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Ventede på %s, men den var der ikke" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Underprocessen %s modtog en segmenteringsfejl." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Underprocessen %s returnerede en fejlkode (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Underprocessen %s afsluttedes uventet" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Kunne ikke åbne filen %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "læs, mangler stadig at læse %lu men der er ikke flere" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "skriv, mangler stadig at skrive %lu men kunne ikke" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Problem under lukning af fil" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Fejl ved frigivelse af filen" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Problem under synkronisering af fil" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Tomt pakke-mellemlager" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Pakke-mellemlagerets fil er ødelagt" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Pakke-mellemlagerets fil er af en inkompatibel version" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Denne APT understøtter ikke versionssystemet '%s'" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "Pakke-mellemlageret er lavet til en anden arkitektur" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Afhængigheder" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Præ-afhængigheder" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Foreslåede" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Anbefalede" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Konflikter" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Erstatter" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Overflødiggør" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "vigtig" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "krævet" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "standard" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "frivillig" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "ekstra" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Opbygger afhængighedstræ" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Kandidatversioner" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Afhængighedsgenerering" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Kunne ikke tolke pakkefilen %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Kunne ikke tolke pakkefilen %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Ugyldig linje %lu i kildelisten %s (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Ugyldig linje %lu i kildelisten %s (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Ugyldig linje %lu i kildelisten %s (tolkning af URI)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Ugyldig linje %lu i kildelisten %s (absolut dist)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Ugyldig linje %lu i kildelisten %s (tolkning af dist)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Åbner %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Linjen %u er for lang i kildelisten %s." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Ugyldig linje %u i kildelisten %s (type)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Typen '%s' er ukendt på linje %u i kildelisten %s" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Ugyldig linje %u i kildelisten %s (producent-id)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Kørsel af denne installation kræver midlertidig afinstallation af den " +"essentielle pakke %s grundet en afhængighedsløkke. Det er ofte en dårlig " +"idé, men hvis du virkelig vil gøre det, kan du aktivere valget 'APT::Force-" +"LoopBreak'." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Indeksfiler af typen '%s' understøttes ikke" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"Pakken %s skal geninstalleres, men jeg kan ikke finde noget arkiv med den." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Fejl, pkgProblemResolver::Resolve satte stopklodser op, det kan skyldes " +"tilbageholdte pakker." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "" +"Kunne ikke korrigere problemerne, da du har tilbageholdt ødelagte pakker." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Listemappen %spartial mangler." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Arkivmappen %spartial mangler." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "Henter fil %li ud af %li (%s tilbage)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "Henter fil %li ud af %li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Metodedriveren %s blev ikke fundet." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Metoden %s startede ikke korrekt" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "Indsæt disken med navnet: '%s' i drevet '%s' og tryk retur." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Pakkesystemet '%s' understøttes ikke" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Kunne ikke bestemme en passende pakkesystemtype" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Kunne ikke finde %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "Du skal have nogle 'source'-URI'er i din sources.list" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "Pakkelisterne eller statusfilen kunne ikke tolkes eller åbnes." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "Du kan muligvis rette problemet ved at køre 'apt-get update'" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Ugyldig indgang i indstillingsfilen. Pakkehovedet mangler" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Kunne ikke forstå pin-type %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Ingen prioritet (eller prioritet nul) angivet ved pin" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Mellemlageret benytter en inkompatibel versionsstyring" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Der skete en fejl under behandlingen af %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Der skete en fejl under behandlingen af %s (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Der skete en fejl under behandlingen af %s (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Der skete en fejl under behandlingen af %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Der skete en fejl under behandlingen af %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Der skete en fejl under behandlingen af %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Der skete en fejl under behandlingen af %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" +"Hold da op! Du nåede over det antal pakkenavne, denne APT kan håndtere." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "Hold da op! Du nåede over det antal versioner, denne APT kan håndtere." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" +"Hold da op! Du nåede over det antal afhængigheder, denne APT kan håndtere." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Der skete en fejl under behandlingen af %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Der skete en fejl under behandlingen af %s (CollectfileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "Pakken %s %s blev ikke fundet under behandlingen af filafhængigheder" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Kunne ikke finde kildepakkelisten %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Samler filudbud" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "IO-fejl ved gemning af kilde-mellemlageret" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "omdøbning mislykkedes, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "MD5Sum stemmer ikke" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "" +"Der er ingen tilgængelige offentlige nøgler for følgende nøgle-ID'er:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Jeg kunne ikke lokalisere filen til %s-pakken. Det betyder muligvis at du er " +"nødt til manuelt at reparere denne pakke. (grundet manglende arch)" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Jeg kunne ikke lokalisere filen til %s-pakken. Det betyder muligvis at du er " +"nødt til manuelt at reparere denne pakke." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "Pakkeindeksfilerne er i stykker. Intet 'Filename:'-felt for pakken %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Størrelsen stemmer ikke" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Leverandørblok %s inderholder intet fingeraftryk" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Bruger cdrom-monteringspunktet %s\n" +"Monterer cdrom\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Identificerer.. " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Gemt mærkat: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Bruger cdrom-monteringspunktet %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "Afmonterer cdrom\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Venter på disken...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Monterer cdrom...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Skanner disken for indeksfiler..\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "Fandt %i pakkeindekser, %i kildeindekser og %i signaturer\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Det er ikke et gyldigt navn, prøv igen.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Denne disk hedder: \n" +" %s \n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Kopierer pakkelisterne..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Skriver ny kildeliste\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Denne disk har følgende kildeliste-indgange:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "Afmonterer cdrom..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "Skrev %i poster.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "Skrev %i poster med %i manglende filer.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "Skrev %i poster med %i ikke-trufne filer\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "Skrev %i poster med %i manglende filer og %i ikke-trufne filer\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "Klargør %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "Pakker %s ud" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "Gør klar til at sætte %s op" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "Sætter %s op" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "Installerede %s" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "Gør klar til afinstallation af %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "Fjerner %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "Fjernede %s" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "Gør klar til at fjerne %s helt" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "Fjernede %s helt" + +#: methods/rred.cc:219 +msgid "Could not patch file" +msgstr "Kunne ikke påføre filen %s en lap" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Forbindelsen lukkedes for hurtigt" + +#~ msgid "File date has changed %s" +#~ msgstr "Filens dato er ændret %s" + +#~ msgid "Reading file list" +#~ msgstr "Indlæser fillisten" + +#~ msgid "Could not execute " +#~ msgstr "Kunne ikke køre " + +#~ msgid "Preparing for remove with config %s" +#~ msgstr "Gør klar til at fjerne %s inklusive opsætning" + +#~ msgid "Removed with config %s" +#~ msgstr "Fjernede %s inklusive opsætning" + +#~ msgid "Unknown vendor ID '%s' in line %u of source list %s" +#~ msgstr "Ukendt leverandør-ID '%s' på linje %u i kildelisten %s" + +#~ msgid "" +#~ "Some broken packages were found while trying to process build-" +#~ "dependencies.\n" +#~ "You might want to run `apt-get -f install' to correct these." +#~ msgstr "" +#~ "Det blev fundet ødelagte pakker under behandlingen af " +#~ "opbygningsafhængighederne.\n" +#~ "Du kan muligvis rette dette ved at køre 'apt-get -f install'." + +#~ msgid "Sorry, you don't have enough free space in %s to hold all the .debs." +#~ msgstr "" +#~ "Beklager, men du har ikke nok ledig plads i %s til at opbevare alle .deb-" +#~ "filerne." + +#~ msgid "<- '" +#~ msgstr "<- '" + +#~ msgid "'" +#~ msgstr "'" + +#~ msgid "-> '" +#~ msgstr "-> '" + +#~ msgid "Followed conf file from " +#~ msgstr "Fulgte conf-filen fra " + +#~ msgid " to " +#~ msgstr " til " + +#~ msgid "Extract " +#~ msgstr "Ekstrahér " + +#~ msgid "Aborted, backing out" +#~ msgstr "Afbrudt, tilbagetrækker" + +#~ msgid "De-replaced " +#~ msgstr "Gen-omplaceret " + +#~ msgid " from " +#~ msgstr " fra " + +#~ msgid "Backing out " +#~ msgstr "Tilbagetrækker " + +#~ msgid " [new node]" +#~ msgstr " [ny knude]" + +#~ msgid "Replaced file " +#~ msgstr "Erstattede filen " + +#~ msgid "Internal error, Unable to parse a package record" +#~ msgstr "Intern fejl. Kunne ikke tolke pakkeindgangen" + +#~ msgid "Unimplemented" +#~ msgstr "Ikke implementeret" + +#~ msgid "You must give at least one file name" +#~ msgstr "Du skal angive mindst ét filnavn" + +#~ msgid "Generating cache" +#~ msgstr "Opretter mellemlager" + +#~ msgid "Problem with SelectFile" +#~ msgstr "Problem med SelectFile" + +#~ msgid "Problem with MergeList" +#~ msgstr "Problem med MergeList" + +#~ msgid "Regex compilation error" +#~ msgstr "Fejl under oversættelse af regulært udtryk" + +#~ msgid "Write to stdout failed" +#~ msgstr "Skrivning til standard-ud mislykkedes" + +#~ msgid "Generate must be enabled for this function" +#~ msgstr "'Generate' skal være aktiveret for denne funktion" + +#~ msgid "Failed to stat %s%s" +#~ msgstr "Kunne ikke finde %s%s" + +#~ msgid "Failed to open %s.new" +#~ msgstr "Kunne ikke åbne %s.new" + +#~ msgid "Failed to rename %s.new to %s" +#~ msgstr "Kunne ikke omdøbe %s.new til %s" + +#~ msgid "I found (binary):" +#~ msgstr "Jeg fandt (binære programfiler):" + +#~ msgid "I found (source):" +#~ msgstr "Jeg fandt (kildefiler):" + +#~ msgid "Found " +#~ msgstr "Fandt " + +#~ msgid " source indexes." +#~ msgstr " kildeindekser." + +#~ msgid "" +#~ "Unable to locate any package files, perhaps this is not a Debian Disc" +#~ msgstr "" +#~ "Kunne ikke finde nogen pakkefiler. Det er muligvis ikke en Debiandisk" + +#~ msgid " '" +#~ msgstr " '" + +#~ msgid "" +#~ "Usage: apt-cdrom [options] command\n" +#~ "\n" +#~ "apt-cdrom is a tool to add CDROM's to APT's source list. The\n" +#~ "CDROM mount point and device information is taken from apt.conf\n" +#~ "and /etc/fstab.\n" +#~ "\n" +#~ "Commands:\n" +#~ " add - Add a CDROM\n" +#~ " ident - Report the identity of a CDROM\n" +#~ "\n" +#~ "Options:\n" +#~ " -h This help text\n" +#~ " -d CD-ROM mount point\n" +#~ " -r Rename a recognized CD-ROM\n" +#~ " -m No mounting\n" +#~ " -f Fast mode, don't check package files\n" +#~ " -a Thorough scan mode\n" +#~ " -c=? Read this configuration file\n" +#~ " -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +#~ "See fstab(5)\n" +#~ msgstr "" +#~ "Brug: apt-cdrom [tilvalg] kommando\n" +#~ "\n" +#~ "apt-cdrom er et værktøj til at tilføje cdrom'er til APTs kildeliste.\n" +#~ "cdrom-monteringspunkt og enhedsoplysninger hentes fra apt.conf\n" +#~ "og /etc/fstab.\n" +#~ "\n" +#~ "Kommandoer:\n" +#~ " add - Tilføj en cdrom\n" +#~ " ident - Rapportér den cdroms identitet\n" +#~ "\n" +#~ "Tilvalg:\n" +#~ " -h Denne hjælpetekst\n" +#~ " -d cdrom monteringspunkt\n" +#~ " -r Omdøb en genkendt cdrom\n" +#~ " -m Montér ikke\n" +#~ " -f Hurtig-tilstand. Tjek ikke pakkefiler\n" +#~ " -a Grundig skannetilstand\n" +#~ " -c=? Læs denne opsætningsfil\n" +#~ " -o=? Angiv en opsætningsfunktion, f.eks. -o dir::cache=/tmp\n" +#~ "Se fstab(5)\n" + +#~ msgid "Internal error, non-zero counts" +#~ msgstr "Intern fejl. ikke-nul optælling" + +#~ msgid "Couldn't wait for subprocess" +#~ msgstr "Kunne ikke vente på underproces" + +#~ msgid "....\"Have you mooed today?\"..." +#~ msgstr "....\"Har du sagt 'mu' i dag?\"..." + +#~ msgid " New " +#~ msgstr " Ny " + +#~ msgid "B " +#~ msgstr "B " + +#~ msgid " files " +#~ msgstr " filer " + +#~ msgid " pkgs in " +#~ msgstr " pakker i " + +#~ msgid "" +#~ "Usage: apt-ftparchive [options] command\n" +#~ "Commands: packges binarypath [overridefile [pathprefix]]\n" +#~ " sources srcpath [overridefile [pathprefix]]\n" +#~ " contents path\n" +#~ " generate config [groups]\n" +#~ " clean config\n" +#~ msgstr "" +#~ "Brug: apt-ftparchive [tilvalg] kommando\n" +#~ "Kommandoer: packges binærsti [tvangsfil [foranstillet-sti]]\n" +#~ " sources kildesti [tvangsfil [foranstillet-sti]]\n" +#~ " contents sti\n" +#~ " generate config [grupper]\n" +#~ " clean config\n" + +#~ msgid "" +#~ "Options:\n" +#~ " -h This help text\n" +#~ " --md5 Control MD5 generation\n" +#~ " -s=? Source override file\n" +#~ " -q Quiet\n" +#~ " -d=? Select the optional caching database\n" +#~ " --no-delink Enable delinking debug mode\n" +#~ " --contents Control contents file generation\n" +#~ " -c=? Read this configuration file\n" +#~ " -o=? Set an arbitrary configuration option\n" +#~ msgstr "" +#~ "Tilvalg:\n" +#~ " -h Denne hjælpetekst\n" +#~ " --md5 Kontrollér MD5-generering\n" +#~ " -s=? Kilde-gennemtvangsfil\n" +#~ " -q Stille\n" +#~ " -d=? Vælg den frivillige mellemlager-database\n" +#~ " --no-delink Aktivér 'delinking debug'-tilstand\n" +#~ " --contents Kontrollér generering af indholdsfil\n" +#~ " -c=? Læs denne opsætningsfil\n" +#~ " -o=? Angiv en opsætningsfunktion\n" + +#~ msgid "Done Packages, Starting contents." +#~ msgstr "Færdig med Packages, starter indhold." + +#~ msgid "Hit contents update byte limit" +#~ msgstr "Stødte mod indholdsopdateringens byte-begrænsning" + +#~ msgid "Done. " +#~ msgstr "Færdig. " + +#~ msgid "B in " +#~ msgstr "B i " + +#~ msgid " archives. Took " +#~ msgstr " arkiver. Det tog " + +#~ msgid "B hit." +#~ msgstr "B ramtes." + +#~ msgid " not " +#~ msgstr " ikke " + +#~ msgid "DSC file '%s' is too large!" +#~ msgstr "DSC-filen '%s' er for stor!" + +#~ msgid "Could not find a record in the DSC '%s'" +#~ msgstr "Kunne ikke finde indgang i DSC '%s'" + +#~ msgid "Error parsing file record" +#~ msgstr "Fejl under tolkning af filindgang" + +#~ msgid "Failed too stat %s" +#~ msgstr "Kunne ikke finde %s" + +#~ msgid "Errors apply to file '%s'" +#~ msgstr "Fejlene vedrører filen '%s'" diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..0db6e98 --- /dev/null +++ b/po/de.po @@ -0,0 +1,2819 @@ +# German messages for the apt suite. +# Copyright (C) 1997, 1998, 1999 Jason Gunthorpe and others. +# Michael Piefel , 2001, 2002, 2003, 2004, 2006. +# Rüdiger Kuhlmann , 2002. +# +msgid "" +msgstr "" +"Project-Id-Version: apt 0.6.46.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-10-24 11:45+0200\n" +"Last-Translator: Michael Piefel \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Paket %s Version %s hat eine nichterfüllte Abhängigkeit:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Kann Paket %s nicht finden" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Gesamtzahl an Paketnamen: " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " davon gewöhnliche Pakete: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " davon rein virtuelle Pakete: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " davon einzelne virtuelle Pakete: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " davon gemischte virtuelle Pakete: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " davon fehlend: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Gesamtzahl an unterschiedlichen Versionen: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Gesamtzahl an Abhängigkeiten: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Gesamtzahl an Version/Datei-Beziehungen: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Gesamtzahl an Bereitstellungen: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Gesamtzahl an Mustern: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Gesamtmenge an Abhängigkeits/Versionsspeicher: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Gesamtmenge an Slack: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Gesamtmenge an Speicher: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Paketdatei %s ist nicht synchronisiert." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Sie müssen genau ein Muster angeben" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Keine Pakete gefunden" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Paketdateien:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "Cache ist nicht sychron, kann eine Paketdatei nicht querverweisen" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Festgehaltene Pakete („Pin“):" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(nicht gefunden)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Installiert:" + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(keine)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Mögliche Pakete:" + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Paketstecknadel: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Versions-Tabelle:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s für %s %s kompiliert am %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Aufruf: apt-cache [Optionen] Befehl\n" +" apt-cache [Optionen] add Datei1 [Datei2 ...]\n" +" apt-cache [Optionen] showpkg Paket1 [Paket2 ...]\n" +" apt-cache [Optionen] showsrc Paket1 [Paket2 ...]\n" +"\n" +"apt-cache ist ein Low-Level-Werkzeug, um die binären Cache-Dateien von\n" +"APT zu manipulieren und Informationen daraus zu erfragen.\n" +"\n" +"Befehle:\n" +" add – Paket-Datei dem Quellcache hinzufügen\n" +" gencaches – Paket- und Quellcache neu erzeugen\n" +" showpkg – grundsätzliche Informationen für ein einzelnes Paket zeigen\n" +" showsrc – Aufzeichnungen zu Quellen zeigen\n" +" stats – einige grundlegenden Statistiken zeigen\n" +" dump – gesamte Datei in Kurzform zeigen\n" +" dumpavail – gesamte Datei verfügbarer Pakete ausgeben\n" +" unmet – unerfüllte Abhängigkeiten zeigen\n" +" search – in der Paketliste mittels regulären Ausdrucks suchen\n" +" show – einen lesbaren Datensatz für das Paket zeigen\n" +" depends – normale Abhängigkeitsinformationen für ein Paket zeigen\n" +" rdepends – umgekehrte Abhängigkeitsinformationen für ein Paket zeigen\n" +" pkgnames – alle Paketnamen auflisten\n" +" dotty – einen Paketgraph zur Verwendung mit GraphViz erzeugen\n" +" xvcg – einen Paketgraph zur Verwendung mit xvcg erzeugen\n" +" policy – „policy“-Einstellungen zeigen\n" +"\n" +"Optionen:\n" +" -h dieser Hilfe-Text.\n" +" -p=? der Paketcache.\n" +" -s=? der Quellcache.\n" +" -q Fortschrittsanzeige abschalten\n" +" -i nur wichtige Abhängigkeiten für den „unmet“-Befehl zeigen\n" +" -c=? diese Konfigurationsdatei lesen\n" +" -o=? eine beliebige Konfigurations-Option setzen, z. B. -o dir::cache=/" +"tmp\n" +"Siehe auch apt-cache(8) und apt.conf(5) für weitere Informationen.\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "" +"Bitte geben Sie einen Namen für die CD an, wie zum Beispiel „Debian 2.2r1 " +"Disk 1“" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "" +"Bitte legen Sie ein Medium ins Laufwerk und drücken Sie die Eingabetaste" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "" +"Wiederholen Sie dieses Prozedere für die restlichen CDs in Ihres Satzes." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Argumente nicht paarweise" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Aufruf: apt-config [optionen] befehl\n" +"\n" +"apt-config ist ein einfaches Werkzeug, um die APT-Konfigurationsdatei zu " +"lesen.\n" +"\n" +"Befehle:\n" +" shell – Shell-Modus\n" +" dump – Die Konfiguration ausgeben\n" +"\n" +"Optionen:\n" +" -h Dieser Hilfetext\n" +" -c=? Diese Konfigurationsdatei lesen\n" +" -o=? Eine beliebige Konfigurationsoption setzen, z. B. -o dir::cache=/" +"tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s ist kein gültiges DEB-Paket." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Aufruf: apt-extracttemplates datei1 [datei2 ...]\n" +"\n" +"apt-extracttemplates ist ein Werkzeug zum Extrahieren von Konfigurations- " +"und\n" +"Template-Informationen aus Debian-Paketen.\n" +"\n" +"Optionen:\n" +" -h Dieser Hilfetext\n" +" -t Das temporäre Verzeichnis setzen\n" +" -c=? Diese Konfigurationsdatei lesen\n" +" -o=? Eine beliebige Konfigurationsoption setzen, z. B. -o dir::cache=/" +"tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Kann nicht nach %s schreiben" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Kann debconf-Version nicht ermitteln. Ist debconf installiert?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Paketerweiterungsliste ist zu lang" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Fehler beim Verarbeiten von Verzeichnis %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Quellerweiterungsliste ist zu lang" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Fehler beim Schreiben des Headers in die Inhaltsdatei" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Fehler beim Verarbeiten der Inhaltsdatei %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Aufruf: apt-ftparchive [optionen] befehl\n" +"Befehle: packages binarypath [overridedatei [pfadpräfix]]\n" +" sources srcpath [overridedatei [pfadpräfix]]\n" +" contents path\n" +" release path\n" +" generate config [gruppen]\n" +" clean config\n" +"\n" +"apt-ftparchive generiert Indexdateien für Debian-Archive. Es unterstützt " +"viele\n" +"verschiedene Arten der Generierung, von vollautomatisch bis hin zu den\n" +"funktionalen Äquivalenten von dpkg-scanpackages und dpkg-scansources.\n" +"\n" +"apt-ftparchive generiert Package-Dateien aus einem Baum von .debs. Die " +"Package-\n" +"Datei enthält den Inhalt aller Kontrollfelder aus jedem Paket sowie einen " +"MD5-\n" +"Hashwert und die Dateigröße. Eine Override-Datei wird unterstützt, um Werte " +"für\n" +"Priorität und Sektion zu erzwingen.\n" +"\n" +"Auf ganz ähnliche Weise erzeugt apt-ftparchive Sources-Dateien aus einem " +"Baum\n" +"von .dscs. Die Option --source-override kann benutzt werden, um eine " +"Override-\n" +"Datei für Quellen anzugeben.\n" +"\n" +"Die Befehle „packages“ und „source“ sollten in der Wurzel des Baumes " +"aufgerufen\n" +"werden. BinaryPath sollte auf die Basis der rekursiven Suche zeigen und\n" +"overridefile sollte die Override-Flags enthalten. Pfadpräfix wird, so\n" +"vorhanden, jedem Dateinamen vorangestellt. Beispielaufruf im Debian-Archiv:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Optionen:\n" +" -h dieser Hilfe-Text\n" +" --md5 MD5-Hashes erzeugen\n" +" -s=? Override-Datei für Quellen\n" +" -q ruhig\n" +" -d=? optionale Cache-Datenbank auswählen\n" +" --no-delink Debug-Modus für Delinking setzen\n" +" --contents Inhaltsdatei erzeugen\n" +" -c=? diese Konfigurationsdatei lesen\n" +" -o=? eine beliebige Konfigurations-Option setzen" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Keine Auswahl passt" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Einige Dateien fehlen in der Paketdateigruppe „%s“" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "DB wurde beschädigt, Datei umbenannt in %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "DB ist alt, versuche %s zu erneuern" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"DB-Format ist ungültig. Wenn Sie ein Update von einer älteren Version von " +"apt gemacht haben, entfernen Sie bitte die Datenbank und erstellen sie neu." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Kann DB-Datei %s nicht öffnen: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Kann auf %s nicht zugreifen." + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Archiv hat keinen Steuerungs-Datensatz" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Kann keinen Cursor bekommen" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: Kann Verzeichnis %s nicht lesen\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "W: Kann nicht zugreifen auf %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "F: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "F: Fehler gehören zu Datei " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Konnte %s nicht auflösen" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Baumabschreiten fehlgeschlagen" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Konnte %s nicht öffnen" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " DeLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Kann kein readlink auf %s durchführen" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Konnte %s nicht entfernen (unlink)" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Konnte keine Verknüpfung von %s zu %s anlegen" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " DeLink-Limit von %sB erreicht.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Archiv hatte kein Paket-Feld" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s hat keinen Eintrag in der Override-Liste.\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " %s-Maintainer ist %s und nicht %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s hat keinen Eintrag in der Source-Override-Liste.\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s hat keinen Eintrag in der Binary-Override-Liste.\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Interner Fehler, konnte Bestandteil %s nicht finden" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc – Speicheranforderung fehlgeschlagen" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Kann %s nicht öffnen" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Missgestaltetes Override %s Zeile %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Missgestaltetes Override %s Zeile %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Missgestaltetes Override %s Zeile %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Konnte die Override-Datei %s nicht lesen." + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Unbekannter Komprimierungsalgorithmus „%s“" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Komprimierte Ausgabe %s braucht einen Komprimierungs-Satz" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Konnte Interprozesskommunikation mit Unterprozess nicht erzeugen" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Konnte FILE* nicht erzeugen" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Fork Fehlgeschlagen" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Kindprozess Komprimieren" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Interner Fehler, konnte %s nicht erzeugen" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Konnte Interprozesskommunikation mit Unterprozess nicht erzeugen" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Konnte Komprimierer nicht ausführen" + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "Dekomprimierer" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "E/A zu Kindprozess/Datei fehlgeschlagen" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Kann nicht lesen während der MD5-Berechnung" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Problem beim Unlinking von %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Konnte %s nicht in %s umbenennen" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "J" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Fehler beim Kompilieren eines regulären Ausdrucks – %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Die folgenden Pakete haben nichterfüllte Abhängigkeiten:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "aber %s ist installiert" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "aber %s soll installiert werden" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "ist aber nicht installierbar" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "ist aber ein virtuelles Paket" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "ist aber nicht installiert" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "soll aber nicht installiert werden" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " oder " + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Die folgenden NEUEN Pakete werden installiert:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Die folgenden Pakete werden ENTFERNT:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Die folgenden Pakete sind zurückgehalten worden:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Die folgenden Pakete werden aktualisiert:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Die folgenden Pakete werden DEAKTUALISIERT:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Die folgenden gehaltenen Pakete werden verändert:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (wegen %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"WARNUNG: Die folgenden essentiellen Pakete werden entfernt.\n" +"Dies sollte NICHT geschehen, wenn Sie nicht genau wissen, was Sie tun!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu aktualisiert, %lu neu installiert, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu erneut installiert, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu deaktualisiert, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu zu entfernen und %lu nicht aktualisiert.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu nicht vollständig installiert oder entfernt.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Abhängigkeit werden korrigiert..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " fehlgeschlagen." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Kann Abhängigkeiten nicht korrigieren" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Kann die Menge zu erneuernder Pakete nicht minimieren" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Fertig" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "Probieren Sie „apt-get -f install“, um diese zu korrigieren." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Nichterfüllte Abhängigkeiten. Versuchen Sie, -f zu benutzen." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "WARNUNG: Die folgenden Pakete können nicht authentifiziert werden!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Authentifizierungswarnung überstimmt.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Diese Pakete ohne Überprüfung installieren [j/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Einige Pakete konnten nicht authentifiziert werden" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Es gab Probleme und -y wurde ohne --force-yes verwendet" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "Interner Fehler, InstallPackages mit kaputten Pakete aufgerufen!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Pakete müssen entfernt werden, aber Entfernen ist abgeschaltet." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Interner Fehler, Anordnung beendete nicht" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Kann kein Lock für das Downloadverzeichnis erhalten." + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "Die Liste der Quellen konnte nicht gelesen werden." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"Wie merkwürdig... Die Größen haben nicht übereingestimmt, schreiben Sie an " +"apt@packages.debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Es müssen noch %sB von %sB Archiven geholt werden.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Es müssen %sB Archive geholt werden.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "Nach dem Auspacken werden %sB Plattenplatz zusätzlich benutzt.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Nach dem Auspacken werden %sB Plattenplatz freigegeben worden sein.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Konnte freien Platz in %s nicht bestimmen" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Sie haben nicht genug Platz in %s." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "„Nur triviale“ angegeben, aber das ist keine triviale Operation." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Ja, tu was ich sage!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Sie sind im Begriff, etwas potenziell Schädliches zu tun.\n" +"Zum Fortfahren geben Sie bitte „%s“ ein.\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Abbruch." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Möchten Sie fortfahren [J/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Konnte %s nicht holen %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Einige Dateien konnten nicht heruntergeladen werden" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Herunterladen abgeschlossen und im Nur-Herunterladen-Modus" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Konnte einige Archive nicht herunterladen, vielleicht „apt-get update“ oder " +"mit „--fix-missing“ probieren?" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing und Wechselmedien werden zurzeit nicht unterstützt" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Konnte fehlende Pakete nicht korrigieren." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Installation abgebrochen." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Achtung, wähle %s an Stelle von %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" +"Überspringe %s, es ist schon installiert und „upgrade“ ist nicht gesetzt.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "Paket %s ist nicht installiert, wird also auch nicht entfernt\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Paket %s ist ein virtuelles Paket, das bereitgestellt wird von:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Installiert]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Sie sollten eines explizit zum Installieren auswählen." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Paket %s ist nicht verfügbar, wird aber von einem anderen\n" +"Paket referenziert. Das kann heißen, dass das Paket fehlt, dass es veraltet\n" +"ist oder nur aus einer anderen Quelle verfügbar ist.\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Doch die folgenden Pakete ersetzen es:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Paket %s hat keinen Installationskandidaten" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "" +"Re-Installation von %s ist nicht möglich,\n" +"es kann nicht heruntergeladen werden.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s ist schon die neueste Version.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Release „%s“ für „%s“ konnte nicht gefunden werden" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Version „%s“ für „%s“ konnte nicht gefunden werden" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Gewählte Version %s (%s) für %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "Der Befehl „update“ nimmt keine Argumente" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Kann kein Lock auf das Listenverzeichnis bekommen" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Einige Indexdateien konnten nicht heruntergeladen werden, sie wurden " +"ignoriert oder alte an ihrer Stelle benutzt." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Interner Fehler, AllUpgrade hat was kaputt gemacht" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Konnte Paket %s nicht finden" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Achtung, wähle %s für reg. Ausdruck „%s“\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "Probieren Sie „apt-get -f install“, um diese zu korrigieren:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Nichterfüllte Abhängigkeiten. Versuchen Sie „apt-get -f install“ ohne " +"jeglich Pakete (oder geben Sie eine Lösung an)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass\n" +"Sie eine unmögliche Situation angefordert haben oder dass, wenn Sie die\n" +"Unstable-Distribution verwenden, einige erforderliche Pakete noch nicht\n" +"kreiert oder aus Incoming herausbewegt wurden." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Da Sie nur eine einzige Operation angefordert haben, ist es sehr " +"wahrscheinlich,\n" +"dass das Paket einfach nicht installierbar ist und eine Fehlermeldung über\n" +"dieses Paket erfolgen sollte." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "" +"Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Kaputte Pakete" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Die folgenden zusätzlichen Pakete werden installiert:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Vorgeschlagene Pakete:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Empfohlene Pakete:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Berechne Upgrade..." + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Fehlgeschlagen" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Fertig" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "Interner Fehler, der Problem-Löser hat was kaputt gemacht" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "" +"Es muss mindestens ein Paket angegeben werden, dessen Quellen geholt werden " +"sollen" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Kann Quellpaket für %s nicht finden" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Überspringe schon heruntergeladene Datei „%s“\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Sie haben nicht genug freien Platz in %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Es müssen noch %sB/%sB der Quellarchive geholt werden.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Es müssen %sB der Quellarchive geholt werden.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Hole Quelle %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Konnte einige Archive nicht holen." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Überspringe Entpacken der schon entpackten Quelle in %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Entpack-Befehl „%s“ fehlgeschlagen.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Überprüfen Sie, ob das Paket „dpkg-dev“ installiert ist.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Build-Befehl „%s“ fehlgeschlagen.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Kindprozess fehlgeschlagen" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"Es muss zumindest ein Paket angegeben werden, dessen Build-Dependencies\n" +"überprüft werden sollen." + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Information zu Build-Dependencies für %s konnte nicht gefunden werden." + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s hat keine Build-Dependencies.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"%s Abhängigkeit für %s kann nicht befriedigt werden, da Paket %s nicht " +"gefunden werden kann." + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"%s Abhängigkeit für %s kann nicht befriedigt werden, da keine verfügbare " +"Version von Paket %s die Versionsanforderungen erfüllen kann." + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Konnte die %s-Abhängigkeit für %s nicht erfüllen: Installiertes Paket %s ist " +"zu neu." + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Konnte die %s-Abhängigkeit für %s nicht erfüllen: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Build-Abhängigkeiten für %s konnten nicht erfüllt werden." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Verarbeitung der Build-Abhängigkeiten fehlgeschlagen" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Unterstützte Module:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Aufruf: apt-get [Optionen] Befehl\n" +" apt-get [Optionen] install|remove pkg1 [pkg2 ...]\n" +" apt-get [Optionen] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get ist ein einfaches Kommandozeilenwerkzeug zum Herunterladen\n" +"und Installieren von Paketen. Die am häufigsten benutzten Befehle\n" +"sind update und install.\n" +"\n" +"Befehle:\n" +" update – neue Liste von Paketen einlesen\n" +" upgrade – eine Paketaktualisierung durchführen\n" +" install – neue Pakete installieren (pkg ist libc6 und nicht libc6." +"deb)\n" +" remove – Pakete entfernen\n" +" source – Quellarchive herunterladen\n" +" build-dep – die Build-Abhängigkeiten für Quellpakete konfigurieren\n" +" dist-upgrade – „Distribution upgrade“, siehe apt-get(8)\n" +" dselect-upgrade – der Auswahl aus „dselect“ folgen\n" +" clean – heruntergeladene Archive löschen\n" +" autoclean – veraltete heruntergeladene Archive löschen\n" +" check – überprüfen, dass es keine nicht erfüllten Abhängigkeiten " +"gibt\n" +"\n" +"Optionen:\n" +" -h dieser Hilfetext\n" +" -q protokollierbare (logbare) Ausgabe – keine Fortschrittsanzeige\n" +" -qq keine Ausgabe außer bei Fehlern\n" +" -d nur herunterladen – Archive NICHT installieren oder entpacken\n" +" -s nichts tun; nur eine Simulation der Vorgänge durchführen\n" +" -y für alle Antworten „Ja“ annehmen und nicht nachfragen\n" +" -f versuchen fortzufahren, wenn die Integritätsüberprüfung fehlschlägt\n" +" -m versuchen fortzufahren, wenn Archive nicht auffindbar sind\n" +" -u auch eine Liste der aktualisierten Pakete mit anzeigen\n" +" -b ein Quellpaket nach dem Herunterladen übersetzen\n" +" -V ausführliche Versionsnummern anzeigen\n" +" -c=? Diese Konfigurationsdatei benutzen\n" +" -o=? Beliebige Konfigurationsoptionen setzen, z. B. -o dir::cache=/tmp\n" +"Siehe auch die Handbuch-Seiten apt-get(8), sources.list(5) und apt.conf(5) " +"für\n" +"weitergehende Informationen und Optionen.\n" +" Dieses APT hat Super-Kuh-Kräfte.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "OK " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Hole:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ign " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Fehl " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Es wurden %sB in %s geholt (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Arbeite]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Medienwechsel: Bitte legen Sie das Medium mit dem Namen\n" +" „%s“\n" +"in Laufwerk „%s“ und drücken Sie die Eingabetaste.\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Unbekannter Paketeintrag!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Aufruf: apt-sortpkgs [optionen] datei1 [datei2 ...]\n" +"\n" +"apt-sortpkgs ist ein einfaches Werkzeug, um Paketdateien zu sortieren. Die\n" +"Option -d wird benutzt, um anzuzeigen, um was für eine Datei es sich " +"handelt.\n" +"\n" +"Optionen:\n" +" -h Dieser Hilfetext\n" +" -s Quelldateisortierung benutzen\n" +" -c=? Diese Konfigurationsdatei lesen\n" +" -o=? Eine beliebige Konfigurationsoption setzen, z. B. -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Fehlerhafte Voreinstellung" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Zum Fortfahren Enter drücken." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "" +"Einige Fehler traten während des Entpackens auf. Ich werde die installierten" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "" +"Pakete konfigurieren. Dies kann zu doppelten Fehlermeldungen oder Fehlern " +"durch" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" +"fehlende Abhängigkeiten führen. Das ist in Ordnung, nur die Fehler über " +"dieser" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"Meldung sind wichtig. Bitte beseitigen Sie sie und [I]nstallieren erneut." + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Führe Information zur Verfügbarkeit zusammen" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Konnte Weiterleitungen nicht erzeugen" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Konnte gzip nicht ausführen" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Korrumpiertes Archiv" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Tar-Prüfsumme fehlgeschlagen, Archiv korrumpiert" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Unbekannter Tar-Kopf-Typ %u, Bestandteil %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Ungültige Archiv-Signatur" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Fehler beim Lesen der Archivdateienkopfzeilen" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Ungültige Archivdateikopfzeile" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Archiv ist zu kurz" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Konnte Archivköpfe nicht lesen." + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "„DropNode“ auf noch verlinktem Knoten aufgerufen" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Konnte Hash-Element nicht finden!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Konnte Umleitung nicht reservieren" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Interner Fehler in „AddDiversion“" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Versuche, Umleitung zu überschreiben: %s -> %s und %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Doppelte Hinzufügung der Umleitung %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Doppelte Konfigurationsdatei %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Konnte Datei %s nicht schreiben" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Konnte Datei %s nicht schließen" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "Der Pfad %s ist zu lang" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Packe %s mehr als einmal aus" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "Das Verzeichnis %s ist umgeleitet" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "Das Paket versucht, auf das Umleitungsziel %s/%s zu schreiben" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Der Umleitungspfad ist zu lang" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "Das Verzeichnis %s wird durch ein Nicht-Verzeichnis ersetzt" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Konnte Knoten nicht in seinem Hash finden" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Der Pfad ist zu lang" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Überschreibe Paket-Treffer ohne Version für %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Datei %s/%s überschreibt die Datei in Paket %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Kann %s nicht lesen" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Kann nicht auf %s zugreifen" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Konnte %s nicht entfernen" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Konnte %s nicht erzeugen" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Kann nicht auf %sinfo zugreifen" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "" +"Die „info“- und „temp“-Verzeichnisse müssen im selben Dateisystem liegen" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Paketlisten werden gelesen" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Kann nicht ins Administrationsverzeichnis %sinfo wechseln" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Interner Fehler beim Holen des Paket-Namens" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Paketlisten werden gelesen" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Fehler beim Öffnen der Listendatei „%sinfo/%s“. Wenn Sie diese Datei nicht " +"wiederherstellen können, dann leeren Sie sie und installieren Sie sofort " +"dieselbe Version des Paketes erneut!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Fehler beim Lesen der Listendatei „%sinfo/%s“." + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Interner Fehler beim Holen eines Knotens" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Fehler beim Öffnen der Umleitungsdatei %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Die Umleitungsdatei ist korrumpiert" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Ungültige Zeile in der Umleitungsdatei: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Interner Fehler beim Hinzufügen einer Umleitung" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "Der Paketcache muss erst initialisiert werden" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Konnte keine „Package:“-Kopfzeile finden, Abstand %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Fehlerhafter „ConfFile“-Abschnitt in der Statusdatei, Abstand %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Fehler beim Parsen der MD5-Summe. Abstand %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Dies ist kein gültiges DEB-Archiv, da es „%s“ nicht enthält" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "Dies ist kein gültiges DEB-Archiv, da es weder „%s“ noch „%s“ enthält" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Konnte nicht in %s wechseln" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Interner Fehler, konnte Bestandteil nicht finden" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Konnte gültige Kontroll-Datei nicht finden" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Unparsbare Kontroll-Datei" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Kann CD-ROM-Datenbank %s nicht lesen" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Bitte verwenden Sie apt-cdrom, um diese CD von APT erkennbar zu machen. apt-" +"get update kann nicht dazu verwendet werden, neue CDs hinzuzufügen" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "Falsche CD" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "" +"Kann Einbindung von CD-ROM in %s nicht lösen, möglicherweise wird sie noch " +"verwendet." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Disk nicht gefunden." + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Datei nicht gefunden" + +# looks like someone hardcoded English grammar +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Kann nicht zugreifen." + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Kann Änderungszeitpunkt nicht setzen" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "Ungültige URI, lokale URIs dürfen nicht mit // anfangen" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Logge ein" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Kann Namen des Kommunikationspartners nicht bestimmen" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Kann lokalen Namen nicht bestimmen" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Der Server hat die Verbindung abgelehnt: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "Befehl USER fehlgeschlagen: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "Befehl PASS fehlgeschlagen: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Es war ein Proxy-Server angegeben, aber kein Einlogg-Skript, Acquire::ftp::" +"ProxyLogin ist leer." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Befehl „%s“ des Einlogg-Skriptes ist fehlgeschlagen: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "Befehl TYPE fehlgeschlagen: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Zeitüberschreitung der Verbindung" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Der Server hat die Verbindung geschlossen" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Lesefehler" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Eine Antwort hat einen Puffer zum Überlaufen gebracht." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Protokollkorrumption" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Schreibfehler" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Konnte keinen Verbindungsendpunkt erzeugen" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "Konnte Verbindungsendpunkt wegen Zeitüberschreitung nicht verbinden" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Konnte passiven Verbindungsendpunkt nicht verbinden." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "" +"Die Funktion getaddrinfo konnte keinen passiven Verbindungsendpunkt finden" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Konnte einen Verbindungsendpunkt nicht verbinden" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Konnte auf dem Verbindungsendpunkt nicht lauschen" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Konnte den Namen das Verbindungsendpunktes nicht bestimmen" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Konnte PORT-Befehl nicht senden" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Unbekannte Adressfamilie %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "Befehl EPRT fehlgeschlagen: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Datenverbindungsaufbau erlitt Zeitüberschreitung" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Kann Verbindung nicht annehmen" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Bei Bestimmung des Hashwertes einer Datei trat ein Problem auf" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Kann Datei nicht holen, Server antwortete „%s“" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Datenverbindung erlitt Zeitüberschreitung" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Datenübertragung fehlgeschlagen, Server antwortete „%s“" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Abfrage" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Kann nicht aufrufen: " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Verbinde mit %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Kann keinen Verbindungsendpunkt für %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Kann keine Verbindung mit %s:%s aufbauen (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "" +"Konnte wegen Zeitüberschreitung keine Verbindung mit %s:%s aufbauen (%s)" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Konnte nicht mit %s:%s verbinden (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Verbinde mit %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Konnte „%s“ nicht auflösen" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Temporärer Fehlschlag beim Auflösen von „%s“" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Beim Auflösen von „%s:%s“ ist etwas Schlimmes passiert (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Kann nicht mit %s:%s verbinden:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Konnte nicht auf Schlüsselring zugreifen: „%s“" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "E: Argumentliste von Acquire::gpgv::Options zu lang. Breche ab." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" +"Interner Fehler: Gültige Signatur, aber konnte den Fingerabdruck des " +"Schlüssels nicht ermitteln?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Mindestens eine ungültige Signatur wurde entdeckt." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" +"Konnte „%s“ zum Überprüfen der Signatur nicht ausführen (ist gnupg " +"installiert?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Unbekannter Fehler beim Ausführen von gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "Die folgenden Signaturen waren ungültig:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"Die folgenden Signaturen konnten nicht überprüft werden, weil ihr " +"öffentlicher\n" +"Schlüssel nicht verfügbar ist:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Konnte keine Pipe für %s öffnen" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Lesefehler von Prozess %s" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Warte auf Kopfzeilen (header)" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Erhielt einzelne Kopfzeile aus %u Zeichen" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Schlechte Kopfzeile" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "Der http-Server sandte eine ungültige Antwort-Kopfzeile" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "Der http-Server sandte eine ungültige „Content-Length“-Kopfzeile" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "Der http-Server sandte eine ungültige „Content-Range“-Kopfzeile" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "Der http-Server unterstützt Dateiteilübertragung nur fehlerhaft." + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Unbekanntes Datumsformat" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Auswahl fehlgeschlagen" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Verbindung erlitt Zeitüberschreitung" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Fehler beim Schreiben einer Ausgabedatei" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Fehler beim Schreiben einer Datei" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Fehler beim Schreiben der Datei" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "" +"Fehler beim Lesen vom Server: Das entfernte Ende hat die Verbindung " +"geschlossen" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Fehler beim Lesen vom Server" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Fehlerhafte Kopfzeilendaten" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Verbindung fehlgeschlagen" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Interner Fehler" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Kann eine leere Datei nicht mit mmap abbilden" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Konnte kein mmap von %lu Bytes durchführen" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Auswahl %s nicht gefunden" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Nicht erkannte Typabkürzung: „%c“" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Öffne Konfigurationsdatei %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Zeile %d zu lang (maximal %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Syntaxfehler %s:%u: Block fängt ohne Namen an." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Syntaxfehler %s:%u: Missgestaltetes Tag" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Syntaxfehler %s:%u: Zusätzlicher Müll nach Wert" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" +"Syntaxfehler %s:%u: Direktiven können nur auf oberster Ebene benutzt werden" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Syntaxfehler %s:%u: Zu viele verschachtelte Einbindungen (include)" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Syntaxfehler %s:%u: Einbindung von here" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Syntaxfehler %s:%u: Nicht unterstützte Direktive „%s“" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Syntaxfehler %s:%u: Zusätzlicher Müll am Dateiende" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Fehler!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Fertig" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Kommandozeilenoption „%c“ [aus %s] ist nicht bekannt." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Kommandozeilenoption %s wird nicht verstanden" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Kommandozeilenoption %s ist nicht Boole'sch" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "Option %s erfordert ein Argument." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "Option %s: Konfigurationswertspezifikation muss einen = haben." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "Option %s erfordert ein Ganzzahl-Argument, nicht „%s“" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Option „%s“ ist zu lang" + +# Check for boolean; -1 is unspecified, 0 is yes 1 is no +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "Der Sinn von „%s“ ist nicht klar, versuchen Sie „true“ oder „false“." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Ungültige Operation %s." + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Kann auf den Einhängepunkt %s nicht zugreifen." + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Kann nicht nach %s wechseln" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Konnte auf CD-ROM nicht zugreifen" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "Benutze kein Locking für Nur-Lese-Lockdatei %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Konnte Lockdatei %s nicht öffnen" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "Benutze kein Locking für NFS-eingebundene Lockdatei %s" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Konnte Lock %s nicht bekommen" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Auf %s gewartet, aber es war nicht da" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Unterprozess %s hat einen Speicherzugriffsfehler erhalten." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Unterprozess %s ist mit einem Fehlercode zurückgekehrt (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Unterprozess %s hat sich unerwartet beendet" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Konnte Datei %s nicht öffnen" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "Lesen, habe noch %lu zu lesen aber nichts mehr da" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "Schreiben, habe noch %lu zu schreiben, konnte aber nicht" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Beim Schließen der Datei trat ein Problem auf" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Beim Unlinking der Datei trat ein Problem auf" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Beim Synchronisieren einer Datei trat ein Problem auf" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Leerer Paketcache" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Die Paketcachedatei ist korrumpiert" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Die Paketcachedatei liegt in einer inkompatiblen Version vor" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Dieses APT unterstützt das Versionssystem „%s“ nicht" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "Der Paketcache wurde für eine andere Architektur aufgebaut" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Hängt ab" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Hängt ab (vorher)" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Schlägt vor" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Empfiehlt" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Kollidiert" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Ersetzt" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Veraltet" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "wichtig" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "erforderlich" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "standard" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "optional" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "extra" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Abhängigkeitsbaum wird aufgebaut" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Mögliche Versionen" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Abhängigkeits-Generierung" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Kann Paketdatei %s nicht parsen (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Kann Paketdatei %s nicht parsen (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Missgestaltete Zeile %lu in Quellliste %s („URI“)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Missgestaltete Zeile %lu in Quellliste %s („dist“)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Missgestaltete Zeile %lu in Quellliste %s („URI parse“)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Missgestaltete Zeile %lu in Quellliste %s („absolute dist“)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Missgestaltete Zeile %lu in Quellliste %s („dist parse“)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "%s wird geöffnet" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Zeile %u zu lang in der Quellliste %s." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Missgestaltete Zeile %u in Quellliste %s („type“)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Typ „%s“ ist unbekannt in Zeile %u der Quellliste %s" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Missgestaltete Zeile %u in Quellliste %s („vendor id“)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Dieser Installationslauf erfordert, dass vorübergehend das essentielle Paket " +"%s aufgrund einer Konflikt-/Vor-Abhängigkeits-Schleife entfernt wird. Das " +"ist oft schlimm, aber wenn Sie es wirklich tun wollen, aktivieren Sie bitte " +"die Option APT::Force-LoopBreak." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Indexdateityp „%s“ wird nicht unterstützt" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"Das Paket %s muss reinstalliert werden, ich kann aber kein Archiv dafür " +"finden." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Fehler: pkgProblemResolver::Resolve hat Unterbrechungen hervorgerufen, dies " +"könnte durch gehaltene Pakete hervorgerufen worden sein." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "Kann Probleme nicht korrigieren, Sie haben gehaltene kaputte Pakete." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Listenverzeichnis %spartial fehlt." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Archivverzeichnis %spartial fehlt." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "Hole Datei %li von %li (noch %s)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "Hole Datei %li von %li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Der Treiber für Methode %s konnte nicht gefunden werden." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Methode %s hat nicht korrekt gestartet" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "" +"Bitte legen Sie das Medium mit dem Namen „%s“ in Laufwerk „%s“ und drücken " +"Sie die Eingabetaste." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Paketierungssystem „%s“ wird nicht unterstützt" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Kann keinen passenden Paketierungssystem-Typ bestimmen" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Kann nicht auf %s zugreifen." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "" +"Sie müssen einige „source“-URIs für Quellen in die sources.list-Datei " +"schreiben." + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" +"Die Paketliste oder die Statusdatei konnte nicht geparst oder geöffnet " +"werden." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "Probieren Sie „apt-get update“, um diese Probleme zu korrigieren." + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Ungültiger Eintrag in Einstellungs-Datei, kein „Package“-Header" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Konnte Stecknadeltyp („pin type“) %s nicht verstehen" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Keine Priorität (oder Null) für Pin angegeben" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Dieser Paketcache wurde für ein inkompatibles Versionssystem aufgebaut" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Ein Fehler trat beim Bearbeiten von %s auf (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Ein Fehler trat beim Bearbeiten von %s auf (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Ein Fehler trat beim Bearbeiten von %s auf (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Ein Fehler trat beim Bearbeiten von %s auf (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Ein Fehler trat beim Bearbeiten von %s auf (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Ein Fehler trat beim Bearbeiten von %s auf (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Ein Fehler trat beim Bearbeiten von %s auf (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" +"Toll, Sie haben die Anzahl an Paketen überschritten, die APT handhaben kann." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "" +"Toll, Sie haben die Anzahl an Versionen überschritten, die APT handhaben " +"kann." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" +"Toll, Sie haben die Anzahl an Abhängigkeiten überschritten, die APT " +"handhaben kann." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Fehler trat beim Bearbeiten von %s auf (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Fehler trat beim Bearbeiten von %s auf (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "" +"Paket %s %s wurde nicht gefunden beim Verarbeiten der Dateiabhängigkeiten" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Kann nicht auf die Liste %s der Quellpakete zugreifen." + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Sammle Datei-Empfehlungen ein" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "E/A-Fehler beim Sichern des Quellcaches" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "Umbenennen fehlgeschlagen, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "MD5-Summe stimmt nicht" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "" +"Es gibt keine öffentlichen Schlüssel für die folgenden Schlüssel-IDs:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Ich konnte keine Datei für Paket %s finden. Das könnte heißen, dass Sie " +"dieses Paket von Hand korrigieren müssen (aufgrund fehlender Architektur)." + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Ich konnte keine Datei für Paket %s finden. Das könnte heißen, dass Sie " +"dieses Paket von Hand korrigieren müssen." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"Die Paketindexdateien sind korrumpiert: Kein Filename:-Feld für Paket %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Größe stimmt nicht" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Herstellerblock %s enthält keinen Fingerabdruck" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Benutze CD-ROM-Einhängpunkt %s\n" +"Hänge CD-ROM ein\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Identifiziere... " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Gespeicherte Kennzeichnung: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Benutze CD-ROM-Einhängpunkt %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "Hänge CD-ROM aus\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Warte auf CD...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Hänge CD-ROM ein...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Suche auf CD nach Index-Dateien...\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "Fand %i Paketindexe, %i Quellenindexe und %i Signaturen\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Dies ist kein gültiger Name, versuchen Sie es erneut.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Diese CD heißt: \n" +"„%s“\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Kopiere Paketlisten..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Schreibe neue Quellliste\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Quelllisteneinträge für diese CD sind:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "Hänge CD-ROM aus..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "Es wurden %i Datensätze geschrieben.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "Es wurden %i Datensätze mit %i fehlenden Dateien geschrieben.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "Es wurden %i Datensätze mit %i nicht passenden Dateien geschrieben.\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" +"Es wurden %i Datensätze mit %i fehlenden und %i nicht passenden Dateien " +"geschrieben.\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "%s wird vorbereitet" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "%s wird entpackt" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "Konfiguration von %s wird vorbereitet" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "Konfiguriere %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "%s installiert" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "Entfernen von %s wird vorbereitet" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "%s wird entfernt" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "%s entfernt" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "Komplettes Entfernen von %s wird vorbereitet" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "%s komplett entfernt" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Konnte Datei %s nicht öffnen" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Verbindung zu früh beendet" diff --git a/po/dz.po b/po/dz.po new file mode 100644 index 0000000..de6ccf0 --- /dev/null +++ b/po/dz.po @@ -0,0 +1,2779 @@ +# SOME DESCRIPTIVE TITLE. +# This file is put in the public domain. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: apt_po.pot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-09-12 11:18+0200\n" +"PO-Revision-Date: 2006-09-19 09:49+0530\n" +"Last-Translator: Kinley Tshering \n" +"Language-Team: Dzongkha \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2;plural=(n!=1)\n" +"X-Poedit-Language: Dzongkha\n" +"X-Poedit-Country: Bhutan\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "ཐུམ་སྒྲིལ་ %s ཐོན་རིམ་ %s ལུ་ ཌེཔ་མ་ཚང་ཅིག་འདུག:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "%sཐུམ་སྒྲིལ་འདི་ག་ཡོད་ཟཚོལ་མ་ཐོབ།" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "ཐུམ་སྒྲིལ་བསྡོམས་ཀྱི་མིང་ཚུ:" + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr "སྤྱིར་བཏང་ཐུམ་སྒྲིལ་ཚུ།" + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr "བར་ཅུ་ཡལ་ཐུམ་སྒྲིལ་གཙང་མ་ཚུ:" + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr "བར་ཅུ་ཡལ་ཐུམ་སྒྲིལ་རྐྱང་པ་ཚུ:" + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr "བར་ཅུ་ཡལ་ཐུམ་སྒྲིལ་སླ་བསྲེ་ཡོད་མི་ཚུ:" + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr "བརླག་སྟོར་ཞུགས་པ:" + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "ཁྱད་རྟགས་ཅན་གྱི་ཐོན་རིམ་ཚུ་གི་བསྡོམས:" + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "རྟེན་འབྲེལ་བསྡོམས:" + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "ཐེན་རིམ་/ཡིག་སྣོད་ མཐུན་འབྲེལ་གྱི་བསྡོམས:" + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "ཡོངས་བསྡོམས་ཀྱིས་ས་ཁྲ་བཟོ་བ་ཚུ་བྱིནམ་ཨིན:" + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "སྤུངས་ཡོད་པའི་ཡིག་རྒྱུན་གྱི་བསྡོམས:" + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "རྟེན་འབྲེལ་ཐོན་རིམ་བར་སྟོང་གྱི་བསྡོམས:" + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "བར་སྟོང་ལྷུག་ལྷུག་གི་བསྡོམས:" + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "གི་དོན་ལུ་རྩིས་ཐོ་བཏོན་ཡོད་པའི་བར་སྟོང:" + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "ཐུམ་སྒྲིལ་ཡིག་སྣོད་ %sའདི་མཉམ་འབྱུང་གི་ཕྱི་ཁར་ཨིན་པས།" + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "ཁྱོད་ཀྱིས་ཏག་ཏག་སྦེ་དཔེ་གཞི་གཅིག་བྱིན་དགོ" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "ཐུམ་སྒྲིལ་ཚུ་མ་ཐོབ།" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "ཐུམ་སྒྲིལ་གྱི་ཡིག་སྣོད:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "" +"འདྲ་མཛོད་འདི་མཉམ་བྱུང་གི་ཕྱི་ཁར་ཨིན་པས་ ཐུམ་སྒྲིལ་ཡིག་སྣོད་ཅིག་ལུ་ ཨེགསི་-རེཕ་འབད་མི་ཚུགས་པས།" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "ཁབ་གཟེར་བཏབ་ཡོད་པའི་ཐུམ་སྒྲིལ་ཚུ:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(མ་ཐོབ།)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr "གཞི་བཙུགས་འབད་ཡོདཔ།" + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(ཅི་མེད།)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr "མི་ངོ:" + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr "ཐུམ་སྒྲིལ་གྱི་ཁབ་གཟེར:" + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr "ཐོན་རིམ་ཐིག་ཁྲམ།:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr "%4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s་གི་དོན་ལུ་%s %sགུར་ཕྱོགས་སྒྲིག་འབད་ཡོད་པའི་%s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"ལག་ལེན།: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +" apt-cacheའདི་གནས་རིམ་དམའ་དྲག་གི་ལག་ཆས་ APT's binary\n" +"་ འདྲ་མཛོད་ཡིག་སྣོད་གཡོག་བཀོལ་དོན་ལུ་ལག་ལེན་འཐབ་ནི་དང་་དེ་ཚུ་ནང་ལས་བརྡ་དོན་འདྲི་དཔྱད་འབད་ནིའི་དོན་" +"ལུ་ཨིན།\n" +"cache files, and query information from them\n" +"\n" +"བརྡ་བཀོད:\n" +" add -འདི་གིས་ཐུམ་སྒྲིལ་ཡིག་སྣོད་ཅིག་འབྱུང་ཁུངས་འདྲ་མཛོད་ལུ་ཁ་སྐོང་རྐྱབས་ཨིན།\n" +" gencaches -འདི་གིས་ཐུམ་སྒྲིལ་དང་འབྱུང་ཁུངས་འདྲ་མཛོད་གཉིས་ཆ་རང་བཟོ་བརྩིགས་འབདཝ་ཨིན།\n" +" showpkg -འད་གིས་་ཐུམ་སྒྲིལ་རྐྱང་པ་ཅིག་གི་དོན་ལུ་སྤྱིར་བཏང་བརྡ་དོན་དུམ་གྲ་ཅིག་སྟོནམ་ཨིན།\n" +" showsrc - འདི་གིས་འབྱུང་ཁུངས་ཀྱི་དྲན་ཐོ་ཚུ་སྟོནམ་ཨིན།\n" +" stats -འདི་གིས་ གཞི་རིམ་ཚད་རྩིས་དུམ་གྲ་རེ་སྟོནམ་ཨིན།\n" +" dump -འདི་གི་ཡིག་སྣོད་ཧྲིལ་བུ་མདོར་བསྡུས་རྣམཔ་་ཅིག་ནང་སྟོནམ་ཨིན།\n" +" dumpavail -འདི་གིས་ཨེསི་ཊི་ཌི་ཕྱི་ཁར་ལུ་ འཐོབ་ཚུགས་པའི་ཡིག་སྣོད་ཚུ་དཔར་བསྐྲུན་འབདཝ་ཨིན།\n" +" unmet - འདི་གིས་མ་ཚང་བའི་ རྟེན་འབྲེལ་ཚུ་སྟོནམ་ཨིན།\n" +" search -འདི་གིས་ རི་ཇེགསི་དཔེ་གཞི་ཅིག་གི་དོན་ལུ་ ཐུམ་སྒྲིལ་ཐོ་ཡིག་དེ་འཚོལ་ཞིབ་འབདཝ་ཨིན།\n" +" show - འདི་གིས་ཐུམ་སྒྲིལ་གི་དོན་ལུ་ ལྷག་བཏུབ་པའི་དྲན་ཐོ་ཅིག་སྟོནམ་ཨིན།\n" +" depends - འདི་གིས་ཐུམ་སྒྲིལ་གི་དོན་ལུ་ རགས་པ་རྟེན་འབྲེལ་གྱི་བརྡ་དོན་ཅིག་ སྟོནམ་ཨིན།\n" +" rdepends - འདི་གིས་ ཐུམ་སྒྲིལ་ཅིག་གི་དོན་ལུ་ རིམ་ལོག་རྟེན་འབྲེལ་གྱི་བརྡ་དོན་དེ་སྟོནམ་ཨིན།\n" +" pkgnames - འདི་གིས་ཐུམ་སྒྲིལ་ཚུ་ཆ་མཉམ་གི་མིང་ཚུ་ཐོ་བཀོད་འབདཝ་ཨིན།\n" +" dotty - འདི་གིས་ཚད་ཁྲམ་ཝིསི་གི་དོན་ལུ་ ཐུམ་སྒྲིལ་ཚད་ཁྲམ་ཚུ་ བཟོ་བཏོན་འབདཝ་ཨིན།\n" +" xvcg - འདི་གིས་ ཨེགསི་ཝི་སི་ཇི་ གི་དོན་ལུ་ ཐུམ་སྒྲིལ་ཚད་ཁྲམ་ཚུ་བཟོ་བཏོད་འབདཝ་ཨིན།\n" +" policy - འདི་གིས་ སྲིད་བྱུས་སྒྲིག་སྟངས་ཚུ་སྟོནམ་ཨིན།\n" +"\n" +"གདམ་ཁ་ཚུ་:\n" +" -h འདི་གིས་ཚིག་ཡིག་ལུ་ཆ་རོགས་འབདཝ་ཨིན།.\n" +" -p=? འདི་འབྱུང་ཁུངས་འའདྲ་མཛོད་ཨིན།.\n" +" -s=? འདི་འབྱུང་ཁུངས་འདྲ་མཛོད་ཨིན།.\n" +" -q འདི་གིས་ ཡར་འཕེལ་བརྡ་སྟོན་པ་འདི་ལྕོགས་མིན་བཟོཝ་ཨིན།.\n" +" -i འདི་གིས་ མ་ཚང་པའི་བརྡ་བཀོད་ཚུ་གི་དོན་ལུ་ གལ་ཅན་གྱི་ཌེཔསི་རྐྱངམ་ཅིག་སྟོན།.\n" +" -c=? འདི་གིས་ འ་ནི་རིམ་སྒྲིག་ཡིག་སྣོད་འདི་ལྷགཔ་ཨིན།.\n" +" -o=? འདི་གིས་ མཐུན་སྒྲིག་རིམ་སྒྲིག་གི་གདམ་ཁ་འདི་གཞི་སྒྲིག་འབདཝ་ཨིན་ དཔེར་ན་ eg -o dir::" +"cache=/tmp\n" +" ཧེང་བཀལ་བརྡ་དོན་གི་དོན་ལུ་ ཨེ་apt-cache(8)དང་apt.conf(5)ལག་ཐོག་ཤོག་ལེབ་ཚུ་བལྟ།.\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "ཌིསིཀ་འདི་གི་དོན་ལུ་མིང་ཅིག་བླིན་གནང་ དཔེར་ན་ 'Debian 2.1r1 Disk 1'བཟུམ།" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "ཌིསིཀ་ཅིག་འདྲེན་འཕྲུལ་ནང་བཙུགས་བཞིནམ་ལས་ལོག་ལྡེ་འདི་ཨེབ།" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "ཁྱོད་ཀྱི་ཆ་ཚན་ནང་གི་སི་ཌི་ལྷག་ལུས་ཡོད་མི་གི་དོན་ལུ་འ་ནི་ལས་སྦྱོར་དེ་ཡང་བསྐྱར་འབད།" + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "སྒྲུབས་རྟགས་ཚུ་ཟུང་ནང་མིན་འདུག" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"ལག་ལེན:apt-config [གདམ་ཁ་ཚུ་] བརྡ་བཀོད།\n" +"\n" +"apt-config་འདི་APT config་ཡིག་སྣོད་ལྷག་ནིའི་དོན་ལུ་འཇམ་སམ་ལག་ཆས་ཅིག་ཨིན།\n" +"\n" +"བརྡ་བཀོད་ཚུ:\n" +" shell - ཤལ་གྱི་ཐབས་ལམ།\n" +" dump - འདི་གིས་རིམ་སྒྲིག་གི་ཐབས་ལམ་འདི་སྟོནམ་ཨིན།\n" +"\n" +"གདམ་ཁ་ཚུ:\n" +" -h འདི་གིས་ཚིག་ཡིག་ལུ་གྲོགས་རམ་འབདཝ་ཨིན།\n" +" -c=? འདི་གིས་འ་ནི་རིམ་སྒྲིག་ཡིག་སྣོད་འདི་ལྷགཔ་ཨིན།\n" +" -o=? མཐུན་སྒྲིག་གི་རིམ་སྒྲིག་འདི་གཞི་སྒྲིག་འབདཝ་ཨིན་ དཔེར་ན་-o dir::cache=/tmp་བཟུམ།\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s འདི་ནུས་ཅན་གྱི་ ཌི་ཨི་བི་ཅིག་མེན་པས།" + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"ལག་ལེན་: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates འདི་ཌེ་བི་ཡཱན་ ཐུམ་སྒྲིལ་ཚུ་ནང་ལས་\n" +"རིམ་སྒྲིག་དང་ ཊེམ་པེལེཊི་ བརྡ་དོན་ཕྱིར་དོན་འབད་ནིའི་ལག་ཆས་ཅིགཨིན།\n" +"གདམ་ཁ་ཚུ།\n" +" -h འདི་གིས་ཚིག་ཡིག་འདི་གྲོགས་རམ་འབདཝ་ཨིན།\n" +" -t འདི་གིས་temp་སྣོད་ཐོ་འདི་གཞི་སྒྲིག་འབདཝ་ཨིན།\n" +" -c=? འདི་གིས་ རིམ་སྒྲིག་ཡིག་སྣོད་འདི་ལྷགཔ་ཨིན།\n" +" -o=? འདི་གིས་མཐུན་སྒྲིག་རིམ་སྒྲིག་གདམ་ཁ་ཅིག་གཞི་སྒྲིག་འབདཝ་ཨིན་ དཔེར་ན་-o dir::cache=/tmp་" +"བཟུམ།\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr " %sལུ་འབྲི་མ་ཚུགས།" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "debconf ་་འཐོན་རིམ་འདི་ལེན་མ་ཚུགས། debconf འདི་གཞི་བཙུགས་འབད་ཡི་ག་?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "ཐུམ་སྒྲིལ་རྒྱ་བསྐྱེད་ཐོག་ཡིག་འདི་གནམ་མེད་ས་མེད་རིངམ་འདུག" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "སྣོད་ཐོ་%s་ལས་སྦྱོར་འབདཝ་ད་འཛོལ་བ་འཐོན་ཡི།" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "འབྱུང་ཁུངས་རྒྱ་བསྐྱེད་ཀྱི་ཐོག་ཡིག་འདི་གནམ་མེད་ས་མེད་རིང་པས།" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "ནང་དོན་ཡིག་སྣོད་ལུ་མགོ་ཡིག་འཛོལ་བ་འབྲི་ནིའི་མགོ་ཡིག" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "%sའཛོལ་བ་ལས་སྦྱོར་འབད་ནིའི་ནང་དོན།" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"ལག་ལེན:apt-ftparchive [options] command\n" +"བརྡ་བཀོད་ཚུ:packages binarypath [overridefile [pathprefix]]\n" +"sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive་འདི་གིས་ ཌི་བི་ཡཱན་ཡིག་མཛོད་ཚུ་གི་དོན་ལུ་ ཚིག་ཡིག་གི་ཡིག་སྣོད་ཚུ་བཟོ་བཏོན་འབདཝ་" +"ཨིན། dpkg-scanpackages དང་ dpkg-scansources་གི་དོན་ལུ་ལས་འགན་ཚབ་མ་ཚུ་ལུ་ཆ་ཚང་སྦེ་ " +"རང་བཞིན་གྱི་སྦེ་བཟོ་བཟོཝ་་ནང་ལས་བཟོ་བཏོན་གྱི་བཟོ་རྣམ་ཚུ་ལྷམ་པ་མ་འདྲཝ་སྦེ་ཡོད་མི་ལུ་རྒྱབ་སྐྱོར་འབདཝ་" +"ཨིན།\n" +"\n" +"apt-ftparchive་ འདི་གིས་.debs་གི་རྩ་འབྲེལ་ཅིག་ནང་ལས་ཐུམ་སྒྲིལ་གྱི་ཡིག་སྣོད་ཚུ་བཟོ་བཏོན་འབདཝ་ཨིན། " +"ཐུམ་སྒྲིལ་\n" +" ཡིག་སྣོད་འདི་གི་ནང་ན་ ཐུམ་སྒྲིལ་རེ་རེ་བཞིན་ནང་གི་ཚད་འཛིན་ས་སྒོ་ཚུ་ཆ་མཉམ་གི་ནང་དོན་དང་ ཨེམ་ཌི་༥་དྲྭ་" +"རྟགས། (#)་དང་ཡིག་སྣོད་ཀྱི་ཚད་ཚུ་ཡང་ཡོདཔ་ཨིན། ཟུར་བཞག་ཡིག་སྣོད་འདི་\n" +"གཙོ་རིམ་དང་དབྱེ་ཚན་གྱི་གནས་གོང་དེ་བང་བཙོང་འབད་ནི་ལུ་རྒྱབ་སྐྱོར་འབད་ཡོདཔ་ཨིན།\n" +"\n" +"འདི་དང་ཆ་འདྲཝ་སྦེ་ apt-ftparchive་ འདི་གིས་.dscs་གི་རྩ་འབྲེལ་ཅིག་ནང་ལས་འབྱུང་ཁུངས་ཡིག་སྣོད་ཚུ་" +"བཟོ་བཏོན་འབདཝ་ཨིན།\n" +" --source-ཟུར་བཞག་གི་གདམ་ཁ་འདི་ ཨེསི་ཨར་སི་ ཟུར་བཞག་ཡིག་སྣོད་ཅིག་གསལ་བཀོད་འབད་ནི་ལུ་ལག་ལེན་" +"འཐབ་བཐུབ་ཨིན།\n" +"\n" +"'ཐུམ་སྒྲིལ་ཚུ་'་དང་'འབྱུང་ཁུངས་་' བརྡ་བཀོད་ཚུ་རྩ་འབྲེལ་འདི་གི་་རྩ་བ་ནང་ལུ་སྦེ་གཡོག་བཀོལ་དགོཔ་ཨིན། ཟུང་" +"ལྡན་འགྲུལ་ལམ་འདི་གིས་ལོག་རིམ་འཚོལ་ཞིབ་འདི་གི་གཞི་རྟེན་ལུ་དཔག་དགོཔ་ཨིནམ་དང་\n" +"ཟུར་བཞག་ཡིག་སྣོད་འདི་ལུ་ཟུར་བཞག་གི་ཟུར་རྟགས་འོང་དགོཔ་ཨིན། འགྲུལ་ལམ་སྔོན་ཚིག་འདི་\n" +"ཡོད་པ་ཅིན་ཡིག་སྣོད་མིང་གི་ས་སྒོ་ཚུ་ལུ་འཇུག་སྣོན་འབད་དེ་ཡོདཔ་ཨིན། དཔེར་ན་ ཌི་བི་ཡཱན་ཡིག་མཛོད་ལས་ལག་" +"ལེན་བཟུམ:\n" +"apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"གདམ་ཁ་ཚུ:\n" +" -h འདི་གིས་ཚིག་ཡིག་ལུ་གྲོགས་རམ་འབདཝ་ཨིན།\n" +" --md5 ཨེམ་ཌི་༥་ བཟོ་བཏོན་འདི་ཚད་འཛིན་འབདཝ་ཨིན།\n" +" -s=? འབྱུང་ཁུངས་ཟུར་བཞག་གི་ཡིག་སྣོད།\n" +" -q ཁུ་སིམ་སིམ།\n" +" -d=? གདམ་ཁ་ཅན་གྱི་འདྲ་མཛོད་གནད་སྡུད་གཞི་རྟེན་འདི་སེལ་འཐུ་འབད།\n" +" --no-delink འབྲེལ་ལམ་མེད་སྦེ་བཟོ་་ནིའི་རྐྱེན་སེལ་ཐབས་ལམ་འདི་ལྕོགས་ཅན་བཟོ།\n" +" --contents ནང་དོན་གི་ཡིག་སྣོད་བཟོ་བཏོན་འདི་ཚད་འཛིན་འབད།\n" +" -c=? འ་ནི་རིམ་སྒྲིག་ཡིག་སྣོད་འདི་ལྷག\n" +" -o=? མཐུན་སྒྲིག་རིམ་སྒྲིག་གི་གདམ་ཁ་ཅིག་གཞི་སྒྲིག་འབད།" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "སེལ་འཐུ་ཚུ་མཐུན་སྒྲིག་མིན་འདུག" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "ཡིག་སྣོད་ལ་ལུ་ཅིག་ཐུམ་སྒྲིལ་ཡིག་སྣོད་སྡེ་ཚན་`%s'ནང་བརླག་སྟོར་ཞུགས་ནུག" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "ཌི་བི་ངན་ཅན་བྱུང་ནུག་ %s.རྒསཔ་ལུ་ཡིག་སྣོད་འདི་བསྐྱར་མིང་བཏགས་ཡི།" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "ཌི་བི་འདི་རྙིངམ་ཨིན་པས་ %s་ཡར་བསྐྱེད་འབད་ནིའི་དོན་ལུ་དཔའ་བཅམ་དོ།" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"ཌི་བི་རྩ་སྒྲིག་འདི་ ནུས་མེད་ཨིན་པས། ཁྱོད་ཀྱི་ apt་ གྱི་འཐོན་རིམ་རྙིངམ་ཅིག་ནང་ལས་ ཡར་བསྐྱེད་འབད་ཡོད་" +"པ་ཅིན་ རྩ་བསྐྲད་གཏང་ཞིནམ་ལས་ གནད་སྡུད་གཞི་རྟེན་འདི་ ལོག་དེ་གསར་བསྐྲུན་འབད། " + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "%s: %s་ཌི་བི་ཡིག་སྣོད་འདི་ཁ་ཕྱེ་མ་ཚུགས།" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "%s་སིཊེཊི་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོདཔ།" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "ཡིག་མཛོད་འདི་ལུ་ཚད་འཛིན་དྲན་ཐོ་མིན་འདུག" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "འོད་རྟགས་ལེན་མ་ཚུགས།" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "ཌབ་ལུ:%sསྣོད་ཐོ་འདི་ལྷག་མ་ཚུགས།\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "ཌབ་ལུ་ %s སིཊེཊི་འབད་མ་ཚུགས།\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "ཨི:" + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "ཌབ་ལུ:" + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "ཨི:འཛོལ་བ་ཚུ་ཡིག་སྣོད་ལུ་འཇུག་སྤྱོད་འབད།" + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "%s་མོས་མཐུན་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོདཔ།" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "རྩ་འབྲེལ་ཕྱིར་བགྲོད་འབད་ནི་ལུ་འཐུ་ཤོར་བྱུང་ཡོདཔ།" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "%s་ག་ཕྱེ་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོདཔ།" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " DeLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "%s་འབྲེལ་ལམ་ལྷག་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོདཔ།" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "%s་འབྲེལ་ལམ་མེད་ལུ་འཐུས་ཤོར་བྱུང་ཡོདཔ།" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** %s་ལས་%sལུ་འབྲེལ་འཐུད་འབད་ནི་འཐུས་ཤོར་བྱུང་ཡོདཔ།" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr "%sB་ཧེང་བཀལ་བཀྲམ་ནིའི་འབྲེལ་མེད་བཅད་མཚམས།\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "ཡིག་མཛོད་ལུ་ཐུམ་སྒྲིལ་ཅི་ཡང་འཐུས་ཤོར་མ་བྱུང་།" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %sལུ་ཟུར་བཞག་ཐོ་བཀོད་མེད།\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " %s ་རྒྱུན་སྐྱོང་པ་འདི་ %s ཨིན་ %s མེན།\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s ལུ་འབྱུང་ཁུངས་མེདཔ་གཏང་ནིའི་ཐོ་བཀོད་འདི་མེད།\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %sལུ་ཟུང་ལྡན་མེདཔ་གཏང་ནིའི་་ཐོ་བཀོད་གང་རུང་ཡང་མིན་འདུག།\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "ནང་འཁོད་འཛོལ་བ་གིས་འཐུས་མི་%sའདི་ག་ཡོད་འཚོལ་མ་འཐོབ།" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "དྲན་ཚད་སྤྲོད་ནིའི་དོན་ལུ་ རི་ཨེ་ལོཀ་ འཐུས་ཤོར་བྱུང་ཡོད།" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "%s་ཁ་ཕྱེ་མ་ཚུགས།" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "བཟོ་ཉེས་གྱུར་བའི་ཟུར་བཞག་%s གྲལ་ཐིག་%lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "བཟོ་ཉེས་གྱུར་བའི་ཟུར་བཞག་%sགྲལ་ཐིག%lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "བཟོ་ཉེས་གྱུར་བའི་ཟུར་བཞག་%sགྲལ་ཐིག%lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "ཟུར་བཞག་ཡིག་སྣོད་%sའདི་ལྷག་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr " མ་ཤེས་ཨེབ་བཙུགས་ཨཱལ་གོ་རི་དམ'%s'" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "ཨེབ་བཙུགས་འབད་ཡོད་པའི་ཨའུཊི་པུཊི་%sལུ་ཨེབ་བཙུགས་ཆ་ཚན་ཅིག་དགོཔ་འདུག" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "ཡན་ལག་ལས་སྦྱོར་ལུ་ཨའི་པི་སི་རྒྱུད་དུང་གསར་བསྐྲུན་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོདཔ།" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "ཡིག་སྣོད་*་ གསར་བསྐྲུན་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "ཁ་སྤེལ་འབད་ནི་ལུ་འཐུ་ཤོར་བྱུང་ཡོད།" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "ཆ་ལག་ཨེབ་བཙུགས་འབད།" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "ནང་འཁོད་འཛོལ་བ་ %s་གསར་བསྐྲུན་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "ཡན་ལག་ལས་སྦྱོར་ ཨའི་པི་སི་ གསར་བསྐྲུན་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "ཨེབ་འཕྲུལ་ལག་ལེན་འཐབ་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "ཨེབ་བཤོལ་འཕྲུལ་ཆས།" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "ཡན་ལག་ལས་སྦྱོར་ལུ་IO/ཡིག་སྣོད་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "ཨེམ་ཌི་༥་གློག་རིག་རྐྱབ་པའི་སྐབས་ལྷག་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "%s་འབྲེལ་འཐུད་མེདཔ་བཟོ་ནི་ལུ་དཀའ་ངལ།" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "%s་ལུ་%s་བསྐྱར་མིང་བཏགས་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "ཝའི།" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "རི་ཇེགསི་ཕྱོགས་སྒྲིག་འཛོལ་བ་- %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "འོག་གི་ཐུམ་སྒྲིལ་ཚུ་ལུ་རྟེན་འབྲེལ་མ་ཚང་པས:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "འདི་འབདཝ་ད་%s་འདི་གཞི་བཙུགས་འབད་ཡོད།" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "འདི་འབདཝ་ད་%sའདི་གཞི་བཙུགས་འབད་ནི་ཨིན།" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "འདི་འབདཝ་ད་%s་འདི་གཟི་བཙུགས་འབད་མི་བཏུབ་པས།" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "འདི་འབདཝ་ད་ འདི་བར་ཅུ་ཡལ་ཐུམ་སྒྲིལ་ཅིག་ཨིན་པས།" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "འདི་འབདཝ་ད་འདི་གཞི་བཙུགས་མ་འབད་བས།" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "འདི་འབདཝ་ད་འདི་གཞི་བཙུགས་མི་འབད་ནི་ཨིན་པས།" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr "ཡང་ན།" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "འོག་གི་ཐུམ་སྒྲིས་གསརཔ་འདི་ཚུ་ཁཞི་བཙུགས་འབད་འོང་:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "འོག་གི་ཐུམ་སྒྲིལ་འདི་ཚུ་རྩ བསྐྲད་གཏང་འོང་:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "འོག་གི་ཐུམ་སྒྲིལ་འདི་ཚུ་ལོག་སྟེ་རང་བཞག་ནུག:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "འོག་གི་ཐུམ་སྒྲིལ་འདི་ཚུ་ཡར་བསྐྱེད་འབད་འོང་:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "འོག་གི་ཐུམ་སྒྲལ་འདི་ཚུ་མར་ཕབ་འབད་འོང་:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "འོག་གི་འཆང་ཡོད་པའི་ཐུམ་སྒྲིལ་ཚུ་བསྒྱུར་བཅོས་འབད་འོང་:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s( %s་གིས་སྦེ)" + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"ཉེན་བརྡ:འོག་གི་ཉོ་མཁོ་བའི་ཐུམ་སྒྲིལ་ཚུ་རྩ་བསྐྲད་གཏང་འོང་།\n" +"ཁྱོད་ཀྱིས་ཁྱོད་རང་ག་ཅི་འབདཝ་ཨིན་ན་ངེས་སྦེ་མ་ཤེས་ཚུན་འདི་འབད་ནི་མི་འོང་།!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu་ཡར་བསྐྱེད་འབད་ཡོད་ %lu་འདི་གསརཔ་སྦེ་གཞི་བཙུགས་འབད་ཡོད།" + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu་འདི་ལོག་གཞི་བཙུགས་འབད་ཡོད།" + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu་འདི་མར་ཕབ་འབད་ཡོད།" + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "རྩ་བསྐྲད་འབད་ནི་ལུ་%lu་དང་%lu་ཡར་བསྐྱེད་མ་འབད་བས།\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu་འདི་ཆ་ཚང་སྦེ་གཞི་བཙུགས་མ་འབད་ཡང་ན་རྩ་བསྐྲད་མ་གཏང་པས།\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "རྟེན་འབྲེལ་ནོར་བཅོས་འབད་དོ།" + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr "འཐུས་ཤོར་བྱུང་ཡོད།" + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "རྟེན་འབྲེལ་འདི་ནོར་བཅོས་འབད་མི་ཚུགས་པས།" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "ཡར་བསྐྱེད་འབད་ཡོད་པའི་ཆ་ཚན་འདི་ཆུང་ཀུ་བཟོ་མི་ཚུགས་པས།" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr "འབད་ཚར་ཡི།" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "འ་ནི་འདི་ཚུ་ནོར་བཅོས་འབད་ནི་ལུ་ཁྱོད་ཀྱི་`apt-get -f install'དེ་གཡོག་བཀོལ་དགོཔ་འོང་།" + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "མ་ཚང་པའི་རྟེན་འབྲེལ་ཚུ། -f ལག་ལེན་འཐབ་སྟེ་འབད་རྩོལ་བསྐྱེད།" + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "ཉེན་བརྡ:འོག་གི་ཐུམ་སྒྲིལ་འདི་ཚུ་བདེན་བཤད་འབད་མི་བཏུབ་པས།" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "བདེན་བཤད་ཉེན་བརྡ་འདི་ཟུར་འབད་ཡོད།\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "བདེན་སྦྱོར་མ་འབད་བར་འ་ནི་ཐུམ་སྒྲིལ་འདི་ཚུ་གཞི་བཙུགས་འབད་ནི་ཨིན་ན་[y/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "ཐུམ་སྒྲིལ་ལ་ལུ་ཅིག་བདེན་བཤད་འབད་མ་ཚུགས།" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "དཀའ་ངལ་ཚུ་ཡོདཔ་ལས་-y ་འདི་ --force-yes་མེདཐོག་ལས་ལག་ལེན་འཐབ་སྟེ་ཡོད།" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "" +"ནང་འཁོད་ཀྱི་འཛོལ་བ་ གཞི་བཙུགས་ཐུམ་སྒྲིལ་ཚུ་ ཆད་པ་ཡོད་པའི་ཐུམ་སྒྲིལ་ཚུ་དང་གཅིག་ཁར་བོད་བརྡ་འབད་འདི་" +"ཡོད!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "ཐུམ་སྒྲིལ་ཚུ་རྩ་བསྐྲད་བཏང་དགོཔ་འདུག་འདི་འབདགཝ་ད་རྩ་བསྐྲད་གཏང་ནི་འདི་ལྕོགས་མིན་ཐལ་ཏེ་འདུག" + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "ནང་འཁོད་འཛོལ་བ་ གོ་རིམ་བཟོ་ནི་ཚུ་མཇུག་མ་བསྡུ་བས།" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "ཕབ་ལེན་འབད་ནིའི་སྣོད་ཡིག་འདི་ལྡེ་མིག་རྐྱབས་མ་ཚུགས་པས།" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "འབྱུང་ཁུངས་ཚུ་ཀྱི་ཐོ་ཡིག་དེ་ལྷག་མི་ཚུགས་པས།" + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"ག་ཅི་གི་ཡ་མཚན་ཆེ་མི་ཆེ་ ཚད་འདི་གིས་ email apt@packages.debian.org་ལུ་མཐུན་སྒྲིག་མི་འབད་" +"བས།" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "%sBལེན་ནི་ལུ་དགོཔ་པས། ཡིག་མཛོད་ཚི་གི་%sB་\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "ཡིག་མཛོད་ཀྱི་%sB་འདི་ལེན་དགོ་པས།\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "ཁ་སྐོང་གི་%sB་འདི་བཤུབ་པའི་ཤུལ་ལས་ཌིཀསི་གི་བར་སྟོང་དེ་ལག་ལེན་འཐབ་འོང་།\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "%sB་འདི་ཤུབ་པའི་ཤུལ་ལས་ཀྱི་བར་སྟོང་དེ་དལཝ་སྦེ་ལུས་འོང་།\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "%s་ནང་བར་སྟོང་" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "%s ནང་ཁྱོད་ལུ་བར་སྟོང་དལཝ་ལངམ་སྦེ་མིན་འདུག" + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "གལ་ཆུང་རྐྱངམ་ཅིག་ཁསལ་བཀོད་འབད་ནུག་ འདི་འབདཝ་ད་འ་ནི་འདི་གལ་ཆུང་གི་བཀོལ་སྤྱོད་མེན།" + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "ཨིན་ ང་གིས་སླབ་དོ་བཟུམ་སྦེ་རང་འབད!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"ཁྱོད་ཀྱི་གནོད་ངན་འབྱུང་ནིའི་ལཱ་ཅི་འབད་ནི་འབད་དོ།\n" +"འཕྲོ་མཐུད་འབད་ནིའི་དོན་ལུ་'%s'ཚིག་ཚན་ནང་ལུ་ཡིག་དཔར་རྐྱབས།\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "བར་བཤོལ་འབད།" + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "ཁྱོན་ཀྱི་འཕྲོ་མཐུད་ནི་འབད་ནི་ཨིན་ན་[Y/n]?" + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "%s %s་ ལེན་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "ཡིག་སྣོད་ལ་ལུ་ཅིག་ཕབ་ལེན་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "ཕབ་ལེན་ཐབས་ལམ་རྐྱངམ་གཅིག་ནང་མཇུག་བསྡུཝ་སྦེ་རང་ཕབ་ལེན་འབད།" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"ཡིག་མཛོད་ལ་ལུ་ཅིག་ལེན་མི་ཚུགས་པས་ apt-get་དུས་མཐུན་བཟོ་ནི་གཡོག་བཀོལ་ནི་ཨིན་ན་ཡང་ན་--fix-" +"missing་དང་གཅིག་ཁར་འབད་རྩོལ་བསྐྱེད་ནི་ཨིན་ན་?" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing་དང་བརྡ་ལམ་བརྗེ་སོར་འབད་ནི་འདི་ད་ལྟོ་ལས་རང་རྒྱབ་སྐྱོར་མི་འབད་བས།" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "བརླག་སྟོར་ཞུགས་ཡོད་པའི་ཐུམ་སྒྲིལ་ཚུ་ནོར་བཅོས་འབད་མི་ཚུགས་པས།" + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "གཞི་བཙུགས་བར་བཤོལ་འབད་དོ།" + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "%s་གི་ཚབ་ལུ་%s་སེལ་འཐུ་འབད་ནི་སེམས་ཁར་བཞག\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" +"%s་གོམ་འགྱོ་འབད་དོ་ འདི་ཧེ་མ་ལས་རང་གཞི་བཙུགས་འབད་འོདཔ་དང་དུས་ཡར་བསྐྱེད་འབད་ནི་འདི་གཞི་སྒྲིག་མ་" +"འབད་བས།\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "ཐུམ་སྒྲིལ་%s་འདི་གཞི་བཙུགས་མ་འབད་བས་ འདི་འབད་ནི་དི་གིས་རྩ་བསྐྲད་མ་གཏང་པས།་\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "གྱིས་བྱིན་ཏེ་ཡོད་པའི་ཐུམ་སྒྲིལ་%s་འདི་བར་ཅུ་ཡལ་ཐུམ་སྒྲིལ་ཅིག་ཨིན།\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [གཞི་བཙུགས་འབད་ཡོད།]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "ཁྱོད་ཀྱི་གཞི་བཙུགས་འབད་ནི་ལུ་གཏན་འཁལ་སྦེ་གཅིག་སེལ་འཐུ་འབད་དགོ" + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"ཐུམ་སྒྲིལ་%s་འདི་འཐོབ་མི་ཚུགས་པས་ འདི་འབདཝ་ད་ཐུམ་སྒྲིལ་གཞན་ཅིག་གིས་གྲོས་བསྟུན་འབད་དེ་ཡོད།\n" +"འདི་གིས་ཐུམ་སྒྲིལ་ཅིག་བརླག་སྟོར་ཞུགས་ཡོདཔ་ཨིནམ་སྟོནམ་ཨིནམ་དང་ ཕན་མེད་སྦེ་གནས་ཡོདཔ་ ཡང་ན་\n" +"འདི་གཞན་འབྱུང་ཅིག་ནང་ལས་ལས་རྐྱངམ་ཅིག་འཐོབ་ཚུགསཔ་ཨིན་པས།\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "ག་དེ་སྦེ་ཨིན་རུང་འོག་གི་ཐུམ་སྒྲིལ་ཚུ་གིས་ འདི་ཚབ་བཙུགསཔ་ཨིན:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "ཐུམ་སྒྲིལ་%s་ལུ་གཞི་བཙུགས་ཀྱི་མི་ངོ་མིན་འདུག" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "%s ་ལོག་གཞི་བཙུགས་འབད་ནི་འདི་མི་སྲིད་པ་ཅིག་ཨིན་པས་ འདི་ཕབ་ལེན་འབད་མི་བཏུབ་པས།\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s ་འདི་ཧེ་མ་ལས་རང་འཐོན་རིམ་གསར་ཤོས་ཅིག་ཨིན།\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "%sགི་དོན་ལུ་འཛིན་གྲོལ་'%s'་དེ་མ་འཐོབ་པས།" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "'%s'་གི་དོན་ལུ་འཐོན་རིམ་'%s'་དེ་མ་འཐོབ་པས།" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "(%s)གི་དོན་ལུ་སེལ་འཐུ་འབད་ཡོད་པའི་འཐོན་རིམ་'%s'(%s)\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "དུས་མཐུན་བཟོ་བའི་བརྡ་བཀོད་འདི་གིས་སྒྲུབ་རྟགས་ཚུ་མི་འབག་འབད།" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "ཐོ་བཀོད་འབད་ཡོད་པའི་སྣོད་ཡིག་འདི་ལྡེ་མིག་རྐྱབ་མ་ཚུགས།" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"ཟུར་ཐོ་ཡིག་སྣོད་ལ་ལུ་ཅིག་ཕབ་ལེན་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ནུག་ འདི་ཚུ་སྣང་མེད་སྦེ་བཞགཔ་མ་ཚད་ ཚབ་ལུ་" +"རྙིངམ་འདི་ཚུ་ལག་ལེན་འཐབ་ནུག" + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "ནང་འགོད་འཛོལ་བ་ ཡར་བསྐྱེད་ཀྱི་ཅ་ཆས་ཆ་མཉམ་མེདཔ་ཐལ་ཡོད།" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "%s་ཐུམ་སྒྲིལ་འཚོལ་མ་ཐོབ།" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "དྲན་འཛིན་ རི་ཇེགསི་'%s'གི་དོན་ལུ་%s་སེལ་འཐུ་འབད་དོ།\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "འདི་ཚུ་ནོར་བཅོས་འབད་ནིའི་དོན་ལུ་ཁྱོད་ཀྱི་`apt-get -f install'དེ་གཡོག་བཀོལ་དགོཔ་འོང་:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"མ་ཚང་བའི་རྟེན་འབྲེལ་ ཐུས་སྒྲིལ་མེད་མི་ཚུ་དང་གཅིག་ཁར་ 'apt-get -f install'དེ་འབཐ་རྩོལ་བསྐྱེདཔ།" +"(ཡང་ན་ཐབས་ཤེས་ཅིག་གསལ་བཀོད་འབད།)" + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"ཐུམ་སྒྲིལ་ལ་ལུ་ཅིག་གཞི་བཙུགས་འབད་མ་ཚུགས། འ་ནི་གི་དོན་དག་དེ་ཁྱོད་ཀྱི་ མི་སྲིད་པའི་དུས་སྐབས་ཅིག་ཞུ་བ་" +"འབད་འབདཝ་འོང་ནི་མས་ ཡང་ན་ད་ལྟོ་ཡང་གསར་བསྐྲུན་མ་འབད་བར་ཡོད་པའི་ཐུམ་སྒྲིལ་ལ་ལུ་ཅིག་ཡང་ན་ནང་" +"འབྱོར་གྱི་ཕྱི་ཁར་རྩ་བསྐྲད་བཏང་ཡོད་པའི་རྩ་བརྟན་མེད་པའི་བགོ་འགྲེམ་ཚུ་ལག་ལེན་འཐབ་དོ་ཡོདཔ་འོང་ནི་ཨིན་པས།" + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"ད་ཚུན་ཁྱོད་ཀྱི་བཀོལ་སྤྱོད་རྐྱང་པ་ཅིག་རྐྱང་པ་ རྐྱངམ་ཅིག་ཞུ་བ་འབད་ཡོདཔ་ལས་ ཧ་ཅང་གི་ཐུམ་སྒྲིལ་འདི་གཞི་" +"བཙུགས་འབད་མི་བཏུབ་ནི་དེ་སྲིད་ནི་བཟུམ་ཅིག་དང་ཐུམ་སྒྲིལ་དི་གི་ཁ་ཐད་དུ་རྐྱེན་གྱི་སྙན་ཞུ་འདི་བཀང་བཞག་དགོ" + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "འོག་གི་བརྡ་དོན་དེ་གིས་དུས་སྐབས་འདི་མོས་མཐུན་བཟོ་ནི་ལུ་གྲོགས་རམ་འབད་འོང་:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "ཆད་པ་ཡོད་པའི་ཐུམ་སྒྲིལ་ཚུ།" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "འོག་གི་ཐུམ་སྒྲིལ་ཐེབས་ཚུ་གཞི་བཙུགས་འབད་འོང་:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "བསམ་འཆར་བཀོད་ཡོད་པའི་ཐུམ་སྒྲིལ་ཚུ:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "འོས་སྦྱོར་འབད་ཡོད་པའི་ཐུམ་སྒྲིལ་ཚུ:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "ཡར་བསྐྱེད་རྩིས་བཏོན་དོ་... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "འཐུས་ཤོར་བྱུང་ཡོད།" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "འབད་ཚར་ཡི།" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "ནང་འཁོད་འཛོལ་བ་ དཀའ་ངལ་མོས་མཐུན་འབད་མི་ཅ་ཆས་ཚུ་མེདཔ་ཐལ་ཡོད།" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "གི་དོན་ལུ་འབྱུང་ཁུངས་ལེན་ནི་ལུ་ཉུང་མཐའ་རང་ཐུམ་སྒྲིལ་གཅིག་ལེན་དགོ" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "%s་གི་དོན་ལུ་འབྱུང་ཁུངས་ཐུམ་སྒྲིལ་ཅིག་འཚོལ་མ་འཐོབ" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "གོམ་འགྱོ་གིས་ཧེ་མ་ལས་རང་'%s'་ཡིག་སྣོད་དེ་ཕབ་ལེན་འབད་ནུག\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr " %s་ནང་ཁྱོད་ལུ་བར་སྟོང་ཚུ་ལངམ་སྦེ་མིན་འདུག་" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "%sB་ལེན་དགོཔ་འདུག་ འབྱུང་ཁུངས་ཡིག་མཛོད་ཀྱི་%sB།\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "འབྱུང་ཁུངས་ཡིག་མཛོད་ཚུ་ཀྱི་%sB་ལེན་དགོ་པསས།\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "%s་འབྱུང་ཁུངས་ལེན།\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "ཡིག་མཛོད་ལ་ལུ་ཅིག་ལེན་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "%s་ནང་ཧེ་མ་ལས་སྦུང་ཚན་བཟོ་བཤོལ་ཨིན་མའི་སྦུང་ཚན་བཟོ་བཤོལ་གོམ་འགྱོ་འབད་དོ།\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "'%s'སྦུང་ཚན་བཟོ་བཤོལ་འཐུས་ཤོར་བྱུང་ཡོད།\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "'dpkg-dev'་ཐུམ་སྒྲིལ་དེ་གཞི་བཙུགས་འབད་ཡོད་པ་ཅིན་ཨེབ་གཏང་འབད།\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "'%s'་བཟོ་བརྩིགས་བརྡ་བཀོད་འཐུས་ཤོར་བྱུང་ཡོད།\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "ཆ་ལག་ལས་སྦྱོར་དེ་འཐུས་ཤོར་བྱུང་ནུག" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "builddeps ཞིབ་དཔྱད་འབད་ནིའི་དོན་ལུ་ཉུང་མཐའ་རང་ཐུམ་སྒྲིལ་གཅིག་གསལ་བཀོད་འབད་དགོ" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "%s་གི་དོན་ལུ་བཟོ་བརྩིགས་-རྟེན་འབྲེལ་བརྡ་དོན་དེ་ལེན་མ་ཚུགས།" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s ལུ་བཟོ་བརྩིགས་རྟེན་འབྲེལ་མིན་འདུག\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "%sཐུམ་སྒྲིལ་འདི་འཐོབ་མ་ཚུགསཔ་ལས་བརྟེན་ %sགི་དོན་ལུ་%s རྟེན་འབྲེལ་དེ་ངལ་རང་མ་ཚུགས་པས།" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"%s གི་དོན་ལུ་%s་རྟེན་འབྲེལ་འདི་གི་རེ་བ་སྐོང་མི་ཚུགས་ནུག་ག་ཅི་འབད་ཟེར་བ་ཅིན་ཐུམ་སྒརིལ་%s་གི་འཐོན་རིམ་" +"ཚུ་འཐོབ་མ་ཚུགསཔ་ལས་བརྟེན་འཐོན་རིམ་དགོས་མཁོ་ཚུ་གི་རེ་བ་དོ་སྐོང་མ་ཚུགས་པས།" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"%s:གི་དོན་ལུ་%s་རྟེན་འབྲེལ་དེ་གི་རེ་བ་སྐོང་ནི་འདི་འཐུས་ཤོར་བྱུང་ཡོདཔ་ཨིན་ གཞི་བཙུགས་འབད་ཡོད་པའི་ཐུམ་" +"སྒྲིལ་%s་དེ་གནམ་མེད་ས་མེད་གསརཔ་ཨིན་པས།" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "%s: %s་གི་དོན་ལུ་་%s་རྟེན་འབྲེལ་འདི་ངལ་རངས་འབད་ནི་འཐུས་ཤོར་བྱུང་ནུག" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr " %s་གི་དོན་ལུ་བཟོ་བརྩིགས་-རྟེན་འབྲེལ་འདི་ངལ་རངས་མ་ཚུགས་པས།" + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "བཟོ་བརྩིགས་རྟེན་འབྲེལ་འདི་ལས་སྦྱོར་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོདཔ་ཨིན།" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "རྒྱབ་སྐྱོར་འབད་ཡོད་པའི་ཚད་གཞི་ཚུ:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"ལག་ལེན་:apt-get [options] command\n" +"apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get འདི་ཐུམ་སྒྲིལ་ཚུ་ཕབ་ལེན་འབད་ནི་དང་\n" +"གཞི་བཙུགས་འབད་ནིའི་དོན་ལུ་ འཇམ་སམ་བརྡ་བཀོད་གྲལ་ཐིག་གི་ངོས་འདྲ་བ་ཅིག་ཨིན། མང་ཤོས་རང་་སྦེ་རང་" +"ལག་ལེན་འཐབ་ཡོད་པའི་བརྡ་བཀོད་ཚུ་\n" +" དུས་མཐུན་དང་གཞི་བཙུགས་འབད་ནི་དེ་ཨིན།\n" +"\n" +"བརྡ་བཀོད་ཚུ་:\n" +" update - འདི་གིས་ཐུམ་སྒྲིལ་ཚུ་གི་ཐོ་ཡིག་གསརཔ་ཚུ་སླར་འདྲེན་འབདཝ་ཨིན།\n" +" upgrade - འདི་གིས་ ཡར་བསྐྱེད་ཀྱི་ལཱ་འགན་ཅིག་འགྲུབ་ཨིན།\n" +" install - འདི་གིས་ ཐུམ་སྒྲིལ་(pkg is libc6 not libc6.deb)གསརཔ་་ཚུ་གཞི་བཙུགས་འབདཝ་" +"ཨིན།\n" +" remove -འདི་གིས་ ཐུམ་སྒྲིལ་ཚུ་རྩ་བསྐྲད་གཏངམ་ཨིན།\n" +" source - འདི་གིས་འབྱུང་ཁུངས་ཀྱི་ཡིག་མཛོད་ཚུ་ཕབ་ལེན་འབདཝ་ཨིན།\n" +" build-dep - འདི་གིས་འབྱུང་ཁུངས་ཐུམ་སྒྲིལ་ཚུ་གི་དོན་ལུ་བཟོ་བརྩིགས་-རྟེན་འབྲེལ་ཚུ་རིམ་སྒྲིག་འབདཝ་" +"ཨིན།\n" +" dist-upgrade - འདི་གིས་ བགོ་བཀྲམ་འདི་ཡར་བསྐྱེད་འབདཝ་ཨིན། apt-get(8)ལུ་བལྟ།\n" +" dselect-upgrade - འདི་གིས་ སེལ་འཐུ་བཤོལ་གྱི་ སེལ་འཐུ་ཚུ་འབདཝ་ཨིན།\n" +" clean - འདི་གིས་ ཕབ་ལེན་འབད་ཡོད་པའི་ཡིག་མཛོད་ཀྱི་ཡིག་སྣོད་ཚུ་ཀྲེག་གཏངམ་ཨིན།\n" +" autoclean -འདི་གིས་ ཕབ་ལེན་འབད་འབདཝ་རྙིངམ་གྱི་ཡིག་མཛོད་ཡིག་སྣོད་ཚུ་ཀྲེག་གཏངམ་ཨིན།\n" +" check - ཆད་པ་འགྱོ་འགྱོ་བའི་རྟེན་འབྲེལ་ཚུ་མེདཔ་སྦེ་བདེན་སྦྱོར་འབདཝ་ཨིན།\n" +"\n" +"གདམ་ཁ་ཚུ་:\n" +" -h འདི་གིས་ཚིག་ཡིག་ལུ་གྲོགས་རམ་འབདཝ་ཨིན།\n" +" -q དྲན་དེབ་འབད་བཏུབ་པའི་ཨའུཊི་པུཊི་ -ཡར་འཕེལ་གྱི་བརྡ་སྟོན་མིན་འདུག\n" +" -qq འཛོལ་བ་ཚུ་གི་དོན་ལུ་རྐྱངམ་ཅིག་མ་གཏོགས་ཨའུཊི་པུཊི་མིན་འདུག\n" +" -d ཕབ་ལེན་རྐྱངམ་ཅིག་ཨིན་- གཞི་བཙུགས་ཡང་ན་ཡིག་མཛོད་ཚུ་སྦུང་ཚན་བཟོ་བཤོལ་མ་འབད།\n" +" -s བྱ་བ་མིན་འདུག གོ་རིམ་མཚུངས་བཟོ་གི་ལས་འགན་འགྲུབ།\n" +" -y འདྲི་དཔྱད་གེ་རང་ལུ་ཨིནམ་སྦེ་ཚོད་དཔག་བཞིནམ་ལས་ནུས་སྤེལ་མ་འབད།\n" +" -f ཆིག་སྒྲིལ་ཞིབ་དཔྱད་འདི་འཐུས་ཤོར་བྱུང་པ་ཅིན་ འཕྲོ་མཐུད་འབད་ནི་ལུ་དཔའ་བཅམ།\n" +" -m ཡིག་མཛོད་འདི་ཚུ་ག་ཡོད་འཚོལ་མ་ཐོབ་པ་ཅིན་འཕྲོ་མཐུད་ནི་ལུ་དཔའ་བཅམ།\n" +" -u ཡར་བསྐྱེད་བཟོ་ཡོད་པའི་ཐུམ་སྒྲིལ་འདི་ཡང་་སྟོན།\n" +" -b འདི་ལེན་ཚར་བའི་ཤུལ་ལས འབྱུང་ཁུངས་ཐུམ་སྒྲིལ་འདི་བཟོ་བརྩིགས་འབད།\n" +" -V བརྡ་དོན་ལེ་ཤཱ་གི་འཐོན་རིམ་ཨང་གྲངས་ཚུ་སྟོན།\n" +" -c=? འ་ནི་རིམ་སྒྲིག་གི་ཡིག་སྣོད་འདི་ལྷག\n" +" -o=? མཐུན་སྒྲིག་གདམ་ཁ་གི་རིམ་སྒྲིག་ཅིག་གཞི་བཙུགས་འབད་ དཔེན་ན་-o dir::cache=/tmp\n" +"བརྡ་དོན་དང་གདམ་ཁ་ཚུ་ཧེང་བཀལ་གི་དོན་ལུ་ apt-get(8)་ sources.list(5) དང་apt.conf(5)" +"ལག་ཐོག་\n" +"ཤོག་ལེབ་ཚུ་ལུ་བལྟ།\n" +" འ་ནི་ ཨེ་ཊི་པི་འདི་ལུ་ཡང་དག་ ཀའུ་ ནུས་ཤུགས་ཚུ་ཡོད།\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "ཨེབ།" + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "ལེན:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "ཨེལ་ཇི་ཨེན:" + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "ཨི་ཨར་ཨར།" + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "%s (%sB/s)་ནང་ལུ་%sB་དེ་ལེན་ཡོདཔ་ཨིན།\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [ལཱ་འབད་དོ།]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"བརྡ་ལམ་བསྒྱུར་བཅོས:ཁ་ཡིག་བཀོད་ཡོད་པའི་ཌིསིཀ་འདི་\n" +" '%s'\n" +"འདྲེན་འཕྲུལ་'%s'ནང་བཙུགས་བཞིནམ་ལས་ལོག་ལྡེ་འདི་ཨེབ།\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "མ་ཤེས་པའི་ཐུམ་སྒྲིལ་གི་དྲན་ཐོ།" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"ལག་ལེན: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs་ འདི་ཐུམ་སྒྲིལ་གི་ཡིག་སྣོད་ཚུ་དབྱེ་སེལ་འབད་ནི་ལུ་ འཇམ་སམ་གྱི་ལག་ཆས་ཅིག་ཨིན། -s " +"གདམ་ཁ་འདི་ ཡིག་སྣོད་ཀྱི་དབྱེ་ཁག་ག་ཅི་བཟུམ་ཅིག་ཨིན་ན\n" +"་བརྡ་སྟོན་འབད་ནིའི་དོན་ལུ་ལག་ལེན་འཐབ་སྟེ་ཡོདཔ་ཨིན།\n" +"\n" +"གདམ་ཁ་ཚུ:\n" +" -h འ་ནི་འདི་གིས་ཚིག་ཡིག་ལུ་གྲོགས་རམ་འབདཝ་ཨིན།\n" +" -s འདི་གིས་འབྱུང་ཁུངས་ ཡིག་སྣོད་གསོག་འཇོག་འབད་དོན་ལུ་ལག་ལེན་འཐབ་ཨིན།\n" +" -c=? འདི་གིས་འ་ནི་རིམ་སྒྲིག་ཡིག་སྣོད་འདི་ལྷགཔ་ཨིན།\n" +" -o=? འདི་གིས་ མཐུན་སྒྲིག་ རིམ་སྒྲིག་གི་གདམ་ཁ་ཚུ་ཁཞི་སྒྲིག་འབདཝ་ཨིན་ དཔེར་ན་-o dir::cache=/" +"tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "སྔོན་སྒྲིག་བྱང་ཉེས་གཞི་སྒྲིག་འབད་དོ་!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "འཕྲོ་མཐུད་འབད་ནིའི་དོན་ལུ་ལོག་ལྡེ་འདི་ཨེབ།" + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "སྦུང་ཚན་བཟོ་བཤོལ་འབད་བའི་བར་ན་ འཛོལ་བ་དག་པ་ཅིག་བྱུང་ནུག་ ང་གི་" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "གཞི་བཙུགས་འབད་ཡོད་པའི་ཐུམ་སྒྲིལ་ཚུ་རིམ་སྒྲིག་འབད་ནི་ཨིན།་འ་ནི་འདི་གིས་ ངོ་བཤུས་རྫུན་མ་" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" +"ཡང་ན་བརླག་སྟོར་ཞུགས་ཡོད་པའི་རྟེན་འབྲེལ་གི་རྒྱུ་རྐྱེན་ལས་བརྟེན་པའི་འཛོལ་བ་ཚུ་ནང་ལུ་གྲུབ་འབྲས་འཐོན་འོང་། " +"འདི་དེ་བཏུབ་པས་" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"འ་ནི་འཕྲིན་དོན་གྱི་ལྟག་ལས་ཡོད་པའི་འཛོལ་བ་དེ་ཚུ་གལ་ཅན་ཅིག་ཨིན། འདི་ཚུ་གི་དཀའ་ངལ་སེལ་བཞིནམ་ལས་ " +"[I] གཞི་བཙུགས་དེ་ལོག་སྟེ་རང་གཡོག་བཀོལ།" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "འཐོབ་ཚུགས་པའི་བརྡ་དོན་མཉམ་བསྡོམས་འབད་དོ།" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "རྒྱུད་དུང་ཚུ་གསར་བསྐྲུན་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "ཇི་ཛིཔ་འདི་ལག་ལེན་འཐབ་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "ངན་ཅན་གྱི་ཡིག་མཛོད།" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "ཊར་ཅེག་སམ་དེ་འཐུས་ཤོར་བྱུང་ཡོད་ ཡིག་མཛོད་ངན་ཅན་བྱུང་ནུག" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "མ་ཤེས་པའི་ ཊཱར་་མགོ་ཡིག་་དབྱེ་བ་ %u་ འཐུས་མི་ %s།" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "ནུས་མེད་ཡིག་མཛོད་ཀྱི་མིང་རྟགས།" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "ཡིག་མཛོད་འཐུས་མི་མགོ་ཡིག་ལྷག་ནིའི་འཛོལ་བ།" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "ནུས་མེད་ཡིག་མཛོད་འཐུས་མི་གི་མགོ་ཡིག་" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "ཡིག་མཛོད་འདི་གནམ་མེད་ས་མེད་ཐུང་ཀུ་འདུག" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "ཡིག་མཛོད་མགོ་ཡིག་ཚུ་ལྷག་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "ད་ལྟོ་ཡང་འབྲེལ་ལམ་ཡོད་པའི་མཐུད་མཚམས་གུར་བཀོག་བཞག་མཐུད་མཚམས་དེ་བོད་བརྡ་འབད་འདི་ཡོད།" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "དྲྭ་རྟགས་རྒྱུ་རྫས་འདི་ག་ཡོད་འཚོལ་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "ཁ་ཕྱོགས་སྤྲོད་བཞག་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "ཁ་ཕྱོགས་ཁ་སྐོང་རྐྱབ་ནི་ནང་ ནང་འཁོད་ཀྱི་འཛོལ་བ།" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "%s -> %s ་དང་ %s/%s་ཁ་ཕྱོགས་ཅིག་ཚབ་སྲུང་འབད་ནི་ལུ་འབད་རྩོལ་བསྐྱེད་དོ།" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "%s -> %s་ཁ་ཕྱོགས་ཀྱི་ལོག་བལྟབ་ཁ་སྐོང་།" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "རིམ་སྒྲིག་ཡིག་སྣོད་%s/%s་འདི་ངོ་བཤུས་བཟོ།" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "%s་ཡིག་སྣོད་འདི་འབྲི་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "%s་ཡིག་སྣོད་འདི་ཁ་བསྡམས་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "%s་འགྲུལ་ལམ་དེ་གནམ་མེད་ས་མེད་རིངམ་འདུག" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "སྦུང་ཚན་བཟོ་བཤོལ་%s་གཅིག་ལས་ལྷག་སྟེ་འདུག" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "སྣོད་ཐོ་%s་འདི་ཁ་ཕྱོགས་སྒྱུར་དེ་ཡོད།" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "ཐུམ་སྒྲིལ་འདི་གིས་ག་སྒྱུར་དམིགས་གཏད་%s/%s་ལུ་འབྲི་ནིའི་འབད་རྩོལ་བསྐྱེདཔ་དེ་ཡོད།" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "ཁ་སྒྱུར་འགྲུལ་ལམ་འདི་གནམ་མེད་ས་མེད་རིངམ་ཨིན་པས།" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "སྣོད་ཡིག་%s་འདི་སྣོད་ཡིག་མེན་མི་ཅིག་གིས་ཚབ་བཙུག་དེ་ཡོདཔ་ཨིན།" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "ཁོང་རའི་དྲྭ་རྟགས། (#)རྡོབ་ནང་ལུ་མཐུད་མཚམས་ག་ཡོད་འཚོལ་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "འགྲུལ་ལམ་དེ་གནམ་མེད་ས་མེད་རིངམ་ཅིག་ཨིན་པས།" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "%s་གི་དོན་ལུ་ཚབ་སྲུང་འབད་བའི་ཐུམ་སྒྲིལ་དེ་གིས་འཐོན་རིམ་གཅིག་ད་ཡང་མཐུན་སྒྲིག་མི་འབད་བས།" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "ཐུམ་སྒྲིལ་%s་ནང་ལུ་་ཡིག་སྣོད་%s/%sགིས་གཅིག་ཚབ་སྲུང་འབདཝ་ཨིན།" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "%s་འདི་ལུ་ལྷག་མ་ཚུགས།" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "%s་འདི་ལུ་ངོ་བཤུས་འབད་མ་ཚུགས།" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "%s་རྩ་བསྐྲད་གཏང་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "%s་གསར་བསྐྲུན་འབད་མ་ཚུགས།" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "%sinfo་ངོ་བཤུས་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "info ་དང་ temp་སྣོད་ཐོ་ཚུ་ཡིག་སྣོད་རིམ་ལུགས་གཅིག་གུར་ལུ་བཞག་དགོཔ་ཨིན།" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "ཐུམ་སྒྲིལ་ཐོ་ཡིག་ཚུ་ལྷག་དོ།" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "བདག་སྐྱོང་སྣོད་ཐོ་ %sinfo་ལུ་བསྒྱུར་བཅོས་འབད་ནི་ འཐུས་ཤོར་བྱུང་ཡོད།" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "ནང་འཁོད་འཛོལ་བ་གིས་ཐུམ་སྒྲིལ་མིང་ཅིག་ལེན་དོ།" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "ཡིག་ཐོ་བཀོད་འབད་མི་ཚུ་ལྷག་དོ།" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"'%sinfo/%s'ཡིག་སྣོད་ཐོག་ཡིག་ཁ་ཕྱེ་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད། ཁྱོད་ཀྱི་ཡིག་སྣོད་འདི་སོར་ཆུད་འབད་མ་ཚུགས་པ་" +"ཅིན་ འདི་སྟོངམ་བཟོ་བཞིནམ་ལས་ དེ་འཕྲལ་ལས་རང་ཐུམ་སྒྲིལ་གི་འཐོན་རིམ་གཅིགཔ་འདི་རང་ལོང་གཞི་བཙུགས་འབད།" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "%sinfo/%s་ཡིག་སྣོད་ཐོ་བཀོད་འདི་ལྷག་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "ནང་འཁོད་འཛོལ་བ་གིས་མཐུད་མཚམས་ལེན་དོ།" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "ཁ་ཕྱོགས་ཡིག་སྣོད་%sdiversionsཚུ་ཁ་ཕྱེ་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "ཁ་ཕྱོགས་ཡིག་སྣོད་འདི་ངན་ཅན་འགྱོ་ནུག" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "%s་ཁ་ཕྱོགས་ཡིག་སྣོད་ནང་ནུས་མེད་གྲལ་ཐིག" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "ནང་འཁོད་འཛོལ་ ཁ་ཕྱོགས་ཅིག་ཁ་སྐོང་རྐྱབ་དོ།" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "པི་ཀེ་ཇི་ འདྲ་མཛོད་དེ་ དང་པ་རང་འགོ་བྱེད་འབད་དགོ" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "ཐུམ་སྒྲིལ་ཅིག་འཚོལ་་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོདཔ་ཨིན:མགོ་ཡིག་ པར་ལེན%lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "གནད་ཚད་ཡིག་སྣོད་དབྱེ་ཚན་ནང་ལུ་ རིམ་སྒྲིག་ཡིག་སྣོད་བྱང་ཉེས། པར་ལེན་ %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "ཨེམ་ཌི་༥་ འཛོལ་བ་མིང་དཔྱད་འབད་དོ། པར་ལེན་ %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "འ་ནི་འདི་ ཌི་ཨི་བི་ཡིག་མཛོད་ནུས་ཅན་ཅིག་མེན་པས་ '%s'འཐུས་མི་བརླག་སྟོར་ཞུགས་དོ།" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "འ་ནི་འདི་ཌི་ཨི་བི་ཡིག་མཛོད་ནུས་ཅན་ཅིག་མེན་པས་ འདི་ལུ་'%s'ཡང་ན་'%s'འཐུས་མི་མིན་འདུག" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "%s་ལུ་བསྒྱུར་བཅོས་འབད་མ་ཚུགས།" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "ནང་འཁོད་འཛོལ་བ་ འཐུས་མི་ག་ཡོད་འཚོལ་མ་ཐོབ།" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "ནུས་ཅན་ཡོད་པའི་ཚད་འཛིན་ཡིག་སྣོད་ཅིག་ག་ཡོད་འཚོལ་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོདཔ་ཨིན།" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "མིང་དཔྱད་འབད་མ་བཏུབ་པའི་ཚད་འཛིན་ཡིག་སྣོད།" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "སི་ཌི་རོམ་གནད་སྡུད་གཞི་རྟེན་%s་འདི་ལྷག་མ་ཚུགས།" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"འ་ནི་སི་ཌི་-རོམ་འདི་ཨེ་པི་ཊི་་གིས་ ངོས་འཛིན་འབད་ཚུགསཔ་སྦེ་བཟོ་ནིའི་་དོན་ལུ་ ཨེ་པི་ཊི་-སི་ཌི་རོམ་ལག་ལེན་" +"འཐབ་གནང། apt-get་དུས་མཐུན་བཟོ་ནི་དེ་ སི་ཌི་-རོམས་གསརཔ་ཁ་སྐོང་རྐྱབ་ནི་ལུ་ལག་ལེན་འཐབ་མི་བཏུབ།" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "སི་དི་-རོམ་ཕྱི་འགྱུར།" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "" +"%s་ནང་་སི་ཌི་-རོམ་འདི་བརྩེགས་བཤོལ་འབད་མ་ཚུགས་ འདི་ད་ལྟོ་ཡང་ལག་ལེན་འཐབ་སྟེ་ཡོདཔ་འོང་ནི་མས།" + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "ཌིཀསི་དེ་འཚོལ་མ་ཐོབ།" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "ཡིག་སྣོད་འཚོལ་མ་ཐོབ།" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:134 +#: methods/gzip.cc:143 +msgid "Failed to stat" +msgstr "ངོ་བཤུས་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:140 +msgid "Failed to set modification time" +msgstr "ཆུ་ཚོད་ལེགས་བཅོས་གཞི་སྒྲིག་འབཐ་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "ཡུ་ཨར་ཨེལ་ ནུས་མེད་ ཉེ་གནས་ ཡུ་ཨར་ཨེལ་ཨེསི་འདི་གིས་//་དང་གཅིག་ཁར་འགོ་བཙུགས་ནི་མི་འོང་།" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "ནང་བསྐྱོད་འབད་དོ།" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "དོ་བཉམ་གི་མིང་འདི་གཏན་འབེབས་བཟོ་མ་ཚུགས།" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "ཉེ་གནས་མིང་འདི་གཏན་འབེེབས་བཟོ་མ་ཚུགས།" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "སར་བར་འདི་གིས་ མཐུད་ལམ་འདི་ངོས་ལེན་འབད་མ་བཏུབ་པར་སླབ་མས: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "ལག་ལེན་པ་འཐུས་ཤོར་བྱུང་ཡོད་ སར་བར་གྱིས་སླབ་མས་: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "རྩི་སྤྲོད་འཐུས་ཤོར་བྱུང་ཡོད་ སར་བར་གྱིས་སླབ་མས་: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"པོརོ་སི་སར་བར་ཅིག་གསལ་བཀོད་འབད་ཡོད་འདི་འབདཝ་ད་ ནང་བསྐྱོད་ཡིག་ཚུགས་མིན་འདུག་ Acquire::ftp::" +"ProxyLoginའདི་སྟོངམ་ཨིན་པས།" + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "ནང་བསྐྱོད་ཡིག་ཚུགས་ བརྡ་བཀོད་'%s'་འདི་འཐོས་ཤོར་བྱུང་ཡོད་ སར་བར་གྱིས་སླབ་མས:%s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "ཡིག་དཔར་རྐྱབ་མ་བཏུབ་སར་བར་གྱིས་སླབ་མས། %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "མཐུད་ལམ་ངལ་མཚམས" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "སར་བར་གྱིས་མཐུད་ལམ་འདི་ཁ་བསྡམས་ཏེ་ཡོདཔ་ཨིན།" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "འཛོལ་བ་ལྷབ།" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "ལན་གྱིས་ གནད་ཁོངས་གུར་ལས་ ལུད་སོང་སྟེ་ཡོདཔ་ཨིན།" + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "གནད་སྤེལ་ལམ་ལུགས་ ངན་ཅན།" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "འཛོལ་བ་འབྲི།" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "སོ་ཀེཊི་ཅིག་གསར་བསྐྲུན་འབད་མ་ཚུགས་པར་ཡོདཔ་ཨིན།" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "གནད་སྡུད་སོ་ཀེཊི་མཐུད་མ་ཚུགས་པར་ཡོདཔ་ཨིན་ མཐུད་ལམ་ངལ་མཚམས།" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "བྱ་ཡུལ་གྱི་སོ་ཀེཊི་མཐུད་མ་ཚུགས།" + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo་འདི་གིས་ཉན་ནིའི་སོ་ཀེཊི་ཅིག་ལེན་མ་ཚུགས།" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "སོ་ཀེཊི་ཅིག་བསྡམས་མ་ཚུགས།" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "སོ་ཀེཊི་གུར་ཉེན་མ་ཚུགས།" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "སོ་ཀེཊི་གི་མིང་འདི་གཏན་འབེབས་བཟོ་མ་ཚུགས།" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "འདྲེན་ལམ་གྱི་བརྡ་བཀོད་འདི་བཏང་མ་ཚུགས།" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "མ་ཤེས་པའི་ཁ་བྱང་གི་རིགས་ཚན་%u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "ཨི་པི་ཨར་ཊི་ འཐུས་ཤོར་བྱུང་ཡོད་ སར་བར་གིས་སླབ་མས:%s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "གནད་སྡུད་སོ་ཀེཊི་ མཐུད་ནི་ངལ་མཚམས་བྱུང་ནུག" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "མཐུད་ལམ་འདི་དང་ལེན་འབད་མ་ཚུགས།" + +#: methods/ftp.cc:864 methods/http.cc:958 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "ཡིག་སྣོད་ལུ་་དྲྭ་རྟགས་བཀལ་བའི་བསྒང་དཀའ་ངལ།" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "ཡིག་སྣོད་ལེན་མ་ཚུགས་ སར་བར་'%s'གིས་སླབ་མས" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "གནད་སྡུད་སོ་ཀེཊི་ངལ་མཚམས།" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "གནད་སྡུད་གནས་སོར་དེ་འཐུས་ཤོར་བྱུང་ཡོད་ སར་བར་'%s'་གིས་སླབ་མས།" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "འདྲི་དཔྱད།" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "ལས་བཀོལ་འབད་མ་ཚུགས།" + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "%s (%s)་ལུ་མཐུད་དོ།" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "%s (f=%u t=%u p=%u)གི་དོན་ལུ་སོ་ཀེཊི་ཅིག་གསར་བསྐྲུན་འབད་མ་ཚུགས།" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "%s:%s (%s)ལུ་མཐུད་ལམ་དེ་འགོ་འབྱེད་འབད་མ་ཚུགས།" + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr " %s:%s (%s)ལུ་མཐུད་མ་ཚུགས་ མཐུད་ལམ་ངལ་མཚམས།" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr " %s:%s (%s)ལུ་མཐུད་མ་ཚུགས།" + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "%s་ལུ་མཐུད་དོ།" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "'%s'མོས་མཐུན་འབད་མ་ཚུགས།" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "'%s'མོས་མཐུན་འབད་ནི་ལུ་གནས་སྐབས་ཀྱི་འཐུས་ཤོར།" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "'%s:%s' (%i)་མོས་མཐུན་འབདཝ་ད་ངན་པ་ཅིག་བྱུང་ཡི།" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "%s %s:ལུ་མཐུད་མ་ཚུགས།" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "'%s'ལྡེ་འཁོར་འདི་འཛུལ་སྤྱོད་འབད་མ་ཚུགས།" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" +"E: Acquire::gpgv::Options་ནང་ལས་ཀྱི་སྒྲུབ་རྟགས་ཀྱི་ཐོ་ཡིག་དེ་གནམ་མེད་ས་མེད་རིངམ་འདུག ཕྱིར་" +"འཐོན་དོ།" + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" +"ནང་འཁོད་འཛོལ་བ: མིང་རྟགས་འདི་ལེགས་ཤོམ་ཅིག་འདུག་ འདི་འབདཝ་ད་མཛུབ་རྗེས་ལྡེ་མིག་དེ་གཏན་འབེབས་བཟོ་" +"མ་ཚུགས?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "ཉུང་མཐའ་རང་ནུས་མེད་ཀྱི་མིང་རྟགས་ཅིག་གདོང་ཐུག་བྱུང་སྟེ་ཡོདཔ་ཨིན།" + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" +"མིང་རྟགས་བདེན་སྦྱོར་འབད་ནི་ལུ་'%s'འདི་ལག་ལེན་འཐབ་མ་ཚུགས། (gnupg་དེ་ཁཞི་བཙུགས་འབད་ཡོདཔ་ཨིན་" +"ན།?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "gpgv་ལག་ལེན་འཐབ་ནི་ལུ་མ་ཤེས་པའི་འཛོལ་བ་།" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "འོག་གི་མིང་རྟགས་ཚུ་ནུས་མེད་ཨིན་པས།:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"འོག་གི་མིང་རྟགས་ཚུ་བདེན་སྦྱོར་་འབད་མ་ཚུགས་ག་ཅི་སྦེ་ཟེར་བ་ཅིན་མི་དམང་ལྡེ་མིག་དེ་འཐོབ་མི་ཚུགས་པས:\n" + +#: methods/gzip.cc:57 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "%s་གི་དོན་ལུ་རྒྱུད་དུང་འདི་ཁ་ཕྱེ་མ་ཚུགས།" + +#: methods/gzip.cc:102 +#, c-format +msgid "Read error from %s process" +msgstr "%s་ལས་སྦྱོར་ནང་ལས་འཛོལ་བ་ཚུ་ལྷག" + +#: methods/http.cc:376 +msgid "Waiting for headers" +msgstr "མགོ་ཡིག་ཚུ་གི་དོན་ལུ་བསྒ྄ག་དོ།" + +#: methods/http.cc:522 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "%u་ཡིག་འབྲུ་ཚུ་གི་ལྟག་ལས་མགོ་ཡིག་རྐྱང་པ་ཅིག་ཐོབ་ཡོད།" + +#: methods/http.cc:530 +msgid "Bad header line" +msgstr "མགོ་ཡིག་གི་གྲལ་ཐིག་བྱང་ཉེས།" + +#: methods/http.cc:549 methods/http.cc:556 +msgid "The HTTP server sent an invalid reply header" +msgstr "ཨེཆི་ཊི་ཊི་པི་ སར་བར་འདི་གིས་ནུས་མེད་ལན་གསལ་གི་མགོ་ཡིག་ཅིག་བཏང་ཡོད།" + +#: methods/http.cc:585 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "ཨེཆི་ཊི་ཊི་པི་སར་བར་འདི་གིས་ནུས་མེད་ནང་དོན་རིང་-ཚད་ཀྱི་མགོ་ཡིག་ཅིག་བཏང་ཡོད།" + +#: methods/http.cc:600 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "ཨེཆི་ཊི་ཊི་པི་ སར་བར་འདི་གིས་ ནུས་མེད་ ནང་དོན་-ཁྱབ་ཚད་ཀྱི་མགོ་ཡིག་ཅིག་བཏང་ཡོད།" + +#: methods/http.cc:602 +msgid "This HTTP server has broken range support" +msgstr "འ་ནི་ ཨེཆི་ཊི་ཊི་པི་ སར་བར་འདི་གིས་ ཁྱབ་ཚད་ཀྱི་རྒྱབ་སྐྱོར་དེ་ཆད་པ་བཟོ་བཏང་ནུག" + +#: methods/http.cc:626 +msgid "Unknown date format" +msgstr "མ་ཤེས་པའི་ཚེས་རྩ་སྒྲིག" + +#: methods/http.cc:773 +msgid "Select failed" +msgstr "སེལ་འཐུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: methods/http.cc:778 +msgid "Connection timed out" +msgstr "མཐུད་ལམ་ངལ་མཚམས་འབད་ཡོད།" + +#: methods/http.cc:801 +msgid "Error writing to output file" +msgstr "ཨའུཊི་པུཊི་ཡིག་སྣོད་ལུ་འབྲིཝ་ད་འཛོལ་བ།" + +#: methods/http.cc:832 +msgid "Error writing to file" +msgstr "ཡིག་སྣོད་ལུ་འབྲིཝ་ད་འཛོལ་བ།" + +#: methods/http.cc:860 +msgid "Error writing to the file" +msgstr "ཡིག་སྣོད་འདི་ལུ་འབྲིཝ་ད་འཛོལ་བ།" + +#: methods/http.cc:874 +msgid "Error reading from server. Remote end closed connection" +msgstr "སར་བར་ནང་ལས་ལྷག་པའི་བསྒང་འཛོལ་བ། ཐག་རིང་མཇུག་གི་མཐུད་ལམ་དེ་ཁ་བསྡམས།" + +#: methods/http.cc:876 +msgid "Error reading from server" +msgstr "སར་བར་ནང་ལས་ལྷག་པའི་བསྒང་འཛོལ་བ།" + +#: methods/http.cc:1107 +msgid "Bad header data" +msgstr "མགོ་ཡིག་གནད་སྡུད་བྱང་ཉེས།" + +#: methods/http.cc:1124 +msgid "Connection failed" +msgstr "བཐུད་ལམ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: methods/http.cc:1215 +msgid "Internal error" +msgstr "ནང་འཁོད་འཛོལ་བ།" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "ཡིག་སྣོད་སྟོངམ་འདི་mmap་འབད་མ་ཚུགས།" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "%lu་བཱའིཊིསི་གི་mmap་བཟོ་མ་ཚུགས།" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "སེལ་འཐུ་%s ་མ་འཐོབ།" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "ངོ་མ་ཤེས་པའི་སྡུད་ཚིག་གི་དབྱེ་བ:'%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "རིམ་སྒྲིག་ཡིག་སྣོད་%s་འདི་ཁ་ཕྱེ་དོ།" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "གྲལ་ཐིག་%d་འདི་གནམ་མེད་ས་མེད་རིངམ་འདུག(%d་མཐོ་ཤོས)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "་ཚིག་སྦྱོར་འཛོལ་བ་%s:%u: སྡེབ་ཚན་གྱིས་མིང་མེད་མི་དང་གཅིག་ཁར་འགོ་བཙུགསཔ་ཨིན" + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "ཚིག་སྦྱོར་འཛོལ་བ་%s:%u:བཟོ་ཉེས་འགྱུར་བའི་ངོ་རྟགས།" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "ཚིག་སྦྱོར་འཛོལ་བ་%s:%u:གནས་གོང་གི་ཤུལ་ལས་མཁོ་མེད་ཐེབས།" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "ཚིག་སྦྱོར་འཛོལ་བ་%s:%u:བཀོད་རྒྱ་ཚུ་ཆེ་རིམ་ནང་རྐྱངམ་ཅིག་བྱིན་ཚུགས།" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "ཚིག་སྦྱོར་འཛོལ་བ་%s:%u:འདུ་འཛོམས་འབད་འབདཝ་ལེ་ཤཱ་གྲངས་སུ་བཙུགསཔ་ཨིན།" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "ཚིག་སྦྱོར་འཛོལ་བ་%s:%u: ནཱ་ལས་རང་འགོ་བཙུགས་གྲངས་སུ་བཙུགས་ཏེ་ཡོད།" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "ཚིག་སྦྱོར་འཛོལ་བ་%s:%u: རྒྱབ་སྐྱོར་མ་འབད་བར་ཡོད་པའི་'%s'བཀོད་རྒྱ།" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "ཚིག་སྦྱོར་འཛོལ་བ་%s:%u: ཡིག་སྣོད་ཀྱི་མཇུག་ལུ་མཁོ་མེད་ཐེབས།" + +#: apt-pkg/contrib/progress.cc:154 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... འཛོལ་བ་!" + +#: apt-pkg/contrib/progress.cc:156 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... འབད་ཚར་ཡོད།" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "བརྡ་བཀོད་གྲལ་ཐིག་གྱི་གདམ་ཁ་'%c'[%s་ནང་ལས་]འདི་མ་ཤེས་པས།" + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "བ་རྡ་བཀོད་གྲལ་ཐིག་གི་གདམ་ཁ་%s་འདི་ཧ་མ་གོ་བས།" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "བརྡ་བཀོད་གྲལ་ཐིག་གི་གདམ་ཁ་%s་འདི་བུ་ལིན་མེན་པས།" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "གདམ་ཁ་%s་ལུ་སྒྲུབ་རྟགས་ཅིག་དགོ་པས།" + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "གདམ་ཁ་%s:རིམ་སྒྲིག་གི་རྣམ་གྲངས་གསལ་བཀོད་ལུ་ = ་ཅིག་དགོཔ་ཨིན།" + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "གདམ་ཁ་ %s ་ལུ་'%s'་མེན་པར་ ཧྲིལ་ཨང་སྒྲུབ་རྟགས་ཅིག་དགོས་མཁོ་ཡོདཔ་ཨིན" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "གདམ་ཁ་'%s'འདི་གནམ་མེད་ས་མེད་རིངམ་འདུག" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "དྲན་ཤེས་ %s་འདི་ཧ་གོ་མ་ཚུགས་པས་ བདེན་པ་ཡང་ན་རྫུན་པ་ལུ་འབད་རྩོལ་བསྐྱེདཔ།" + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "ནུས་མེད་བཀོལ་སྤྱོད་%s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "སྦྱར་བརྩེགས་ས་ཚིགས་%s་འདི་ངོ་བཤུས་འབད་མ་ཚུགས།" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "%s་ལུ་བསྒྱུར་བཅོས་འབད་མ་ཚུགས།" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "སི་ཌི་རོམ་འདི་ངོ་བཤུས་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "%s ལྷག་ནི་རྐྱངམ་ཅིག་འབད་མི་ལྡེ་མིག་ཡིག་སྣོད་འདི་གི་དོན་ལུ་ལྡེ་མིག་རྐྱབ་ནི་ལག་ལེན་མི་འཐབ་པས།" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "ལྡེ་མིག་རྐྱབས་ཡོད་པའི་ཡིག་སྣོད་%s་འདི་ཁ་ཕྱེ་མ་ཚུགས།" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "" +"ཨེན་ཨེཕ་ཨེསི་ %s སྦྱར་བརྩེགས་འབད་ཡོད་པའི་ལྡེ་མིག་ཡིག་སྣོད་ཀྱི་དོན་ལུ་ལྡེ་མིག་རྐྱབ་ནི་ལག་ལེན་མི་འཐབ་པས།" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "%sལྡེ་མིག་རྐྱབ་ནི་ལེན་མ་ཚུགས།" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "%s་གི་དོན་ལུ་བསྒུག་སྡོད་ཅི་ འདི་འབདཝ་ད་ཕར་མིན་འདུག" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "ཡན་ལག་ལས་སྦྱོར་%s་ལུ་ཆ་བགོས་ཀྱི་སྐྱོན་ཅིག་ཐོབ་ཡོདཔ་ཨིན།" + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "ཡན་ལག་ལས་སྦྱོར་%s་གིས་འཛོལ་བའི་ཨང་རྟགས་(%u)ཅིག་སླར་ལོག་འབད་ཡོདཔ་ཨིན།" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "ཡན་ལག་ལས་སྦྱོར་་%s་གིས་རེ་བ་མེད་པར་ཕྱིར་ཐོན་ཡོདཔ་ཨིན།" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "%s་ཡིག་སྣོད་འདི་ཁ་ཕྱེ་མ་ཚུགས།" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "ལྷག་ ད་ལྟོ་ཡང་ལྷག་ནི་ལུ་%lu་ཡོད་འདི་འབདཝ་ད་ཅི་ཡང་ལྷག་ལུས་མིན་འདུག" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "འབྲི་ ད་ལྟོ་ཡང་འབྲི་ནི་ལུ་%lu་ཡོད་འདི་འདབཝ་ད་འབད་མ་ཚུགས།" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "ཡིག་སྣོད་འདི་ཁ་བསྡམས་པའི་བསྒང་དཀའ་ངལ།" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "ཡིག་སྣོད་འདི་འབྲེལལམ་མེདཔ་བཟོ་བའི་བསྒང་དཀའ་ངལ།" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "ཡིག་སྣོད་མཉམ་བྱུང་འབདཝ་ད་དཀའ་ངལ།" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "ཐུམ་སྒྲིལ་འདྲ་མཛོད་སྟོངམ།" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "ཐུམ་སྒྲིལ་འདྲ་མཛོད་ཡིག་སྣོད་འདི་ངན་ཅན་ཨིན་པས།" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "ཐུམ་སྒྲིས་འདྲ་མཛོད་ཡིག་སྣོད་འདི་ མི་མཐུན་པའི་འཐོན་རིམ་ཅིག་ཨིན་པས།" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "འ་ནི་ཨེ་པི་ཊི་ འདི་གིས་ '%s'འཐོན་རིམ་བཟོ་ནིའི་རིམ་ལུགས་དེ་ལུ་རྒྱབ་སྐྱོར་མི་འབད་བས།" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "ཐུམ་སྒྲིལ་འདྲ་མཛོད་འདི་བཟོ་བཀོད་སོ་སོ་ཅིག་གི་དོན་ལུ་བཟོ་བརྩིགས་འབད་འབདཝ་ཨིནཔས།" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "རྟེནམ་ཨིན།" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "སྔོན་གོང་མ་རྟེནམ་ཨིན།" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "བསམ་འཆར་བཀོདཔ་ཨིན།" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "འོས་སྦྱོར་འབདཝ་ཨིན།" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "མི་མཐུནམ་ཨིན།" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "ཚབ་བཙུགསཔ་ཨིན།" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "ཕན་མེདཔ་བཟོཝ་ཨིན།" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "གལ་ཅན།" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "དགོས་མཁོ་ཡོདཔ།" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "ཚད་ལྡན།" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "གདམ་ཁ་ཅན།" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "ཐེབས།" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "རྟེན་འབྲེལ་གྱི་རྩ་འབྲེལ་བཟོ་བརྩིགས་འབད་དོ།" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "མི་ངོ་འཐོན་རིམཚུ།" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "བརྟེན་པའི་བཟོ་བཏོན།" + +#: apt-pkg/tagfile.cc:85 apt-pkg/tagfile.cc:92 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "%s (༡་)་ཐུམ་སྒྲིལ་ཡིག་སྣོད་འདི་མིང་དཔྱད་འབད་མ་ཚུགས།" + +#: apt-pkg/tagfile.cc:186 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "%s (༢་)་ཐུམ་སྒྲིལ་ཡིག་སྣོད་འདི་མིང་དཔྱད་འབད་མ་ཚུགས།" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "བཟོ་ཉེས་འགྱུར་བའི་གྲལ་ཐིག་ %lu འབྱུང་ཁུངས་ཐོ་ཡིག་ %s (ཡུ་ཨར་ཨའི་)གི་ནང་ན།" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "བཟོ་ཉེས་འགྱུར་བའི་གྲལ་ཐིག་ %lu་ འབྱུང་ཁུངས་ཐོ་ཡིག་%s (dist)གི་ནང་ན།" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "བཟོ་ཉེས་འགྱུར་བའི་གྲལ་ཐིག་%lu་ འབྱུང་ཐོ་ཡིག་ %s(ཡུ་ཨར་ཨའི་ མིང་དཔྱད་འབད་ནི)གི་ནང་ན།" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "བཟོ་ཉེས་འགྱུར་བའི་གྲལ་ཐིག་%lu་ འབྱུང་ཁུངས་ཐོ་ཡིག་%s(ཡང་དག་ dist)གི་ནང་ན།" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "བཟོ་ཉེས་འགྱུར་བའི་གྲལ་ཐིག་%lu་ འབྱུང་ཁུངས་ཐོ་ཡིག་%s(dist མིང་དཔྱད་འབད་ནི་)ནང་ན།" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "%s་ཁ་ཕྱེ་དོ།" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "གྲལ་ཐིག་%u་འདི་འབྱུང་ཁུངས་ཐོ་ཡིག་%s་ནང་ལུ་གནམ་མེད་ས་མེད་རིངམོ་འདུག" + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "བཟོ་ཉེས་འགྱུར་བའི་གྲལ་ཐིག་%u་ འབྱུང་ཁུངས་ཐོ་ཡིག་%s (དབྱེ་བ)་ནང་ན།" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "དབྱེ་བ་'%s'་འདི་གྲལ་ཐིག་%u་གུར་ལུ་ཡོདཔ་འབྱུང་ཁུངས་ཐོ་ཡིག་%s་གི་ནང་ན་མ་ཤེས་པས།" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "བཟོ་ཉེས་འགྱུར་བའི་གྲལ་ཐིག་%u་ འབྱུང་ཁུངས་ཐོ་ཡིག་%s(སིལ་ཚོང་པ་ ཨའི་ཌི)གི་ནང་ན།" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"མི་མཐུན་/སྔོན་རྟེན་འཕྲལ་བཀོལ་ལས་བརྟེན་ འ་ནི་གཞི་བཙུགས་གཡོག་བཀོལ་འདི་ལུ་ མེད་དུ་མི་རུང་བའི་%sཐུམ་" +"སྒྲིལ་ གནས་སྐབས་ཀྱི་རྩ་བསྐྲད་གཏང་ནི་འདི་དགོས་མཁོ་ཡོདཔ་ཨིན། འདི་འཕྲལ་འཕྲལ་རང་བྱང་ཉེས་ཅིག་ཨིན་པས་ " +"འདི་འབདཝ་ད་ཁྱོད་ཀྱི་ཐད་རི་འབའ་རི་འབད་དགོཔ་ཨིན་པ་ཅིན་ APT::Force-LoopBreak གདམ་ཁ་འདི་ཤུགས་" +"ལྡན་བཟོ།" + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "ཟུར་ཐོ་ཡིག་སྣོད་ཀྱི་དབྱེ་བ་ '%s' འདི་རྒྱབ་སྐྱོར་མ་འབད་བས།" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"ཐུམ་སྒྲིལ་%s་འདི་ལོག་འདི་རང་གཞི་བཙུགས་འབད་དགོཔ་འདུག་ འདི་འབདཝ་ད་འདི་གི་དོན་ལུ་ཡིག་མཛོད་ཅིག་འཚོལ་" +"མ་ཐོབ།" + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"འཛོལ་བ་ pkgProblemResolver::གིས་བཟོ་བཏོན་འབད་ཡོད་པའི་མཚམས་དེ་ཚུ་མོས་མཐུན་བཟོཝ་ཨིན འ་ནི་ཐུམ་" +"སྒྲིལ་ཚུ་འཛིན་པའི་རྒྱུ་རྐྱེན་ལས་བརྟེན་ཨིན་པས།" + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "དཀའ་ངལ་འདི་ནོར་བཅོས་འབད་མ་ཚུགས་ ཁྱོད་ཀྱི་ཐུམ་སྒྲིལ་ཆད་པ་ཚུ་འཆང་འདི་འདུག" + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "ཐོ་བཀོད་འབད་མི་སྣོད་ཐོ་%s་ཆ་ཤས་འདི་བརླག་སྟོར་ཟུགས་ཏེ་འདུག" + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "ཡིག་མཛོད་སྣོད་ཐོ་ %s་ ཆ་ཤས་འདི་བརླག་སྟོར་ཞུགས་ཏེ་འདུག" + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "%li་ གི་བརླག་སྟོར་ཞུགས་པའི་ཡིག་སྣོད་%li (%s ལྷག་ལུས་དོ།)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr " %li་གི་བརླག་སྟོར་ཟུགསཔའི་ཡིག་སྣོད་ %li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "ཐབས་ལམ་འདྲེན་བྱེད་%s་འདི་མ་འཐོབ།" + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "ཐབས་ལམ་ %s འདི་ངེས་བདེན་སྦེ་འགོ་མ་བཙུགས་འབད།" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "ཁ་ཡིག་བཀོད་ཡོད་པའི་ ཌིསི་འདི་བཙུགས་གནང་། '%s'འདྲེན་འཕྲུལ་ནང་'%s' དང་ལོག་ལྡེ་འདི་ཨེབ།་" + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "སྦུང་ཚན་བཟོ་ནིའི་རིམ་ལུགས་ '%s' འདི་ལུ་རྒྱབ་སྐྱོར་མ་འབད་བས།" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "འོས་འབབ་དང་ལྡན་པའི་སྦུང་ཚན་རིམ་ལུགས་ཀྱི་དབྱེ་བ་ཅིག་གཏན་འབེབས་བཟོ་མི་ཚུགས་པས།" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "%s་ ངོ་བཤུས་འབད་མ་ཚུགས།" + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "" +"ཁྱོད་རའི་sources.listགི་ཐོ་ཡིག་ནང་ལུ་ཁྱོད་ཀྱི་ 'འབྱུང་ཁུངས་' ཡུ་ཨར་ཨའི་ཚུ་་ལ་ལུ་ཅིག་བཙུགས་དགོ" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "ཐུམ་སྒྲིལ་གྱི་ཐོ་ཡིག་ཡང་ན་གནས་ཚད་ཡིག་སྣོད་ཚུ་ མིང་དཔྱད་ཡང་ན་ཁ་ཕྱེ་མ་ཚུགས།" + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "འ་ནི་དཀའ་ངལ་འདི་ཚུ་སེལ་ནིའི་ལུ་ ཁྱོད་ཀྱི་ apt-get update་དེ་གཡོག་བཀོལ་དགོཔ་འོང་།" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "དགའ་གདམ་ཡིག་སྣོད་ནང་ལུ་ནུས་མེད་ཀྱི་དྲན་ཐོ་ ཐུམ་སྒྲིལ་མགོ་ཡིག་མིན་འདུག" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "ངོ་རྟགས་ཨང་གི་དབྱེ་བ་ %s འདི་ཧ་གོ་མ་ཚུགས།" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "གོ་རྟགས་ཨང་གི་དོན་ལུ་ གཙོ་རིམ་(ཡང་ན་ ཀླད་ཀོར་)ཚུ་གསལ་བཀོད་མ་འབད་བས།" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "འདྲ་མཛོད་ལུ་མཐུན་འགྱུར་མེན་པའི་འཐོན་རིམ་བཟོ་ནིའི་རིམ་ལུགས་ཅིག་འདུག" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "%s (ཐུམ་སྒྲིལ་གསརཔ་)བཟོ་སྦྱོར་འབད་བའི་བསྒང་འཛོལ་བ་ཅིག་བྱུང་ནུག" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "%s (ལག་ལེན་འཐུམ་སྒྲིལ་ ༡་)བཟོ་སྦྱོར་འབད་བའི་བསྒང་འཛོལ་བ་ཅིག་འཐོན་ནུག" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "%s (ལག་ལེན་འཐུམ་སྒྲིལ་ ༢་)དེ་བཟོ་སྦྱོར་འབད་བའི་བསྒང་འཛོལ་བ་ཅིག་འཐོན་ནུག" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "%s (ཡིག་སྣོད་འཐོན་རིམ་གསརཔ་ ༡)བཟོ་སྦྱོར་འབད་བའི་བསྒང་འཛོལ་བ་ཅིག་བྱུང་ནུག" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr " %s (འཐོན་རིམ་གསརཔ་ ༡་)བཟོ་སྦྱོར་འབད་བའི་བསྒང་འཛོལ་བ་ཅིག་བྱུང་ནུག" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "%s (ལག་ལེན་ཐུམ་སྒྲིལ་ ༣་)དེ་བཟོ་སྦྱོར་འབད་བའི་བསྒང་འཛོབ་ཅིག་བྱུང་ནུག" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "%s (འཐོན་རིམ་གསརཔ་ ༢)བཟོ་སྦྱོར་འབད་བའི་བསྒང་འཛོལ་བ་ཅིག་བྱུང་ནུག" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "པའོ་་་ཁྱོད་ཀྱིས་ ཨེ་པི་ཊི་འདི་གིས་བཟོད་ཐུབ་པའི་ཐུམ་སྒྲིལ་ཨང་གྲངས་ལས་ལྷག་ནུག" + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "པའོ་་་ཁྱོད་ཀྱིས་ ཨེ་པི་ཊི་འདི་གིས་བཟོད་ཐུབ་པའི་ཐོན་རིམ་ཨང་གྲངས་ལས་ལྷག་ནུག" + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "པའོ་་་ཁྱོད་ཀྱིས་ ཨེ་པི་ཊི་འདི་གིས་བཟོད་ཐུབ་པའི་བརྟེན་པའི་ཨང་གྲངས་ལས་ལྷག་ནུག" + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "%s (པི་ཀེ་ཇི་འཚོལ་ནི)དེ་བཟོ་སྦྱོར་འབད་བའི་བསྒང་འཛོལ་བ་ཅིག་བྱུང་ནུག" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "%s (CollectFileProvides)དེ་བཟོ་སྦྱོར་འབད་བའི་བསྒང་འཛོལ་བ་ཅིག་བྱུང་ནུག" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "ཡིག་སྣོད་རྟེན་འབྲེལ་འདི་ཚུ་བཟོ་སྦྱོར་འབད་བའི་བསྒང་ཐུམ་སྒྲིལ་ %s %s ་འདི་མ་ཐོབ་པས།" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "འབྱུང་ཁུངས་ཐུམ་སྒྲིལ་གྱི་ཐོ་ཡིག་%s་དེ་ངོ་བཤུས་འབད་མ་ཚུགས།" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "ཡིག་སྣོད་བྱིན་མི་ཚུ་བསྡུ་ལེན་འབད་དོ།" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "IO འཛོལ་བ་འབྱུང་ཁུངས་འདྲ་མཛོད་སྲུང་བཞག་འབད་དོ།" + +#: apt-pkg/acquire-item.cc:126 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "%s (%s -> %s)བསྐྱར་མིང་བཏགས་ནི་འདི་འཐུས་ཤོར་བྱུང་ཡོདཔ་ཨིན།" + +#: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:945 +msgid "MD5Sum mismatch" +msgstr "ཨེམ་ཌི་༥་ ཁྱོན་བསྡོམས་མ་མཐུན་པ།" + +#: apt-pkg/acquire-item.cc:640 +msgid "There is no public key available for the following key IDs:\n" +msgstr "འོག་གི་ ཨའི་ཌི་་ ལྡེ་མིག་ཚུ་གི་དོན་ལུ་མི་དམང་གི་ལྡེ་མིག་འདི་འཐོབ་མི་ཚུགས་པས:\n" + +#: apt-pkg/acquire-item.cc:753 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +" %s་ཐུམ་སྒྲིལ་གི་དོན་ལུ་ང་་གི་ཡིག་སྣོད་ཅིག་ག་ཡོད་འཚོལ་མི་འཐོབ་པས། འདི་འབདཝ་ལས་ཁྱོད་ཀྱི་ལག་ཐོག་ལས་ " +"འ་ནི་ཐུམ་སྒྲིལ་འདི་གི་དཀའ་ངལ་སེལ་དགོཔ་འདུག (arch འདི་བྱིག་སོངམ་ལས་བརྟེན།)" + +#: apt-pkg/acquire-item.cc:812 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +" %s་ཐུམ་སྒྲིལ་གི་དོན་ལུ་ང་་གི་ཡིག་སྣོད་ཅིག་ག་ཡོད་འཚོལ་མི་འཐོབ་པས། འདི་འབདཝ་ལས་ཁྱོད་ཀྱི་ལག་ཐོག་ལས་ " +"འ་ནི་ཐུམ་སྒྲིལ་འདི་གི་དཀའ་ངལ་སེལ་དགོཔ་འདུག " + +#: apt-pkg/acquire-item.cc:848 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"ཐུམ་སྒྲིལ་ ཟུར་ཐོ་ཡིག་སྣོད་ཚུ་ངན་ཅན་འགྱོ་ནུག ཡིག་སྣོད་ཀྱི་མིང་མིན་འདུག: %s་ཐུམ་སྒྲིལ་གྱི་དོན་ལུ་ས་སྒོ།" + +#: apt-pkg/acquire-item.cc:935 +msgid "Size mismatch" +msgstr "ཚད་མ་མཐུན།" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "%sསིལ་ཚོང་པ་སྡེབ་ཚན་གྱི་ནང་ན་མཛུབ་རྗེས་མིན་འདུག" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +" %s སི་ཌི-རོམ་སྦྱར་བརྩེགས་ཀྱི་ས་ཚིགས་ལག་ལེན་འཐབ་དོ།\n" +"སི་ཌི་-རོམ་སྦྱར་བརྩེགས་འབད་དོ།\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "ངོས་འཛིན་འབད་དོ.." + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "གསོག་འཇོག་འབད་ཡོད་པའི་ཁ་ཡིག:%s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr " %s སི་ཌི-རོམ་སྦྱར་བརྩེགས་ཀྱི་ས་ཚིགས་ལག་ལེན་འཐབ་དོ།\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "སི་ཌི་-རོམ་བརྩེགས་བཤོལ་འབད་དོ།\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "ཌིསིཀ་གི་དོན་ལུ་བསྒུག་དོ...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "སི་ཌི་-རོམ་སྦྱར་བརྩེགས་འབད་དོ...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "ཟུར་ཐོ་ཡིག་སྣོད་ཚུ་གི་དོན་ལུ་ ཌིསིཀ་ཞིབ་ལྟ་འབད་དོ..\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "%i་ཐུམ་སྒྲིལ་གྱི་ཟུར་ཐོ་ཚུ་ཐོབ་ཅི་ %i་འབྱུང་ཁུངས་ཟུར་ཐོ་ཚུ་དང་ %iམིང་རྟགས་ཚུ།\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "དེ་ནུས་ཅན་གྱི་མིང་ཅིག་མེན་པས་ ལོག་སྟེ་རང་འབད་རྩོལ་བསྐྱེད།\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"ཌིསིཀ་འདི་བོད་བརྡ་འབད་དོ་ཡོདཔ་ཨིན།\n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "ཐུམ་སྒྲིལ་གྱིཐོ་ཡིག་ཚུ་འདྲ་བཤུས་རྐྱབ་དོ..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "འབྱུང་ཁུངས་ཀྱི་ཐོ་ཡིག་གསརཔ་ཅིག་འབྲི་དོ།\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "འ་ནི་ ཌིསིཀ་གི་དོན་ལུ་ འབྱུང་ཁུངས་ཧྲིལ་བུ་ཚུ་:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "སི་ཌི་-རོམ་སྦྱར་བརྩེགས་མ་འབད་བར་བཞག་དོ..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "%i་དྲན་མཐོ་དེ་ཚུ་བྲིས་ཡོད།\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "%i བྱིག་འགྱོ་ཡོད་པའི་ཡིག་སྣོད་ཚུ་དང་གཅིག་ཁར་ %i དྲན་ཐོ་འདི་ཚུ་བྲིས་ཡོད།\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "%i་མཐུན་སྒྲིག་མེདཔ་པའི་ཡིག་སྣོད་ཚུ་དང་གཅིག་ཁར་ %i་དྲན་ཐོ་ཚུ་བྲིས་བཞག་ཡོདཔ་ཨིན།\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" +"%i བྱིག་འགྱོ་ཡོད་པའི་ཡིག་སྣོད་ཚུ་དང་ %iམཐུན་སྒྲིག་མེད་པའི་ཡིག་སྣོད་ཚུ་དང་གཅིག་ཁར་ %i དྲན་ཐོ་འདི་ཚུ་བྲིས་" +"ཡོདཔ་ཨིན།\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "%s་ གྲ་སྒྲིག་འབད་དོ།" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr " %s་ གི་སྦུང་ཚན་བཟོ་བཤོལ་འབད་དོ།" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "%s་ རིམ་སྒྲིག་ལུ་གྲ་སྒྲིག་འབད་དོ།" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "%s་རིམ་སྒྲིག་འབད་དོ།" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "གཞི་བཙུགས་འབད་ཡོད་པའི་%s།" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "%s་ རྩ་བསྐྲད་གཏང་ནིའི་དོན་ལུ་གྲ་སྒྲིག་འབད་དོ།" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "%s་རྩ་བསྐྲད་གཏང་དོ།" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "རྩ་བསྐྲད་བཏང་ཡོད་པའི་%s" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "%s མཇུག་བསྡུཝ་སྦེ་རང་རྩ་བསྐྲད་གཏང་ནིའི་དོན་ལུ་གྲ་སྒྲིག་འབད་དོ།" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "%s མཇུག་བསྡུཝ་སྦེ་རང་རྩ་བསྐྲད་བཏང་ཡོད།" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "དུས་སུ་མ་འབབ་པ་རང་མཐུད་ལམ་འདི་ག་བསྡམས་ཡོད།" + +#~ msgid "File date has changed %s" +#~ msgstr "ཡིག་སྣོད་ཚེས་གྲངས་འདི་གིས་%sདེ་བསྒྱུར་བཅོས་འབད་ནུག" + diff --git a/po/el.po b/po/el.po new file mode 100644 index 0000000..704af6b --- /dev/null +++ b/po/el.po @@ -0,0 +1,2822 @@ +# translation of apt_po_el_new.po to Greek +# translation of apt_po_el.po to +# translation of apt_po_el.po to Greek +# translation of apt_po_el.po to +# translation of apt_po_el.po to +# translation of el.po to Greek +# translation of apt.el.po to Hellenic +# Greek Translation of APT. +# This file is put in the public domain. +# Fanis Dokianakis , 2003. +# Konstantinos Margaritis , 2003, 2004, 2006. +# George Papamichelakis , 2004. +# George Papamichalakis , 2004. +# Greek Translation Team , 2005. +# quad-nrg.net , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: apt_po_el_new\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-01-18 15:16+0200\n" +"Last-Translator: Konstantinos Margaritis \n" +"Language-Team: Greek \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"org>\n" +"X-Generator: KBabel 1.10.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Το πακέτο %s με έκδοση %s έχει ανεπίλυτες εξαρτήσεις:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Αδυναμία εντοπισμού του πακέτου %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Συνολικά Ονόματα Πακέτων : " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Κανονικά Πακέτα: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Πλήρως Εικονικά Πακέτα: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Μονά Εικονικά Πακέτα: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Μικτά Εικονικά Πακέτα: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr "Αγνοούμενα: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Σύνολο Διαφορετικών Εκδόσεων: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Σύνολο Εξαρτήσεων: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Σύνολο σχέσεων Εκδ/Αρχείων: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Σύνολο Αντιστοιχίσεων Παροχών: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Σύνολο Κοινών Στοιχειοσειρών : " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Συνολικός χώρος Εξαρτήσεων Εκδόσεων: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Σύνολο χώρου ασφαλείας: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Συνολικός Καταμετρημένος Χώρος: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Το αρχείο πακέτου %s δεν είναι ενημερωμένο." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Πρέπει να δώσετε ακριβώς μία παράσταση" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Δε βρέθηκαν πακέτα" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Αρχεία Πακέτου:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "" +"Η cache δεν είναι ενημερωμένη, αδυναμία παραπομπής σε ένα αρχείο πακέτου" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Καθηλωμένα Πακέτα:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(δε βρέθηκαν)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Εγκατεστημένα: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(κανένα)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Υποψήφιο: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Καθήλωση Πακέτου: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Πίνακας Έκδοσης:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s για %s %s είναι μεταγλωττισμένο σε %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Χρήση: apt-cache [επιλογές] εντολή\n" +" apt-cache [επιλογές] add file1 [file2 ...]\n" +" apt-cache [επιλογές] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [επιλογές] showsrc pkg1 [pkg2 ...]\n" +"\n" +"το apt-cache είναι ένα χαμηλού επιπέδου εργαλείο που χρησιμοποιείται για \n" +"το χειρισμό των δυαδικών αρχείων cache του APT, και να εξάγει πληροφορίες\n" +"από αυτά\n" +"\n" +"Εντολές:\n" +" add - Προσθέτει ένα αρχείο πακέτου στη cache πηγών\n" +" gencaches - Κατασκευή της cache των πακέτων και των πηγών\n" +" showpkg - Εμφάνιση μερικών γενικών πληροφοριών για ένα πακέτο\n" +" showsrc - Εμφάνιση των πηγαίων πακέτων\n" +" stats - Εμφάνιση μερικών βασικών στατιστικών\n" +" dump - Εμφάνιση όλου του αρχείου σε περιληπτική μορφή.\n" +" dumpavail - Εκτύπωση της λίστας των διαθέσιμων πακέτων στην έξοδο stdout\n" +" unmet - Εμφάνιση μη ικανοποιούμενων εξαρτήσεων\n" +" search - Αναζήτηση στη λίστα πακέτων για αυτή τη κανονική παράσταση\n" +" show - Εμφάνιση μιας αναγνώσιμης εγγραφής για το πακέτο\n" +" depends - Εμφάνιση μη επεξεργασμένων εξαρτήσεων ενός πακέτου\n" +" rdepends - Εμφάνιση αντίστροφων εξαρτήσεων ενός πακέτου\n" +" pkgnames - Εμφάνιση λίστας με τα ονόματα όλων των πακέτων\n" +" dotty - Παραγωγή γραφημάτων πακέτων για το GraphVis\n" +" xvcg - Παραγωγή γραφημάτων πακέτων για το xvcg\n" +" policy - Εμφάνιση προτεραιοτήτων πηγών\n" +"\n" +"Επιλογές:\n" +" -h Αυτό το κείμενο βοήθειας.\n" +" -p=? Η cache πακέτων.\n" +" -s=? Η cache πηγών.\n" +" -q Απενεργοποίηση του δείκτη προόδου.\n" +" -i Εμφάνιση μόνο των σημαντικών εξαρτήσεων για την εντολή unmet.\n" +" -c=? Ανάγνωση αυτού του αρχείου ρυθμίσεων\n" +" -o=? Χρήση μιας αυθαίρετη επιλογής ρυθμίσεων, πχ -o dir::cache=/tmp\n" +"Δείτε τις σελίδες man του apt-cache(8) και apt.conf(5) για πληροφορίες.\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "" +"Παρακαλώ δώστε ένα όνομα για τον δίσκο αυτό, όπως 'Debian 2.1r1 Disk 1'" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Παρακαλώ εισάγετε το δίσκο στη συσκευή και πατήστε enter" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Επαναλάβετε την διαδικασία για τα υπόλοιπα CD από το σετ σας." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Τα ορίσματα δεν είναι σε ζεύγη" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Χρήση: apt-config [επιλογές] εντολή\n" +"\n" +"το apt-config είναι ένα απλό εργαλείο για την ανάγνωση του αρχείου ρυθμίσεων " +"APT\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "Το %s δεν είναι έγκυρο πακέτο DEB." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Χρήση: apt-extracttemplates αρχείο1 [αρχείο2 ...]\n" +"\n" +"το apt-extracttemplates είναι ένα βοήθημα για να εξάγετε ρυθμίσεις \n" +"και πρότυπα από πακέτα debian\n" +"\n" +"Επιλογές:\n" +" -h Το παρόν κείμενο βοήθειας\n" +" -t Καθορισμός προσωρινού καταλόγου\n" +" -c=? Ανάγνωση αυτού του αρχείου ρυθμίσεων\n" +" -o=? Καθορισμός αυθαίρετης επιλογής παραμέτρου, πχ -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Αδύνατη η εγγραφή στο %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Δεν βρέθηκε η έκδοση του debconf. Είναι το debconf εγκατεστημένο;" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Ο κατάλογος επεκτάσεων του πακέτου είναι υπερβολικά μακρύς" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Σφάλμα επεξεργασίας του καταλόγου %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Ο κατάλογος επεκτάσεων των πηγών είναι υπερβολικά μακρύς" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Σφάλμα εγγραφής κεφαλίδων στο αρχείο περιεχομένων" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Σφάλμα επεξεργασίας περιεχομένων του %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Χρήση: apt-ftparchive [επιλογές] εντολή\n" +"Εντολές: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"Το apt-ftparchive παράγει αρχεία περιεχομένων για τις αρχειοθήκες Debian\n" +"Υποστηρίζει πολλές παραλλαγές παραγωγής, από απόλυτα αυτοματοποιημένες έως\n" +"λειτουργικές αντικαταστάσεις για την dpkg-scanpackages και dpkg-scansources\n" +"\n" +"Το apt-ftparchive παράγει αρχεία Package από ένα σύνολο αρχείων .debs. Στο\n" +"αρχείο Package περιέχονται όλα τα πεδία ελέγχου κάθε πακέτου καθώς και\n" +"το μέγεθος τους και το MD5 hash. Υποστηρίζει την ύπαρξη αρχείου παράκαμψης\n" +"για τη βεβιασμένη αλλαγή των πεδίων Priority (Προτεραιότητα) και Section\n" +"(Τομέας).\n" +"\n" +"Με τον ίδιο τρόπο, το apt-ftparchive παράγει αρχεία πηγών (Sources) από μια\n" +"ιεραρχία αρχείων .dsc. Η επιλογή --source-override μπορεί να χρησιμοποιηθεί\n" +"για παράκαμψη των αρχείων πηγών src.\n" +"\n" +"Οι εντολές 'packages' και 'sources' θα πρέπει να εκτελούνται στον βασικό\n" +"κατάλογο της ιεραρχίας.Το BinaryPath θα πρέπει να δείχνει στον αρχικό\n" +"κατάλογο που θα ξεκινάει η αναδρομική αναζήτηση και το αρχείο παράκαμψης\n" +"θα πρέπει να περιέχει τις επιλογές παράκαμψης. Το Pathprefix προστίθεται " +"στα\n" +"πεδία όνομάτων αρχείων, αν υπάρχει. Δείτε παράδειγμα χρήσης στην αρχειοθήκη\n" +"πακέτων του Debian :\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Επιλογές:\n" +" -h Αυτό το κείμενο βοηθείας\n" +" --md5 Έλεγχος παραγωγής MD5\n" +" -s=? αρχείο παράκαμψης πηγών\n" +" -q Χωρίς έξοδο\n" +" -d=? Επιλογή προαιρετικής βάσης δεδομένων cache\n" +" --no-delink Αποσφαλμάτωση του delinking\n" +" --contents Έλεγχος παραγωγής αρχείου περιεχομένων\n" +" -c=? Χρήση αυτού του αρχείου ρυθμίσεων\n" +" -o=? Ορισμός αυθαίρετης επιλογής ρύθμισης" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Δεν ταιριαξε καμία επιλογή" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Λείπουν μερικά αρχεία από την ομάδα πακέτων '%s'" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "Η βάση είναι κατεστραμμένη, το αρχείο μετονομάστηκε σε %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "Η βάση δεν είναι ενημερωμένη, γίνεται προσπάθεια να αναβαθμιστεί το %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Το άνοιγμά του αρχείου της βάσης %s: %s απέτυχε" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Αποτυχία εύρεσης της κατάστασης του %s." + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Η αρχειοθήκη δεν περιέχει πεδίο ελέγχου" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Αδύνατη η πρόσβαση σε δείκτη" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: Αδύνατη η ανάγνωση του καταλόγου %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "W: Αδύνατη η εύρεση της κατάστασης του %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E: Σφάλματα στο αρχείο" + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Αδύνατη η εύρεση του %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Αποτυχία ανεύρεσης" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Αποτυχία ανοίγματος του %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr "Αποσύνδεση %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Αποτυχία ανάγνωσης του %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Αποτυχία αποσύνδεσης του %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr " Αποτυχία σύνδεσης του %s με το %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " Αποσύνδεση ορίου του %sB hit.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Η αρχειοθήκη δεν περιέχει πεδίο πακέτων" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s δεν περιέχει εγγραφή παράκαμψης\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " %s συντηρητής είναι ο %s όχι ο %s\n" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s δεν περιέχει εγγραφή παράκαμψης\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s δεν περιέχει εγγραφή παράκαμψης\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Εσωτερικό Σφάλμα, αδυναμία εντοπισμού του μέλους %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realoc - Αδυναμία εκχώρησης μνήμης" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Αδύνατο το άνοιγμα του %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Κακογραμμένη παρακαμπτήρια %s γραμμή %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Κακογραμμένη παρακαμπτήρια %s γραμμή %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Κακογραμμένη παρακαμπτήρια %s γραμμή %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Αποτυχία ανάγνωσης του αρχείου παράκαμψης %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Άγνωστος Αλγόριθμος Συμπίεσης '%s'" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Η συμπιεσμένη έξοδος του %s χρειάζεται καθορισμό συμπίεσης" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Αποτυχία κατά τη δημιουργία διασωλήνωσης IPC στην υποδιεργασία" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Αποτυχία δημιουργίας του ΑΡΧΕΙΟΥ" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Αποτυχία αγκίστρωσης" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Συμπίεση απογόνου" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Εσωτερικό Σφάλμα, Αποτυχία δημιουργίας του %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Αποτυχία δημιουργίας IPC στην υποδιεργασία" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Αποτυχία εκτέλεσης του συμπιεστή " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "αποσυμπιεστής" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "απέτυχε η Ε/Ε στην υποδιεργασία/αρχείο" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Αποτυχία ανάγνωσης κατά τον υπολογισμό MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Πρόβλημα κατά την αποσύνδεση του %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Αποτυχία μετονομασίας του %s σε %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "Y" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "σφάλμα μεταγλωτισμου - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Τα ακόλουθα πακέτα έχουν ανεπίλυτες εξαρτήσεις:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "αλλά το %s είναι εγκατεστημένο" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "αλλά το %s πρόκειται να εγκατασταθεί" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "αλλά δεν είναι εγκαταστάσημο" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "αλλά είναι ένα εικονικό πακέτο" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "αλλά δεν είναι εγκατεστημένο" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "αλλά δεν πρόκειται να εγκατασταθεί" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " η" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Τα ακόλουθα ΝΕΑ πακέτα θα εγκατασταθούν:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Τα ακόλουθα πακέτα θα ΑΦΑΙΡΕΘΟΥΝ:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Τα ακόλουθα πακέτα θα μείνουν ως έχουν:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Τα ακόλουθα πακέτα θα αναβαθμιστούν:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Τα ακόλουθα πακέτα θα ΥΠΟΒΑΘΜΙΣΤΟΥΝ:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Τα ακόλουθα κρατημένα πακέτα θα αλλαχθούν:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (λόγω του %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Τα ακόλουθα απαραίτητα πακέτα θα αφαιρεθούν\n" +"Αυτό ΔΕΝ θα έπρεπε να συμβεί, εκτός αν ξέρετε τι ακριβώς κάνετε!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu αναβαθμίστηκαν, %lu νέο εγκατεστημένα, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu επανεγκατεστημένα," + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu υποβαθμισμένα, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu θα αφαιρεθούν και %lu δεν αναβαθμίζονται.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu μη πλήρως εγκατεστημένα ή αφαιρέθηκαν.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Διόρθωση εξαρτήσεων..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " απέτυχε." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Αδύνατη η διόρθωση των εξαρτήσεων" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Αδύνατη η ελαχιστοποίηση του συνόλου αναβαθμίσεων" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Ετοιμο" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "" +"Ίσως να πρέπει να τρέξετε apt-get -f install για να διορθώσετε αυτά τα " +"προβλήματα." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Ανεπίλυτες εξαρτήσεις. Δοκιμάστε με το -f." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Τα ακόλουθα πακέτα δεν εξακριβώθηκαν!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Παράκαμψη προειδοποίησης ταυτοποίησης.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Εγκατάσταση των πακέτων χωρίς επαλήθευση [ν/Ο]; " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Μερικά πακέτα δεν εξαακριβώθηκαν" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Υπάρχουν προβλήματα και δώσατε -y χωρίς το --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "Εσωτερικό σφάλμα, έγινε κλήση του Install Packages με σπασμένα πακέτα!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "" +"Μερικά πακέτα πρέπει να αφαιρεθούν αλλά η Αφαίρεση είναι απενεργοποιημένη." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Εσωτερικό Σφάλμα, η Ταξινόμηση δεν ολοκληρώθηκε" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Αδύνατο το κλείδωμα του καταλόγου μεταφόρτωσης" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "Αδύνατη η ανάγνωση της λίστας πηγών." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"Πολύ περίεργο! Τα μεγέθη δεν ταιριάζουν, στείλτε μήνυμα στο apt@packages." +"debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Χρειάζεται να μεταφορτωθούν %sB/%sB από αρχεία.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Χρειάζεται να μεταφορτωθούν %sB από αρχεία.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "Μετά την αποσυμπίεση θα χρησιμοποιηθούν %sB χώρου από το δίσκο.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Μετά την αποσυμπίεση θα ελευθερωθούν %sB χώρου από το δίσκο.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Δεν μπόρεσα να προσδιορίσω τον ελεύθερο χώρο στο %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Δεν διαθέτετε αρκετό ελεύθερο χώρο στο %s." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "Καθορίσατε συνηθισμένο, αλλά αυτή δεν είναι μια συνηθισμένη εργασία" + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Ναι, κανε ότι λέω!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Πρόκειται να κάνετε κάτι πιθανόν πολύ επιζήμιο.\n" +"Για να συνεχίσετε πληκτρολογήστε τη φράση '%s'\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Εγκατάλειψη." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Θέλετε να συνεχίσετε [Ν/ο]; " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Αποτυχία ανάκτησης του %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Για μερικά αρχεία απέτυχε η μεταφόρτωση" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Ολοκληρώθηκε η μεταφόρτωση μόνο" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Αδύνατη η μεταφόρτωση μερικών αρχείων, ίσως αν δοκιμάζατε με apt-get update " +"ή το --fix-missing;" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "" +"ο συνδυασμός --fix-missing με εναλλαγή μέσων δεν υποστηρίζεται για την ώρα" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Αδύνατη η επίλυση των χαμένων πακέτων." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Εγκατάλειψη της εγκατάστασης." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Σημείωση, επιλέχθηκε το %s αντί του%s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" +"Παράκαμψη του %s, είναι εγκατεστημένο και η αναβάθμιση δεν έχει οριστεί.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "Το πακέτο %s δεν είναι εγκατεστημένο και δεν θα αφαιρεθεί\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Το πακέτο %s είναι εικονικό και παρέχεται από τα:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Εγκατεστημένα]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Θα πρέπει επακριβώς να επιλέξετε ένα για εγκατάσταση." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Το πακέτο %s δεν είναι διαθέσιμο, αλλά υπάρχει αναφορά για αυτό από άλλο " +"πακέτο.\n" +"Αυτό σημαίνει ότι το πακέτο αυτό λείπει, είναι παλαιωμένο, ή είναι διαθέσιμο " +"από άλλη πηγή\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Πάραυτα το ακόλουθο πακέτο το αντικαθιστά:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Το πακέτο %s δεν είναι υποψήφιο για εγκατάσταση" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "" +"Η επανεγκατάσταση του %s δεν είναι εφικτή, δεν είναι δυνατή η μεταφόρτωσή " +"του\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "το %s είναι ήδη η τελευταία έκδοση.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Η έκδοση %s για το%s δεν βρέθηκε" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Η έκδοση %s για το %s δεν βρέθηκε" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Επιλέχθηκε η έκδοση %s (%s) για το%s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "Η εντολή update δεν παίρνει ορίσματα" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Αδύνατο το κλείδωμα του καταλόγου" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Μερικά αρχεία δεν μεταφορτώθηκαν, αγνοήθηκαν ή χρησιμοποιήθηκαν παλαιότερα " +"στη θέση τους." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Εσωτερικό Σφάλμα, Η διαδικασία αναβάθμισης χάλασε" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Αδύνατη η εύρεση του πακέτου %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Σημείωση, επιλέχτηκε το %s στη θέση του '%s'\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "Aν τρέξετε 'apt-get f install' ίσως να διορθώσετε αυτά τα προβλήματα:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Ανεπίλυτες εξαρτήσεις. Δοκιμάστε 'apt-get -f install' χωρίς να ορίσετε " +"πακέτο (ή καθορίστε μια λύση)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Μερικά πακέτα είναι αδύνατον να εγκατασταθούν. Αυτό μπορεί να σημαίνει ότι\n" +"δημιουργήσατε μια απίθανη κατάσταση ή αν χρησιμοποιείτε την ασταθή\n" +"διανομή, ότι μερικά από τα πακέτα δεν έχουν ακόμα δημιουργηθεί ή έχουν\n" +"μετακινηθεί από τα εισερχόμενα." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Εφόσον ζητήσατε μια και μόνη λειτουργία, είναι πολύ πιθανόν ότι\n" +"το πακέτο αυτό δεν είναι εγκαταστάσιμο και θα πρέπει να κάνετε μια\n" +"αναφορά σφάλματος για αυτό το πακέτο." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "Οι ακόλουθες πληροφορίες ίσως βοηθήσουν στην επίλυση του προβλήματος:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Χαλασμένα πακέτα" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Τα ακόλουθα επιπλέον πακέτα θα εγκατασταθούν:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Προτεινόμενα πακέτα:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Συνιστώμενα πακέτα:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Υπολογισμός της αναβάθμισης... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Απέτυχε" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Ετοιμο" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "" +"Εσωτερικό Σφάλμα, η προσπάθεια επίλυσης του προβλήματος \"έσπασε\" κάποιο " +"υλικό" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "" +"Θα πρέπει να καθορίσετε τουλάχιστον ένα πακέτο για να μεταφορτώσετε τον " +"κωδικάτου" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Αδυναμία εντοπισμού του κώδικά του πακέτου %s" + +#: cmdline/apt-get.cc:1968 +#, fuzzy, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Παράκαμψη του ήδη μεταφορτωμένου αρχείου `%s`\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Δεν διαθέτετε αρκετό ελεύθερο χώρο στο %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Χρειάζεται να μεταφορτωθούν %sB/%sB πηγαίου κώδικα.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Χρειάζεται να μεταφορτωθούν %sB πηγαίου κώδικα.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Μεταφόρτωση Κωδικα %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Αποτυχία μεταφόρτωσης μερικών αρχειοθηκών." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Παράκαμψη της αποσυμπίεσης ήδη μεταφορτωμένου κώδικα στο %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Απέτυχε η εντολή αποσυμπίεσης %s\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Ελέγξτε αν είναι εγκαταστημένο το πακέτο 'dpkg-dev'.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Απέτυχε η εντολή χτισίματος %s.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Η απογονική διεργασία απέτυχε" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"Θα πρέπει να καθορίσετε τουλάχιστον ένα πακέτο για έλεγχο των εξαρτήσεων του" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Αδύνατη η εύρεση πληροφοριών χτισίματος για το %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "το %s δεν έχει εξαρτήσεις χτισίματος.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"%s εξαρτήσεις για το %s δεν ικανοποιούνται επειδή το πακέτο %s δεν βρέθηκε" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"%s εξαρτήσεις για το %s δεν ικανοποιούνται επειδή δεν υπάρχουν διαθέσιμες " +"εκδόσεις του πακέτου %s που να ικανοποιούν τις απαιτήσεις έκδοσης" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Αποτυχία ικανοποίησης %s εξαρτήσεων για το %s: Το εγκατεστημένο πακέτο %s " +"είναι νεώτερο" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Αποτυχία ικανοποίησης %s εξάρτησης για το %s: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Οι εξαρτήσεις χτισίματος για το %s δεν ικανοποιούνται." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Αποτυχία επεξεργασίας εξαρτήσεων χτισίματος" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Υποστηριζόμενοι Οδηγοί:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Χρήση: apt-get [παράμετροι] εντολή\n" +" apt-get [παράμετροι] install|remove pkg1 [pkg2 ...]\n" +" apt-get [παράμετροι] source pkg1 [pkg2 ...]\n" +"\n" +"η apt-get είναι μια απλή διασύνδεση για τη μεταφόρτωση και την\n" +"εγκατάσταση πακέτων. Οι πιο συχνές εντολές είναι η update\n" +"και η install.\n" +"\n" +"Εντολές:\n" +" update - Ανάκτηση νέων καταλόγων πακέτων\n" +" upgrade - Διενέργεια αναβάθμισης\n" +" install - Εγκατάσταση νέων πακέτων (χωρίς την επέκταση .deb)\n" +" remove - Αφαίρεση πακέτων\n" +" source - Μεταφόρτωση πακέτων πηγαίου κώδικα\n" +" build-dep - Ρύθμιση εξαρτήσεων χτισίματος για πακέτα πηγαίου κώδικα\n" +" dist-upgrade - Αναβάθμιση διανομής, δες το apt-get(8)\n" +" dselect-upgrade - Τήρηση των επιλογών του dselect\n" +" clean - Καθαρισμός των μεταφορτωμένων αρχείων\n" +" autoclean - Καθαρισμός παλαιότερα μεταφορτωμένων αρχείων\n" +" check - Εξακρίβωση για τυχόν σπασμένες εξαρτήσεις\n" +"\n" +"Παράμετροι:\n" +" -h Αυτό το βοηθητικό κείμενο.\n" +" -q Loggable output - no progress indicator\n" +" -qq Χωρίς λεπτομέρειες εκτός από τα λάθη\n" +" -d Μεταφόρτωση μόνο - ΜΗΝ αποσυμπιέσεις ή εγκαταστήσεις αρχεία\n" +" -s Χωρίς ενέργεια. Perform ordering simulation\n" +" -y Υπόθεσε Ναι για όλες τις ερωτήσεις και μην περιμένεις απάντηση\n" +" -f Προσπάθησε να συνεχίσεις αν αποτύχει ο έλεγχος ακεραιότητας\n" +" -m Προσπάθησε να συνεχίσεις αν υπάρχουν άγνωστα πακέτα\n" +" -u Εμφάνισε επίσης ένα κατάλογο από αναβαθμιζόμενα πακέτα\n" +" -b Χτίσε το πηγαίο πακέτο μετά την μεταφόρτωση του\n" +" -V Εμφάνισε λεπτομερείς αριθμούς εκδόσεων\n" +" -c=? Διάβασε αυτό το αρχείο ρυθμίσεων\n" +" -o=? Θέσε μια αυθαίρετη παράμετρο, πχ -o dir::cache=/tmp\n" +"Δείτε τις σελίδες εγχειριδίου apt-get(8), sources.list(5) και apt.conf(5)\n" +"για περισσότερες πληροφορίες και επιλογές.\n" +" This APT has Super Cow Powers.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Hit " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Φέρε:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Αγνόησε " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Σφάλμα " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Μεταφορτώθηκαν %sB σε %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Επεξεργασία]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Αλλαγή Μέσου: Παρακαλώ εισάγετε το δίσκο με ετικέτα\n" +" '%s'\n" +"στη συσκευή '%s' και πιέστε enter\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Άγνωστη εγγραφή πακέτου!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Χρήση: apt-sortpkgs [παράμετροι] file1 [file2 ...]\n" +"\n" +"το apt-sortpkgs είναι ένα απλό εργαλείο για να ταξινομήσετε αρχεία πηγαίου " +"κώδικα. Η επιλογή\n" +"-s δείχνει τον τύπο του αρχείου.\n" +"\n" +"Παράμετροι:\n" +" -h Αυτό το κείμενο βοήθειας\n" +" -s Χρήση του τύπου αρχείου\n" +" -c=? Ανάγνωση αυτού του αρχείου ρυθμίσεων\n" +" -o=? Θέσε μια αυθαίρετη παράμετρο,πχ -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Κακή προκαθορισμένη ρύθμιση!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Πιέστε enter για συνέχεια." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Προέκυψανσφάλματα κατά την αποσυμπίεση. Θα ρυθμίσω τα " + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "πακέτα που εγκαταστάθηκαν. Αυτό μπορεί να παράγει διπλά λάθη" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" +"ή σφάλματα που προκύπτουν από χαλασμένες εξαρτήσεις. Αυτό είναι εντάξει, " +"μόνο τα λάθη" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"πριν από το μήνυμα αυτό έχει σημασία. Παρακαλώ διορθώστε τα και τρέξτε [I]" +"nstall ξανά" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Σύμπτυξη Διαθέσιμων Πληροφοριών" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Αποτυχία κατά τη δημιουργία διασωληνώσεων" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Αποτυχία κατά την εκτέλεση του gzip " + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Κατεστραμμένη αρχειοθήκη" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Το Checksum του tar απέτυχε, η αρχείοθήκη είναι κατεστραμμένη" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Άγνωστη επικεφαλίδα TAR τύπος %u, μέλος %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Μη έγκυρη υπογραφή αρχειοθήκης" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Σφάλμα κατά την ανάγνωση της επικεφαλίδας του μέλους της αρχειοθήκης" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Μη έγκυρη επικεφαλίδα μέλος της αρχειοθήκης" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Η αρχειοθήκη είναι πολύ μικρή" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Αποτυχία ανάγνωσης των επικεφαλίδων της αρχειοθήκης" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "Κλήση του DropNode σε έναν ήδη συνδεδεμένο κόμβο" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Αποτυχία εντοπισμού του στοιχείου hash!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Αδυναμία εντοπισμού εκτροπής" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Εσωτερικό Σφάλμα στο AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Προσπάθεια για αντικατάσταση εκτροπής, %s -> %s και %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Διπλή προσθήκη εκτροπής %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Διπλό αρχείο ρυθμίσεων %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Αποτυχία εγγραφής του αρχείου %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Αποτυχία στο κλείσιμο του αρχείου %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "Η διαδρομή %s έχει υπερβολικό μήκος" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Αποσυμπίεση του %s πάνω από μια φορά" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "Ο φάκελος %s έχει εκτραπεί" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "Το πακέτο προσπαθεί να γράψει στον προορισμό εκτροπής %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Η διαδρομή εκτροπής έχει υπερβολικό μήκος" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "Ο φάκελος %s αντικαθίσταται από ένα μη-φάκελο" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Αποτυχία εντοπισμού του κόμβου στην ομάδα hash του" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Η διαδρομή έχει υπερβολικό μήκος" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Αντικατάσταση πακέτου χωρίς καμία έκδοση %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Το αρχείο %s/%s αντικαθιστά αυτό στο πακέτο %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Αδύνατη η ανάγνωση του %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Αδύνατη η εύρεση της κατάστασης του %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Αποτυχία διαγραφής του %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Αδύνατη η δημιουργία του %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Αποτυχία εύρεσης της κατάστασης του %sinfo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "Οι φάκελοι info και temp πρέπει να βρίσκονται στο ίδιο σύστημα αρχείων" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Ανάγνωση Λιστών Πακέτων" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Αποτυχία αλλαγής καταλόγου στο φάκελο διαχείρισης %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Εσωτερικό Σφάλμα στην ανάκτηση ενός Ονόματος Πακέτου" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Ανάγνωση Λίστας Πακέτων" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Αποτυχία κατά το άνοιγμα του αρχείου λίστας '%sinfo/%s'.Εάν δε μπορείτε να " +"επαναφέρετε το αρχείο, τότε αδειάστε το και άμεσα εγκαταστήστε ξανά την ίδια " +"έκδοση του πακέτου!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Αποτυχία κατά την ανάγνωση του αρχείου λίστας %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Εσωτερικό Σφάλμα στη λήψη ενός Κόμβου" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Αποτυχία στο άνοιγμα του αρχείου παρακάμψεων %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Το αρχείο παρακάμψεων είναι κατεστραμμένο" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Μη έγκυρη γραμμή στο αρχείο παρακάμψεων: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Εσωτερικό Σφάλμα στην προσθήκη μιας παράκαμψης" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "Η cache των πακέτων θα πρέπει να πρώτα να αρχικοποιηθεί" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Αποτυχία εύρεσης μιας κεφαλίδας Package:, γραμμή %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Ελαττωματική εγγραφή ConfFile στο αρχείο κατάστασης. Γραμμή %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Σφάλμα στην ανάλυση του MD5. Γραμμή %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Αυτό δεν είναι ένα έγκυρο αρχείο DEB, αγνοείται το μέλος '%s'" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "Μη έγκυρο αρχείο DEB, δεν περιέχει το μέλος %s' or '%s' " + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Αδύνατη η αλλαγή σε %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Εσωτερικό Σφάλμα, αδυναμία εντοπισμού του μέλους" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Αποτυχία εντοπισμού ενός έγκυρου αρχείου control" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Μη αναλύσιμο αρχείο control" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Αδύνατη η ανάγνωση της βάσης δεδομένων του cdrom %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Παρακαλώ χρησιμοποιείστε το apt-cdrom για να αναγνωριστεί αυτό το CD από το " +"APT. Το apt-get update δε χρησιμεύει για να προσθέτει νέα CD" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "Λάθος CD" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "Αδυναμία απόσυναρμογής του CD-ROM στο %s, μπορεί να είναι σε χρήση." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Ο δίσκος δεν βρέθηκε." + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Το αρχείο Δε Βρέθηκε" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Αποτυχία εύρεσης της κατάστασης" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Αποτυχία ορισμού του χρόνου τροποποίησης" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "Μη έγκυρο URI, τα τοπικά URI δεν πρέπει να αρχίζουν με //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Σύνδεση στο σύστημα" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Αδύνατος ο καθορισμός του ονόματος του ομότιμου (peer)" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Αδύνατος ο καθορισμός του τοπικού ονόματος" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Ο διακομιστής αρνήθηκε την σύνδεση με μήνυμα: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "Η εντολή USER απέτυχε, ο διακομιστής απάντησε: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "Η εντολή PASS απέτυχε, ο διακομιστής απάντησε: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Ο διαμεσολαβητής έχει οριστεί αλλά χωρίς σενάριο εισόδου, το Acquire::ftp::" +"ProxyLogin είναι άδειο" + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Η εντολή '%s' στο σενάριο εισόδου απέτυχε, ο διακομιστής απάντησε: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "Η εντολή TYPE απέτυχε, ο διακομιστής απάντησε: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Λήξη χρόνου σύνδεσης" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Ο διακομιστής έκλεισε την σύνδεση" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Σφάλμα ανάγνωσης" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Το μήνυμα απάντησης υπερχείλισε την ενδιάμεση μνήμη." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Αλλοίωση του πρωτοκόλλου" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Σφάλμα εγγραφής" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Αδύνατη η δημιουργία μιας υποδοχής (socket)" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "Αδύνατη η σύνδεση υποδοχής δεδομένων, λήξη χρόνου σύνδεσης" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Αδύνατη η σύνδεση σε παθητική υποδοχή (socket)." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "Το getaddrinfo ήταν αδύνατο να δέσμευση υποδοχή παρακολούθησης" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Αδύνατη η πρόσδεση στην υποδοχή (socket)" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Αδύνατη η παρακολούθηση της υποδοχής (socket)" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Αδύνατος ο καθορισμός του ονόματος της υποδοχής (socket)" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Αδύνατη η αποστολή της εντολής PORT" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Άγνωστη οικογένεια διευθύνσεων %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "Το EPRT απέτυχε, ο διακομιστής απάντησε: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Λήξη χρόνου σύνδεσης στην υποδοχή δεδομένων" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Αδύνατη η αποδοχή συνδέσεων" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Πρόβλημα κατά το hashing του αρχείου" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Αδυναμία λήψης του αρχείου, ο διακομιστής απάντησε '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Λήξη χρόνου υποδοχής δεδομένων" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Αποτυχία κατά τη μεταφορά δεδομένων, ο διακομιστής απάντησε '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Επερώτηση" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Αδύνατη η εκτέλεση" + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Σύνδεση στο %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Αδύνατη η δημιουργία υποδοχής για το %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Αδύνατη η αρχικοποίηση της σύνδεσης στο %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Αδύνατη η σύνδεση στο %s:%s (%s), λήξη χρόνου σύνδεσης" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Αδύνατη η σύνδεση στο %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Σύνδεση στο %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Αδύνατη η εύρεση του '%s'" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Προσωρινή αποτυχία στην εύρεση του '%s'" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Κάτι παράξενο συνέβη κατά την εύρεση του '%s:%s' (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Αδύνατη η σύνδεση στο %s %s:" + +#: methods/gpgv.cc:65 +#, fuzzy, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Αδύνατη η εύρεση του '%s'" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "Ε: Λίστα Ορισμάτων από Acquire::gpgv::Options πολύ μεγάλη. Έξοδος." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" +"Εσωτερικό σφάλμα: Η υπογραφή είναι καλή, αλλά αδυναμία προσδιορισμού του " +"αποτυπώματος?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Βρέθηκε τουλάχιστον μια μη έγκυρη υπογραφή." + +#: methods/gpgv.cc:213 +#, fuzzy, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr " για την επαλήθευση της υπογραφής (είναι εγκατεστημένο το gnupg?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Άγνωστο σφάλμα κατά την εκτέλεση του gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "Οι παρακάτω υπογραφές ήταν μη έγκυρες:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"Οι παρακάτω υπογραφές δεν ήταν δυνατόν να επαληθευτούν επειδή δεν ήταν " +"διαθέσιμο το δημόσιο κλειδί:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Αδύνατο το άνοιγμα διασωλήνωσης για το %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Σφάλμα ανάγνωσης από τη διεργασία %s" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Αναμονή επικεφαλίδων" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Λήψη μίας και μόνης γραμμής επικεφαλίδας πάνω από %u χαρακτήρες" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Ελαττωματική γραμμή επικεφαλίδας" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "Ο διακομιστής http έστειλε μια άκυρη επικεφαλίδα απάντησης" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "Ο διακομιστής http έστειλε μια άκυρη επικεφαλίδα Content-Length" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "Ο διακομιστής http έστειλε μια άκυρη επικεφαλίδα Content-Range" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "Ο διακομιστής http δεν υποστηρίζει πλήρως το range" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Άγνωστη μορφή ημερομηνίας" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Η επιλογή απέτυχε" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Λήξη χρόνου σύνδεσης" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Σφάλμα στην εγγραφή στο αρχείο εξόδου" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Σφάλμα στην εγγραφή στο αρχείο" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Σφάλμα στην εγγραφή στο αρχείο" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "" +"Σφάλμα στην ανάγνωση από το διακομιστή, το άλλο άκρο έκλεισε τη σύνδεση" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Σφάλμα στην ανάγνωση από το διακομιστή" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Ελαττωματικά δεδομένα επικεφαλίδας" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Η σύνδεση απέτυχε" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Εσωτερικό Σφάλμα" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Αδύνατο η απεικόνιση mmap ενός άδειου αρχείου" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Αδύνατη η απεικόνιση μέσω mmap %lu bytes" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Η επιλογή %s δε βρέθηκε" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Μη αναγνωρισμένος τύπος σύντμησης: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Άνοιγμα του αρχείου ρυθμίσεων %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Η γραμμή %d έχει υπερβολικό μήκος (μέγιστο %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Συντακτικό σφάλμα %s:%u: Το block αρχίζει χωρίς όνομα." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Συντακτικό σφάλμα %s:%u: Λάθος μορφή Ετικέτας (Tag)" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Συντακτικό σφάλμα %s:%u: Άχρηστοι χαρακτήρες μετά την τιμή" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" +"Συντακτικό σφάλμα %s:%u: Οι οδηγίες βρίσκονται μόνο στο ανώτατο επίπεδο" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Συντακτικό σφάλμα %s:%u: Υπερβολικός αριθμός συνδυασμένων includes" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Συντακτικό σφάλμα %s:%u: Συμπεριλαμβάνεται από εδώ" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Συντακτικό σφάλμα %s:%u: Μη υποστηριζόμενη εντολή '%s'" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Συντακτικό σφάλμα %s:%u: Άχρηστοι χαρακτήρες στο τέλος του αρχείου" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Σφάλμα!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Ολοκληρώθηκε" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Η επιλογή γραμμής εντολών '%c' [από %s] δεν είναι γνωστή." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Η επιλογή γραμμής εντολών %s δεν είναι κατανοητή" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Η επιλογή γραμμής εντολών %s δεν είναι boolean" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "Η επιλογή %s απαιτεί ένα όρισμα." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "" +"Επιλογή %s: Οι προδιαγραφές του αντικειμένου ρυθμίσεων απαιτούν =." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "Επιλογή %s: απαιτείται ένας ακέραιος αριθμός ως όρισμα, όχι '%s'" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Η επιλογή '%s' έχει υπερβολικό μήκος" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "Η τιμή %s δεν είναι κατανοητή, δοκιμάστε σωστό (true) ή λάθος (false)." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Μη έγκυρη λειτουργία %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Αδύνατη η εύρεση της κατάστασης του σημείου επαφής %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Αδύνατη η αλλαγή σε %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Αδύνατη η εύρεση της κατάστασης του cdrom" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "" +"Δε θα χρησιμοποιηθεί κλείδωμα για το ανάγνωσης μόνο αρχείο κλειδώματος %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Αδύνατο το άνοιγμα του αρχείου κλειδώματος %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "" +"Δε θα χρησιμοποιηθεί κλείδωμα για το συναρμοσμένο από nfs αρχείο κλειδώματος " +"%s" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Αδύνατο το κλείδωμα %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Αναμονή του %s, αλλά δε βρισκόταν εκεί" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Η υποδιεργασία %s έλαβε ένα σφάλμα καταμερισμού (segfault)" + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Η υποδιεργασία %s επέστρεψε ένα κωδικός σφάλματος (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Η υποδιεργασία %s εγκατέλειψε απρόσμενα" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Αδύνατο το άνοιγμα του αρχείου %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "αναγνώστηκαν, απομένουν ακόμη %lu για ανάγνωση αλλά δεν απομένουν άλλα" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "γράφτηκαν, απομένουν %lu για εγγραφή αλλά χωρίς επιτυχία" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Πρόβλημα κατά το κλείσιμο του αρχείου" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Πρόβλημα κατά την διαγραφή του αρχείου" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Πρόβλημα κατά τον συγχρονισμό του αρχείου" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Άδειο cache πακέτων" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Το αρχείο cache των πακέτων είναι κατεστραμμένο" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Το αρχείο cache των πακέτων είναι ασύμβατης έκδοσης" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Αυτό το APT δεν υποστηρίζει το Σύστημα Απόδοσης Έκδοσης '%s'" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "Η cache πακέτων κατασκευάστηκε για μια διαφορετική αρχιτεκτονική" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Εξαρτάται από" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "ΠροΕξαρτάται από" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Προτείνει" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Συστήνει" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Ασύμβατο με" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Αντικαθιστά" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Απαρχαιώνει" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "σημαντικό" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "απαιτούμενο" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "καθιερωμένο" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "προαιρετικό" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "επιπλέον" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Κατασκευή Δένδρου Εξαρτήσεων" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Υποψήφιες Εκδόσεις" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Παραγωγή Εξαρτήσεων" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Αδύνατη η ανάλυση του αρχείου πακέτου %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Αδύνατη η ανάλυση του αρχείου πακέτου %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Λάθος μορφή της γραμμής %lu στη λίστα πηγών %s (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Λάθος μορφή της γραμμής %lu στη λίστα πηγών %s (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Λάθος μορφή της γραμμής %lu στη λίστα πηγών %s (Ανάλυση URI)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Λάθος μορφή της γραμμής %lu στη λίστα πηγών %s (Απόλυτο dist)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Λάθος μορφή της γραμμής %lu στη λίστα πηγών %s (Ανάλυση dist)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Άνοιγμα του %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Η γραμμή %u έχει υπερβολικό μήκος στη λίστα πηγών %s." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Λάθος μορφή της γραμμής %u στη λίστα πηγών %s (τύπος)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Ο τύπος '%s' στη γραμμή %u στη λίστα πηγών %s είναι άγνωστος " + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Λάθος μορφή της γραμμής %u στη λίστα πηγών %s (id κατασκευαστή)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Αυτή η προσπάθεια εγκατάστασης απαιτεί προσωρινή αφαίρεση του σημαντικού " +"πακέτου %s λόγω ενός βρόγχου Ασυμβατότητας/ΠροΕξάρτησης. Αυτό συνήθως δεν " +"είναι καλό, αλλά εάν πραγματικά θέλετε να συνεχίσετε ενεργοποιήστε την " +"επιλογή APT::Force-LoopBreak option." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Ο τύπος αρχείου ευρετηρίου '%s' δεν υποστηρίζεται" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"Το πακέτο '%s' χρειάζεται να επανεγκατασταθεί, αλλά είναι αδύνατη η εύρεση " +"κάποιας κατάλληλης αρχείοθήκης." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Σφάλμα, το pkgProblemResolver::Resolve παρήγαγε διακοπές, αυτό ίσως " +"προκλήθηκε από κρατούμενα πακέτα." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "Αδύνατη η διόρθωση προβλημάτων, έχετε κρατούμενα ελαττωματικά πακέτα." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Ο φάκελος λιστών %spartial αγνοείται." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Ο φάκελος αρχειοθηκών %spartial αγνοείται." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, fuzzy, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "Κατέβασμα του αρχείου %li του %li (απομένουν %s)" + +#: apt-pkg/acquire.cc:825 +#, fuzzy, c-format +msgid "Retrieving file %li of %li" +msgstr "Ανάγνωση Λίστας Πακέτων" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Ο οδηγός μεθόδου %s δεν μπορεί να εντοπιστεί." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Η μέθοδος %s δεν εκκινήθηκε σωστά" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "" +"Παρακαλώ εισάγετε το δίσκο με ετικέτα '%s' στη συσκευή '%s' και πατήστε " +"enter." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Το σύστημα συσκευασίας '%s' δεν υποστηρίζεται" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Αδύνατος ο καθορισμός ενός κατάλληλου τύπου συστήματος πακέτων" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Αδύνατη η εύρεση της κατάστασης του %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "Πρέπει να τοποθετήσετε μερικά URI 'πηγών' στο sources.list" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" +"Αδύνατο το άνοιγμα ή η ανάλυση των λιστών πακέτων ή του αρχείου κατάστασης." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "" +"Ίσως να πρέπει να τρέξετε apt-get update για να διορθώσετε αυτά τα προβλήματα" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Μη έγκυρη εγγραφή στο αρχείο προτιμήσεων, καμία επικεφαλίδα Package" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Αδύνατη η κατανόηση του τύπου καθήλωσης %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "" +"Δεν έχει οριστεί προτεραιότητα (ή έχει οριστεί μηδενική) για την καθήλωση" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Η cache έχει ασύμβατο σύστημα απόδοσης έκδοσης" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Προέκυψε σφάλμα κατά την επεξεργασία του %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Προέκυψε σφάλμα κατά την επεξεργασία του %s (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Προέκυψε σφάλμα κατά την επεξεργασία του %s (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Προέκευψε σφάλμα κατά την επεξεργασία του %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Προέκυψε σφάλμα κατά την επεξεργασία του %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Προέκυψε σφάλμα κατά την επεξεργασία του %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Προέκυψε σφάλμα κατά την επεξεργασία του %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" +"Εκπληκτικό, υπερβήκατε τον αριθμό των ονομάτων πακέτων που υποστηρίζει το " +"APT." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "Εκπληκτικό, υπερβήκατε τον αριθμό των εκδόσεων που υποστηρίζει το APT." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" +"Εκπληκτικό, υπερβήκατε τον αριθμό των εξαρτήσεων που υποστηρίζει το APT." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Προέκυψε σφάλμα κατά την επεξεργασία του %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Προέκυψε σφάλμα κατά την επεξεργασία του %s (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "Το πακέτο %s %s δε βρέθηκε κατά την επεξεργασία εξαρτήσεων του αρχείου" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Αδύνατη η εύρεση της κατάστασης της λίστας πηγαίων πακέτων %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Συλλογή Παροχών Αρχείου" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "Σφάλμα IO κατά την αποθήκευση της cache πηγών" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "απέτυχε η μετονομασία, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "Ανόμοιο MD5Sum" + +#: apt-pkg/acquire-item.cc:1070 +msgid "There is no public key available for the following key IDs:\n" +msgstr "" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Αδύνατος ο εντοπισμός ενός αρχείου για το πακέτο %s. Αυτό ίσως σημαίνει ότι " +"χρειάζεται να διορθώσετε χειροκίνητα το πακέτο. (λόγω χαμένου αρχείου)" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Αδύνατος ο εντοπισμός ενός αρχείου για το πακέτο %s. Αυτό ίσως σημαίνει ότι " +"χρειάζεται να διορθώσετε χειροκίνητα το πακέτο." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"Κατεστραμμένα αρχεία ευρετηρίου πακέτων. Δεν υπάρχει πεδίο Filename: στο " +"πακέτο %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Ανόμοιο μέγεθος" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Η εγγραφή κατασκευαστή %s δεν περιέχει ταυτότητα" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Χρησιμοποιείται το σημείο προσάρτησης %s\n" +"Προσαρτάται το CD-ROM\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Αναγνώριση..." + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Αποθήκευση Ετικέτας: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Χρησιμοποιείται το σημείο προσάρτησης %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "Αποπροσάρτηση του CD-ROM\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Αναμονή για δίσκο...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Προσάρτηση του CD-ROM...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Σάρωση του δίσκου για περιεχόμενα...\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "Βρέθηκαν %i κατάλογοι πακέτων, %i κατάλογοι πηγαίων και %i υπογραφές\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Αυτό δεν είναι έγκυρο όνομα, προσπαθείστε ξανά. \n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Ο δίσκος αυτός ονομάζεται: \n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Αντιγραφή λιστών πακέτων..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Eγγραφή νέας λίστας πηγών\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Οι κατάλογοι με τις πηγές αυτού του δίσκου είναι: \n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "Αποπροσάρτηση του CD-ROM..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "Εγιναν %i εγγραφές.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "Εγιναν %i εγγραφές με %i απώντα αρχεία.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "Εγιναν %i εγγραφές με %i ασύμβατα αρχεία.\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "Εγιναν %i εγγραφές με %i απώντα αρχεία και %i ασύμβατα αρχεία\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "Προετοιμασία του %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "Ξεπακετάρισμα του %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "Προετοιμασία ρύθμισης του %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "Ρύθμιση του %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "Εγκατέστησα το %s" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "Προετοιμασία για την αφαίρεση του %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "Αφαιρώ το %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "Αφαίρεσα το %s" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, fuzzy, c-format +msgid "Preparing to completely remove %s" +msgstr "Προετοιμασία ρύθμισης του %s" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, fuzzy, c-format +msgid "Completely removed %s" +msgstr "Αποτυχία διαγραφής του %s" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Αδύνατο το άνοιγμα του αρχείου %s" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Η σύνδεση έκλεισε πρόωρα" + +#~ msgid "File date has changed %s" +#~ msgstr "Η ημερομηνία του αρχείου %s έχει αλλάξει" + +#~ msgid "Reading file list" +#~ msgstr "Ανάγνωση Λιστών Αρχείων" + +#~ msgid "Could not execute " +#~ msgstr "Αδύνατη η εκτέλεση " + +#~ msgid "Preparing for remove with config %s" +#~ msgstr "Προετοιμασία για αφαίρεση με ρύθμιση του %s" + +#~ msgid "Removed with config %s" +#~ msgstr "Αφαίρεσα με ρύθμιση το %s" diff --git a/po/en_GB.po b/po/en_GB.po new file mode 100644 index 0000000..dd572b6 --- /dev/null +++ b/po/en_GB.po @@ -0,0 +1,2751 @@ +# English messages for the apt suite. +# Copyright (C) 1997, 1998, 1999 Jason Gunthorpe and others. +# Michael Piefel , 2002. +# +# +msgid "" +msgstr "" +"Project-Id-Version: apt 0.6.46.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-10-12 11:07+0100\n" +"Last-Translator: Neil Williams \n" +"Language-Team: en_GB \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Package %s version %s has an unmet dep:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Unable to locate package %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Total package names : " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Normal packages: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Pure virtual packages: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Single virtual packages: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Mixed virtual packages: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Missing: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Total distinct versions: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Total dependencies: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Total ver/file relations: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Total Provides mappings: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Total globbed strings: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Total dependency version space: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Total slack space: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Total space accounted for: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Package file %s is out of sync." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "You must give exactly one pattern" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "No packages found" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Package files:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "Cache is out of sync, can't x-ref a package file" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Pinned packages:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(not found)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Installed: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(none)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Candidate: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Package pin: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Version table:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s for %s %s compiled on %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "Please provide a name for this Disc, such as ‘Debian 2.1r1 Disk 1’" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Please insert a Disc in the drive and press enter" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Repeat this process for the rest of the CDs in your set." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Arguments not in pairs" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s not a valid DEB package." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Unable to write to %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Cannot get debconf version. Is debconf installed?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Package extension list is too long" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Error processing directory %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Source extension list is too long" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Error writing header to contents file" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Error processing contents %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "No selections matched" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Some files are missing in the package file group ‘%s’" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "DB was corrupted, file renamed to %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "DB is old, attempting to upgrade %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Unable to open DB file %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Failed to stat %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Archive has no control record" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Unable to get a cursor" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: Unable to read directory %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "W: Unable to stat %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E: Errors apply to file " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Could not resolve ‘%s’" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Tree walking failed" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Failed to open %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " DeLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Failed to readlink %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Failed to unlink %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Failed to link %s to %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " DeLink limit of %sB hit.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Archive had no package field" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s has no override entry\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " %s maintainer is %s not %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s has no source override entry\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s has no binary override entry either\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Internal error, could not locate member %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Failed to allocate memory" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Unable to open %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Malformed override %s line %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Malformed override %s line %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Malformed override %s line %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Failed to read the override file %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Unknown compression algorithm ‘%s’" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Compressed output %s needs a compression set" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Failed to create IPC pipe to subprocess" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Failed to create FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Failed to fork" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Compress child" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Internal error, failed to create %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Failed to create subprocess IPC" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Failed to exec compressor " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "decompressor" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "IO to subprocess/file failed" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Failed to read while computing MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Problem unlinking %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Failed to rename %s to %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "Y" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Regex compilation error - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "The following packages have unmet dependencies." + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "but %s is installed" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "but %s is to be installed" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "but it is not installable" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "but it is a virtual package" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "but it is not installed" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "but it is not going to be installed" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " or" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "The following NEW packages will be installed" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "The following packages will be REMOVED" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "The following packages have been kept back:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "The following packages will be upgraded:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "The following packages will be DOWNGRADED:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "The following held packages will be changed:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (due to %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu upgraded, %lu newly installed, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu reinstalled, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu downgraded, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu to remove and %lu not upgraded.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu not fully installed or removed.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Correcting dependencies..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " failed." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Unable to correct dependencies" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Unable to minimise the upgrade set" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr "Done" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "You might want to run ‘apt-get -f install’ to correct these." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Unmet dependencies. Try using -f." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "WARNING: The following packages cannot be authenticated!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Authentication warning overridden.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Install these packages without verification [y/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Some packages could not be authenticated" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "There are problems and -y was used without --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "Internal error, InstallPackages was called with broken packages!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Packages need to be removed but remove is disabled." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Internal error, Ordering didn't finish" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Unable to lock the download directory" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "The list of sources could not be read." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "How odd.. The sizes didn't match, email apt@packages.debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Need to get %sB/%sB of archives.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Need to get %sB of archives.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "After unpacking %sB of additional disk space will be used.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "After unpacking %sB disk space will be freed.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Couldn't determine free space in %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "You don't have enough free space in %s." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "Trivial Only specified but this is not a trivial operation." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Yes, do as I say!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"You are about to do something potentially harmful\n" +"To continue type in the phrase ‘%s’\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Abort." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Do you want to continue [Y/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Failed to fetch %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Some files failed to download" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Download complete and in download only mode" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing and media swapping is not currently supported" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Unable to correct missing packages." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Aborting install." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Note, selecting %s for regex ‘%s’\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "Skipping %s, it is already installed and upgrade is not set.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "Package %s is not installed, so not removed\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Package %s is a virtual package provided by:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Installed]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "You should explicitly select one to install." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "However the following packages replace it:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Package %s has no installation candidate" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "Reinstallation of %s is not possible, it cannot be downloaded.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s is already the newest version.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Release ‘%s’ for ‘%s’ was not found" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Version ‘%s’ for ‘%s’ was not found" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Selected version %s (%s) for %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "The update command takes no arguments" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Unable to lock the list directory" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Internal error, AllUpgrade broke stuff" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Couldn't find package %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Note, selecting %s for regex ‘%s’\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "You might want to run ‘apt-get -f install’ to correct these:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Unmet dependencies. Try ‘apt-get -f install’ with no packages (or specify a " +"solution)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "The following information may help to resolve the situation:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Broken packages" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "The following extra packages will be installed:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Suggested packages:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Recommended packages:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Calculating upgrade... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Failed" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Done" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "Internal error, problem resolver broke stuff" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "Must specify at least one package for which to fetch source" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Unable to find a source package for %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Skipping already downloaded file '%s'\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "You don't have enough free space in %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Need to get %sB/%sB of source archives.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Need to get %sB of source archives.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Fetch source %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Failed to fetch some archives." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Skipping unpack of already unpacked source in %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Unpack command ‘%s’ failed.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Check if the 'dpkg-dev' package is installed.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Build command ‘%s’ failed.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Child process failed" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "Must specify at least one package to check builddeps for" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Unable to get build-dependency information for %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s has no build depends.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Failed to satisfy %s dependency for %s: Installed package %s is too new" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Failed to satisfy %s dependency for %s: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Build-dependencies for %s could not be satisfied." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Failed to process build dependencies" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Supported modules:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Hit " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Get: " + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ign " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Err " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Fetched %sB in %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Working]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Media Change: Please insert the disc labelled\n" +" ‘%s’\n" +"in the drive ‘%s’ and press enter\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Unknown package record!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Bad default setting!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Press enter to continue." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Some errors occurred while unpacking. I'm going to configure the" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "packages that were installed. This may result in duplicate errors" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "or errors caused by missing dependencies. This is OK, only the errors" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"above this message are important. Please fix them and run [I]nstall again" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Merging available information" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Failed to create pipes" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Failed to exec gzip " + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Corrupted archive" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Tar checksum failed, archive corrupted" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Unknown TAR header type %u, member %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Invalid archive signature" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Error reading archive member header" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Invalid archive member header" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Archive is too short" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Failed to read the archive headers" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "DropNode called on still linked node" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Failed to locate the hash element!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Failed to allocate diversion" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Internal error in AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Trying to overwrite a diversion, %s -> %s and %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Double add of diversion %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Duplicate conf file %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Failed to write file ‘%s’" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Failed to close file %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "The path %s is too long" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Unpacking %s more than once" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "The directory %s is diverted" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "The package is trying to write to the diversion target %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "The diversion path is too long" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "The directory %s is being replaced by a non-directory" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Failed to locate node in its hash bucket" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "The path is too long" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Overwrite package match with no version for %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "File %s/%s overwrites the one in the package %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Unable to read %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Unable to stat %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Failed to remove %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Unable to create %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Failed to stat %sinfo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "The info and temp directories need to be on the same filesystem" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Reading package lists" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Failed to change to the admin dir %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Internal error getting a package name" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Reading file listing" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Failed to open the list file ‘%sinfo/%s’. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Failed reading the list file %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Internal error getting a node" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Failed to open the diversions file %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "The diversion file is corrupted" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Invalid line in the diversion file: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Internal error adding a diversion" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "The pkg cache must be initialised first" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Failed to find a Package: header, offset %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Bad ConfFile section in the status file. Offset %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Error parsing MD5. Offset %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "This is not a valid DEB archive, missing ‘%s’ member" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "This is not a valid DEB archive, it has no %s or ‘%s’ member" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Couldn't change to %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Internal error, could not locate member" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Failed to locate a valid control file" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Unparsable control file" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Unable to read the cdrom database %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "Wrong CD-ROM" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "Unable to unmount the CD-ROM in %s, it may still be in use." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Disk not found." + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "File not found" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Failed to stat" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Failed to set modification time" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "Invalid URI, local URIS must not start with //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Logging in" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Unable to determine the peer name" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Unable to determine the local name" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "The server refused the connection and said: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "USER failed, server said: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "PASS failed, server said: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Login script command ‘%s’ failed, server said: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "TYPE failed, server said: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Connection timeout" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Server closed the connection" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Read error" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "A response overflowed the buffer." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Protocol corruption" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Write error" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "could not create a socket" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "Could not connect data socket, connection timed out" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Could not connect, passive socket." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo was unable to get a listening socket" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Could not bind a socket" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Could not listen on the socket" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Could not determine the name of the socket" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Unable to send PORT command" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Unknown address family %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT failed, server said: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Data socket connect timed out" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Unable to accept connection" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Problem hashing file" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Unable to fetch file, server said ‘%s’" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Data socket timed out" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Data transfer failed, server said ‘%s’" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Query" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Unable to invoke" + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Connecting to %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Could not create a socket for %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Cannot initiate the connection to %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Could not connect to %s:%s (%s), connection timed out" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Could not connect to %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Connecting to %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Could not resolve ‘%s’" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Temporary failure resolving ‘%s’" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Something wicked happened resolving ‘%s:%s’ (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Unable to connect to %s %s:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Couldn't access keyring: '%s'" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "E: Argument list from Acquire::gpgv::Options too long. Exiting." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" +"Internal error: Good signature, but could not determine key fingerprint?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "At least one invalid signature was encountered." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "Could not execute '%s' to verify signature (is gnupg installed?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Unknown error executing gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "The following signatures were invalid:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Couldn't open pipe for %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Read error from %s process" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Waiting for headers" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Got a single header line over %u chars" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Bad header line" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "The HTTP server sent an invalid reply header" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "The HTTP server sent an invalid Content-Length header" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "The HTTP server sent an invalid Content-Range header" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "This HTTP server has broken range support" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Unknown date format" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Select failed" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Connection timed out" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Error writing to output file" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Error writing to file" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Error writing to the file" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "Error reading from server. Remote end closed connection" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Error reading from server" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Bad header data" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Connection failed" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Internal error" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Cannot mmap an empty file" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Couldn't make mmap of %lu bytes" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Selection %s not found" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Unrecognized type abbreviation: ‘%c’" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Opening configuration file %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Line %d too long (max %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Syntax error %s:%u: Block starts with no name." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Syntax error %s:%u: Malformed tag" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Syntax error %s:%u: Extra junk after value" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "Syntax error %s:%u: Directives can only be done at the top level" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Syntax error %s:%u: Too many nested includes" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Syntax error %s:%u: Included from here" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Syntax error %s:%u: Unsupported directive ‘%s’" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Syntax error %s:%u: Extra junk at end of file" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Error!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Done" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Command line option ‘%c’ [from %s] is not known." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Command line option %s is not understood" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Command line option %s is not boolean" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "Option %s requires an argument." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "Option %s: Configuration item specification must have an =." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "Option %s requires an integer argument, not ‘%s’" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Option ‘%s’ is too long" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "Sense %s is not understood, try true or false." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Invalid operation %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Unable to stat the mount point %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Unable to change to %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Failed to stat the cdrom" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "Not using locking for read only lock file %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Could not open lock file %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "Not using locking for nfs mounted lock file %s" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Could not get lock %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Waited for %s but it wasn't there" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Sub-process %s received a segmentation fault." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Sub-process %s returned an error code (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Sub-process %s exited unexpectedly" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Could not open file %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "read, still have %lu to read but none left" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "write, still have %lu to write but couldn't" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Problem closing the file" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Problem unlinking the file" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Problem syncing the file" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Empty package cache" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "The package cache file is corrupted" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "The package cache file is an incompatible version" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "This APT does not support the Versioning System ‘%s’" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "The package cache was built for a different architecture" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Depends" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "PreDepends" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Suggests" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Recommends" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Conflicts" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Replaces" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Obsoletes" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "important" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "required" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "standard" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "optional" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "extra" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Building dependency tree" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Candidate versions" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Dependency generation" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Unable to parse package file %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Unable to parse package file %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Malformed line %lu in source list %s (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Malformed line %lu in source list %s (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Malformed line %lu in source list %s (URI parse)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Malformed line %lu in source list %s (absolute dist)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Malformed line %lu in source list %s (dist parse)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Opening %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Line %u too long in source list %s." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Malformed line %u in source list %s (type)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Type ‘%s’ is not known on line %u in source list %s" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Malformed line %u in source list %s (vendor id)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Index file type ‘%s’ is not supported" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"The package %s needs to be reinstalled, but I can't find an archive for it." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "Unable to correct problems, you have held broken packages." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Lists directory %spartial is missing." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Archive directory %spartial is missing." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "Retrieving file %li of %li (%s remaining)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "Retrieving file %li of %li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "The method driver %s could not be found." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Method %s did not start correctly" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "" +"Please insert the disc labeled: '%s' in the drive '%s' and press enter." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Packaging system ‘%s’ is not supported" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Unable to determine a suitable packaging system type" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Unable to stat %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "You must put some ‘source’ URIs in your sources.list" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "The package lists or status file could not be parsed or opened." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "You may want to run apt-get update to correct these problems" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Invalid record in the preferences file, no Package header" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Did not understand pin type %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "No priority (or zero) specified for pin" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Cache has an incompatible versioning system" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Error occurred while processing %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Error occurred while processing %s (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Error occurred while processing %s (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Error occurred while processing %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Error occurred while processing %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Error occurred while processing %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Error occurred while processing %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "Wow, you exceeded the number of package names this APT can handle.." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "Wow, you exceeded the number of versions this APT can handle." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "Wow, you exceeded the number of dependencies this APT can handle." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Error occurred while processing %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Error occurred while processing %s (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "Package %s %s was not found while processing file dependencies" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Couldn't stat source package list %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Collecting File Provides" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "IO Error saving source cache" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "rename failed, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "MD5Sum mismatch" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "There is no public key available for the following key IDs:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"The package index files are corrupted. No Filename: field for package %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Size mismatch" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Vendor block %s contains no fingerprint" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Identifying.. " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Stored label: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Using CD-ROM mount point %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "Unmounting CD-ROM\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Waiting for disc...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Mounting CD-ROM...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Scanning disc for index files..\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "Found %i package indexes, %i source indexes and %i signatures\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "That is not a valid name, try again.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"This disc is called: \n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Copying package lists..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Writing new source list\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Source list entries for this disc are:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "Unmounting CD-ROM..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "Wrote %i records.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "Wrote %i records with %i missing files.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "Wrote %i records with %i mismatched files\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "Wrote %i records with %i missing files and %i mismatched files\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "Preparing %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "Unpacking %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "Preparing to configure %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "Configuring %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "Installed %s" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "Preparing for removal of %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "Removing %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "Removed %s" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "Preparing to completely remove %s" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "Completely removed %s" + +#: methods/rred.cc:219 +msgid "Could not patch file" +msgstr "Could not patch file" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Connection closed prematurely" diff --git a/po/es.po b/po/es.po new file mode 100644 index 0000000..94f296b --- /dev/null +++ b/po/es.po @@ -0,0 +1,3259 @@ +# Advanced Package Transfer - APT message translation catalog +# Copyright (C) 2002 Free Software Foundation, Inc. +# Rafael Sepulveda , 2002. +# Asier Llano Palacios +# Javier Fernandez-Sanguino Pena 2003 +# Ruben Porras Campo 2004 +# Javier Fernandez-Sanguino 2006 +# +msgid "" +msgstr "" +"Project-Id-Version: apt 0.6.42.3exp1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-10-08 00:23+0200\n" +"Last-Translator: Javier Fernandez-Sanguino \n" +"Language-Team: Debian Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "El paquete %s versión %s tiene dependencias incumplidas:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "No se ha podido localizar el paquete %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Nombres de paquetes totales: " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Paquetes normales: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Paquetes virtuales puros: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Paquetes virtuales únicos: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Paquetes virtuales mixtos: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Faltan: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Versiones diferentes totales: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Dependencias totales: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Relaciones versión/archivo totales: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Mapeo Total de Provisiones: " + +# globbed -> globalizadas ? (jfs) +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Cadenas globalizadas totales: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Espacio de versión de dependencias total: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Espacio desperdiciado total: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Espacio registrado total: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "El archivo de paquetes %s está desincronizado." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Debe dar exactamente un patrón" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "No se encontró ningún paquete" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Archivos de paquetes:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "" +"Caché fuera de sincronismo, no se puede hacer x-ref a un archivo de paquetes" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Paquetes con pin:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(no encontrado)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Instalados: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(ninguno)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Candidato: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Pin del paquete: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Tabla de versión:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s para %s %s compilado en %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Uso: apt-cache [opciones] orden\n" +" apt-cache [opciones] add archivo1 [archivo2 ...]\n" +" apt-cache [opciones] showpkg paq1 [paq2 ...]\n" +"\n" +"apt-cache es una herramienta de bajo nivel que se utiliza para manipular\n" +"los archivos binarios de caché de APT y consultar información sobre éstos\n" +"\n" +"Órdenes:\n" +" add - Agrega un archivo de paquete a la caché fuente\n" +" gencaches - Crea el ambas cachés, la de paquetes y la de fuentes\n" +" showpkg - Muestra alguna información general para un sólo paquete\n" +" showsrc - Muestra la información de fuente\n" +" stats - Muestra algunas estadísticas básicas\n" +" dump - Muestra el archivo entero en un formato terso\n" +" dumpavail - Imprime un archivo disponible a la salida estándar\n" +" unmet - Muestra dependencias incumplidas\n" +" search - Busca en la lista de paquetes por un patrón de expresión " +"regular\n" +" show - Muestra un registro legible para el paquete\n" +" depends - Muestra la información de dependencias en bruto para el " +"paquete\n" +" rdepends - Muestra la información de dependencias inversas del paquete\n" +" pkgnames - Lista los nombres de todos los paquetes\n" +" dotty - Genera gráficas del paquete para GraphVis\n" +" xvcg - Genera gráficas del paquete para xvcg\n" +" policy - Muestra parámetros de las normas\n" +"\n" +"Opciones:\n" +" -h Este texto de ayuda.\n" +" -p=? El cache del paquete.\n" +" -s=? El cache del fuente.\n" +" -q Deshabilita el indicador de progreso.\n" +" -i Muestra sólo dependencias importantes para la orden incumplida.\n" +" -c=? Lee este archivo de configuración\n" +" -o=? Establece una opción de configuración arbitraria, ej -o dir::\n" +"cache=/tmp\n" +"Vea las páginas del manual apt-cache(8) y apt.conf(5) para más información.\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "" +"Por favor provea un nombre para este disco, como 'Debian 2.1r1 Disco 1'" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Por favor inserte un disco en la unidad y presione Intro" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Repita este proceso para el resto de los CDs del conjunto." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Argumentos no emparejados" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Uso: apt-config [opciones] orden\n" +"\n" +"apt-config es una herramienta para leer el archivo de configuración de APT.\n" +"\n" +"Comandos:\n" +" shell - Modo shell\n" +" dump - Muestra la configuración\n" +"\n" +"Opciones:\n" +" -h Este texto de ayuda.\n" +" -c=? Lee este archivo de configuración\n" +" -o=? Establece una opción de configuración arbitraria, p. ej. -o dir::\n" +" cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s no es un paquete DEB válido." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Uso: apt-extracttemplates archivo1 [archivo2 ...]\n" +"\n" +"apt-extracttemplates es una herramienta para extraer información de\n" +"configuración y plantillas de paquetes de debian.\n" +"\n" +"Opciones:\n" +" -h Este texto de ayuda.\n" +" -t Define el directorio temporal\n" +" -c=? Lee este archivo de configuración\n" +" -o=? Establece una opción de configuración arbitraria, p. ej. -o dir::" +"cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "No se puede escribir en %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "No se puede encontrar la versión de debconf. ¿Está debconf instalado?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "La lista de extensión de paquetes es demasiado larga" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Error procesando el directorio %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "La lista de extensión de fuentes es demasiado larga" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Error escribiendo cabeceras de archivos de contenido" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Error procesando contenidos %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Uso: apt-ftparchive [opciones] orden\n" +"Comandos: packages ruta-binaria [archivo-predominio\n" +" [prefijo-ruta]]\n" +" sources ruta-fuente [archivo-predominio \n" +" [prefijo-ruta]]\n" +" contents ruta\n" +" release ruta\n" +" generate config [grupos]\n" +" clean config\n" +"\n" +"apt-ftparchive genera índices para archivos de Debian. Soporta\n" +"varios estilos de generación de reemplazos desde los completamente\n" +"automatizados a los funcionales para dpkg-scanpackages y dpkg-scansources.\n" +"\n" +"apt-ftparchive genera ficheros Package de un árbol de .debs. El fichero\n" +"Package contiene los contenidos de todos los campos de control de cada\n" +"paquete al igual que la suma MD5 y el tamaño del archivo. Se puede usar\n" +"un archivo de predominio para forzar el valor de Priority y\n" +"Section.\n" +"\n" +"Igualmente, apt-ftparchive genera ficheros Sources para un árbol de\n" +".dscs. Se puede utilizar la opción --source-override para especificar un\n" +"fichero de predominio de fuente.\n" +"\n" +"Las órdenes «packages» y «sources» deben ejecutarse en la raíz del\n" +"árbol. BinaryPath debe apuntar a la base de la búsqueda\n" +"recursiva, y el archivo de predominio debe de contener banderas de\n" +"predominio. Se añade Pathprefix a los campos de nombre de fichero\n" +"si existen. A continuación se muestra un ejemplo de uso basado en los \n" +"archivos de Debian:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Opciones:\n" +" -h Este texto de ayuda\n" +" --md5 Generación de control MD5 \n" +" -s=? Archivo fuente de predominio\n" +" -q Silencioso\n" +" -d=? Selecciona la base de datos de caché opcional \n" +" --no-delink Habilita modo de depuración delink\n" +" --contents Generación del contenido del archivo «Control»\n" +" -c=? Lee este archivo de configuración\n" +" -o=? Establece una opción de configuración arbitraria" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Ninguna selección coincide" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Faltan algunos archivos en el grupo de archivo de paquetes `%s'" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "BD corrompida, archivo renombrado a %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "DB anticuada, intentando actualizar %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"El formato de la base de datos no es válido. Debe eliminar y recrear la base " +"de datos si ha actualizado de una versión anterior de apt." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "No se pudo abrir el archivo DB %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "No pude leer %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "No hay registro de control del archivo" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "No se pudo obtener un cursor" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "A: No se pudo leer directorio %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "A: No se pudo leer %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "A: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E: Errores aplicables al archivo '" + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "No se pudo resolver %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Falló el recorrido por el árbol." + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "No se pudo abrir %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " DeLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "No se pudo leer el enlace %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "No se pudo desligar %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** No pude enlazar %s con %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " DeLink se ha llegado al límite de %sB.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Archivo no tiene campo de paquetes" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s no tiene entrada de predominio\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " el encargado de %s es %s y no %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s no tiene una entrada fuente predominante\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s tampoco tiene una entrada binaria predominante\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Error interno, no pude localizar el miembro %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - No pudo reservar memoria" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "No se pudo abrir %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Predominio mal formado %s línea %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Predominio mal formado %s línea %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Predominio mal formado %s línea %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "No se pudo leer el archivo de predominio %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Algoritmo desconocido de compresión '%s'" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Salida comprimida %s necesita una herramienta de compresión" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Falló la creación de una tubería IPC para el subproceso" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "No se pudo crear FICHERO*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "No se pudo bifurcar" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Hijo compresión" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Error interno, no se pudo crear %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "No se pudo crear el subproceso IPC" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "No se pudo ejecutar el compresor " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "decompresor" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "Falló la ES a subproceso/archivo" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "No se pudo leer mientras se computaba MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Hay problemas desligando %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Falló el renombre de %s a %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "S" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Error de compilación de expresiones regulares - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Los siguientes paquetes tienen dependencias incumplidas:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "pero %s está instalado" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "pero %s va a ser instalado" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "pero no es instalable" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "pero es un paquete virtual" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "pero no está instalado" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "pero no va a instalarse" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " o" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Se instalarán los siguientes paquetes NUEVOS:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Los siguientes paquetes se ELIMINARÁN:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Los siguientes paquetes se han retenido:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Se actualizarán los siguientes paquetes:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Se DESACTUALIZARÁN los siguientes paquetes:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Se cambiarán los siguientes paquetes retenidos:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (por %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"AVISO: Se van a eliminar los siguientes paquetes esenciales.\n" +"¡NO debe hacerse a menos que sepa exactamente lo que está haciendo!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu actualizados, %lu se instalarán, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu reinstalados, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu desactualizados, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu para eliminar y %lu no actualizados.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu no instalados del todo o eliminados.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Corrigiendo dependencias..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " falló." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "No se puede corregir las dependencias" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "No se puede minimizar el conjunto de actualización" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Listo" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "Tal vez quiera ejecutar `apt-get -f install' para corregirlo." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Dependencias incumplidas. Pruebe de nuevo usando -f." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "AVISO: ¡No se han podido autenticar los siguientes paquetes!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Aviso de autenticación ignorado.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "¿Instalar estos paquetes sin verificación [s/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Algunos paquetes no se pueden autenticar" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Hay problemas y se utilizó -y sin --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "Error interno, InstallPackages fue llamado con un paquete roto!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Los paquetes necesitan eliminarse pero Remove está deshabilitado." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Error interno, no terminó el ordenamiento" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "No se puede bloquear el directorio de descarga" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "No se pudieron leer las listas de fuentes." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"Que raro.. Los tamaños no concuerdan, mande un correo a \n" +"apt@packages.debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Se necesita descargar %sB/%sB de archivos.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Necesito descargar %sB de archivos.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "" +"Se utilizarán %sB de espacio de disco adicional después de desempaquetar.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Se liberarán %sB después de desempaquetar.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "No pude determinar el espacio libre en %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "No tiene suficiente espacio libre en %s." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "Se especificó Trivial Only pero ésta no es una operación trivial." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Sí, ¡haga lo que le digo!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Está a punto de hacer algo potencialmente dañino\n" +"Para continuar escriba la frase «%s»\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Abortado." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "¿Desea continuar [S/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Imposible obtener %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Algunos archivos no pudieron descargarse" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Descarga completa y en modo de sólo descarga" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"No se pudieron obtener algunos archivos, ¿quizás deba ejecutar\n" +"apt-get update o deba intentarlo de nuevo con --fix-missing?" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "Actualmente no están soportados --fix-missing e intercambio de medio" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "No se pudieron corregir los paquetes que faltan." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Abortando la instalación." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Nota, seleccionando %s en lugar de %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "Ignorando %s, ya esta instalado y la actualización no esta activada.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "El paquete %s no esta instalado, no se eliminará\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "El paquete %s es un paquete virtual provisto por:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Instalado]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Necesita seleccionar explícitamente uno para instalar." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"El paquete %s no está disponible, pero algún otro paquete hace referencia\n" +"a él. Esto puede significar que el paquete falta, está obsoleto o sólo se\n" +"encuentra disponible desde alguna otra fuente\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Sin embargo, los siguientes paquetes lo reemplazan:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "El paquete %s no tiene candidato para su instalación" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "No es posible reinstalar el paquete %s, no se puede descargar.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s ya está en su versión más reciente.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "No se encontró la Distribución '%s' para '%s'" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "No se encontró la versión '%s' para '%s'" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Versión seleccionada %s (%s) para %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "El comando de actualización no toma argumentos" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "No se pudo bloquear el directorio de listas" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Algunos archivos de índice no se han podido descargar, se han ignorado,\n" +"o se ha utilizado unos antiguos en su lugar." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Error Interno, AllUpgrade rompió cosas" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "No se pudo encontrar el paquete %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Nota, seleccionando %s para la expresión regular '%s'\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "Tal vez quiera ejecutar `apt-get -f install' para corregirlo:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Dependencias incumplidas. Intente 'apt-get -f install' sin paquetes (o " +"especifique una solución)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"No se pudieron instalar algunos paquetes. Esto puede significar que\n" +"usted pidió una situación imposible o, si está usando la distribución\n" +"inestable, que algunos paquetes necesarios no han sido creados o han\n" +"sido movidos fuera de Incoming." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Como sólo solicito una única operación, es extremadamente posible que el\n" +"paquete simplemente no sea instalable y debería de rellenar un informe de\n" +"error contra ese paquete." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "La siguiente información puede ayudar a resolver la situación:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Paquetes rotos" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Se instalarán los siguientes paquetes extras:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Paquetes sugeridos:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Paquetes recomendados" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Calculando la actualización... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Falló" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Listo" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "" +"Error interno, el sistema de solución de problemas rompió\n" +"algunas cosas" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "Debe especificar al menos un paquete para obtener su código fuente" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "No se pudo encontrar un paquete de fuentes para %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Ignorando fichero ya descargado '%s'\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "No tiene suficiente espacio libre en %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Necesito descargar %sB/%sB de archivos fuente.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Necesito descargar %sB de archivos fuente.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Fuente obtenida %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "No se pudieron obtener algunos archivos." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Ignorando desempaquetamiento de paquetes ya desempaquetados en %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Falló la orden de desempaquetamiento '%s'.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Compruebe que el paquete «dpkg-dev» esté instalado.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Falló la orden de construcción '%s'.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Falló el proceso hijo" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"Debe especificar al menos un paquete para verificar sus\n" +"dependencias de construcción" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "No se pudo obtener información de dependencias de construcción para %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s no tiene dependencias de construcción.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"La dependencia %s en %s no puede satisfacerse porque no se puede \n" +"encontrar el paquete %s" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"La dependencia %s en %s no puede satisfacerse porque ninguna versión\n" +"disponible del paquete %s satisface los requisitos de versión" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"No se pudo satisfacer la dependencia %s para %s: El paquete instalado %s es " +"demasiado nuevo" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "No se pudo satisfacer la dependencia %s para %s: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "No se pudieron satisfacer las dependencias de construcción de %s." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "No se pudieron procesar las dependencias de construcción" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Módulos soportados:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Uso: apt-get [opciones] orden\n" +" apt-get [opciones] install|remove paq1 [paq2 ...]\n" +" apt-get [opciones] source paq1 [paq2 ...]\n" +"\n" +"apt-get es una sencilla interfaz de línea de órdenes para descargar e\n" +"instalar paquetes. Las órdenes más utilizadas son update e install.\n" +"\n" +"Órdenes:\n" +" update - Descarga nuevas listas de paquetes\n" +" upgrade - Realiza una actualización\n" +" install - Instala nuevos paquetes (paquete es libc6 y no libc6.deb)\n" +" remove - Elimina paquetes\n" +" source - Descarga archivos fuente\n" +" build-dep - Configura las dependencias de construcción para paquetes " +"fuente\n" +" dist-upgrade - Actualiza la distribución, vea apt-get(8)\n" +" dselect-upgrade - Sigue las selecciones de dselect\n" +" clean - Elimina los archivos descargados\n" +" autoclean - Elimina los archivos descargados antiguos\n" +" check - Verifica que no haya dependencias incumplidas\n" +"\n" +"Opciones:\n" +" -h Este texto de ayuda.\n" +" -q Salida registrable - sin indicador de progreso\n" +" -qq Sin salida, excepto si hay errores\n" +" -d Sólo descarga - NO instala o desempaqueta los archivos\n" +" -s No actúa. Realiza una simulación\n" +" -y Asume Sí para todas las consultas\n" +" -f Intenta continuar si la comprobación de integridad falla\n" +" -m Intenta continuar si los archivos no son localizables\n" +" -u Muestra también una lista de paquetes actualizados\n" +" -b Construye el paquete fuente después de obtenerlo\n" +" -V Muesta números de versión detallados\n" +" -c=? Lee este archivo de configuración\n" +" -o=? Establece una opción de configuración arbitraria, p. ej. \n" +" -o dir::cache=/tmp\n" +"Consulte las páginas del manual de apt-get(8), sources.list(5) y apt.conf" +"(5)\n" +"para más información y opciones.\n" +" Este APT tiene poderes de Super Vaca.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Obj " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Des:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ign " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Err " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Descargados %sB en %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Trabajando]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Cambio de medio: Por favor inserte el disco etiquetado\n" +" '%s'\n" +"en la unidad '%s' y presione Intro\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "¡Registro de paquete desconocido!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Uso: apt-sortpkgs [opciones] archivo1 [archivo2 ...]\n" +"\n" +"apt-sortpkgs es una herramienta sencilla para ordenar archivos de paquetes.\n" +"La opción -s se utiliza para indicar qué tipo de archivo es.\n" +"\n" +"Opciones:\n" +" -h Este texto de ayuda.\n" +" -s Utiliza ordenamiento de archivos fuente\n" +" -c=? Lee este archivo de configuración\n" +" -o=? Establece una opción de configuración arbitraria, p. ej. -o dir::\n" +"cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "¡Parámetro por omisión incorrecto!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Presione Intro para continuar." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "" +"Ocurrieron algunos errores mientras se desempaquetaba. Se va a configurar el" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "" +"paquetes que fueron instalados. Esto puede dar lugar a errores duplicados" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" +"o errores causados por dependencias no presentes. Esto está BIEN, sólo los\n" +"errores" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"encima de este mensaje son importantes. Por favor corrijalas y ejecute\n" +"[I]nstall otra vez" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Fusionando información disponible" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "No pude crear las tuberías" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "No pude ejecutar gzip" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Archivo corrompido" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "No se aprobó la suma de control del tar, archive corrompido" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Cabecera del TAR tipo %u desconocida, miembro %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Firma del archivo inválida" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Error leyendo la cabecera de miembro del archivo" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Cabecera de miembro del archivo inválida" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "El archivo es muy pequeño" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "No pude leer las cabeceras del archivo" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "DropNode llamado en un nodo todavía ligado" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "¡No pude localizar el elemento enlazado!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "No pude asignar una desviación" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Error interno en AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Tratando de sobreescribir una desviación, %s -> %s y %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Doble suma de desviación %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Archivo de configuración duplicado %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Falló la escritura del archivo %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "No pude cerrar el archivo %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "La trayectoria %s es demasiado larga" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Desempaquetando %s más de una vez" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "El directorio %s está desviado" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "El paquete está tratando de escribir al blanco desviado %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "La trayectoria de desviación es demasiado larga" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "El directorio %s está siendo reemplazado por un no-directorio" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "No pude localizar el nodo en su bote de enlace" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "La trayectoria es muy larga" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Sobreescribiendo concordancia del paquete sin versión para %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "El archivo %s/%s sobreescribe al que está en el paquete %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "No pude leer %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "No pude leer %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "No pude borrar %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "No pude crear %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "No pude leer %sinfo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "" +"Los directorios info y temp deben de estar en el mismo sistema de archivos" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Leyendo lista de paquetes" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "No pude cambiarme al directorio de administración %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Error interno obteniendo un Nombre de Paquete" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Leyendo Listado de Archivos" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"No pude abrir el archivo de lista '%sinfo/%s'. ¡Si no puede restablecer este " +"archivo entonces cree uno vacío e inmediatamente reinstale la misma versión " +"del paquete!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "No pude leer el archivo de lista %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Error interno obteniendo un nodo" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "No pude abrir el archivo de desviación %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "El archive de desviación esta corrompido" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Linea inválida en el archivo de desviación: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Error interno agregando una desviación" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "El caché del paquete debe de inicializarse primero" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "No pude encontrar un paquete: Cabecera, desplazo %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Mala sección del ConfFile en el archivo de estado. Desplazo %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Error leyendo Md5. Desplazo %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Este no es un archivo DEB válido, falta el miembro '%s'" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "Este no es un archivo DEB válido, falta el miembro '%s' o '%s'" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "No pude cambiar a %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Error interno, no pude localizar el miembro" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "No pude localizar un archivo de control válido" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Archivo de control inanalizable" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "No pude leer la base de datos %s del cdrom" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Por favor utilice apt-cdrom para hacer que APT reconozca este CD.\n" +"apt-get update no se puede usar para agregar nuevos CDs" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "CD equivocado" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "No pude desmontar el CD-ROM de %s, tal vez todavía este en uso." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Disco no encontrado." + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Fichero no encontrado" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "No pude leer" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "No pude poner el tiempo de modificación" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "URI inválido, los URIS locales no deben de empezar con //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Entrando" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "No pude determinar el nombre del par" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Imposible determinar el nombre local" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "El servidor rechazó nuestra conexión y dijo: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "Usuario (USER) falló, el servidor dijo: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "Clave (PASS) falló, el servidor dijo: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Se especificó un servidor proxy pero no un script de entrada,\n" +"Acquire::ftp::ProxyLogin está vacío." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Falló la orden '%s' del script de entrada, el servidor dijo: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "Tipo (TYPE) falló, el servidor dijo: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "La conexión expiró" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "El servidor cerró la conexión" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Error de lectura" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Una respuesta desbordó el buffer." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Corrupción del protocolo" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Error de escritura" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "No pude crear un socket" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "No pude conectar el socket de datos, expiró el tiempo de conexión" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "No pude conectar un socket pasivo." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo no pude obtener un socket oyente" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "No pude ligar un socket" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "No pude escuchar en el socket" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "No pude determinar el nombre del socket" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "No pude mandar la orden PORT" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Dirección de familia %u desconocida (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT falló, el servidor dijo: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Expiró conexión a socket de datos" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "No pude aceptar la conexión" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Hay problemas enlazando fichero" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Imposible traer archivo, el servidor dijo '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Expiró el socket de datos" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Falló transferencia de datos, el servidor dijo '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Consulta" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "No pude invocar " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Conectando a %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "No pude crear un socket para %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "No puedo iniciar la conexión a %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "No pude conectarme a %s:%s (%s), expiró tiempo para conexión" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "No pude conectarme a %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Conectando a %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "No pude resolver '%s'" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Fallo temporal al resolver '%s'" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Algo raro pasó resolviendo '%s:%s' (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "No pude conectarme a %s %s:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "No se pudo acceder al anillo de claves: '%s'" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" +"E: Lista de argumentos de Acquire::gpgv::Options demasiado larga. Terminando." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" +"Error interno: Firma correcta, pero no se pudo determinar su huella digital?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Se encontró al menos una firma inválida." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" +"No se pudo ejecutar '%s' para verificar la firma (¿está instalado gnupg?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Error desconocido ejecutando gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "Las siguientes firms fueron inválidas:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"Las firmas siguientes no se pudieron verificar porque su llave pública no " +"está disponible:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "No pude abrir una tubería para %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Error de lectura de %s procesos" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Esperando las cabeceras" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Obtuve una sola línea de cabecera arriba de %u caracteres" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Mala línea de cabecera" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "El servidor de http envió una cabecera de respuesta inválida" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "El servidor de http envió una cabecera de Content-Length inválida" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "El servidor de http envió una cabecera de Content-Range inválida" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "Éste servidor de http tiene el soporte de alcance roto" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Formato de fecha desconocido" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Falló la selección" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Expiró la conexión" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Error escribiendo al archivo de salida" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Error escribiendo a archivo" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Error escribiendo al archivo" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "Error leyendo del servidor, el lado remoto cerró la conexión." + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Error leyendo del servidor" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Mala cabecera Data" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Fallo la conexión" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Error interno" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "No puedo hacer mmap de un fichero vacío" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "No pude hacer mmap de %lu bytes" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Selección %s no encontrada" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Tipo de abreviación no reconocida: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Abriendo fichero de configuración %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Línea %d demasiado larga (máx %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Error de sintaxis %s:%u: No hay un nombre al comienzo del bloque." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Error de sintaxis %s:%u: Marca mal formada" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Error de sintaxis %s:%u: Basura extra después del valor" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" +"Error de sintaxis %s:%u: Las directivas sólo se pueden poner\n" +"en el primer nivel" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Error de sintaxis %s:%u: Demasiadas inclusiones anidadas" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Error de sintaxis %s:%u: Incluido desde aquí" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Error de sintaxis %s:%u: Directiva '%s' no soportada" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Error de sintaxis %s:%u: Basura extra al final del archivo" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... ¡Error!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Hecho" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "No se conoce la opción de línea de órdenes '%c' [ de %s]" + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "No se entiende la opción de línea de órdenes %s" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "La opción de línea de órdenes %s no es un booleano" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "La opción %s necesita un argumento." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "" +"Opción %s: La especificación del elemento de configuración debe tener un " +"=." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "La opción %s exige un argumento entero, no '%s'" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Opción '%s' demasiado larga" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "El sentido %s no se entiende, pruebe verdadero o falso." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Operación inválida: %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "No se puede obtener información del punto de montaje %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "No se pudo cambiar a %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "No pude montar el cdrom" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "No se utiliza bloqueos para el fichero de bloqueo de sólo lectura %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "No se pudo abrir el fichero de bloqueo '%s'" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "No se utilizan bloqueos para el fichero de bloqueo de montaje nfs %s" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "No se pudo bloquear %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Esperaba %s pero no estaba allí" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "El subproceso %s recibió un fallo de segmentación." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "El subproceso %s devolvió un código de error (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "El subproceso %s terminó de forma inesperada" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "No pude abrir el fichero %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "leídos, todavía debía leer %lu pero no queda nada" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "escritos, todavía tenía que escribir %lu pero no pude hacerlo" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Problemas cerrando el archivo" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Hay problemas desligando el fichero %s" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Hay problemas sincronizando el fichero" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Caché de paquetes vacía." + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "El archivo de caché de paquetes esta corrompido" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "El archivo de caché de paquetes es una versión incompatible" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Este APT no soporta el sistema de versiones '%s'" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "La caché de paquetes se había creado para una arquitectura diferente" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Depende" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "PreDepende" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Sugiere" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Recomienda" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Entra en conflicto" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Reemplaza" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Hace obsoleto" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "importante" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "requiere" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "estándar" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "opcional" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "extra" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Creando árbol de dependencias" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Versiones candidatas" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Generación de dependencias" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "No se pudo tratar el archivo de paquetes %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "No se pudo tratar el archivo de paquetes %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Línea %lu mal formada en lista de fuentes %s (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Línea %lu mal formada en lista de fuentes %s (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Línea %lu mal formada en lista de fuentes %s (análisis de URI)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Línea %lu mal formada en lista de fuentes %s (dist absoluta)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Línea %lu mal formada en lista de fuentes %s (análisis de dist)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Abriendo %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Línea %u demasiado larga en la lista de fuentes %s." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Línea %u mal formada en lista de fuentes %s (tipo)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Tipo '%s' desconocido en la línea %u de lista de fuentes %s" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Línea %u mal formada en la lista de fuentes %s (id del fabricante)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Esta ejecución de la instalación requiere eliminar temporalmente el \n" +"paquete esencial %s debido a un bucle de Conflictos/Pre-Dependencias. \n" +"Esto generalmente es malo, pero si realmente quiere hacerlo, active \n" +"la opción APT::Force-LoopBreak." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "No se da soporte para el tipo de archivo de índice '%s'" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"El paquete %s necesita ser reinstalado, pero no se encuentra un archivo para " +"éste." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Error, pkgProblemResolver::Resolve generó cortes, esto puede haber sido " +"causado por paquetes retenidos." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "" +"No se pudieron corregir los problemas, usted ha retenido paquetes\n" +"rotos." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Falta el directorio de listas %spartial." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Falta el directorio de archivos %spartial." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "Descargando fichero %li de %li (falta %s)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "Descargando fichero %li de %li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "No se pudo encontrar el método %s." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "El método %s no se inició correctamente" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "Por favor, inserte el disco «%s» en la unidad «%s» y presione Intro" + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "El sistema de paquetes '%s' no está soportado" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "No se pudo determinar un tipo de sistema de paquetes adecuado" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "No se pudo leer %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "Debe poner algunos URIs 'fuente' en su sources.list" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" +"No se pudieron analizar o abrir las listas de paquetes o el archivo de " +"estado." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "Tal vez quiera ejecutar 'apt-get update' para corregir estos problemas" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "" +"Registro inválido en el archivo de preferencias, no hay cabecera de paquete" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "No se entiende el pin tipo %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "No hay prioridad especificada para pin (o es cero)" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "La caché tiene una versión incompatible de sistema de versiones" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Ocurrió un error mientras se procesaba %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Ocurrió un error mientras se procesaba %s (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Ocurrió un error mientras se procesaba %s (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Ocurrió un error mientras se procesaba %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Ocurrió un error mientras se procesaba %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Ocurrió un error mientras se procesaba %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Ocurrió un error mientras se procesaba %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" +"Vaya, excedió el número de nombres de paquetes que este APT es capaz de " +"manejar." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "Vaya, excedió el número de versiones que este APT es capaz de manejar." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" +"Vaya, excedió el número de dependencias que este APT es capaz de manejar." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Ocurrió un error mientras procesaba %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Ocurrió un error mientras procesaba %s (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "" +"Al procesar las dependencias de archivos no se encontró el\n" +"paquete %s %s" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "No se puede leer la lista de paquetes fuente %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Recogiendo archivos que proveen" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "Error de E/S guardando caché fuente" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "falló el cambio de nombre, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "La suma MD5 difiere" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "" +"No existe ninguna clave pública disponible para los siguientes " +"identificadores de clave:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"No se pudo localizar un archivo para el paquete %s. Esto puede significar " +"que necesita arreglar manualmente este paquete (debido a que falta una " +"arquitectura)" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"No se pudo localizar un archivo para el paquete %s. Esto puede significar " +"que necesita arreglar manualmente este paquete." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"Los archivos de índice de paquetes están corrompidos. El campo 'Filename:' " +"no existe para para el paquete %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "El tamaño difiere" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Bloque de fabricante %s sin huella digital" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Usando el punto de montaje del CD-ROM %s\n" +"Montando el CD-ROM\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Identificando.. " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Etiqueta guardada: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Usando el punto de montaje del CD-ROM %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "Desmontando el CD-ROM\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Esperando el disco...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Montando el CD-ROM...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Buscando en el disco archivos de índices...\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "Se encontraron %i índices de paquetes, %i de fuentes y %i firmas\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Ese no es un nombre válido, inténtelo de nuevo.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Este disco se llama: \n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Copiando las listas de paquetes..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Escribiendo nueva lista de fuente\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Las entradas de la lista de fuentes para este disco son:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "Desmontando CD-ROM..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "%i registros escritos.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "%i registros escritos con %i fichero de menos.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "%i registros escritos con %i fichero mal emparejado\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" +"%i registros escritos con %i fichero de menos y %i ficheros mal emparejados\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "Preparando %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "Desempaquetando %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "Preparándose para configurar %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "Configurando %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "%s instalado" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "Preparándose para eliminar %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "Eliminando %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "%s eliminado" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "Preparándose para eliminar completamente %s" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "Se borró completamente %s" + +#: methods/rred.cc:219 +msgid "Could not patch file" +msgstr "No pude parchear el fichero" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "La conexión se cerró prematuramente" + +#~ msgid "File date has changed %s" +#~ msgstr "Cambió la fecha del archivo %s" + +#~ msgid "Reading file list" +#~ msgstr "Leyendo Lista de Archivos" + +#~ msgid "Could not execute " +#~ msgstr "No se pudo ejecutar " + +#~ msgid "Preparing for remove with config %s" +#~ msgstr "Preparándose para eliminar con su configuración %s" + +#~ msgid "Removed with config %s" +#~ msgstr "Eliminado con su configuración %s" + +#~ msgid "Unknown vendor ID '%s' in line %u of source list %s" +#~ msgstr "" +#~ "ID del fabricante '%s' desconocido en la línea %u de la lista de\n" +#~ "fuentes %s" + +#~ msgid "" +#~ "Some broken packages were found while trying to process build-" +#~ "dependencies.\n" +#~ "You might want to run `apt-get -f install' to correct these." +#~ msgstr "" +#~ "Se encontraron algunos paquetes rotos mientras se intentaba procesar\n" +#~ "las dependencies de construcción. Tal vez quiera ejecutar \n" +#~ "`apt-get -f install' para corregirlos." + +#~ msgid "" +#~ "Usage: apt-cache [options] command\n" +#~ " apt-cache [options] add file1 [file1 ...]\n" +#~ " apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +#~ " apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +#~ "\n" +#~ "apt-cache is a low-level tool used to manipulate APT's binary\n" +#~ "cache files, and query information from them\n" +#~ "\n" +#~ "Commands:\n" +#~ " add - Add an package file to the source cache\n" +#~ " gencaches - Build both the package and source cache\n" +#~ " showpkg - Show some general information for a single package\n" +#~ " showsrc - Show source records\n" +#~ " stats - Show some basic statistics\n" +#~ " dump - Show the entire file in a terse form\n" +#~ " dumpavail - Print an available file to stdout\n" +#~ " unmet - Show unmet dependencies\n" +#~ " search - Search the package list for a regex pattern\n" +#~ " show - Show a readable record for the package\n" +#~ " depends - Show raw dependency information for a package\n" +#~ " pkgnames - List the names of all packages\n" +#~ " dotty - Generate package graphs for GraphVis\n" +#~ " policy - Show policy settings\n" +#~ "\n" +#~ "Options:\n" +#~ " -h This help text.\n" +#~ " -p=? The package cache.\n" +#~ " -s=? The source cache.\n" +#~ " -q Disable progress indicator.\n" +#~ " -i Show only important deps for the unmet command.\n" +#~ " -c=? Read this configuration file\n" +#~ " -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +#~ "See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +#~ msgstr "" +#~ "Uso: apt-cache [opciones] orden\n" +#~ " apt-cache [opciones] add archivo1 [archivo1 ...]\n" +#~ " apt-cache [opciones] showpkg paq1 [paq2 ...]\n" +#~ "\n" +#~ "apt-cache es una herramienta usada para manipular los archivos binarios\n" +#~ "de caché de APT, y consultar información de éstos.\n" +#~ "\n" +#~ "Comandos:\n" +#~ " add - Añade un archivo de paquete a la caché fuente\n" +#~ " gencaches - Crea el caché de ambos, del paquete y del fuente\n" +#~ " showpkg - Muestra alguna información general para un solo paquete\n" +#~ " showsrc - Muestra la información de las fuentes\n" +#~ " stats - Muestra algunas estadísticas básicas\n" +#~ " dump - Muestra el archivo entero en formato detallado\n" +#~ " dumpavail - Imprime un archivo de paquetes disponibles a salida\n" +#~ "estándar\n" +#~ " unmet - Muestra dependencias incumplidas\n" +#~ " search - Busca en la lista de paquetes por un patrón de expresión\n" +#~ "regular\n" +#~ " show - Muestra un registro del paquete\n" +#~ " depends - Muestra información de dependencias en bruto para el\n" +#~ "paquete\n" +#~ " pkgnames - Lista los nombres de todos los paquetes\n" +#~ " dotty - Genera gráficas del paquete para GraphVis\n" +#~ " policy - Muestra los parámetros de las normas\n" +#~ "\n" +#~ "Opciones:\n" +#~ " -h Este texto de ayuda.\n" +#~ " -p=? El caché del paquete.\n" +#~ " -s=? El caché de la fuente.\n" +#~ " -q Deshabilita el indicador de progreso.\n" +#~ " -i Muestra sólo dependencias importantes para el comando de\n" +#~ "incumplido.\n" +#~ " -c=? Lee este archivo de configuración\n" +#~ " -o=? Establece una opción de configuración arbitraria, p. ej. -o dir::\n" +#~ "cache=/tmp\n" +#~ "Consulte las páginas del manual apt-cache(8) y apt.conf(5) para más\n" +#~ "información.\n" + +#~ msgid "" +#~ "%s dependency on %s cannot be satisfied because the package %s cannot be " +#~ "found" +#~ msgstr "" +#~ "La dependencia %s en %s no puede satisfacerse porque el paquete %s\n" +#~ "no se puede encontrar" + +#~ msgid "The package cache was build for a different architecture" +#~ msgstr "La caché de archivos fue creado para una arquitectura diferente" + +#~ msgid "Sorry, you don't have enough free space in %s to hold all the .debs." +#~ msgstr "" +#~ "Lo siento, no tiene suficiente espacio libre en %s para colocar todos " +#~ "los .debs." + +#~ msgid "Sorry, but the following packages have unmet dependencies:" +#~ msgstr "" +#~ "Disculpe, pero los siguientes paquetes tienen dependencias incumplidas:" + +#~ msgid "Need to get %sB/%sB of archives. " +#~ msgstr "Se necesitan descargar %sB/%sB de ficheros. " + +#~ msgid "Need to get %sB of archives. " +#~ msgstr "Necesito descargar %sB de ficheros. " + +#~ msgid "After unpacking %sB will be used.\n" +#~ msgstr "Se usarán %sB después de desempaquetar.\n" + +#~ msgid "After unpacking %sB will be freed.\n" +#~ msgstr "Se liberarán %sB después de desempaquetar.\n" + +#~ msgid "" +#~ "Sorry, re-installation of %s is not possible, it cannot be downloaded.\n" +#~ msgstr "" +#~ "Lo siento, no es posible la reinstalación del paquete %s, no puede ser " +#~ "descargado.\n" + +#~ msgid "Sorry, %s is already the newest version.\n" +#~ msgstr "Lo siento, %s ya está en su versión más reciente.\n" + +#~ msgid "Sorry, broken packages" +#~ msgstr "Lo siento, paquetes rotos" + +#~ msgid "Sorry, you don't have enough free space in %s" +#~ msgstr "Lo siento, no tiene suficiente espacio libre en %s" + +#~ msgid "Sorry, you must put some 'source' URIs in your sources.list" +#~ msgstr "Lo siento, debe poner algunos URIs 'fuente' en su sources.list" + +#~ msgid "<- '" +#~ msgstr "<- '" + +#~ msgid "'" +#~ msgstr "'" + +#~ msgid "-> '" +#~ msgstr "-> '" + +#~ msgid "Followed conf file from " +#~ msgstr "Archivo de configuración seguido por" + +#~ msgid " to " +#~ msgstr " a " + +#~ msgid "Extract " +#~ msgstr "Extraer" + +#~ msgid "Aborted, backing out" +#~ msgstr "Abortado, retractándome" + +#~ msgid "De-replaced " +#~ msgstr "De-reemplazado" + +#~ msgid " from " +#~ msgstr " de " + +#~ msgid "Backing out " +#~ msgstr "Retractando " + +#~ msgid " [new node]" +#~ msgstr " [nodo nuevo] " + +#~ msgid "Replaced file " +#~ msgstr "Fichero reemplazado" + +#~ msgid "Internal error, Unable to parse a package record" +#~ msgstr "Error interno, no pude leer un récord del paquete" + +#~ msgid "Unimplemented" +#~ msgstr "No está implementado" + +#~ msgid "You must give at least one file name" +#~ msgstr "Debes dar cuando menos un nombre de archivo" + +#~ msgid "Generating cache" +#~ msgstr "Generando el caché" + +#~ msgid "Problem with SelectFile" +#~ msgstr "Hay problemas con SelectFile" + +#~ msgid "Problem with MergeList" +#~ msgstr "Hay problemas con MergeList" + +#~ msgid "Regex compilation error" +#~ msgstr "Error de compilación de Regex" + +#~ msgid "Write to stdout failed" +#~ msgstr "No pude escribir a la salida estándar" + +#~ msgid "Generate must be enabled for this function" +#~ msgstr "Generate debe de estar habilitado para esta función" + +#~ msgid "Failed to stat %s%s" +#~ msgstr "No pude leer %s%s" + +#~ msgid "Failed to open %s.new" +#~ msgstr "No pude abrir %s.new" + +#~ msgid "Failed to rename %s.new to %s" +#~ msgstr "No pude renombrar %s.new a %s" + +#~ msgid "I found (binary):" +#~ msgstr "Encontré (binario):" + +#~ msgid "I found (source):" +#~ msgstr "Encontré (fuente):" + +#~ msgid "Found " +#~ msgstr "Encontré " + +#~ msgid " source indexes." +#~ msgstr " índice de fuentes." + +#~ msgid "" +#~ "Unable to locate any package files, perhaps this is not a Debian Disc" +#~ msgstr "" +#~ "No pude localizar ningún archivo de paquete, tal vez este no es un disco " +#~ "de Debian" + +#~ msgid " '" +#~ msgstr " '" + +#~ msgid "" +#~ "Usage: apt-cdrom [options] command\n" +#~ "\n" +#~ "apt-cdrom is a tool to add CDROM's to APT's source list. The\n" +#~ "CDROM mount point and device information is taken from apt.conf\n" +#~ "and /etc/fstab.\n" +#~ "\n" +#~ "Commands:\n" +#~ " add - Add a CDROM\n" +#~ " ident - Report the identity of a CDROM\n" +#~ "\n" +#~ "Options:\n" +#~ " -h This help text\n" +#~ " -d CD-ROM mount point\n" +#~ " -r Rename a recognized CD-ROM\n" +#~ " -m No mounting\n" +#~ " -f Fast mode, don't check package files\n" +#~ " -a Thorough scan mode\n" +#~ " -c=? Read this configuration file\n" +#~ " -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +#~ "See fstab(5)\n" +#~ msgstr "" +#~ "Uso: apt-cdrom [opciones] orden\n" +#~ "\n" +#~ "apt-cdrom es una herramienta para agregar CDROM para las fuentes de\n" +#~ "APT. El punto de montaje del CDROM y la información del dispositivo\n" +#~ "se extrae de apt.conf y /etc/fstab.\n" +#~ "\n" +#~ "Comandos:\n" +#~ " add - Agrega un CDROM\n" +#~ " ident - Reporta la identificación del CDROM\n" +#~ "\n" +#~ "Opciones:\n" +#~ " -h Este texto de ayuda\n" +#~ " -d Punto de montaje del CD-ROM\n" +#~ " -r Renombra un CD-ROM reconocido\n" +#~ " -m No monta\n" +#~ " -f Modo rápido, no comprueba archivos de paquetes\n" +#~ " -a A través de modo de búsqueda\n" +#~ " -c=? Lee esto archivo de configuración\n" +#~ " -o=? Establece una opción de configuración arbitraria, ej -o dir::\n" +#~ "cache=/tmp\n" +#~ "Ver fstab(5)\n" + +#~ msgid "Internal error, non-zero counts" +#~ msgstr "Error interno, cuenta diferentes de cero" + +#~ msgid "Couldn't wait for subprocess" +#~ msgstr "No pude esperar al subproceso" + +#~ msgid "....\"Have you mooed today?\"..." +#~ msgstr "....\"¿Has mugido hoy?\"..." + +#~ msgid " New " +#~ msgstr " Nuevo " + +#~ msgid "B " +#~ msgstr "B " + +#~ msgid " files " +#~ msgstr " archivos " + +#~ msgid " pkgs in " +#~ msgstr " paquetes en " + +#~ msgid "" +#~ "Usage: apt-ftparchive [options] command\n" +#~ "Commands: packges binarypath [overridefile [pathprefix]]\n" +#~ " sources srcpath [overridefile [pathprefix]]\n" +#~ " contents path\n" +#~ " generate config [groups]\n" +#~ " clean config\n" +#~ msgstr "" +#~ "Uso: apt-ftparchive [opciones] orden\n" +#~ "Comandos: packges trayectoria-binaria [archivo-sobrepaso\n" +#~ " [prefijo-trayectoria]]\n" +#~ " sources trayectoria-fuente [archivo-sobrepaso \n" +#~ " [prefijo-trayectoria]]\n" +#~ " contents trayectoria\n" +#~ " generate config [grupos]\n" +#~ " clean config\n" + +#~ msgid "" +#~ "Options:\n" +#~ " -h This help text\n" +#~ " --md5 Control MD5 generation\n" +#~ " -s=? Source override file\n" +#~ " -q Quiet\n" +#~ " -d=? Select the optional caching database\n" +#~ " --no-delink Enable delinking debug mode\n" +#~ " --contents Control contents file generation\n" +#~ " -c=? Read this configuration file\n" +#~ " -o=? Set an arbitrary configuration option\n" +#~ msgstr "" +#~ "Opciones:\n" +#~ " -h Este texto de ayuda\n" +#~ " --md5 Generación de control MD5 \n" +#~ " -s=? Archivo fuente de predominio\n" +#~ " -q Callado\n" +#~ " -d=? Selecciona la base de datos opcional de cache\n" +#~ " --no-delink Habilita modo de depuración delink\n" +#~ " --contents Generación del contenido del archivo 'Control'\n" +#~ " -c=? Lee este archivo de configuración\n" +#~ " -o=? Establece una opción de configuración arbitraria\n" + +#~ msgid "Done Packages, Starting contents." +#~ msgstr "Paquetes terminados, empezando contenidos." + +#~ msgid "Hit contents update byte limit" +#~ msgstr "Se encontró el límite de bytes de actualización de contenidos" + +#~ msgid "Done. " +#~ msgstr "Listo." + +#~ msgid "B in " +#~ msgstr "B en " + +#~ msgid " archives. Took " +#~ msgstr " archivos. Tomo " + +#~ msgid "B hit." +#~ msgstr "B Eco." + +#~ msgid " not " +#~ msgstr " no " + +#~ msgid "DSC file '%s' is too large!" +#~ msgstr "¡El Archivo DSC '%s' es demasiado grande!" + +#~ msgid "Could not find a record in the DSC '%s'" +#~ msgstr "No se pudo encontrar un registro en el archive DSC '%s'" + +#~ msgid "Error parsing file record" +#~ msgstr "Error leyendo archivo de registros" + +#~ msgid "Failed too stat %s" +#~ msgstr "No pude leer %s" + +#~ msgid "Errors apply to file '%s'" +#~ msgstr "Errores aplicables al fichero '%s'" + +#~ msgid "Unkonwn address family %u (AF_*)" +#~ msgstr "Dirección de familia %u desconocida (AF_*)" + +#~ msgid "Failed to mount the cdrom." +#~ msgstr "No pude montar el cdrom" + +#~ msgid "" +#~ "apt-ftparchive generates index files for Debian archives. It supports\n" +#~ "many styles of generation from fully automated to functional " +#~ "replacements\n" +#~ "for dpkg-scanpackages and dpkg-scansources\n" +#~ "\n" +#~ "apt-ftparchive generates Package files from a tree of .debs. The\n" +#~ "Package file contains the contents of all the control fields from\n" +#~ "each package as well as the MD5 hash and filesize. An override file\n" +#~ "is supported to force the value of Priority and Section.\n" +#~ "\n" +#~ "Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +#~ "The --source-override option can be used to specify a src override file\n" +#~ "\n" +#~ "The 'packages' and 'sources' command should be run in the root of the\n" +#~ "tree. BinaryPath should point to the base of the recursive search and \n" +#~ "override file should contian the override flags. Pathprefix is\n" +#~ "appended to the filename fields if present. Example usage from the \n" +#~ "debian archive:\n" +#~ " apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +#~ " dists/potato/main/binary-i386/Packages\n" +#~ msgstr "" +#~ "apt-ftparchive genera archivos de índice para archivos de Debian.\n" +#~ "Soporta varios estilos de generación de reemplazos completamente\n" +#~ "automatizados a funcionales para dpkg-scanpackages y dpkg-scansources\n" +#~ "\n" +#~ "apt-ftparchive genera archivos Package de un árbol de .debs. El Archivo\n" +#~ "Package contiene los contenidos de todos los campos de control de cada\n" +#~ "paquete al igual que el enlace MD5 y el tamaño del archivo. Se\n" +#~ "soporta el uso de un archivo de predominio para forzar el valor de\n" +#~ "Priority y Section.\n" +#~ "\n" +#~ "Igualmente, apt-ftparchive genera archivos de Fuentes para el árbol de\n" +#~ ".dscs. Puede usarse la opción --source-override para especificar un\n" +#~ "fichero de predominio fuente.\n" +#~ "\n" +#~ "Las órdenes 'packages' y 'sources' se deben de ejecutar en la raíz del\n" +#~ "árbol. BinaryPath debe de apuntar a la base del archivo de búsqueda\n" +#~ "recursiva, y el archivo de predominio debe contener banderas de\n" +#~ "predominio. Pathprefix se agregado a los campos del nombre del archivo\n" +#~ "si están presentes. Ejemplo de uso tomado de los archivos de Debian:\n" +#~ " apt-ftparchive packages dists/potato/main/binary-i386/ > \\\\\n" +#~ " dists/potato/main/binary-i386/Packages\n" + +#~ msgid "W: Unable to read directory " +#~ msgstr "A: No se pudo leer directorio " + +#~ msgid "W: Unable to stat " +#~ msgstr "A: No se pudo leer " + +#~ msgid "E: Errors apply to file '" +#~ msgstr "E: Errores aplicables al archivo '" + +#~ msgid " DeLink limit of " +#~ msgstr " DeLink límite de" + +#~ msgid " has no override entry" +#~ msgstr " no tiene entrada de predominio" + +#~ msgid " maintainer is " +#~ msgstr " el encargado es " diff --git a/po/eu.po b/po/eu.po new file mode 100644 index 0000000..568305d --- /dev/null +++ b/po/eu.po @@ -0,0 +1,2772 @@ +# translation of apt_po_eu.po to librezale +# This file is put in the public domain. +# +# Hizkuntza Politikarako Sailburuordetza , 2005. +# Piarres Beobide , 2005, 2006. +msgid "" +msgstr "" +"Project-Id-Version: apt_po_eu\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-09-27 13:59+0200\n" +"Last-Translator: Piarres Beobide \n" +"Language-Team: librezale \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "%s paketeak (%s bertsioa) mendekotasun-arazo bat du:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Ezin da %s paketea lokalizatu" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Pakete Izenak Guztira : " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Pakete normalak:" + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Pakete birtual puruak:" + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Bakanako pakete birtualak: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Nahastutako pakete birtualak: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Falta direnak: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Bertsio Ezberdinak Guztira: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Dependentziak Guztira: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Guztira Bertsio/fitxategi erlazioak: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Guztira Saltzaile Mapatzea: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Guztira beteratutakokateak: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Guztira bertsio dependentzi lekua: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Guztira galdutako tokia:" + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Guztira erregitratutako lekua: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "%s pakete-fitxategia ez dago sinkronizatuta." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Zehazki eredu bat eman behar duzu." + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Ez da paketerik aurkitu" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Pakete Fitxatefiak:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "" +"Cachea ez dago sinkronizatuta, ezin zaio erreferentziarik (x-ref) egin " +"pakete-fitxategi bati" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Pin duten Paketeak:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(ez da aurkitu)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Instalatuta: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(bat ere ez)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Hautagaia: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Paketearen pin-a:" + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Bertsio tabla:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s (%s %s) konpilatua: %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Erabilera: apt-cache [aukerak] komandoa\n" +" apt-cache [aukerak] add fitxategia1 [fitxategia2 ...]\n" +" apt-cache [aukerak] showpkg pak1 [pak2 ...]\n" +" apt-cache [aukerak] showsrc pak1 [pak2 ...]\n" +"\n" +"APTren cache-fitxategi bitarrak manipulatzeko eta kontsultatzeko erabiltzen\n" +"den behe-mailako tresna bat da, apt-cache.\n" +"Komandoak:\n" +" add - Pakete-fitxategi bat gehitzen du iturburuko cachean\n" +" gencaches - Bi cacheak sortzen ditu: paketeena eta iturburuena\n" +" showpkg - Pakete baten informazio orokorra erakusten du\n" +" showsrc - Iturburu-erregistroak erakusten ditu\n" +" stats - Oinarrizko estatistika batzuk erakusten ditu\n" +" dump - Fitxategi osoa erakusten du formatu laburrean\n" +" dumpavail - Fitxategi erabilgarri bat irteera estandarrean inprimatu\n" +" unmet - Bete gabeko mendekotasunak erakusten ditu\n" +" search - Adierazpen erregularrak bilatzen ditu pakete-zerrendan \n" +" show - Paketearen erregistro irakurgarri bat erakusten du\n" +" depends - Pakete baten mendekotasunak erakusten ditu\n" +" rdepends - Pakete baten mendekotasun alderantzikatuak erakusten ditu\n" +" pkgnames - Pakete guztien izenak zerrendatzen ditu\n" +" dotty - GraphVis-ekin erabiltzeko pakete-grafikoak sortzen ditu\n" +" xvcg - xvcg-ekin erabiltzeko pakete-grafikoak sortzen ditu\n" +" policy - Gidalerroen ezarpenak erakusten ditu\n" +"\n" +"Aukerak:\n" +" -h Laguntza-testu hau.\n" +" -p=? Paketearen cachea.\n" +" -s=? Iturburuaren cachea.\n" +" -q Desgaitu progresio-adierazlea.\n" +" -i Mendekotasun nagusiak soilik erakutsi.\n" +" -c=? Irakurri konfigurazio-fitxategi hau\n" +" -o=? Ezarri konfigurazio-aukera arbitrario bat. Adib.: -o dir::cache=/tmp\n" +"Informazio gehiago nahi izanez gero: ikus apt-cache(8) eta apt.conf(5).\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "" +"Mesedez idatzi izen bat diska honentzat, 'Debian 2.1r1 1 Diska' antzerakoan" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Mesedez sa diska bat gailuan eta enter sakatu" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Prozesu hau bildumako beste CD guztiekin errepikatu." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Parekatu gabeko argumentuak" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Erabilera: apt-config [aukerak] komandoa\n" +"\n" +"apt-config APT konfigurazio-fitxategia irakurtzeko tresna soil bat da\n" +"\n" +"Komandoak:\n" +" shell - Shell modua\n" +" dump - Konfigurazioa erakusten du\n" +"\n" +"Aukerak:\n" +" -h Laguntza-testu hau.\n" +" -c=? Irakurri konfigurazio-fitxategi hau\n" +" -o=? Ezarri konfigurazio-aukera arbitrario bat. Adib.: -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s ez da baliozko DEB pakete bat." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Erabilera: apt-extracttemplates fitxategia1 [fitxategia2 ...]\n" +"\n" +"apt-extracttemplates debian-eko paketeen konfigurazioaren eta txantiloien\n" +"informazioa ateratzeko tresna bat da\n" +"\n" +"Aukerak:\n" +" -h Laguntza-testu hau\n" +" -t Ezarri aldi baterako direktorioa\n" +" -c=? Irakurri konfigurazio-fitxategi hau\n" +" -o=? Ezarri konfigurazio-aukera arbitrario bat. Adib.: -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "%s : ezin da idatzi" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Ezin da debconf bertsioa eskuratu. Debconf instalatuta dago?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Pakete-luzapenen zerrenda luzeegia da" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Errorea direktorioa prozesatzean %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Iturburu-luzapenen zerrenda luzeegia da" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Errorea eduki-fitxategiaren goiburua idaztean" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Errorea edukiak prozesatzean %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Erabilera: apt-ftparchive [aukerak] komandoa\n" +"Komandoak: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive Debian artxiboen indizeak sortzeko erabiltzen da. Sortzeko \n" +"estilo asko onartzen ditu, erabat automatizatuak nahiz ordezte funtzionalak\n" +"'dpkg-scanpackages' eta 'dpkg-scansources'erako\n" +"Package izeneko fitxategiak sortzen ditu .deb fitxategien zuhaitz batetik.\n" +"Package fitxategiak pakete bakoitzaren kontrol-eremu guztiak izaten ditu,\n" +"MD5 hash balioa eta fitxategi-tamaina barne. Override fitxategia erabiltzen\n" +"da lehentasunearen eta sekzioaren balioak behartzeko.\n" +"\n" +"Era berean, iturburu-fitxategiak ere sortzen ditu .dsc fitxategien\n" +"zuhaitzetik. --source-override aukera erabil daiteke src override \n" +"fitxategi bat zehazteko.\n" +"'packages' eta 'sources' komandoa zuhaitzaren erroan exekutatu behar dira.\n" +"BinaryPath-ek bilaketa errekurtsiboaren oinarria seinalatu behar du, eta\n" +"override fitxategiak override banderak izan behar ditu. Pathprefix \n" +"fitxategi-izenen eremuei eransten zaie (halakorik badago). Hona hemen\n" +"Debian artxiboko erabilera-adibide bat:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Aukerak:\n" +" -h Laguntza-testu hau\n" +" --md5 Kontrolatu MD5 sortzea\n" +" -s=? Iturburuaren override fitxategia\n" +" -q Isilik\n" +" -d=? Hautatu aukerako cachearen datu-basea\n" +" --no-delink Gaitu delink arazketa-modua\n" +" --contents Kontrolatu eduki-fitxategia sortzea\n" +" -c=? Irakurri konfigurazio-fitxategi hau\n" +" -o=? Ezarri konfigurazio-aukera arbitrario bat" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Ez dago bat datorren hautapenik" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Fitxategi batzuk falta dira `%s' pakete-fitxategien taldean" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "Datu-basea hondatuta dago; fitxategiari %s.old izena jarri zaio" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "Datu-basea zaharra da; %s bertsio-berritzen saiatzen ari da" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"DB formatu baliogabe da. Apt bertsio zaharrago batetik eguneratu baduzu, " +"mesedez datubasea ezabatu eta birsortu." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Ezin da ireki %s datu-base fitxategia: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Huts egin du %s(e)tik datuak lortzean" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Artxiboak ez du kontrol-erregistrorik" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Ezin da kurtsorerik eskuratu" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "A: Ezin da %s direktorioa irakurri\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "A: Ezin da %s atzitu\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "A: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E: Erroreak fitxategiari dagozkio " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Huts egin du %s ebaztean" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Huts egin dute zuhaitz-urratsek" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Huts egin du %s irekitzean" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " DeLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Huts egin du %s esteka irakurtzean" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Huts egin du %s desestekatzean" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Ezin izan da %s %s(r)ekin estekatu" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " DeLink-en mugara (%sB) heldu da.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Artxiboak ez du pakete-eremurik" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s: ez du override sarrerarik\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " %s mantentzailea %s da, eta ez %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s: ez du jatorri gainidazketa sarrerarik\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s: ez du bitar gainidazketa sarrerarik\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Barne Errorea, ezin da %s atala kokatu" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Huts egin du memoria esleitzean" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Ezin da %s ireki" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Gaizki osatutako override %s, lerroa: %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Gaizki osatutako override %s, lerroa: %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Gaizki osatutako override %s, lerroa: %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Huts egin du %s override fitxategia irakurtzean" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "'%s' Kompresio Algoritmo Ezezaguna" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "%s irteera konprimituak konpresio-tresna bat behar du" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Huts egin du azpiprozesuarentzako IPC kanalizazio bat sortzean" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Huts egin du FILE* sortzean" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Huts egin du sardetzean" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Konprimatu Umeak" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Barne Errorea, Huts %s sortzerakoan" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Huts egin du IPC azpiprozesua sortzean" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Huts egin du konpresorea exekutatzean " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "deskonpresorea" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "Huts egin du azpiprozesu/fitxategiko S/Iak" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Huts egin du MD5 konputatzean" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Arazoa %s desestekatzean" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Huts egin du %s izenaren ordez %s ipintzean" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "Y" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Adierazpen erregularren konpilazio-errorea - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Ondorengo paketeetan bete gabeko mendekotasunak daude:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "baina %s instalatuta dago" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "baina %s instalatzeko dago" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "baina ez da instalagarria" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "baina pakete birtuala da" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "baina ez dago instalatuta" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "baina ez da instalatuko" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " edo" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Ondorengo pakete BERRIAK instalatuko dira:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Ondorengo paketeak KENDUKO dira:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Ondorengo paketeak mantendu egin dira:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Ondorengo paketeak BERTSIO-BERRITUKO dira:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Ondorengo paketeak AURREKO BERTSIORA itzuliko dira:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Ondorengo pakete atxikiak aldatu egingo dira:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (arrazoia: %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"KONTUZ: Ondorengo funtsezko paketeak kendu egingo dira\n" +"EZ ezazu horelakorik egin, ez badakizu ondo zertan ari zaren!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu bertsio-berrituta, %lu berriki instalatuta, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu berrinstalatuta, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu aurreko bertsiora itzulita, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu kentzeko, eta %lu bertsio-berritu gabe.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu ez erabat instalatuta edo kenduta.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Mendekotasunak zuzentzen..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " : huts egin du." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Ezin dira mendekotasunak zuzendu" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Ezin da bertsio-berritzeko multzoa minimizatu" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Eginda" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "Beharbada `apt-get -f install' exekutatu nahiko duzu zuzentzeko." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Bete gabeko mendekotasunak. Probatu -f erabiliz." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "KONTUZ: Hurrengo paketeak ezin dira egiaztatu!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Egiaztapen abisua gainidazten.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Paketeak egiaztapen gabe instalatu [b/E]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Zenbait pakete ezin dira egiaztatu" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Arazoak daude, eta -y erabili da --force-yes gabe" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "Barne errorea, InstallPackages apurturiko paketeez deitu da!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Paketeak ezabatu beharra dute bain Ezabatzea ezgaiturik dago." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Barne errorea, ez da ordenatzeaz amaitu" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Ezin da deskarga-direktorioa blokeatu" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "Ezin izan da iturburu-zerrenda irakurri." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"Hau bitxia.. Tamainak ez dira berdina, idatzi apt@packages.debian.org-ra " +"berri emanez (ingelesez)" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Artxiboetako %sB/%sB eskuratu behar dira.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Artxiboetako %sB eskuratu behar dira.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "Deskonprimitu ondoren, %sB gehiago erabiliko dira diskoan.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Deskonprimitu ondoren, %sB libratuko dira diskoan.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Ezin da %s(e)n duzun leku librea atzeman." + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Ez daukazu nahikoa leku libre %s(e)n." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "'Trivial Only' zehaztu da, baina hau ez da eragiketa tribial bat." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Bai, egin esandakoa!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Egin nahi duzunak kalte larriak eragin ditzake\n" +"Jarratzeko, idatzi '%s' esaldia\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Abortatu." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Aurrera jarraitu nahi al duzu [B/e]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Ezin da lortu %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Fitxategi batzuk ezin izan dira deskargatu" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Deskarga amaituta eta deskarga soileko moduan" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Ezin izan dira artxibo batzuk lortu; beharbada apt-get update exekutatu, edo " +"--fix-missing aukerarekin saiatu?" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing eta euskarri-aldaketa ez dira onartzen oraingoz" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Falta diren paketeak ezin dira zuzendu." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Abortatu instalazioa." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Oharra, %s hautatzen %s(r)en ordez\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "%s saltatzen. Instalatuta dago, eta ez dago bertsio-berritzerik.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "%s paketea ez dago instalatuta, eta, beraz, ez da kenduko\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "%s pakete birtual bat da, honek hornitua:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Instalatuta]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Zehazki bat hautatu behar duzu instalatzeko." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"%s paketea ez dago erabilgarri, baina beste pakete batek erreferentzia \n" +"egiten dio. Beharbada paketea faltako da, edo zaharkituta egongo da, edo \n" +"beste iturburu batean bakarrik egongo da erabilgarri\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Baina ondorengo paketeek ordezten dute:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "%s paketeak ez du instalatzeko hautagairik" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "%s berriro instalatzea ez da posible; ezin da deskargatu.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s bertsiorik berriena da jada.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "'%2$s'(r)en '%1$s' banaketa ez da aurkitu" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "'%2$s'(r)en '%1$s' bertsioa ez da aurkitu" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Hautatutako bertsioa: %s (%s) -- %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "Eguneratzeko komandoak ez du argumenturik hartzen" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Ezin da zerrenda-direktorioa blokeatu" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Indize-fitxategi batzuk ezin izan dira deskargatu; ez ikusi egin zaie, edo " +"zaharrak erabili dira haien ordez." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Barne Errorea, AllUpgade-k zerbait apurtu du" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Ezin izan da %s paketea aurkitu" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Oharra: %s hautatzen '%s' adierazpen erregularrarentzat\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "Beharbada `apt-get -f install' exekutatu nahiko duzu hauek zuzentzeko:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Bete gabeko mendekotasunak. Probatu 'apt-get -f install' paketerik gabe (edo " +"zehaztu konponbide bat)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Pakete batzuk ezin izan dira instalatu. Beharbada ezinezko egoera \n" +"bat eskatu duzu, edo, banaketa ezegonkorra erabiltzen ari bazara,\n" +"beharrezko pakete batzuk ez ziren sortuko oraindik, edo \n" +"Sarrerakoetan (Incoming) egoten jarraituko dute." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Eragiketa soil bat eskatu duzunez, seguru asko paketea ez da instalagarria\n" +"izango, eta pakete horren errorearen berri ematea komeni da." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "Informazio honek arazoa konpontzen lagun dezake:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Hautsitako paketeak" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Ondorengo pakete gehigarriak instalatuko dira:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Iradokitako paketeak:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Gomendatutako paketeak:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Berriketak kalkulatzen... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Huts egin du" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Eginda" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "Barne Errorea, arazo konpontzaileak zerbait apurtu du" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "Gutxienez pakete bat zehaztu behar duzu iturburua lortzeko" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Ezin da iturburu-paketerik aurkitu %s(r)entzat" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Dagoeneko deskargaturiko '%s' fitxategia saltatzen\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Ez daukazu nahikoa leku libre %s(e)n." + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Iturburu-artxiboetako %sB/%sB eskuratu behar dira.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Iturburu-artxiboetako %sB eskuratu behar dira.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Eskuratu %s iturubura\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Huts egin du zenbat artxibo lortzean." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "" +"%s(e)n dagoeneko deskonprimitutako iturburua deskonprimitzea saltatzen\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Deskonprimitzeko '%s' komandoak huts egin du.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Egiaztattu 'dpkg-dev' paketea instalaturik dagoen.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Eraikitzeko '%s' komandoak huts egin du.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Prozesu umeak huts egin du" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"Gutxienez pakete bat zehaztu behar duzu eraikitze-mendekotasunak egiaztatzeko" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Ezin izan da %s(r)en eraikitze-mendekotasunen informazioa eskuratu" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s: ez du eraikitze-mendekotasunik.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"%2$s(r)en %1$s mendekotasuna ezin da bete, %3$s paketea ezin delako aurkitu" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"%2$s(r)en %1$s mendekotasuna ezin da bete, ez baitago bertsio-eskakizunak " +"betetzen dituen %3$s paketearen bertsio erabilgarririk" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Huts egin du %2$s(r)en %1$s mendekotasuna betetzean: instalatutako %3$s " +"paketea berriegia da" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Huts egin du %2$s(r)en %1$s mendekotasuna betetzean: %3$s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "%s(r)en eraikitze-mendekotasunak ezin izan dira bete." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Huts egin du eraikitze-mendekotasunak prozesatzean" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Onartutako Moduluak:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Erabilera: apt-get [aukerak] komandoa\n" +" apt-get [aukerak] install|remove pkg1 [pkg2 ...]\n" +" apt-get [aukerak] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get paketeak deskargatu eta instalatzeko komando-lerroko interfaze soil\n" +"bat da. Gehien erabiltzen diren komandoak eguneratzekoa eta instalatzekoa \n" +"dira: update eta install.\n" +"\n" +"Komandoak:\n" +" update - Eskuratu pakete-zerrenda berriak\n" +" upgrade - Egin bertsio-berritzea\n" +" install - Instalatu pakete berriak (paketea libc6 da, eta ez libc6.deb)\n" +" remove - Kendu paketeak\n" +" source - Deskargatu iturburu-artxiboak\n" +" build-dep - Konfiguratu iturburu-paketeen eraikitze-dependentziak\n" +" dist-upgrade - Banaketaren bertsio-berritzea: ikus apt-get(8)\n" +" dselect-upgrade - Jarraitu dselect hautapenak\n" +" clean - Ezabatu deskargatutako artxibo-fitxategiak\n" +" autoclean - Ezabatu deskargatutako artxibo-fitxategi zaharrak\n" +" check - Egiaztatu ez dagoela hautsitako mendekotasunik\n" +"\n" +"Aukerak:\n" +" -h Laguntza-testu hau.\n" +" -q Egunkarian erregistratzeko irteera - progresio-adierazlerik gabe\n" +" -qq Irteerarik ez, erroreentzat izan ezik\n" +" -d Deskargatu bakarrik - EZ instalatu edo deskonprimitu artxiboak\n" +" -s Ekintzarik ez. Simulazio bat egiten du\n" +" -y Galdera guztiei Bai erantzun, galdetu gabe\n" +" -f Saiatu jarraitzen, osotasun-egiaztapenak huts egiten badu\n" +" -m Saiatu jarraitzen, artxiboak ezin badira lokalizatu\n" +" -u Erakutsi bertsio-berritutako paketeen zerrenda ere\n" +" -b Sortu iturburu-paketea lortu ondoren\n" +" -V Erakutsi bertsio-zenbaki xeheak\n" +" -c=? Irakurri konfigurazio-fitxategi hau\n" +" -o=? Ezarri konfigurazio-aukera arbitrario bat. Adib.:-o dir::cache=/tmp\n" +"Informazio eta aukera gehiago nahi izanez gero, ikus apt-get(8), \n" +"sources.list(5) eta apt.conf(5) orrialdeak eskuliburuan.\n" +" APT honek Super Behiaren Ahalmenak ditu.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Atzituta " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Hartu:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ez ikusi " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Err " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Lortuta: %sB (%s) (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Lanean]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Medio Aldaketa: Mesedez sar\n" +" '%s'\n" +"izeneko diska '%s' gailuan eta enter sakatu\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Pakete-erregistro ezezaguna!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Erabilera: apt-sortpkgs [aukerak] fitxategia1 [fitxategia2...]\n" +"\n" +"apt-sortpkgs pakete-fitxategiak ordenatzeko tresna soil bat da. Zein\n" +"motatako fitxategia den adierazteko -s aukera erabiltzen da.\n" +"\n" +"Aukerak:\n" +" -h Laguntza-testu hau\n" +" -s Erabili iturburu-fitxategien ordenatzea\n" +" -c=? Irakurri konfigurazio-fitxategi hau\n" +" -o=? Ezarri konfigurazio-aukera arbitrario bat. Adib: -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Okerreko ezarpen lehenetsia!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Jarraitzeko, sakatu Sartu." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Errore batzuk gertatu dira deskonprimitzean. Konfiguratu egingo ditut" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "instalatutako paketeak. Horrek errore bikoiztuak eragin ditzake" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "edo falta diren mendekotasunen erroreak. Hori ondo dago; mezu honen" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"aurreko erroreak dira garrantzitsuak. Konpondu eta exekutatu [I]nstall " +"berriro" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Eskuragarrien datuak biltzen" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Huts egin du kanalizazioak sortzean" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Huts egin du gzip exekutatzean " + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Hondatutako artxiboa" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Tar egiaztapenak huts egin, hondatutakofitxategia" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "%u TAR goiburu-mota ezezaguna, %s kidea" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Artxibo-sinadura baliogabea" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Errorea artxiboko kidearen goiburua irakurtzean" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Artxiboko kidearen goiburua baliogabea da" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Artxiboa laburregia da" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Huts egin artxibo-goiburuak irakurtzean" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "DropNode-ri dei egin zaio oraindik estekatutako nodoan" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Huts egin du hash-elementua lokalizatzean!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Huts egin du desbideratzea lokalizatzean" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "AddDiversion-n barne errorea" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Desbideratze bat gainidazten saiatzen: %s -> %s eta %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Desbideratzearen gehitze bikoitza: %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Konfigurazio-fitxategi bikoiztua: %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Ezin izan da %s fitxategian idatzi" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Ezin izan da %s fitxategia itxi" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "%s bide-izena luzeegia da" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "%s behin baino gehiagotan deskonprimitzen" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "%s direktorioa desbideratuta dago" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "Paketea desbideratze-helburuan %s/%s idazten saiatzen ari da" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Desbideratzearen bide-izena luzeegia da" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "%s direktorioa ez-direktorio batekin ordezten ari da" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Huts egin du nodoa bere hash-ontzian lokalizatzean" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Bide-izena luzeegia da" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Gainidatzi pakete-konkordantzia %s(r)en bertsiorik gabe" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "%s/%s fitxategiak %s paketekoa gainidazten du" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Ezin da %s irakurri" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Ezin da daturik lortu %s(e)tik" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Huts egin du %s kentzean" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Ezin da %s sortu" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Huts egin du %sinfo-tik datuak lortzean" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "info eta temp direktorioek fitxategi-sistema berean egon behar dute" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Pakete Zerrenda irakurtzen" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Huts egin du %sinfo administrazio-direktoriora aldatzean" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Barne errorea pakete Izen bat eskuratzerakoan" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Fitxategi zerrendaketa irakurtzen" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Huts egin du '%sinfo/%s' zerrenda-fitxategia irekitzean. Fitxategi hori ezin " +"baduzu leheneratu, hustu ezazu, eta berrinstalatu berehala paketearen " +"bertsio bera!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Huts egin du %sinfo/%s zerrenda-fitxategia irakurtzean" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Barne errorea nodo bat eskuratzerakoan" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Huts egin du desbideratzeen %sdiversions fitxategia irekitzean" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Desbideratze-fitxategia hondatuta dago" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Lerro baliogabea desbideratze-fitxategian: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Barne errorea desbideratze bat gehitzean" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "Paketearen cachea hasieratu behar da lehendabizi" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Ezin izan da pakete bat aurkitu: Burua, mugitu %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Okerreko ConfFile sekzioa egoera-fitxategian. Desplazamendua %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Errorea MD5 analizatzean. Desplazamendua %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Ez da baliozko DEB artxiboa; '%s' kidea falta da" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "" +"Hau ez da balioz DEB fitxategi bat, ez du ez '%s' ez '%s' atalik falta du" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Ezin izan da %s(e)ra aldatu" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Barne Errorea, ezin da atala kokatu" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Ezin izan da baliozko kontrol-fitxategi bat lokalizatu" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Kontrol fitxategi ezin analizagarria" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Ezin da cdrom-eko %s datu-basea irakurri" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Mesedez erabili apt-cdrom APT-k CD hau ezagutu dezan.\n" +"apt-get update ezin da erabili CD berriak gehitzeko" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "CD okerra" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "" +"Ezin izan da %s(e)ko CD-ROMa desmuntatu; beharbada erabiltzen ariko da." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Ez da diska aurkitu" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Ez da fitxategia aurkitu" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Huts egin du atzitzean" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Huts egin du aldaketa-ordua ezartzean" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "URI baliogabea. URI lokalek ezin dute // eduki hasieran" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Sartzen" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Ezin izan da peer edo parekoaren izena zehaztu" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Ezin izan da izen lokala zehaztu" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Zerbitzariak gure konexioa ukatu eta hau esan du: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "USERek huts egin du, eta zerbitzariak hau esan du: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "PASSek huts egin du, eta zerbitzariak hau esan du: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Proxy zerbitzari bat zehaztu da, baina sarrerako script-ik ez. Acquire::ftp::" +"ProxyLogin hutsik dago." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "" +"Sarrerako script-eko '%s' komandoak huts egin du, eta zerbitzariak hau esan " +"du: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "TYPEk huts egin du, eta zerbitzariak hau esan du: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Konexioaren denbora-muga" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Zerbitzariak konexioa itxi du" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Irakurketa-errorea" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Erantzun batek bufferrari gainez eragin dio." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Protokolo-hondatzea" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Idazketa-errorea" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Ezin izan da socket-a sortu" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "" +"Ezin izan da datu-socketa konektatu; konexioak denbora-muga gainditu du" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Ezin izan da socket pasibora konektatu." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo-k ezin izan du socket entzule bat eskuratu" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Ezin izan da socket bat lotu" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Ezin izan da socket-ean entzun" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Ezin izan da socket-aren izena zehaztu" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Ezin da PORT komandoa bidali" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Helbide-familia baliogabea: %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRTek huts egin du, eta zerbitzariak hau esan du: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Datu-socket konexioak denbora-muga gainditu du" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Ezin da konexioa onartu" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Arazoa fitxategiaren hash egitean" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Ezin da fitxategia lortu; zerbitzariak hau esan du: '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Datu-socketak denbora-muga gainditu du" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Datu-transferentziak huts egin du, eta zerbitzariak hau esan du: '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Kontsulta" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Ezin da deitu " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Konektatzen -> %s.(%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Ezin izan da socket-ik sortu honentzat: %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Ezin izan da konexioa hasi -> %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "" +"Ezin izan da konektatu -> %s:%s (%s). Konexioak denbora-muga gainditu du" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Ezin izan da konektatu -> %s:%s (%s)" + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Konektatzen -> %s..." + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Ezin izan da '%s' ebatzi" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Aldi baterako akatsa '%s' ebaztean" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Zerbait arraroa pasatu da '%s:%s' (%i) ebaztean" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Ezin da konektatu -> %s %s:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Ezin da eraztuna ebatzi: '%s'" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "E: Acquire::gpgv::Options arguimentu zerrenda luzeegia. Uzten." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "Barne errorea: Sinadura zuzena, baina ezin da egiaztapen marka zehaztu" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Beintza sinadura baliogabe bat aurkitu da." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" +"Ezin da %s abiarazi sinadura egiaztatzeko (gnupg instalaturik al dago?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Errore ezezaguna gpgv exekutatzean" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "Ondorengo sinadurak baliogabeak dira:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"Ondorengo sinadurak ezin dira egiaztatu gako publikoa ez bait dago " +"eskuragarri:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Ezin izan da %s(r)en kanalizazioa ireki" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Irakurri errorea %s prozesutik" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Goiburuen zain" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Goiburu-lerro bakarra eskuratu da %u karaktereen gainean" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Okerreko goiburu-lerroa" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "http zerbitzariak erantzun-buru baliogabe bat bidali du." + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "http zerbitzariak Content-Length buru baliogabe bat bidali du" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "http zerbitzariak Content-Range buru baliogabe bat bidali du" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "http zerbitzariak barruti onarpena apurturik du" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Datu-formatu ezezaguna" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Hautapenak huts egin du" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Konexioaren denbora-muga gainditu da" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Errorea irteerako fitxategian idaztean" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Errorea fitxategian idaztean" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Errorea fitxategian idaztean" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "Errorea zerbitzaritik irakurtzen Urrunetik amaitutako konexio itxiera" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Errorea zerbitzaritik irakurtzean" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Goiburu data gaizki dago" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Konexioak huts egin du" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Barne-errorea" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Ezin da fitxategi huts baten mmap egin" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Ezin izan da %lu byteren mmap egin" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "%s hautapena ez da aurkitu" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Mota ezezaguneko laburtzapena: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "%s konfigurazio-fitxategia irekitzen" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "%d lerroa luzeegia da (gehienez %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Sintaxi-errorea, %s:%u: Blokearen hasieran ez dago izenik." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Sintasi errorea %s:%u: Gaizki eratutako" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Sintaxi-errorea, %s:%u: Zabor gehigarria balioaren ondoren" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "Sintaxi-errorea, %s:%u: Direktibak goi-mailan bakarrik egin daitezke" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Sintaxi-errorea, %s:%u: habiaratutako elementu gehiegi" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Sintaxi-errorea, %s:%u: hemendik barne hartuta" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Sintaxi-errorea, %s:%u: onartu gabeko '%s' direktiba" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Sintaxi-errorea, %s:%u: Zabor gehigarria fitxategi-amaieran" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Errorea!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Eginda" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Ez da ezagutzen komando-lerroko '%c' aukera [%s]." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Ez da ulertzen komando-lerroko %s aukera" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Komando-lerroko %s aukera ez da boolearra." + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "%s aukerak argumentu bat behar du." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "" +"%s aukera: konfigurazio-elementuaren zehaztapenak = eduki behar du." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "%s aukerak osoko argumentu bat behar du, eta ez '%s'" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "'%s' aukera luzeegia da" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "%s zentzua ez da ulertzen; probatu egiazkoa edo faltsua." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Eragiketa baliogabea: %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Ezin da atzitu %s muntatze-puntua" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Ezin da %s(e)ra aldatu" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Huts egin du CDROMa atzitzean" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "" +"Ez da blokeorik erabiltzen ari irakurtzeko soilik den %s blokeo-" +"fitxategiarentzat" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Ezin izan da %s blokeo-fitxategia ireki" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "" +"Ez da blokeorik erabiltzen ari nfs %s muntatutako blokeo-fitxategiarentzat" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Ezin izan da %s blokeoa hartu" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "%s espero zen baina ez zegoen han" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "%s azpiprozesuak segmentazio-hutsegitea jaso du." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "%s azpiprozesuak errore-kode bat itzuli du (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "%s azpiprozesua ustekabean amaitu da" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "%s fitxategia ezin izan da ireki" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "irakurrita; oraindik %lu irakurtzeke, baina ez da ezer geratzen" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "idatzita; oraindik %lu idazteke, baina ezin da" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Arazoa fitxategia ixtean" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Arazoa fitxategia desestekatzean" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Arazoa fitxategia sinkronizatzean" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Paketeen cachea hutsik" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Paketeen cache-fitxategia hondatuta dago" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Paketeen cache-fitxategiaren bertsioa ez da bateragarria" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "APT honek ez du '%s' bertsio sistema onartzen" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "Paketeen cachea beste arkitektura batentzat sortuta dago" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Mendekotasuna:" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Aurremendekotasuna:" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Iradokizuna:" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Gomendioa:" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Gatazka:" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Ordeztea:" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Zaharkitzea:" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "garrantzitsua" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "beharrezkoa" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "estandarra" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "aukerakoa" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "estra" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Dependentzia zuhaitza eraikitzen" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Hautagaien bertsioak" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Dependentzi Sormena" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Ezin da %s pakete-fitxategia analizatu (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Ezin da %s pakete-fitxategia analizatu (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Gaizki osatutako %lu lerroa %s iturburu-zerrendan (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Gaizki osatutako %lu lerroa %s iturburu-zerrendan (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Gaizki osatutako %lu lerroa %s iturburu-zerrendan (URI analisia)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Gaizkieratutako %lu lerroa %s iturburu zerrendan (banaketa orokorra)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Gaizki osatutako %lu lerroa %s iturburu-zerrendan (dist analisia)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "%s irekitzen" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "%2$s iturburu-zerrendako %1$u lerroa luzeegia da." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Gaizki osatutako %u lerroa %s iturburu-zerrendan (type)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "'%s' mota ez da ezagutzen %u lerroan %s iturburu-zerrendan" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Gaizki osatutako %u lerroa %s iturburu-zerrendan (hornitzaile id-a)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Instalazio hau exekutatzeko, funtsezko %s paketea aldi baterako kendu behar " +"da, Gatazka/Aurre-mendekotasun begizta baten ondorioz. Normalean arriskutsua " +"izaten da, baina hala ere egin nahi baduzu, aktibatu APT::Force-LoopBreak " +"aukera." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "'%s' motako indize-fitxategirik ez da onartzen" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"%s paketea berriro instalatu behar da, baina ezin dut artxiborik aurkitu." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Errorea: pkgProblemResolver::Resolve. Etenak sortu ditu, beharbada " +"atxikitako paketeek eraginda." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "Ezin dira arazoak konpondu; hautsitako paketeak atxiki dituzu." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "%spartial zerrenda-direktorioa falta da." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "%spartial artxibo-direktorioa falta da." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "%li fitxategi deskargatzen %li -tik (%s falta da)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "%li fitxategia jasotzen %li-tik" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Ezin izan da %s metodo-kontrolatzailea aurkitu." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "%s metodoa ez da behar bezala abiarazi" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "Mesedez sa ''%s' izeneko diska '%s' gailuan eta enter sakatu" + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "'%s' pakete-sistema ez da onartzen" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Ezin da pakete-sistemaren mota egokirik zehaztu" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Ezin da %s atzitu." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "'Iturburu' URI batzuk jarri behar dituzu sources.list-en" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "Pakete-zerrendak edo egoera-fitxategia ezin dira analizatu edo ireki." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "Beharbada 'apt-get update' exekutatu nahiko duzu arazoak konpontzeko" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Erregistro baliogabea hobespenen fitxategian, pakete-goibururik ez" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Ez da ulertu %s orratz-mota (pin)" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Ez da lehentasunik zehaztu orratzarentzat (pin) (edo zero da)" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Cachearen bertsio-sistema ez da bateragarria" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Errorea gertatu da %s prozesatzean (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Errorea gertatu da %s prozesatzean (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Errorea gertatu da %s prozesatzean (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Errorea gertatu da %s prozesatzean (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Errorea gertatu da %s prozesatzean (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Errorea gertatu da %s prozesatzean (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Errorea gertatu da %s prozesatzean (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "APT honek maneia dezakeen pakete-izenen kopurua gainditu duzu." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "APT honek maneia dezakeen bertsio-kopurua gainditu duzu." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "APT honek maneia dezakeen mendekotasun-kopurua gainditu duzu." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Errorea gertatu da %s prozesatzean (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Errorea gertatu da %s prozesatzean (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "%s %s paketea ez da aurkitu fitxategi-mendekotasunak prozesatzean" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Ezin da atzitu %s iturburu-paketeen zerrenda" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Fitxategi-erreferentziak biltzen" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "S/I errorea iturburu-cachea gordetzean" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "huts egin du izen-aldaketak, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "MD5Sum ez dator bat" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "Hurrengo gako ID hauentzat ez dago gako publiko eskuragarririk:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Ezin izan dut %s paketeko fitxategi bat lokalizatu. Beharbada eskuz konpondu " +"beharko duzu paketea. (arkitektura falta delako)" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Ezin izan dut %s paketeko fitxategi bat lokalizatu. Beharbada eskuz konpondu " +"beharko duzu paketea." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"Paketearen indize-fitxategiak hondatuta daude. 'Filename:' eremurik ez %s " +"paketearentzat." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Tamaina ez dator bat" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "%s saltzaile blokeak ez du egiaztapen markarik" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"%s CD-ROM muntatze puntua erabiltzen\n" +"CD-ROM-a muntatzen\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Egiaztatzen... " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Gordetako Etiketa: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "%s CD-ROM muntatze puntua erabiltzen\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "CD-ROM-a desmuntatzen\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Diska itxaroten...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "CD-ROM-a muntatzen...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Indize fitxategien bila diska arakatzen...\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "%i pakete indize, %i jatorri indize eta %i sinadura aurkitu dira\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Hau ez baliozko izen bat, froga berriro.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Diskaren izen:\n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Pakete zerrendak kopiatzen..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "jatorri zerrenda berria idazten\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Diskarentzako jaotrri sarrerak:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "CD-ROM Desmuntatzen..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "%i erregistro grabaturik.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "%i erregistro eta %i galdutako fitxategi grabaturik.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "%i erregistro eta %i okerreko fitxategi grabaturik.\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" +"%i erregistro, %i galdutako fitxategi eta %i okerreko fitxategi grabaturik.\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "%s prestatzen" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "%s irekitzen" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "%s konfiguratzeko prestatzen" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "%s konfiguratzen" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "%s Instalatuta" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "%s kentzeko prestatzen" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "%s kentzen" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "%s kendurik" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "%s guztiz ezabatzeko prestatzen" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "%s guztiz ezabatu da" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "%s fitxategia ezin izan da ireki" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Konexioa behar baino lehenago itxi da" diff --git a/po/fi.po b/po/fi.po new file mode 100644 index 0000000..03aed80 --- /dev/null +++ b/po/fi.po @@ -0,0 +1,2780 @@ +# translation of fi.po to Finnish +# Finnish translation of apt. +# This file is put in the public domain. +# Tapio Lehtonen , 2004-2006. +# +# +msgid "" +msgstr "" +"Project-Id-Version: apt 0.5.26\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-09-29 16:06+0300\n" +"Last-Translator: Tapio Lehtonen \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Paketin %s versiossa %s on tyydyttämätön riippuvuus:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Pakettia %s ei löydy" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Pakettien kokonaismäärä : " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Tavallisia paketteja: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Aitoja näennäispaketteja: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Yksinkertaisia näennäispaketteja: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Sekanäennäispaketteja: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Puuttuu: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Eri versioita yhteensä: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Riippuvuuksia yhteensä: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Versio/tdsto suhteita yht: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Tarjoamiskuvauksia yhteensä: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Erilaisia merkkijonoja yhteensä: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Versioriippuvuustila yhteensä: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Löysää tilaa yhteensä: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Käytetty tila yhteensä: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Pakettitiedosto %s ei ole ajan tasalla." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "On annettava täsmälleen yksi lauseke" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Yhtään pakettia ei löytynyt" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Pakettitiedostot:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "Varasto ei ole ajan tasalla, pakettitiedostoa ei löydy kansiosta" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Paketit joissa tunniste:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(ei löydy)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Asennettu: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(ei mitään)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Ehdokas: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Paketin tunnistenumero: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Versiotaulukko:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s laitealustalle %s %s käännöksen päiväys %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Käyttö : apt-cache [valitsimet] komento\n" +" apt-cache [valitsimet] add tdsto1 [tdsto2 ...]\n" +" apt-cache [valitsimet] showpkg pkt1 [pkt2 ...]\n" +" apt-cache [valitsimet] showsrc pkt1 [pkt2 ...]\n" +"\n" +"apt-cache on alemman tason työkalu APT:n konekielisten\n" +"välimuistitiedostojen käsittelyyn ja tutkimiseen\n" +"Komennot:\n" +" add - Lisää paketti lähdevälimuistiin\n" +" gencaches - Tee sekä pakettivarasto että lähdevälimuisti\n" +" showpkg - Näytä joitain perustietoja yhdestä paketista\n" +" showsrc - Näytä lähdetietueet\n" +" stats - Näytä joitain perustilastoja\n" +" dump - Näytä koko tiedosto suppeassa muodossa\n" +" dumpavail - Tulosta saatavissa olevien luettelo oletustulosteeseen\n" +" unmet - Näytä tyydyttymättömät riippuvuudet\n" +" search - Etsi pakettiluettelosta säännöllisellä lausekkeella\n" +" show - Näytä paketin tietue luettavassa muodossa\n" +" depends - Näytä paketin riippuvuustiedot käsittelemättömässä muodossa\n" +" rdepends - Näytä paketin käänteiset riippuvuudet\n" +" pkgnames - Luettele kaikkien pakettien nimet\n" +" dotty - Tee paketeista graafit GraphVis-muodossa\n" +" xvcg - Tee paketeista graafit xvcg-muodossa\n" +" policy - Näytä mistä asennuspaketteja haetaan\n" +"\n" +"Valitsimet:\n" +" -h Tämä ohje\n" +" -p=? Pakettivarasto\n" +" -s=? Lähdevälimuisti\n" +" -q Poista edistymisen ilmaisin\n" +" -i Näytä vain tärkeät riippuvuudet unmet-komennossa\n" +" -c=? Lue tämä asetustiedosto\n" +" -o=? Aseta mikä asetusvalitsin tahansa, esim. -o dir::cache=/tmp\n" +"Lisätietoja apt-cache(8) ja apt.conf(5) käsikirjasivuilla.\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "Kirjoita levylle nimi, kuten \"Debian 2.1r1 Levy 1\"" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Aseta levy asemaan ja paina Enter" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Toista tämä lopuille rompuille kasassasi." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Parametrit eivät ole pareittain" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Käyttö: apt-config [valitsimet] komento\n" +"\n" +"apt-config on yksinkertainen työkalu APT:n asetustiedoston lukemiseen\n" +"\n" +"Komennot:\n" +" shell - Muista ohjelmista käytettäväksi\n" +" dump - Näytä asetukset\n" +"\n" +"Valitsimet:\n" +" -h Tämä ohje\n" +" -c=? Lue tämä asetustiedosto\n" +" -o=? Aseta mikä asetusvalitsin tahansa, esim. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s ei kelpaa DEB-paketiksi." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Käyttö: apt-extracttemplates tdsto1 [tdsto2 ...]\n" +"\n" +"apt-extracttemplates on työkalu asetus- ja mallitietojen \n" +"poimintaan debian-paketeista\n" +"\n" +"Valitsimet:\n" +" -h Tämä ohje\n" +" -t Aseta väliaikaisten tiedostojen kansio\n" +" -c=? Lue tämä asetustiedosto\n" +" -o=? Aseta mikä asetusvalitsin tahansa, esim. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Tiedostoon %s kirjoittaminen ei onnistu" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Ohjelman debconf versiota ei saa selvitettyä. Onko debconf asennettu?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Paketin laajennuslista on liian pitkä" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Tapahtui virhe käsiteltäessa kansiota %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Lähteiden laajennuslista on liian pitkä" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "" +"Tapahtui virhe kirjoitettaessa otsikkotietoa sisällysluettelotiedostoon" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Tapahtui virhe käsiteltäessä sisällysluetteloa %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Käyttö: apt-ftparchive [valitsimet] komento\n" +"Komennot: packages binääripolku [poikkeustdsto [polun alku]]\n" +" sources lähdepolku [poikkeustdsto [polun alku]]\n" +" contents polku\n" +" release polku\n" +" generate asetukset [ryhmät]\n" +" clean asetukset\n" +"\n" +"apt-ftparchive tuottaa hakemistoja Debianin arkistoista. Monta " +"tuottamistapaa\n" +"on tuettu alkaen täysin automaattisista toiminnallisesti samoihin kuin\n" +"dpkg-scanpackages ja dpkg-scansources.\n" +"\n" +"apt-ftparchive tuottaa pakettitiedostoja .deb-tiedostojen puusta.\n" +"Pakettitiedostossa on kunkin paketin kaikkien ohjauskenttien\n" +"sisältö sekä MD5 tiiviste ja tiedoston koko. Poikkeus-\n" +"tiedostolla voidaan arvot Priority ja Section pakottaa halutuiksi.\n" +"\n" +"Samaan tapaan apt-ftparchive tuottaa lähdetiedostoja\n" +".dscs-tiedostojen puusta. Valitsimella --source-overrride voidaan\n" +"määrittää lähteiden poikkeustiedosto.\n" +"\n" +"Komennot \"packages\" ja \"sources\" olisi suoritettava puun juuressa.\n" +"Binääripolun olisi osoitettava rekursiivisen haun alkukohtaan ja\n" +"poikkeustiedostossa olisi oltava poikkeusilmaisimet. Polun alku\n" +"yhdistetään tiedoston nimeen jos se on annettu. Esimerkki\n" +"käytöstä Debianin arkiston kanssa:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Valitsimet:\n" +" -h Tämä ohje\n" +" --md5 MD5 luonti\n" +" -s=? Lähteiden poikkeustdosto\n" +" -q Ei tulostusta\n" +" -d=? Valinnainen välimuistitietokanta\n" +" --no-delink delinking-virheenjäljitys päälle\n" +" --contents Sisällysluettelotiedoston luonti\n" +" -c=? Lue tämä asetustiedosto\n" +" -o=? Aseta mikä asetusvalitsin tahansa" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Mitkään valinnat eivät täsmänneet" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Pakettitiedostojen ryhmästä \"%s\" puuttuu joitain tiedostoja" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "Tietokanta on turmeltunut, tiedosto nimetty %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "Tietokanta on vanha, yritetään päivittää %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"Tietokannan muoto ei kelpaa. Jos tehtiin päivitys vanhasta apt:n versiosta, " +"on tietokanta poistettava ja luotava uudelleen." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Tietokantatiedostoa %s ei saatu avattua: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Tiedostolle %s ei toimi stat" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Arkistolla ei ole ohjaustietuetta" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Kohdistinta ei saada" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: Kansiota %s ei voi lukea\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "W: Tdstolle %s ei toimi stat\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E: Tiedostossa virheitä " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Osoitteen %s selvitys ei onnistunut" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Puun läpikäynti ei onnistunut" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Tiedoston %s avaaminen ei onnistunut" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " DeLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "readlink %s ei onnistunut" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "unlink %s ei onnistunut" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Linkin %s -> %s luonti ei onnistunut" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " DeLinkin yläraja %st saavutettu.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Arkistossa ei ollut pakettikenttää" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s:llä ei ole poikkeustietuetta\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " %s ylläpitäjä on %s eikä %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s:llä ei ole poikkeustietuetta\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s:llä ei ole binääristäkään poikkeustietuetta\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Tapahtui sisäinen virhe, tiedostoa %s ei löydy" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Muistin varaaminen ei onnistunut" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Tiedoston %s avaaminen ei onnistunut" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Väärän muotoinen poikkeus %s rivi %lu n:ro 1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Väärän muotoinen poikkeus %s rivi %lu n:ro 2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Väärän muotoinen poikkeus %s rivi %lu n:ro 3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Poikkeustiedoston %s lukeminen ei onnistunut" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Tuntematon pakkausalgoritmi \"%s\"" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Pakattu tulostus %s tarvitsee pakkausjoukon" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "IPC-putken luominen aliprosessiin ei onnistunut" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "FILE* luominen ei onnistunut" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "fork ei onnistunut" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Compress-lapsiprosessi" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Sisäinen virhe, prosessin %s luominen ei onnistunut" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Prosessien välistä kommunikaatiota aliprosessiin ei saatu luotua" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Pakkaajan käynnistäminen ei onnistunut" + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "purkaja" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "Syöttö/tulostus aliprosessiin/tiedostoon ei onnistunut" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Lukeminen ei onnistunut laskettaessa MD5:ttä" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Ilmeni pulmia poistettaessa tiedosto %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Nimen muuttaminen %s -> %s ei onnistunut" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "K" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Käännösvirhe lausekkeessa - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Näillä paketeilla on tyydyttämättömiä riippuvuuksia:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "mutta %s on asennettu" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "mutta %s on merkitty asennettavaksi" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "mutta ei ole asennuskelpoinen" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "mutta on näennäispaketti" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "mutta ei ole asennettu" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "mutta ei ole merkitty asennettavaksi" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " tai" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Seuraavat UUDET paketit asennetaan:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Seuraavat paketit POISTETAAN:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Nämä paketit on jätetty odottamaan:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Nämä paketit päivitetään:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Nämä paketit VARHENNETAAN:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Seuraavat pysytetyt paketit muutetaan:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (syynä %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"VAROITUS: Seuraavat välttämättömät paketit poistetaan.\n" +"Näin EI PITÄISI tehdä jos ei aivan tarkkaan tiedä mitä tekee!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu päivitetty, %lu uutta asennusta, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu uudelleen asennettua, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu varhennettua, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu poistettavaa ja %lu päivittämätöntä.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu ei asennettu kokonaan tai poistettiin.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Korjataan riippuvuuksia..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " ei onnistunut." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Riippuvuuksien korjaus ei onnistu" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Päivitysjoukon minimointi ei onnistu" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Valmis" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "Halunnet suorittaa \"apt-get -f install\" korjaamaan nämä." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Tyydyttämättömiä riippuvuuksia. Koita käyttää -f." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "VAROITUS: Seuraavian pakettien alkuperää ei voi varmistaa!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Varoitus varmistamisesta on ohitettu.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Asennetaanko nämä paketit ilman todennusta [y/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Joidenkin pakettien alkuperästä ei voitu varmistua" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Oli pulmia ja -y käytettiin ilman valitsinta --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "Sisäinen virhe, InstallPackages kutsuttiin rikkinäisille paketeille!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Paketteja pitäisi poistaa mutta Remove ei ole käytössä." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Tapahtui sisäinen virhe, järjestäminen keskeytyi" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Noutokansiota ei saatu lukittua" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "Lähteiden luetteloa ei pystynyt lukemaan." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"No jo on... Koot eivät täsmää, sähköpostita email apt@packages.debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Noudettavaa arkistoa %st/%st.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Noudettavaa arkistoa %st.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "Purkamisen jälkeen käytetään %st lisää levytilaa.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Purkamisen jälkeen vapautuu %st levytilaa.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Kansion %s vapaan tilan määrä ei selvinnyt" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Kansiossa %s ei ole riittävästi vapaata tilaa." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "" +"On määritetty Trivial Only mutta tämä ei ole itsestäänselvä toimenpide." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Kyllä, tee kuten käsketään!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Olet aikeissa tehdä mahdollisesti vahingollisen toimenpiteen.\n" +"Jatka kirjoittamalla \"%s\"\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Keskeytä." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Haluatko jatkaa [K/e]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Tiedoston %s nouto ei onnistunut %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Joidenkin tiedostojen nouto ei onnistunut" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Nouto on valmis ja määrätty vain nouto" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Joidenkin arkistojen nouto ei onnistunut, ehkä \"apt-get update\" auttaa tai " +"kokeile --fix-missing?" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing ja taltion vaihto ei ole nyt tuettu" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Puuttuvia paketteja ei voi korjata." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Asennus keskeytetään." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Huomautus, valitaan %s eikä %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "Ohitetaan %s, se on jo asennettu eikä ole komennettu päivitystä.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "Pakettia %s ei ole asennettu, niinpä sitä ei poisteta\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Paketti %s on näennäispaketti, jonka kattaa:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Asennettu]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Yksi pitää valita asennettavaksi." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Pakettia %s ei ole saatavilla, mutta toinen paketti viittaa siihen.\n" +"Tämä voi tarkoittaa paketin puuttuvan, olevan vanhentunut tai\n" +"saatavilla vain jostain muusta lähteestä\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Seuraavat paketit kuitenkin korvaavat sen:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Paketilla %s ei ole asennettavaa valintaa" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "Paketin %s uudelleenasennus ei ole mahdollista, sitä ei voi noutaa.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s on jo uusin versio.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Julkaisua \"%s\" paketille \"%s\" ei löytynyt" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Versiota \"%s\" paketille \"%s\" ei löytynyt" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Valittiin versio %s (%s) paketille %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "Komento update ei käytä parametreja" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Luettelokansiota ei voitu lukita" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Joidenkin hakemistotiedostojen nouto ei onnistunut, ne on ohitettu tai " +"käytetty vanhoja. " + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Sisäinen virhe, AllUpgrade rikkoi jotain" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Pakettia %s ei löytynyt" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Huomautus, valitaan %s lausekkeella \"%s\"\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "Saatat haluta suorittaa \"apt-get -f install\" korjaamaan nämä:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Kaikkia riippuvuuksia ei ole tyydytetty. Kokeile \"apt-get -f install\" " +"ilmanpaketteja (tai ratkaise itse)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Joitakin paketteja ei voitu asentaa. On ehkä vaadittu mahdottomia tai,\n" +"jos käytetään epävakaata jakelua, joitain vaadittuja paketteja ei ole\n" +"vielä luotu tai siirretty Incoming-kansiosta." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Koska komennettiin vain yksi toimenpide, erittäin todennäköisesti\n" +"paketti ei lainkaan ole asennettavissa ja olisi tehtävä vikailmoitus\n" +"tuosta paketista." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "Seuraavista tiedoista voi olla hyötyä selvitettäessä tilannetta:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Rikkinäiset paketit" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Seuraavat ylimääräiset paketit on merkitty asennettaviksi:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Ehdotetut paketit:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Suositellut paketit:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Käsitellään päivitystä ... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Ei onnistunut" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Valmis" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "Sisäinen virhe, resolver rikkoi jotain" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "On annettava ainakin yksi paketti jonka lähdekoodi noudetaan" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Paketin %s lähdekoodipakettia ei löytynyt" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Ohitetaan jo noudettu tiedosto \"%s\"\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Kansiossa %s ei ole riittävästi vapaata tilaa" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "On noudettava %st/%st lähdekoodiarkistoja.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "On noudettava %st lähdekoodiarkistoja.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Nouda lähdekoodi %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Joidenkin arkistojen noutaminen ei onnistunut." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Ohitetaan purku jo puretun lähdekoodin %s kohdalla\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Purkukomento \"%s\" ei onnistunut.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Tarkista onko paketti \"dpkg-dev\" asennettu.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Paketointikomento \"%s\" ei onnistunut.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Lapsiprosessi kaatui" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"On annettava ainakin yksi paketti jonka paketointiriippuvuudet tarkistetaan" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Paketille %s ei ole saatavilla riippuvuustietoja" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "Paketille %s ei ole määritetty paketointiriippuvuuksia.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"riippuvuutta %s paketille %s ei voi tyydyttää koska pakettia %s ei löydy" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"%s riippuvuutta paketille %s ei voi tyydyttää koska mikään paketin %s versio " +"ei vastaa versioriippuvuuksia" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Riippuvutta %s paketille %s ei voi tyydyttää: Asennettu paketti %s on liian " +"uusi" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Riippuvuutta %s paketille %s ei voi tyydyttää: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Paketointiriippuvuuksia paketille %s ei voi tyydyttää." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Paketointiriippuvuuksien käsittely ei onnistunut" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Tuetut moduulit:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Käyttö: apt-get [valitsimet] komento\n" +" apt-get [valitsimet] install|remove pkt1 [pkt2 ...]\n" +" apt-get [valitsimet] source pkt1 [pkt2 ...]\n" +"\n" +"apt-get on yksinkertainen komentorivityökalu pakettien noutamiseen\n" +"ja asentamiseen. Useimmiten käytetyt komennot ovat update ja \n" +"install.\n" +"Komennot:\n" +" update - Nouda uusi pakettiluettelo\n" +" upgrade - Tee päivitys\n" +" install - Asenna uusia paketteja (esim. libc6 eikä libc6.deb)\n" +" remove - Poista paketteja\n" +" source - Nouda lähdekoodiarkistoja\n" +" build-dep - Määritä paketointiriippuvuudet lähdekoodipaketeille\n" +" dist-upgrade - Koko jakelun päivitys, katso apt-get(8)\n" +" dselect-upgrade - Noudata dselect:n valintoja\n" +" clean - Poista noudetut tiedostot\n" +" autoclean - Poista vanhat noudetut tiedostot\n" +" check - Tarkasta ettei ole tyydyttämättömiä riippuvuuksia\n" +"\n" +"Valitsimet:\n" +" -h Tämä ohje\n" +" -q Lokiin sopiva tulostus - edistymisen ilmaisin jätetään pois\n" +" -qq Ei lainkaan tulostusta paitsi virheistä\n" +" -d Vain nouto - paketteja EI asenneta tai pureta\n" +" -s Älä tee mitään. Oikean toiminnan simulaatio\n" +" -y Vastataan Kyllä kaikkiin kysymyksiin eikä kehoitetta näytetä\n" +" -f Yritä jatkaa jos eheystarkastus löysi virheen\n" +" -m Yritä jatkaa jos arkistojen sijainti ei selviä\n" +" -u Näytä luettelo myös päivitetyistä paketeista\n" +" -b Paketoi lähdekoodipaketti noudon jälkeen\n" +" -V Näytä pitkät versionumerot\n" +" -c=? Lue tämä asetustiedosto\n" +" -o=? Aseta mikä asetusvalitsin tahansa, esim. -o dir::cache=/tmp\n" +"Katso apt-get(8), sources.list(5) ja apt.conf(5) käsikirjasivuilta\n" +"lisätietoja ja lisää valitsimia.\n" +" This APT has Super Cow Powers.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Löytyi " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Nouda:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Siv " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Vrhe " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Noudettiin %st ajassa %s (%st/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Työskennellään]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Taltion vaihto: Pistä levy \n" +"\"%s\"\n" +"asemaan \"%s\" ja paina Enter\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Tuntematon pakettitietue!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Käyttö: apt-sortpkgs [valitsimet] tdsto1 [tdsto2 ...]\n" +"\n" +"apt-sortpkgs on yksinkertainen työkalu pakettitiedostojen lajitteluun.\n" +"Valitsimella -s ilmaistaan minkälainen tiedosto on.\n" +"\n" +"Valitsimet:\n" +" -h Tämä ohje\n" +" -s Käytä lähdetiedostolajittelua\n" +" -c=? Lue tämä asetustiedosto\n" +" -o=? Aseta mikä asetusvalitsin tahansa, esim. -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Oletusasetus ei kelpaa!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Jatka painamalla Enter." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Tapahtui virheitä purettaessa. Tehdään asennettujen" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "pakettien asetukset. Samat virheet voivat tulla toiseen kertaan" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" +"tai tyydyttämättömät riippuvuudet aiheuttavat virheitä. Tämä ei haittaa" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"vain tätä viestiä ennen tulleilla virheillä on merkitystä. Korjaa ne ja aja " +"[I]nstall uudestaan" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Yhdistetään saatavuustiedot" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Putkien luonti ei onnistunut" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "exec gzip ei onnistunut" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Arkisto on turmeltunut" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Tar-ohjelman laskema tarkistussumma ei täsmää, arkisto on turmeltunut" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Tuntematon TAR-otsikon tyyppi %u, tiedosto %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Arkiston tarkistussumma on virheellinen" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Tapahtui virhe luettaessa arkiston tiedoston otsikkoa" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Arkiston tiedoston otsikko on virheellinen" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Arkisto on pienempi kuin pitäisi" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Arkiston otsikoiden luku ei onnistunut" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "Kutsuttiin DropNode mutta tiedostoon on vielä linkki" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Hajautusalkiota ei löytynyt!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Korvautuksen varaus ei onnistunut" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "AddDiversion: sisäinen virhe" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Yritetään kirjoittaa korvautuksen päälle, %s -> %s ja %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Korvautuksen kaksoislisäys %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Asetustiedoston kaksoiskappale %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Tiedoston %s kirjoittaminen ei onnistunut" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Tiedoston %s sulkeminen ei onnistunut" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "Polku %s on liian pitkä" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Purettiin %s useammin kuin kerran" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "Kansio %s on korvautunut" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "Paketti yrittää kirjoittaa korvautuksen kohteeseen %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Korvautuspolku on liian pitkä" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "Kansiota %s ollaan korvaamassa muulla kuin kansiolla" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Solmua ei löytynyt sen hajautuslokerosta" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Polku on liian pitkä" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Päälle kirjoitettava paketti täsmää mutta paketille %s ei ole versiota" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Tiedosto %s/%s kirjoitetaan paketista %s tulleen päälle" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Tiedostoa %s ei voi lukea" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Tiedostolle %s ei toimi stat" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Tiedoston %s poistaminen ei onnistunut" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Tiedostoa %s ei voi luoda" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "stat ei toimi: %sinfo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "Kansioiden info ja temp pitää olla samassa tiedostojärjestelmässä" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Luetaan pakettiluetteloita" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Ylläpitokansioon %sinfo vaihtaminen ei onnistunut" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Tapahtui sisäinen virhe haettaessa paketin nimeä" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Luetaan tiedostoluetteloa" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Luettelotiedoston \"%sinfo/%s\" avaaminen ei onnistunut. Jos tätä tiedostoa " +"ei voi palauttaa, tyhjennä tiedosto ja asenna välittömästi paketin sama " +"versio uudelleen!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Tapahtui virhe luettelotiedostoa %sinfo/%s luettaessa" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Tapahtui sisäinen virhe varattaessa tiedostosolmua" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Tapahtui virhe avattaessa korvautustiedostoa %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Korvautustiedosto on turmeltunut" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Virheellinen rivi korvautustiedostossa: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Tapahtui sisäinen virhe lisättäessä korvautusta" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "Pakettivarasto on ensin alustettava" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Paketin otsikkoa ei löydy, kohta %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Virheellinen ConfFile-lohko tilatiedostossa. Kohta %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Tapahtui virhe jäsennettäessä MD5:ttä. Kohta %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Tämä ei ole kelvollinen DEB-arkisto, puuttuu tiedosto \"%s\"" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "Tämä ei ole kelvollinen DEB-arkisto, puuttuu osat \"%s\" ja \"%s\"." + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Kansioon %s vaihto ei onnistunut" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Tapahtui sisäinen virhe, tiedostoa ei löydy" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Kelvollista ohjaustiedostoa ei löydy" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Ohjaustiedosto ei jäsenny" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Rompputietokantaa %s ei voi lukea" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Käytä komentoa apt-cdrom jotta APT tunnistaa tämän rompun, apt-get update ei " +"osaa lisätä uusia romppuja" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "Väärä romppu" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "Rompun %s irrottaminen ei onnistu, se on ehkä käytössä." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Levyä ei löydy" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Tiedostoa ei löydy" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Komento stat ei toiminut" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Tiedoston muutospäivämäärää ei saatu vaihdettua" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "URI on kelvoton, paikallinen URI ei saa alkaa //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Kirjaudutaan sisään" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Vastapään nimeä ei saa selville" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Paikallista nimeä ei saa selville" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Palvelin ei huolinut yhteyttä ilmoituksella: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "USER ei onnistunut, palvelimen ilmoitus: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "PASS ei onnistunut, palvelimen ilmoitus: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Määritettiin välipalvelin mutta ei komentotiedostoa kirjautumiseen, Acquire::" +"ftp::ProxyLogin on tyhjä." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Komentotiedoston rivi \"%s\" ei toiminut, palvelin ilmoitti: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "TYPE ei toiminut, palvelin ilmoitti: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Yhteys aikakatkaistiin" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Palvelin sulki yhteyden" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Lukuvirhe" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Vastaus aiheutti puskurin ylivuodon." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Yhteyskäytäntö on turmeltunut" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Virhe kirjoitettaessa" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Pistoketta ei voitu luoda" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "Pistoketta ei voitu kytkeä, yhteys aikakatkaistiin" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Passiivista pistoketta ei voitu kytkeä." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo ei saanut kuuntelupistoketta" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Pistoketta ei voitu nimetä" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Pistoketta ei voitu kuunnella" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Pistokkeen nimeä ei saatu selville" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Komennon PORT lähetys ei onnistu" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Tuntematon osoiteperhe %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT ei onnistunut, palvelin ilmoitti: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Pistokkeen kytkeminen aikakatkaistiin" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Yhteyttä ei voitu hyväksyä" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Pulmia tiedoston hajautuksessa" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Tiedostoa ei saatu noudettua, palvelin ilmoitti \"%s\"" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Pistoke aikakatkaistiin" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Tiedonsiirto ei onnistunut, palvelin ilmoitti \"%s\"" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Kysely" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Käynnistys ei onnistu" + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Avataan yhteys %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Pistokeen luonti ei onnistu %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Yhteyden %s avaus ei onnistu: %s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Yhteyttä %s ei voitu muodostaa: %s (%s), yhteys aikakatkaistiin" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Yhteyttä %s ei voitu muodostaa: %s (%s)" + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Avataan yhteys %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Nimeä \"%s\" ei voitu selvittää" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Tilapäinen häiriö selvitettäessä \"%s\"" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Jotain kenkkua tapahtui selvitettäessä \"%s: %s\" (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Ei ole mahdollista muodostaa yhteyttä %s %s:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Avainrengasta \"%s\" ei saatavilla" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" +"E: Parametrien luettelo Acquire::gpgv::Options liian pitkä. Lopetetaan." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" +"Sisäinen virhe: Allekirjoitus kelpaa, mutta avaimen sormenjälki tuntematon?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "LÖytyi ainakin yksi kelvoton allekirjoitus." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" +"Ei käynnistynyt \"%s\" allekirjoitusta tarkistamaan (onko gnupg asennettu?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Tapahtui tuntematon virhe suoritettaessa gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "Seuraavat allekirjoitukset eivät olleet kelvollisia:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"Seuraavia allekirjoituksia ei voinut varmentaa koska julkista avainta ei ole " +"saatavilla:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Putkea %s ei voitu avata" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Prosessi %s ilmoitti lukuvirheestä" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Odotetaan otsikoita" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Vastaanotettiin yksi otsikkorivi pituudeltaan yli %u merkkiä" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Virheellinen otsikkorivi" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "HTTP-palvelin lähetti virheellisen vastausotsikon" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "HTTP-palvelin lähetti virheellisen Content-Length-otsikon" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "HTTP-palvelin lähetti virheellisen Content-Range-otsikon" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "HTTP-palvelimen arvoaluetuki on rikki" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Tuntematon päiväysmuoto" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Select ei toiminut" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Yhteys aikakatkaistiin" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Tapahtui virhe kirjoitettaessa tulostustiedostoon" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Tapahtui virhe kirjoitettaessa tiedostoon" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Tapahtui virhe kirjoitettaessa tiedostoon" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "Tapahtui virhe luettaessa palvelimelta. Etäpää sulki yhteyden" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Tapahtui virhe luettaessa palvelimelta" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Virheellinen otsikkotieto" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Yhteys ei toiminut" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Sisäinen virhe" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Tyhjälle tiedostolle ei voi tehdä mmap:ia" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Ei voitu tehdä %lu tavun mmap:ia" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Valintaa %s ei löydy" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Tuntematon tyypin lyhenne: \"%c\"" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Avataan asetustiedosto %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Rivi %d on liian pitkä (enintään %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Syntaksivirhe %s: %u: Lohko alkaa ilman nimeä." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Syntaksivirhe %s: %u: väärän muotoinen nimikenttä" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Syntaksivirhe %s: %u: Arvon jälkeen ylimääräistä roskaa" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "Syntaksivirhe %s: %u: Direktiivejä voi olla vain ylimmällä tasolla" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Syntaksivirhe %s: %u: Liian monta sisäkkäistä includea" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Syntaksivirhe %s: %u: Sisällytetty tästä" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Syntaksivirhe %s: %u: Tätä direktiiviä ei tueta \"%s\"" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Syntaksivirhe %s: %u: Ylimääräistä roskaa tiedoston lopussa" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Virhe!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Valmis" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Komentorivin valitsin \"%c\" [%s] on tuntematon." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Komentorivin valitsin %s on tuntematon" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Komentorivin valitsin %s ei ole totuusarvoinen" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "Valitsin %s tarvitsee parametrin" + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "Valitsin %s: Asetusarvon määrityksessä on oltava =." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "Valitsin %s tarvitsee kokonaislukuparametrin, ei \"%s\"" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Valitsin \"%s\" on liian pitkä" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "Arvo %s on tuntematon, yritä tosi tai epätosi." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Virheellinen toiminto %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Komento stat ei toiminut liitoskohdalle %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Kansioon %s vaihto ei onnistu" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Komento stat ei toiminut rompulle" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "Lukkoa ei käytetä kirjoitussuojatulle tiedostolle %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Lukkotiedostoa %s ei voitu avata" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "Lukitusta ei käytetä NFS-liitetylle tiedostolle %s" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Lukkoa %s ei saada" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Odotettiin %s, mutta sitä ei ollut" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Aliprosessi %s aiheutti suojausvirheen." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Aliprosessi %s palautti virhekoodin (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Aliprosessi %s lopetti odottamatta" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Tiedostoa %s ei voitu avata" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "read, vielä %lu lukematta mutta tiedosto loppui" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "write, vielä %lu kirjoittamatta mutta epäonnistui" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Pulmia tiedoston sulkemisessa" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Pulmia tehtäessä tiedostolle unlink" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Pulmia tehtäessä tiedostolle sync" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Pakettivarasto on tyhjä" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Pakettivarasto on turmeltunut" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Pakettivaraston versio on yhteensopimaton" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Tämä APT ei tue versionhallintajärjestelmää \"%s\"" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "Pakettivarasto on tehty muulle arkkitehtuurille" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Riippuvuudet" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Esiriippuvuudet" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Ehdotukset" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Suosittelut" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Ristiriidat" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Korvaavuudet" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Täydet korvaavuudet" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "tärkeä" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "välttämätön" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "perus" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "valinnainen" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "ylimääräinen" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Muodostetaan riippuvuussuhteiden puu" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Mahdolliset versiot" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Luodaan riippuvuudet" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Pakettitiedostoa %s (1) ei voi jäsentää" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Pakettitiedostoa %s (2) ei voi jäsentää" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Väärän muotoinen rivi %lu lähdeluettelossa %s (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Väärän muotoinen rivi %lu lähdeluettelossa %s (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Väärän muotoinen rivi %lu lähdeluettelossa %s (URI-jäsennys)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Väärän muotoinen rivi %lu lähdeluettelossa %s (Absoluuttinen dist)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Väärän muotoinen rivi %lu lähdeluettelossa %s (dist-jäsennys)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Avataan %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Rivi %u on liian pitkä lähdeluettelossa %s." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Rivi %u on väärän muotoinen lähdeluettelossa %s (tyyppi)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Tyyppi \"%s\" on tuntematon rivillä %u lähdeluettelossa %s" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Rivi %u on väärän muotoinen lähdeluettelossa%s (toimittajan tunniste)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Tämän asennusajo vaatii tilapäisesti poistettavaksi välttämättömän paketin %" +"s Conflicts/Pre-Depends -kehämäärittelyn takia. Tämä on usein pahasta, mutta " +"jos varmasti haluat tehdä niin, käytä APT::Force-LoopBreak -valitsinta." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Hakemistotiedoston tyyppi \"%s\" ei ole tuettu" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "Paketti %s olisi asennettava uudelleen, mutta sen arkistoa ei löydy." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Virhe, pkgProblemResolver::Resolve tuotti katkoja, syynä voi olla pysytetyt " +"paketit." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "Pulmia ei voi korjata, rikkinäisiä paketteja on pysytetty." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Luettelokansio %spartial puuttuu." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Arkistokansio %spartial puuttuu." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "Noudetaan tiedosto %li / %li (jäljellä %s)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "Noudetaan tiedosto %li / %li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Menetelmän ajuria %s ei löytynyt" + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Menetelmä %s ei käynnistynyt oikein" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "Pistä levy nimeltään: \"%s\" asemaan \"%s\" ja paina Enter." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Paketointijärjestelmä \"%s\" ei ole tuettu" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Sopivaa paketointijärjestelmän tyyppiä ei saa selvitettyä" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "stat %s ei onnistu." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "Tiedostossa sources.list on oltava rivejä joissa \"lähde\"-URI" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" +"Pakettiluettelonn tai tilatiedoston avaaminen tai jäsennys epäonnistui." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "Voit haluta suorittaa apt-get update näiden pulmien korjaamiseksi" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Asetustiedostossa on virheellinen tietue, Package-otsikko puuttuu" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Tunnistetyyppi %s on tuntematon" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Tärkeysjärjestystä ei määritetty tunnisteelle (tai se on nolla)" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Pakettivaraston versionhallintajärjestelmä ei ole yhteensopiva" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Tapahtui virhe käsiteltäessä %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Tapahtui virhe käsiteltäessä %s (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Tapahtui virhe käsiteltäessä %s (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Tapahtui virhe käsiteltäessä %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Tapahtui virhe käsiteltäessä %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Tapahtui virhe käsiteltäessä %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Tapahtui virhe käsiteltäessä %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" +"Jummijammi, annoit enemmän pakettien nimiä kuin tämä APT osaa käsitellä." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "Jummijammi, annoit enemmän versioita kuin tämä APT osaa käsitellä." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "Jummijammi, annoit enemmän riippuvuuksia kuin tämä APT osaa käsitellä." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Tapahtui virhe käsiteltäessä %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Tapahtui virhe käsiteltäessä %s (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "Pakettia %s %s ei löytynyt käsiteltäessä tiedostojen riippuvuuksia." + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "stat ei toiminut lähdepakettiluettelolle %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Kootaan tiedostojen tarjoamistietoja" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "Syöttö/Tulostus -virhe tallennettaessa pakettivarastoa" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "nimen vaihto ei onnistunut, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "MD5Sum ei täsmää" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "Julkisia avaimia ei ole saatavilla, avainten ID:t ovat:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"En löytänyt pakettia %s vastaavaa tiedostoa. Voit ehkä joutua korjaamaan " +"tämän paketin itse (puuttuvan arkkitehtuurin vuoksi)" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Pakettia %s vastaavaa tiedostoa ei löytynyt. Voit ehkä joutua korjaamaan " +"tämän paketin itse." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"Pakettihakemistotiedostot ovat turmeltuneet. Paketille %s ei ole Filename-" +"kenttää." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Koko ei täsmää" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Toimittajan lohkosta %s puuttuu sormenjälki" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Käytetään rompun liitoskohtaa %s\n" +"Liitetään romppu\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Tunnistetaan... " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Tallennettu nimio: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Käytetään rompun liitoskohtaa %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "Irrotetaan romppu\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Odotetaan levyä...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Liitetään romppu...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Etsitään levyltä hakemistotiedostoja...\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "" +"Asennuspakettien hakemistoja löytyi %i, lähdekoodipakettien hakemistoja %i " +"ja allekirjoituksia %i\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Tuo ei kelpaa nimeksi, yritä uudelleen.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Tämä levy on: \n" +"\"%s\"\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Kopioidaan pakettiluetteloita..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Kirjoitetaan uusi lähdeluettelo\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Tämän levyn lähdekoodipakettien luettelon tietueita ovat:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "Irrotetaan romppu..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "Kirjoitettiin %i tietuetta.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "Kirjoitettiin %i tietuetta joissa oli %i puuttuvaa tiedostoa.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "Kirjoitettiin %i tietuetta joissa oli %i paritonta tiedostoa\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" +"Kirjoitettiin %i tietuetta joissa oli %i puuttuvaa ja %i paritonta " +"tiedostoa\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "Valmistellaan %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "Puretaan %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "Valmistaudutaan tekemään asetukset: %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "Tehdään asetukset: %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "%s asennettu" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "Valmistaudutaan poistamaan %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "Poistetaan %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "%s poistettu" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "Valmistaudutaan poistamaan %s kokonaan" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "%s poistettiin kokonaan" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Tiedostoa %s ei voitu avata" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Yhteys katkesi ennenaikaisesti" + +#~ msgid "File date has changed %s" +#~ msgstr "Tiedoston uusi päiväys %s" + +#~ msgid "Reading file list" +#~ msgstr "Luetaan tiedostoluetteloa" + +#, fuzzy +#~ msgid "Could not execute " +#~ msgstr "Lukkoa %s ei saada" + +#~ msgid "Unknown vendor ID '%s' in line %u of source list %s" +#~ msgstr "" +#~ "Tuntematon toimittajan tunniste \"%s\" rivillä %u lähdeluettelossa %s" diff --git a/po/fr.po b/po/fr.po new file mode 100644 index 0000000..6e0ad01 --- /dev/null +++ b/po/fr.po @@ -0,0 +1,2836 @@ +# translation of fr.po to French +# Advanced Package Transfer - APT message translation catalog +# French messages +# +# Pierre Machard , 2002,2003,2004. +# Christian Perrier , 2004-2005, 2006. +msgid "" +msgstr "" +"Project-Id-Version: fr\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-09-02 09:59+0200\n" +"Last-Translator: Christian Perrier \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: Plural-Forms: nplurals=2; plural=n>1;\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Le paquet %s de version %s contient une dépendance absente :\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Impossible de trouver le paquet %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Nombre total de paquets : " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Paquets ordinaires : " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Paquets entièrement virtuels : " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Paquets virtuels simples : " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Paquets virtuels mixtes : " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Manquants : " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Nombre de versions distinctes : " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Nombre de dépendances : " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Nombre de relations version/fichier : " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Nombre de relations « Provides » : " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Nombre de motifs rationnels : " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Espace occupé par les versions des dépendances : " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Espace disque gaspillé : " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Total de l'espace attribué : " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Fichier %s désynchronisé." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Vous devez fournir exactement un motif" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Aucun paquet n'a été trouvé" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Fichiers du paquet :" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "Le cache est désynchronisé, impossible de référencer un fichier" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Paquets étiquetés :" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(non trouvé)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Installé : " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(aucun)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Candidat : " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Étiquette de paquet : " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Table de version :" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s pour %s %s est compilé le %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Usage : apt-cache [options] commande\n" +" apt-cache [options] add fichier1 [fichier2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache est un outil de bas niveau pour manipuler les fichiers de cache\n" +"pour les binaires, et pour en obtenir des informations.\n" +"\n" +"Commandes :\n" +" add - Ajoute un paquet au cache source\n" +" gencaches - Construit le cache des sources et celui des binaires\n" +" showpkg - Affiche quelques informations générales pour un unique paquet\n" +" showsrc - Affiche les enregistrements des sources\n" +" stats - Affiche quelques statistiques de base\n" +" dump - Affiche la totalité des fichiers dans un formulaire succinct\n" +" dumpavail - Affiche une liste de fichiers disponibles sur la sortie " +"standard\n" +" unmet - Affiche les dépendances manquantes\n" +" search - Cherche une expression rationnelle dans la liste des paquets\n" +" show - Affiche la description du paquet\n" +" depends - Affiche toutes les dépendances d'un paquet\n" +" rdepends - Affiche les dépendances inverses d'un paquet\n" +" pkgnames - Liste le nom de tous les paquets\n" +" dotty - Génère un graphe des paquets pour GraphVis\n" +" xvcg - Génère un graphe des paquets pour xvcg\n" +" policy - Affiche l'étiquetage (Pin) en vigueur\n" +"\n" +"Options :\n" +" -h Ce texte d'aide\n" +" -p=? Le cache des paquets\n" +" -s=? Le cache des sources\n" +" -q Enlève l'indicateur de progression\n" +" -i Affiche seulement les dépendances importantes pour la commande " +"« unmet »\n" +" -c=? Lit ce fichier de configuration\n" +" -o=? Spécifie une option de configuration, p. ex. -o dir::cache=/tmp\n" +"Regardez les pages de manuel de apt-cache(8) et apt.conf(5) pour plus\n" +"d'informations.\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "" +"Veuillez indiquer le nom de ce disque, par exemple « Debian 2.1r1 Disk 1 »" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "" +"Veuillez insérer un disque dans le lecteur et appuyez sur la touche Entrée" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "" +"Veuillez répéter cette opération pour tous les disques de votre jeu de " +"cédéroms." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Les arguments ne sont pas en parité" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Usage : apt-config [options] commande\n" +"\n" +"apt-config est un outil simple pour lire le fichier de configuration d'APT\n" +"\n" +"Commandes :\n" +" shell - Mode console\n" +" dump - Affiche la configuration\n" +"\n" +"Options :\n" +" -h Ce texte d'aide\n" +" -c=? Lit ce fichier de configuration\n" +" -o=? Spécifie une option de configuration, p. ex. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s n'est pas un paquet Debian valide." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Usage : apt-extracttemplates fichier1 [fichier2 ...]\n" +"\n" +"apt-extracttemplates est un outil pour extraire la configuration et les\n" +"informations des gabarits des paquets Debian\n" +"\n" +"Options :\n" +" -h Ce texte d'aide\n" +" -t Place le répertoire temporaire\n" +" -c=? Lit ce fichier de configuration\n" +" -o=? Spécifie une option de configuration, p. ex. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Impossible d'écrire sur %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "" +"Impossible d'obtenir la version de debconf. Est-ce que debconf est installé ?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "La liste d'extension du paquet est trop longue" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Erreur lors du traitement du répertoire %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "La liste d'extension des sources est trop grande" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Erreur lors de l'écriture de l'en-tête du fichier contenu" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Erreur du traitement du contenu %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Usage : apt-ftparchive [options] commande\n" +"Commandes : paquets binarypath [fichier d'« override » [chemin du " +"préfixe]]\n" +" sources srcpath [fichier d'« override » [chemin du préfixe]]\n" +" contents path\n" +" release path\n" +" generate config [groupes]\n" +" clean config\n" +"\n" +"apt-ftparchive génère des fichiers d'index pour les archives Debian. Il\n" +"supporte de nombreux types de génération, d'une automatisation complète à\n" +"des remplacements fonctionnels pour dpkg-scanpackages et dpkg-scansources\n" +"\n" +"apt-ftparchive génère les fichiers de paquets à partir d'un arbre de .debs.\n" +"Le fichier des paquets contient les contenus de tous les champs de contrôle\n" +"de chaque paquet aussi bien que les hachés MD5 et la taille du fichier. Un\n" +"fichier d'« override » est accepté pour forcer la valeur des priorités et\n" +"des sections\n" +"\n" +"De façon similaire, apt-ftparchive génère des fichiers de source à partir\n" +"d'un arbre de .dscs. L'option --source-override peut être employée pour\n" +"spécifier un fichier src d'« override »\n" +"\n" +"Les commandes « packages » et « sources » devraient être démarrées à la\n" +"racine de l'arbre. « BinaryPath » devrait pointer sur la base d'une\n" +"recherche récursive et le fichier d'« override » devrait contenir les\n" +"drapeaux d'annulation. « Pathprefix » est ajouté au champ du non de\n" +"fichier s'il est présent. Exemple d'utilisation d'archive Debian :\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options :\n" +" -h Ce texte d'aide\n" +" --md5 Contrôle la génération des MD5\n" +" -s=? Fichier d'« override » pour les sources\n" +" -q Silencieux\n" +" -d=? Sélectionne la base de données optionnelle de cache\n" +" --no-delink Permet le mode de débogage délié\n" +" --contents Contrôle la génération de fichier\n" +" -c=? Lit ce fichier de configuration\n" +" -o=? Place une option de configuration arbitraire" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Aucune sélection ne correspond" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "" +"Quelques fichiers sont manquants dans le groupe de fichiers de paquets « %s »" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "Base de données corrompue, fichier renommé en %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "Base de données ancienne, tentative de mise à jour de %s\"" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"Le format de la base de données n'est pas valable. Si vous mettez APT à " +"jour, veuillez supprimer puis recréer la base de données." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Impossible d'ouvrir le fichier de base de données %s : %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Impossible de statuer %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "L'archive n'a pas d'enregistrement de contrôle" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Impossible d'obtenir un curseur" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "A : Impossible de lire le contenu du répertoire %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "A : Impossible de statuer %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E : " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "A : " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E : des erreurs sont survenues sur le fichier " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Impossible de résoudre %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Échec du parcours de l'arbre" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Impossible d'ouvrir %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " Délier %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Impossible de lire le lien %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Impossible de délier %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Impossible de lier %s à %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " Seuil de delink de %so atteint.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "L'archive ne possède pas de champ de paquet" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr "%s ne possède pas d'entrée « override »\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " le responsable de %s est %s et non %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s ne possède pas d'entrée « source override »\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s ne possède pas également pas d'entrée « binary override »\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Erreur interne, ne peut localiser la partie %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Échec de l'allocation de mémoire" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Impossible d'ouvrir %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Entrée « override » %s mal formée ligne %lu n° 1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Entrée « override » %s mal formée %lu n° 2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Entrée « override » %s mal formée %lu n° 3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Impossible de lire le fichier d'« override » %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Algorithme de compression « %s » inconnu" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "La sortie compressée %s a besoin d'un ensemble de compression" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Impossible de créer le tube IPC sur le sous-processus" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Impossible de créer FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Échec du fork" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Fils compressé" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Erreur interne, impossible de créer %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Impossible de créer un sous-processus IPC" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Impossible d'exécuter la compression " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "décompacteur" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "Échec d'entrée/sortie du sous-processus sur le fichier" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Impossible de lire lors du calcul de la somme MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Problème en déliant %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Impossible de changer le nom %s en %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "O" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Erreur de compilation de l'expression rationnelle - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Les paquets suivants contiennent des dépendances non satisfaites :" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "mais %s est installé" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "mais %s devra être installé" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "mais il n'est pas installable" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "mais c'est un paquet virtuel" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "mais il n'est pas installé" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "mais ne sera pas installé" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " ou" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Les NOUVEAUX paquets suivants seront installés :" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Les paquets suivants seront ENLEVÉS :" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Les paquets suivants ont été conservés :" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Les paquets suivants seront mis à jour :" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Les paquets suivants seront mis à une VERSION INFÉRIEURE :" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Les paquets retenus suivants seront changés :" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (en raison de %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"ATTENTION : Les paquets essentiels suivants vont être enlevés.\n" +"Vous NE devez PAS faire ceci, à moins de savoir exactement ce\n" +"que vous êtes en train de faire." + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu mis à jour, %lu nouvellement installés, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu réinstallés, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu remis à une version inférieure, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu à enlever et %lu non mis à jour.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu partiellement installés ou enlevés.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Correction des dépendances..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " a échoué." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Impossible de corriger les dépendances" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Impossible de minimiser le nombre des paquets mis à jour" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Fait" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "Vous pouvez lancer « apt-get -f install » pour corriger ces problèmes." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Dépendances manquantes. Essayez d'utiliser l'option -f." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "ATTENTION : les paquets suivants n'ont pas été authentifiés." + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Avertissement d'authentification ignoré.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Faut-il installer ces paquets sans vérification (o/N) ? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Certains paquets n'ont pas pu être authentifiés" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Il y a des problèmes et -y a été employé sans --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "Erreur interne, « InstallPackages » appelé avec des paquets cassés." + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "" +"Les paquets doivent être enlevés mais la désinstallation est désactivée." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Erreur interne. Le tri a été interrompu." + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Impossible de verrouiller le répertoire de téléchargement" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "La liste des sources ne peut être lue." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"Étrangement, les tailles ne correspondent pas. Veuillez le signaler par " +"courriel à apt@packages.debian.org." + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Il est nécessaire de prendre %so/%so dans les archives.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Il est nécessaire de prendre %so dans les archives.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "" +"Après dépaquetage, %so d'espace disque supplémentaires seront utilisés.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Après dépaquetage, %so d'espace disque seront libérés.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Impossible de déterminer l'espace disponible sur %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Pas assez d'espace disponible sur %s" + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "" +"L'option --trivial-only a été indiquée mais il ne s'agit pas d'une opération " +"triviale." + +# The space before the exclamation mark must not be a non-breaking space; this +# sentence is supposed to be typed by a user who cannot see the difference. +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Oui, faites ce que je vous dis !" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Vous êtes sur le point de faire quelque chose de potentiellement dangereux\n" +"Pour continuer, tapez la phrase « %s »\n" +" ?]" + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Annulation." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Souhaitez-vous continuer [O/n] ? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Impossible de récupérer %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Certains fichiers n'ont pu être téléchargés." + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Téléchargement achevé et dans le mode téléchargement uniquement" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Impossible de récupérer quelques archives, peut-être devrez-vous lancer apt-" +"get update ou essayer avec --fix-missing ?" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "" +"l'option --fix-missing et l'échange de support ne sont pas encore reconnus." + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Impossible de corriger le fait que les paquets manquent." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Annulation de l'installation." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Note, sélection de %s au lieu de %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "Passe %s, il est déjà installé et la mise à jour n'est pas prévue.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "Le paquet %s n'est pas installé, et ne peut donc être supprimé\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Le paquet %s est un paquet virtuel fourni par :\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Installé]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Vous devez explicitement sélectionner un paquet à installer." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Aucune version du paquet %s n'est disponible, mais il existe dans la base\n" +"de données. Cela signifie en général que le paquet est manquant, qu'il est " +"devenu obsolète\n" +"ou qu'il n'est disponible que sur une autre source\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Cependant les paquets suivants le remplacent :" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Aucun paquet ne correspond au paquet %s" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "" +"La réinstallation de %s est impossible, il ne peut pas être téléchargé.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s est déjà la plus récente version disponible.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "La version « %s » de « %s » est introuvable" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "La version « %s » de « %s » n'a pu être trouvée" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Version choisie %s (%s) pour %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "La commande de mise à jour ne prend pas d'argument" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Impossible de verrouiller le répertoire de liste" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Le téléchargement de quelques fichiers d'index a échoué, ils ont été " +"ignorés, ou les anciens ont été utilisés à la place." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Erreur interne, AllUpgrade a cassé le boulot !" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Impossible de trouver le paquet %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Note, sélectionne %s pour l'expression rationnelle « %s »\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "" +"Vous pouvez lancer « apt-get -f install » pour corriger ces problèmes :" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Dépendances non satisfaites. Essayez « apt-get -f install » sans paquet\n" +"(ou indiquez une solution)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Certains paquets ne peuvent être installés. Ceci peut signifier\n" +"que vous avez demandé l'impossible, ou bien, si vous utilisez\n" +"la distribution unstable, que certains paquets n'ont pas encore\n" +"été créés ou ne sont pas sortis d'Incoming." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Puisque vous n'avez demandé qu'une seule opération, le paquet n'est\n" +"probablement pas installable et vous devriez envoyer un rapport de bogue." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "L'information suivante devrait vous aider à résoudre la situation : " + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Paquets défectueux" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Les paquets supplémentaires suivants seront installés : " + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Paquets suggérés :" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Paquets recommandés :" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Calcul de la mise à jour... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Échec" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Fait" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "" +"Erreur interne, la tentative de résolution du problème a cassé certaines " +"parties" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "Vous devez spécifier au moins un paquet source" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Impossible de trouver une source de paquet pour %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Saut du téléchargement du fichier « %s », déjà téléchargé\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Pas assez d'espace disponible sur %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Nécessité de prendre %so/%so dans les sources.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Nécessité de prendre %so dans les sources.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Récupération des sources %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Échec lors de la récupération de quelques archives." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Saut du décompactage des paquets sources déjà décompactés dans %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "La commande de décompactage « %s » a échoué.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Veuillez vérifier si le paquet dpkg-dev est installé.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "La commande de construction « %s » a échoué.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Échec du processus fils" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"Il faut spécifier au moins un paquet pour vérifier les dépendances de " +"construction" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Impossible d'obtenir les dépendances de construction pour %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s n'a pas de dépendance de construction.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"La dépendance %s vis-à-vis de %s ne peut être satisfaite car le paquet %s ne " +"peut être trouvé" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"La dépendance %s vis-à-vis de %s ne peut être satisfaite car aucune version " +"du paquet %s ne peut satisfaire à la version requise" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Impossible de satisfaire la dépendance %s pour %s : le paquet installé %s " +"est trop récent" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Impossible de satisfaire les dépendances %s pour %s : %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "" +"Les dépendances de compilation pour %s ne peuvent pas être satisfaites." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Impossible d'activer les dépendances de construction" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Modules reconnus :" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Usage : apt-get [options] commandes\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get est une interface simple en ligne de commande servant à\n" +"télécharger et à installer les paquets. Les commandes les plus\n" +"fréquemment employées sont update et install.\n" +"\n" +"Commandes :\n" +" update - Récupère les nouvelles listes de paquets\n" +" upgrade - Réalise une mise à jour\n" +" install - Installe de nouveaux paquets (pkg1 est libc6 et non libc6.deb)\n" +" remove - Supprime des paquets\n" +" source - Télécharge les archives de sources\n" +" build-dep - Configure build-dependencies pour les paquets sources\n" +" dist-upgrade - Met à jour la distribution, reportez-vous à apt-get(8)\n" +" dselect-upgrade - Suit les sélections de dselect\n" +" clean - Supprime dans le cache local tous les fichiers téléchargés\n" +" autoclean - Supprime dans le cache local les fichiers inutiles\n" +" check - Vérifie qu'il n'y a pas de rupture de dépendances\n" +"\n" +"Options :\n" +" -h Ce texte d'aide\n" +" -q Message de sortie enregistrable - aucun indicateur de progression\n" +" -qq Aucun message de sortie, exceptés les messages d'erreur\n" +" -d Simple téléchargement - n'installe pas ou ne décompacte pas les " +"archives\n" +" -s N'agit pas. Réalise uniquement une simulation de commande\n" +" -y Répond oui à toutes les questions et n'interroge pas l'utilisateur\n" +" -f Tente de poursuivre si le contrôle d'intégrité échoue\n" +" -m Tente de poursuivre si les archives ne sont pas localisables\n" +" -u Affiche une liste des paquets mis à jour\n" +" -b Construit la source du paquet après l'avoir récupérée\n" +" -V Affiche les numéros des versions de façon détaillée\n" +" -c=? Lit ce fichier de configuration\n" +" -o=? Place une option de configuration arbitraire, ex. -o dir::cache=/tmp\n" +"Reportez-vous aux pages de manuels d'apt-get(8), sources.list(5) et\n" +"apt.conf(5) pour plus d'information et d'option.\n" +" Cet APT a les « Super Cow Powers »\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Atteint " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Réception de : " + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ign " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Err " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "%so réceptionnés en %s (%so/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [En cours]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Changement de support : veuillez insérer le disque\n" +"« %s »\n" +"dans le lecteur « %s » et appuyez sur la touche Entrée\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Enregistrement de paquet inconnu !" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Usage : apt-sortpkgs [options] fichier1 [fichier2 ...]\n" +"\n" +"apt-sortpkgs est un outil simple pour trier les paquets. L'option -s est\n" +"employée pour indiquer le type de fichier dont il s'agit.\n" +"\n" +"Options :\n" +" -h Ce texte d'aide\n" +" -s Trie le fichier source\n" +" -c=? Lit ce fichier de configuration\n" +" -o=? Place une option de configuration arbitraire, p. ex. -o dir::cache=/" +"tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Mauvais paramètre par défaut !" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Veuillez appuyer sur Entrée pour continuer." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "" +"Quelques erreurs sont apparues lors du décompactage. Nous allons configurer " +"les" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "paquets qui ont été installés. Il peut en résulter d'autres erreurs" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" +"ou des erreurs provoquées par les dépendances manquantes. C'est bénin, " +"seules les erreurs" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"précédant ce message sont importantes. Veuillez les corriger et\n" +"démarrer l'[I]nstallation une nouvelle fois." + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Fusion des informations disponibles" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Échec de création de tubes" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Impossible d'exécuter gzip " + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Archive corrompue" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Échec dans la somme de contrôle de tar, l'archive est corrompue" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Type d'en-tête %u inconnu pour TAR, partie %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Signature d'archive invalide" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Erreur de lecture de l'en-tête du membre d'archive" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "En-tête du membre d'archive non-valide" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "L'archive est trop petite" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Échec de la lecture des en-têtes d'archive" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "DropNode appelé sur un n½ud toujours lié" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Impossible de situer l'élément haché !" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Échec lors de l'allocation de la déviation" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Erreur interne dans AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Essaye d'écraser une déviation, %s -> %s et %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Addition double d'une déviation %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Fichier de configuration en double %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Erreur d'écriture du fichier %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Échec de clôture du fichier %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "Le chemin %s est trop long" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Veuillez décompresser %s plus d'une fois" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "Le répertoire %s est détourné" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "Le paquet est en train d'essayer d'écrire sur la cible détournée %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Le chemin de déviation est trop long" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "Le répertoire %s va être remplacé par un non-répertoire" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Échec pour localiser le n½ud dans la table de hachage" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Le chemin est trop long" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Écrase la correspondance de paquet sans version pour %s " + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Le fichier %s/%s écrase celui inclus dans le paquet %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Impossible de lire %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Impossible de statuer pour %s." + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Impossible de supprimer %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Impossible de créer %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Impossible de statuer pour %sinfo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "" +"Les répertoires info et temp doivent se trouver sur le même système de " +"fichiers" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Lecture des listes de paquets" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Impossible de changer pour le répertoire d'administration %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Erreur interne lors de l'obtention d'un nom de paquet" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Lecture de la liste de fichiers" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Impossible d'ouvrir le fichier de liste « %sinfo/%s ». Si vous ne parvenez " +"pas à restaurer ce fichier, veuillez le vider et réinstaller immédiatement " +"la même version du paquet !" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Échec de la lecture du fichier de liste %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Erreur interne lors de l'obtention d'un N½ud" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Impossible d'ouvrir le fichier des déviations %sdiversions " + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Le fichier des déviations est corrompu" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Ligne invalide dans le fichier des déviations : %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Erreur interne en ajoutant une déviation" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "Le cache des paquets doit être initialisé en premier" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Impossible de trouver un en-tête « Package: », décalage %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Mauvaise section « ConfFile » dans le fichier « status ». Décalage %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Erreur lors du traitement de la somme MD5. Décalage %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Ce n'est pas une archive DEB valide, partie « %s » manquante" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "" +"Ce n'est pas une archive DEB valide, elle n'a pas de membre « %s » ou « %s »" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Impossible d'accéder à %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Erreur interne, ne peut localiser le membre" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Impossible de localiser un fichier de contrôle valide" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Fichier de contrôle non traitable" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Impossible de lire la base de données %s du cédérom" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Veuillez utiliser apt-cdrom afin de faire reconnaître ce cédérom par votre " +"APT. apt-get update ne peut être employé pour ajouter de nouveaux cédéroms" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "Mauvais cédérom" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "" +"Impossible de démonter le cédérom dans %s, il doit toujours être en cours " +"d'utilisation." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Disque non trouvé." + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Fichier non trouvé" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Impossible de statuer" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Impossible de modifier l'heure " + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "Liens invalides, les liens locaux ne doivent pas débuter avec //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Connexion en cours" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Impossible de déterminer le nom de la machine distante" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Impossible de déterminer le nom local" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Le serveur a refusé notre connexion et a répondu : %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "USER incorrect, le serveur a répondu : %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "PASS incorrect, le serveur a répondu : %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Un serveur proxy a été spécifié, mais aucun script de connexion, Acquire::" +"ftp::ProxyLogin est vide." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "" +"La commande « %s » du script de connexion a échoué, le serveur a répondu : %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "Échec de TYPE, le serveur a répondu : %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Dépassement du délai de connexion" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Le serveur a fermé la connexion" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Erreur de lecture" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Une réponse a fait déborder le tampon." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Corruption du protocole" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Erreur d'écriture" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Impossible de créer un connecteur" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "" +"Impossible de se connecter sur le port de données, délai de connexion dépassé" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Impossible de se connecter au port en mode passif." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "gettaddrinfo n'a pu obtenir un port d'écoute" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Impossible de se connecter à un port" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Impossible d'écouter sur le port" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Impossible de déterminer le nom du port" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Impossible d'envoyer la commande PORT" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Famille d'adresses %u inconnue (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT a échoué, le serveur a répondu : %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Délai de connexion au port de données dépassé" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Impossible d'accepter une connexion" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Problème de hachage du fichier" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Impossible de récupérer le fichier, le serveur a répondu « %s »" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Pas de réponse du port données dans les délais" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Le transfert de données a échoué, le serveur a répondu « %s »" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Requête" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Impossible d'invoquer " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Connexion à %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP : %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Impossible de créer de connexion pour %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Impossible d'initialiser la connexion à %s: %s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Connexion à %s: %s (%s) impossible, délai de connexion dépassé" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Connexion à %s: %s (%s) impossible." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Connexion à %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Ne parvient pas à résoudre « %s »" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Erreur temporaire de résolution de « %s »" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "" +"Quelque chose d'imprévisible est survenu lors de la détermination de « %s:%" +"s » (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Impossible de se connecter à %s %s :" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Impossible d'accéder au porte-clés : « %s »" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" +"E: liste de paramètres trop longue pour Acquire::gpgv::Options. Abandon." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" +"Erreur interne : signature correcte, mais il est impossible de déterminer " +"l'empreinte de la clé." + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Au moins une signature non valable a été rencontrée." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" +"Impossible d'exécuter « %s » pour contrôler la signature\n" +"(veuillez vérifier si gnupg est installé)." + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Erreur inconnue à l'exécution de gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "Les signatures suivantes ne sont pas valables :\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"Les signatures suivantes n'ont pas pu être vérifiées car la clé publique " +"n'est pas disponible :\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Ne parvient pas à ouvrir le tube pour %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Erreur de lecture du processus %s" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Attente des fichiers d'en-tête" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "J'ai une simple ligne d'en-tête au-dessus du caractère %u" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Mauvaise ligne d'en-tête" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "Le serveur http a envoyé une réponse dont l'en-tête est invalide" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "Le serveur http a envoyé un en-tête « Content-Length » invalide" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "Le serveur http a envoyé un en-tête « Content-Range » invalide" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "Ce serveur http possède un support des limites non-valide" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Format de date inconnu" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Sélection défaillante" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Délai de connexion dépassé" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Erreur d'écriture du fichier de sortie" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Erreur d'écriture sur un fichier" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Erreur d'écriture sur le fichier" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "Erreur de lecture depuis le serveur distant et clôture de la connexion" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Erreur de lecture du serveur" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Mauvais en-tête de donnée" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Échec de la connexion" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Erreur interne" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Impossible de mapper un fichier vide en mémoire" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Impossible de réaliser un mapping de %lu octets en mémoire" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "La sélection %s n'a pu être trouvée" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Type d'abréviation non reconnue : « %c »" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Ouverture du fichier de configuration %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "La ligne %d est trop longue (maxi %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Erreur syntaxique %s:%u : le bloc commence sans aucun nom." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Erreur syntaxique %s:%u : balise mal formée" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Erreur syntaxique %s:%u : valeur suivie de choses illicites" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" +"Erreur syntaxique %s:%u : ces directives ne peuvent être appliquées qu'au " +"niveau le plus haut" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Erreur syntaxique %s:%u: trop de niveaux d'imbrication d'includes" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Erreur syntaxique %s:%u : inclus à partir d'ici" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Erreur syntaxique %s:%u : directive « %s » non tolérée" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Erreur syntaxique %s:%u : valeur aberrante à la fin du fichier" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Erreur !" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Fait" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "L'option « %c » de la ligne de commande [d'origine %s] est inconnue." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "L'option %s de la ligne de commande n'est pas reconnue" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "L'option %s de la ligne de commande n'est pas une valeur booléenne" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "L'option %s nécessite un argument." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "Option %s : l'item configuration doit être spécifiée avec un =." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "L'option %s prend un nombre entier en argument, et non « %s »" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "L'option « %s » est trop longue" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "La signification %s n'est pas comprise, veuillez essayer vrai ou faux." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "L'opération %s n'est pas valable" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Impossible de localiser le point de montage %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Impossible d'accéder à %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Impossible d'accéder au cédérom." + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "Verrou non utilisé pour le fichier %s en lecture seule" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Impossible d'ouvrir le fichier verrou %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "Verrou non utilisé pour le fichier %s se situant sur une partition nfs" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Impossible de verrouiller %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "A attendu %s mais il n'était pas présent" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Le sous-processus %s a commis une violation d'accès mémoire" + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Le sous-processus %s a renvoyé un code d'erreur (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Le sous-processus %s s'est arrêté prématurément" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Impossible de verrouiller %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "lu(s), %lu restant à lire, mais rien n'est disponible" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "écrit(s), %lu restant à écrire, mais l'écriture est impossible" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Problème de fermeture du fichier" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Problème d'effacement du fichier" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Problème de synchronisation du fichier" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Cache des paquets vide" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Le fichier de cache des paquets est corrompu" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Le fichier de cache des paquets a une version incompatible" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Cet APT ne supporte pas le système de version « %s »" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "Le cache des paquets a été construit pour une architecture différente" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Dépend" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Pré-Dépend" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Suggère" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Recommande" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Est en conflit avec" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Remplace" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Rend obsolète" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "important" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "nécessaire" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "standard" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "optionnel" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "supplémentaire" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Construction de l'arbre des dépendances" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Versions possibles" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Génération des dépendances" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Impossible de traiter le fichier %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Impossible de traiter le fichier %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Ligne %lu mal formée dans le fichier de source %s (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Ligne %lu mal formée dans la liste de sources %s (distribution)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Ligne %lu mal formée dans la liste des sources %s (analyse de l'URI)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "" +"Ligne %lu mal formée dans la liste des sources %s (distribution absolue)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "" +"Ligne %lu mal formée dans la liste des sources %s (analyse de distribution)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Ouverture de %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "La ligne %u du fichier des listes de sources %s est trop longue." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Ligne %u mal formée dans la liste des sources %s (type)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "" +"Le type « %s » est inconnu sur la ligne %u dans la liste des sources %s" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "" +"Ligne %u mal formée dans la liste des sources %s (identifiant du fournisseur)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Cette installation va temporairement nécessiter l'enlèvement du paquet " +"essentiel %s en raison d'une boucle entre les champs Conflicts et Pre-" +"Depends. C'est souvent une mauvaise chose, mais si vous souhaitez réellement " +"le faire, activez l'option APT::Force-LoopBreak." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Le type de fichier d'index « %s » n'est pas accepté" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"Le paquet %s doit être réinstallé, mais je ne parviens pas à trouver son " +"archive." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Erreur, pkgProblemResolver::Resolve a généré des ruptures, ce qui a pu être " +"causé par les paquets devant être gardés en l'état." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "" +"Impossible de corriger les problèmes, des paquets défecteux sont en mode " +"« garder en l'état »." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Le répertoire %spartial pour les listes n'existe pas." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Le répertoire d'archive %spartial n'existe pas." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "Téléchargement du fichier %li de %li (%s restant)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "Téléchargement du fichier %li de %li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Le pilote pour la méthode %s n'a pu être trouvé." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "La méthode %s n'a pas démarré correctement" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "" +"Veuillez insérer le disque « %s » dans le lecteur « %s » et appuyez sur la " +"touche Entrée." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Le système de paquet « %s » n'est pas supporté" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Impossible de déterminer un type du système de paquets adéquat" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Impossible de localiser %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "" +"Vous devez insérer quelques adresses « sources » dans votre sources.list" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" +"Les listes de paquets ou le fichier « status » ne peuvent être analysés ou " +"lus." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "Vous pouvez lancer « apt-get update » pour corriger ces problèmes." + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "" +"Enregistrement invalide dans votre fichier « préférences », aucune entrée " +"« Package »." + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Étiquette %s inconnue" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Aucune priorité (ou zéro) n'a été spécifiée pour l'étiquette" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Le cache possède un système de version incompatible" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Erreur apparue lors du traitement de %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Erreur apparue lors du traitement de %s (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Erreur apparue lors du traitement de %s (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Erreur apparue lors du traitement de %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Erreur apparue lors du traitement de %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Erreur apparue lors du traitement de %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Erreur apparue lors du traitement de %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" +"Vous avez dépassé le nombre de noms de paquets que cet APT est capable de " +"traiter." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "" +"Vous avez dépassé le nombre de versions que cet APT est capable de traiter." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" +"Vous avez dépassé le nombre de dépendances que cet APT est capable de " +"traiter." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Erreur apparue lors du traitement de %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Erreur apparue lors du traitement de %s (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "" +"Le paquet %s %s n'a pu être trouvé lors du traitement des dépendances des " +"fichiers" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Impossible de localiser la liste des paquets sources %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Assemblage des fichiers listés dans les champs Provides" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "" +"Erreur d'entrée/sortie lors de la sauvegarde du fichier de cache des sources" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "impossible de changer le nom, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "Somme de contrôle MD5 incohérente" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "" +"Aucune clé publique n'est disponible pour la/les clé(s) suivante(s) :\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Je ne suis pas parvenu à localiser un fichier du paquet %s. Ceci signifie " +"sans doute que vous devrez corriger ce paquet manuellement (absence " +"d'architecture)." + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Je ne suis pas parvenu à localiser un fichier du paquet %s. Ceci signifie " +"que vous devrez corriger manuellement ce paquet." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"Les fichiers d'index des paquets sont corrompus. Aucun champ « Filename: » " +"pour le paquet %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Taille incohérente" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Le bloc de fournisseur %s ne comporte pas d'empreinte" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Utilisation du point de montage %s pour le cédérom\n" +"Montage du cédérom\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Identification..." + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Étiquette stockée : %s\n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Utilisation du point de montage %s pour le cédérom\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "Démontage du cédérom\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Attente du disque...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Montage du cédérom...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Examen du disque à la recherche de fichiers d'index...\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "%i index de paquets trouvés, %i index de sources et %i signatures\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Ce nom n'est pas valable, veuillez recommencer.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Ce disque s'appelle :\n" +"« %s »\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Copie des listes de paquets..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Écriture de la nouvelle liste de sources\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Les entrées de listes de sources pour ce disque sont :\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "Démontage du cédérom..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "%i enregistrements écrits.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "%i enregistrements écrits avec %i fichiers manquants.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "%i enregistrements écrits avec %i fichiers qui ne correspondent pas\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" +"%i enregistrements écrits avec %i fichiers manquants et %i qui ne " +"correspondent pas\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "Préparation de %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "Décompression de %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "Préparation de la configuration de %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "Configuration de %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "%s installé" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "Préparation de la suppression de %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "Suppression de %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "%s supprimé" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "Préparation de la suppression complète de %s" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "%s complètement supprimé" + +#: methods/rred.cc:219 +msgid "Could not patch file" +msgstr "Impossible de modifier (« patch ») %s" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Connexion fermée prématurément" + +#~ msgid "File date has changed %s" +#~ msgstr "La date du fichier a changé %s" diff --git a/po/gl.po b/po/gl.po new file mode 100644 index 0000000..ee80fa7 --- /dev/null +++ b/po/gl.po @@ -0,0 +1,2800 @@ +# Galician translation of apt +# This file is put in the public domain. +# Jacobo Tarrío , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: apt\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-09-07 11:48+0200\n" +"Last-Translator: Jacobo Tarrío \n" +"Language-Team: Galician \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "O paquete %s versión %s ten unha dependencia incumprida:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Non se puido atopar o paquete %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Número total de nomes de paquetes : " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Paquetes normais: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Paquetes virtuais puros: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Paquetes virtuais simples: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Paquetes virtuais mixtos: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Non atopados: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Número total de versións distintas: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Número total de dependencias: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Número total de relacións versión/ficheiro: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Número total de mapas de Provides: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Número total de cadeas: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Espazo total de versións de dependencias: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Espazo de reserva total: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Espazo total contabilizado: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "O ficheiro de paquete %s está sen sincronizar." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Debe fornecer exactamente un patrón" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Non se atopou ningún paquete" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Ficheiros de paquetes:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "" +"A caché está sen sincronizar, non se pode facer referencia a un ficheiro de " +"paquetes" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "[%4i] %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Paquetes inmobilizados:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(non se atopou)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Instalado: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(ningún)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Candidato: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Inmobilizado: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Táboa de versións:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s para %s %s compilado en %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Emprego: apt-cache [opcións] orde\n" +" apt-cache [opcións] add fich1 [fich2 ...]\n" +" apt-cache [opcións] showpkg paq1 [paq2 ...]\n" +" apt-cache [opcións] showsrc paq1 [paq2 ...]\n" +"\n" +"apt-cache é unha ferramenta de baixo nivel que se emprega para manipular\n" +"os ficheiros binarios de caché de APT e obter información deles\n" +"\n" +"Ordes:\n" +" add - Engade un ficheiro de paquetes á caché de fontes\n" +" gencaches - Reconstrúe as cachés de paquetes e fontes\n" +" showpkg - Amosa información xeral dun paquete\n" +" showsrc - Amosa os rexistros de fontes\n" +" stats - Amosa algunhas estatísticas básicas\n" +" dump - Amosa todo o ficheiro nun formato abreviado\n" +" dumpavail - Saca un ficheiro de dispoñibles pola saída estándar\n" +" unmet - Amosa as dependencias sen cumprir\n" +" search - Busca unha expresión regular na lista de paquetes\n" +" show - Amosa un rexistro lexible para o paquete\n" +" depends - Amosa a información bruta de dependencias dun paquete\n" +" rdepends - Amosa información de dependencias inversas dun paquete\n" +" pkgnames - Amosa os nomes de tódolos paquetes\n" +" dotty - Xera gráficas de paquetes para GraphVis\n" +" xvcg - Xera gráficas de paquetes para xvcg\n" +" policy - Amosa a configuración de normativa\n" +"\n" +"Opcións:\n" +" -h Este texto de axuda.\n" +" -p=? A caché de paquetes.\n" +" -s=? A caché de fontes.\n" +" -q Desactiva o indicador de progreso.\n" +" -i Amosa só as dependencias importantes na orde unmet.\n" +" -c=? Le este ficheiro de configuración.\n" +" -o=? Estabrece unha opción de configuración, por exemplo: -o dir::cache=/" +"tmp\n" +"Vexa as páxinas de manual de apt-cache(8) e apt.conf(5) para máis " +"información.\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "Forneza un nome para este disco, coma \"Debian 2.1r1 Disco 1\"" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Introduza un disco na unidade e prema Intro" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Repita este proceso para o resto de CDs do seu conxunto." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Os argumentos non van en parellas" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Emprego: apt-config [opcións] orde\n" +"\n" +"apt-config é unha ferramenta simple para ler a configuración de APT\n" +"\n" +"Ordes:\n" +" shell - Modo de intérprete de ordes\n" +" dump - Amosa a configuración\n" +"\n" +"Opcións:\n" +" -h Este texto de axuda.\n" +" -c=? Le este ficheiro de configuración\n" +" -o=? Estabrece unha opción de configuración, por exemplo: -o dir::cache=/" +"tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s non é un paquete DEB válido." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Emprego: apt-extracttemplates fich1 [fich2 ...]\n" +"\n" +"apt-extracttemplates é unha ferramenta para extraer información\n" +"de configuración e patróns dos paquetes debian\n" +"\n" +"Opcións:\n" +" -h Este texto de axuda\n" +" -t Estabrece o directorio temporal\n" +" -c=? Le este ficheiro de configuración\n" +" -o=? Estabrece unha opción de configuración, por exemplo: -o dir::cache=/" +"tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Non se puido escribir en %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Non se puido obter a versión de debconf. ¿Debconf está instalado?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "A lista de extensións de paquetes é longa de máis" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Erro ao procesar o directorio %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "A lista de extensións de fontes é longa de máis" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Erro ao gravar a cabeceira no ficheiro de contido" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Erro ao procesar o contido %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Emprego: apt-ftparchive [opcións] orde\n" +"Ordes: packages rutabinaria [fichoverride [prefixoruta]]\n" +" sources rutafontes [fichoverride [prefixoruta]]\n" +" contents ruta\n" +" release ruta\n" +" generate config [grupos]\n" +" clean config\n" +"\n" +"apt-ftparchive xera ficheiros de índices para arquivos de Debian. Soporta\n" +"varios estilos de xeración, de totalmente automática a substitutos " +"funcionais\n" +"de dpkg-scanpackages e dpkg-scansources\n" +"\n" +"apt-ftparchive xera ficheiros Packages dunha árbore de .debs. O ficheiro\n" +"Packages ten o contido de tódolos campos de control de cada paquete, así\n" +"coma a suma MD5 e o tamaño do ficheiro. Sopórtase un ficheiro de \"overrides" +"\"\n" +"para forzar o valor dos campos Priority e Section.\n" +"\n" +"De xeito semellante, apt-ftparchive xera ficheiros Sources dunha árbore de\n" +".dscs. Pódese empregar a opción --source-override para especificar un " +"ficheiro\n" +"de \"overrides\" para fontes.\n" +"\n" +"As ordes \"packages\" e \"sources\" deberían se executar na raíz da árbore.\n" +"\"Rutabinaria\" debería apuntar á base da busca recursiva e o ficheiro\n" +"\"fichoverride\" debería conter os modificadores de \"override\". " +"\"Prefixoruta\"\n" +"engádese aos campos de nomes de ficheiros se está presente. Un exemplo\n" +"de emprego do arquivo de Debian:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Opcións:\n" +" -h Este texto de axuda\n" +" --md5 Controla a xeración de MD5\n" +" -s=? Ficheiro de \"override\" de fontes\n" +" -q Non produce ningunha saída por pantalla\n" +" -d=? Escolle a base de datos de caché opcional\n" +" --no-delink Activa o modo de depuración de desligado\n" +" --contents Controla a xeración do ficheiro de contido\n" +" -c=? Le este ficheiro de configuración\n" +" -o=? Estabrece unha opción de configuración" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Ningunha selección encaixou" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Fallan ficheiros no grupo de ficheiros de paquetes \"%s\"" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "" +"A base de datos estaba corrompida, cambiouse o nome do ficheiro a %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "A base de datos é antiga, trátase de actualizar %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"O formato da base de datos non é válido. Se actualizou desde unha versión " +"antiga de apt, elimine e volva crear a base de datos." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Non se puido abrir o ficheiro de base de datos %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Non se atopou %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "O arquivo non ten un rexistro de control" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Non se puido obter un cursor" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "A: Non se puido ler o directorio %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "A: Non se atopou %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "A: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E: Os erros aplícanse ao ficheiro " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Non se puido resolver %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "O percorrido da árbore fallou" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Non se puido abrir %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " DesLig %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Non se puido ler a ligazón %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Non se puido borrar %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Non se puido ligar %s con %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " Alcanzouse o límite de desligado de %sB.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "O arquivo non tiña un campo Package" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s non ten unha entrada de \"override\"\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " O mantedor de %s é %s, non %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s non ten unha entrada de \"override\" de código fonte\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s tampouco ten unha entrada de \"override\" de binarios\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Erro interno, non se puido atopar o membro %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Non se puido reservar memoria" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Non se puido abrir %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "\"Override\" %s liña %lu mal formado (1)" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "\"Override\" %s liña %lu mal formado (2)" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "\"Override\" %s liña %lu mal formado (3)" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Non se puido ler o ficheiro de \"overrides\" %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Algoritmo de compresión \"%s\" descoñecido" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "A saída comprimida %s precisa dun xogo de compresión" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Non se puido crear a canle IPC ao subproceso" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Non se puido crear o FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Non se puido chamar a fork" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Fillo de compresión" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Erro interno, non se puido crear %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Non se puido crear o IPC do subproceso" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Non se puido executar o compresor " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "descompresor" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "A E/S ao subproceso/ficheiro fallou" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Non se puido ler ao calcular o MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Problema ao borrar %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Non se puido cambiar o nome de %s a %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "S" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Erro na compilación da expresión regular - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Os seguintes paquetes teñen dependencias sen cumprir:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "pero %s está instalado" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "pero hase instalar %s" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "pero non é instalable" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "pero é un paquete virtual" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "pero non está instalado" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "pero non se ha instalar" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " ou" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Os seguintes paquetes NOVOS hanse instalar:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Os seguintes paquetes hanse ELIMINAR:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Os seguintes paquetes consérvanse:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Os seguintes paquetes hanse actualizar:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Os seguintes paquetes hanse DESACTUALIZAR:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Os seguintes paquetes retidos hanse modificar:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (debido a %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"AVISO: Hanse eliminar os seguintes paquetes esenciais.\n" +"¡Isto NON se debe facer a menos que saiba exactamente o que está a facer!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu actualizados, %lu instalados, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu reinstalados, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu desactualizados, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu hanse eliminar e %lu sen actualizar.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu non instalados ou eliminados de todo.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "A corrixir as dependencias..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " fallou." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Non se puido corrixir as dependencias." + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Non se puido minimizar o xogo de actualizacións" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Rematado" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "Pode querer executar \"apt-get -f install\" para corrixilos." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Dependencias incumpridas. Probe a empregar -f." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "AVISO: ¡Non se poden autenticar os seguintes paquetes!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Ignórase o aviso de autenticación.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "¿Instalar estes paquetes sen verificación [s/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Non se puido autenticar algúns paquetes" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Houbo problemas e empregouse -y sen --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "Erro interno, chamouse a InstallPackages con paquetes rotos." + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Hai que eliminar paquetes pero a eliminación está desactivada." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Erro interno, a ordeación non rematou" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Non se puido bloquear o directorio de descargas" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "Non se puido ler a lista de orixes." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"Que raro... Os tamaños non coinciden, envíe email a apt@packages.debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Hai que recibir %sB/%sB de arquivos.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Hai que recibir %sB de arquivos.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "Despois de desempaquetar hanse ocupar %sB de disco adicionais.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Despois de desempaquetar hanse liberar %sB de disco.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Non se puido determinar o espazo libre en %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Non hai espazo libre de abondo en %s." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "Especificouse \"Só Triviais\" pero esta non é unha operación trivial." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "¡Si, fai o que digo!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Está a piques de facer algo perigoso.\n" +"Para continuar escriba a frase \"%s\"\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Abortar." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "¿Quere continuar [S/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Non se puido obter %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Non se puido descargar algúns ficheiros" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Completouse a descarga no modo de só descargas" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Non se puido obter algúns arquivos; probe con apt-get update ou --fix-" +"missing." + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "" +"O emprego conxunto de --fix-missing e intercambio de discos non está " +"soportado" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Non se puido corrixir os paquetes non dispoñibles." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "A abortar a instalación." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Nota, escóllese %s no canto de %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "Omítese %s, xa está instalado e non se especificou a actualización.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "O paquete %s non está instalado, así que non se eliminou\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "O paquete %s é un paquete virtual fornecido por:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Instalado]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Debería escoller un para instalar." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"O paquete %s non está dispoñible, pero outro paquete fai referencia a el.\n" +"Isto pode significar que o paquete falla, está obsoleto ou só está\n" +"dispoñible noutra fonte.\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Nembargantes, os seguintes paquetes substitúeno:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "O paquete %s non ten un candidato para a instalación" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "A reinstalación de %s non é posible, non se pode descargar.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s xa é a versión máis recente.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Non se atopou a versión \"%s\" de \"%s\"" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Non se atopou a versión \"%s\" de \"%s\"" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Escolleuse a versión %s (%s) de %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "A orde \"update\" non toma argumentos" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Non se puido bloquear o directorio de listas" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Non se puido descargar algúns ficheiros de índices; ignoráronse ou " +"empregáronse uns vellos no seu lugar." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Erro interno, AllUpgrade rompeu cousas" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Non se puido atopar o paquete %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Nota, escóllese %s para a expresión regular \"%s\"\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "Pode querer executar \"apt-get -f install\" corrixir isto:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Dependencias incumpridas. Probe \"apt-get -f install\" sen paquetes (ou " +"especifique unha solución)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Non se puido instalar algúns paquetes. Isto pode significar que solicitou\n" +"unha situación imposible ou, se emprega a distribución inestable, que\n" +"algúns paquetes solicitados aínda non se crearon ou moveron de Incoming." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Xa que só solicitou unha soa operación, é bastante probable que o\n" +"paquete non sea instalable e que se deba informar dun erro no paquete." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "A seguinte información pode axudar a resolver a situación:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Paquetes rotos" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Hanse instalar os seguintes paquetes extra:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Paquetes suxiridos:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Paquetes recomendados:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "A calcular a actualización... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Fallou" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Rematado" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "Erro interno, o resolvedor interno rompeu cousas" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "" +"Ten que especificar alomenos un paquete para lle descargar o código fonte" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Non se puido atopar un paquete fonte para %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Omítese o ficheiro xa descargado \"%s\"\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Non hai espazo libre de abondo en %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Hai que recibir %sB/%sB de arquivos de fonte.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Hai que recibir %sB de arquivos de fonte.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Obter fonte %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Non se puido recibir algúns arquivos." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Omítese o desempaquetamento do código fonte xa desempaquetado en %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Fallou a orde de desempaquetamento \"%s\".\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Comprobe que o paquete \"dpkg-dev\" estea instalado.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Fallou a codificación de %s.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "O proceso fillo fallou" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"Ten que especificar alomenos un paquete para lle comprobar as dependencias " +"de compilación" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Non se puido obter a información de dependencias de compilación de %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s non ten dependencias de compilación.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"A dependencia \"%s\" de %s non se pode satisfacer porque non se pode atopar " +"o paquete %s" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"A dependencia \"%s\" de %s non se pode satisfacer porque ningunha versión " +"dispoñible do paquete %s satisfai os requirimentos de versión" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Non se puido satisfacer a dependencia \"%s\" de %s: O paquete instalado %s é " +"novo de máis" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Non se puido satisfacer a dependencia \"%s\" de %s: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Non se puideron satisfacer as dependencias de compilación de %s." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Non se puido procesar as dependencias de compilación" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Módulos soportados:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Emprego: apt-get [opcións] orde\n" +" apt-get [opcións] install|remove paq1 [paq2 ...]\n" +" apt-get [opcións] source paq1 [paq2 ...]\n" +"\n" +"apt-get é unha simple interface de liña de ordes para descargar e instalar\n" +"paquetes. As ordes empregadas máis habitualmente son \"update\" e \"install" +"\".\n" +"\n" +"Ordes:\n" +" update - Descarga as novas listas de paquetes\n" +" upgrade - Realiza unha actualización\n" +" install - Instala novos paquetes (o paquete chámase libc6, non libc6." +"deb)\n" +" remove - Elimina paquetes\n" +" source - Descarga arquivos de código fonte\n" +" build-dep - Configura as dependencias de compilación dos paquetes fonte\n" +" dist-upgrade - Actualiza a distribución, vexa apt-get(8)\n" +" dselect-upgrade - Sigue as seleccións de dselect\n" +" clean - Borra os arquivos descargados\n" +" autoclean - Borra os arquivos antigos descargados\n" +" check - Verifica que non hai dependencias rotas\n" +"\n" +"Opcións:\n" +" -h Este texto de axuda.\n" +" -q Saída que se pode rexistrar - sen indicador de progreso\n" +" -qq Sen saída agás os erros\n" +" -d Só descarga - NON instala nin desempaqueta os arquivos\n" +" -s No-act. Realiza unha simulación de ordeamento\n" +" -y Supón \"Sí\" a tódalas preguntas e non as amosa\n" +" -f Tenta continuar se a comprobación de integridade falla\n" +" -m Tenta continuar se non se poden localizar os arquivos\n" +" -u Tamén amosa unha lista de paquetes actualizados\n" +" -b Constrúe o paquete fonte despois de o descargar\n" +" -V Amosa números detallados de versión\n" +" -c=? Le este ficheiro de configuración\n" +" -o=? Estabrece unha opción de configuración, por exemplo: -o dir::cache=/" +"tmp\n" +"Vexa as páxinas de manual apt-get(8), sources.list(5) e apt.conf(5) para\n" +"ver máis información e opcións.\n" +" Este APT ten Poderes de Super Vaca.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Teño " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Rcb:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ign " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Err " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Recibíronse %sB en %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [A traballar]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Cambio de soporte: introduza o disco etiquetado\n" +" \"%s\"\n" +"na unidade \"%s\" e prema Intro\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "¡Rexistro de paquete descoñecido!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Emprego: apt-sortpkgs [opcións] fich1 [fich2 ...]\n" +"\n" +"apt-sortpkgs é unha ferramenta simple para ordear ficheiros de paquetes.\n" +"A opción -s emprégase para indicar o tipo de ficheiro que é.\n" +"\n" +"Opcións:\n" +" -h Este texto de axuda\n" +" -s Emprega ordeamento por ficheiros fonte\n" +" -c=? Le este ficheiro de configuración\n" +" -o=? Estabrece unha opción de configuración; por exemplo, -o dir::cache=/" +"tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "¡Configuración por defecto incorrecta!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Prema Intro para continuar." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Houbo algúns erros ao desempaquetar. Vanse configurar os paquetes" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "que se instalaron. Isto pode producir erros duplicados ou erros" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "causados por dependencias incumpridas. Isto é normal, só os erros" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"que hai enriba desta mensaxe son importantes. Arránxeos e volva instalar." + +#: dselect/update:30 +msgid "Merging available information" +msgstr "A mesturar a información sobre paquetes dispoñibles" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Non se puido crear as canles" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Non se puido executar gzip" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Arquivo corrompido" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "A suma de comprobación do arquivo tar non coincide, está corrompido" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Tipo de cabeceira TAR %u descoñecido, membro %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Sinatura de arquivo non válida" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Erro ao ler a cabeceira do membro do arquivo" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Cabeceira do membro do arquivo non válida" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "O arquivo é curto de máis" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Non se puido ler as cabeceiras dos arquivos" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "Chamouse a DropNode nun nodo aínda ligado" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Non se puido atopar o elemento hash" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Non se puido reservar un desvío" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Erro interno en AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Téntase sobrescribir un desvío, %s -> %s e %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Desvío %s -> %s engadido dúas veces" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Ficheiro de configuración %s/%s duplicado" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Non se puido gravar o ficheiro %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Non se puido pechar o ficheiro %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "A ruta %s é longa de máis" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "A desempaquetar %s máis dunha vez" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "O directorio %s está desviado" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "O paquete tenta gravar no destino do desvío %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "A ruta do desvío é longa de máis" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "O directorio %s estase a substituír por algo que non é un directorio" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Non se puido atopar o nodo no seu caldeiro hash" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "A ruta é longa de máis" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Coincidencia na sobrescritura sen versión para %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "O ficheiro %s/%s sobrescribe o do paquete %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Non se pode ler %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Non se atopou %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Non se puido eliminar %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Non se pode crear %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Non se atopou %sinfo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "" +"Os directorios info e temp teñen que estar no mesmo sistema de ficheiros" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "A ler as listas de paquetes" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Non se puido cambiar ao directorio de administración %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Erro interno ao obter un nome de paquete" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "A ler a lista de ficheiros" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Non se puido abrir o ficheiro de listas \"%sinfo/%s\". Se non pode " +"recuperalo, baléireo e reinstale a mesma versión do paquete." + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Non se puido ler o ficheiro de listas %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Erro interno ao obter un nodo" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Non se puido abrir o ficheiro de desvíos %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "O ficheiro de desvíos está corrompido" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Liña non válida no ficheiro de desvíos: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Erro interno ao engadir un desvío" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "Ten que se inicializar a caché de paquetes primeiro" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Non se puido atopar unha cabeceira Package:, desprazamento %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Sección ConfFile incorrecta no ficheiro de estado. Desprazamento %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Erro ao analizar o MD5. Desprazamento %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Este non é un arquivo DEB válido, falla o membro \"%s\"" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "Este non é un arquivo DEB válido, non ten un membro \"%s\" ou \"%s\"" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Non se puido cambiar a %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Erro interno, non se puido atopar un membro" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Non se puido atopar un ficheiro de control válido" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Ficheiro de control non analizable" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Non se puido ler a base de datos de CD-ROMs %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Empregue apt-cdrom para que APT poida recoñecer este CD-ROM. Non se pode " +"empregar apt-get update para engadir CD-ROMs" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "CD-ROM incorrecto" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "Non se puido desmontar o CD-ROM de %s, pode estarse empregando aínda." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Non se atopou o disco" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Non se atopou o ficheiro" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Non se atopou" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Non se puido estabrecer a hora de modificación" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "URI non válido, os URIs locais non deben comezar por //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "A se identificar" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Non se puido determinar o nome do outro extremo" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Non se puido determinar o nome local" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "O servidor rexeitou a conexión e dixo: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "A orde USER fallou, o servidor dixo: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "A orde PASS fallou, o servidor dixo: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Especificouse un servidor proxy pero non un script de conexión, Acquire::" +"ftp::ProxyLogin está baleiro." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "A orde do script de conexión \"%s\" fallou, o servidor dixo: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "A orde TYPE fallou, o servidor dixo: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Tempo esgotado para a conexión" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "O servidor pechou a conexión" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Erro de lectura" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Unha resposta desbordou o buffer." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Corrupción do protocolo" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Erro de escritura" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Non se puido crear un socket" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "" +"Non se puido conectar o socket de datos, o tempo esgotouse para a conexión" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Non se puido conectar o socket pasivo." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo non puido obter un socket para escoitar" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Non se puido ligar un socket" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Non se puido escoitar no socket" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Non se puido determinar o nome do socket" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Non se puido enviar a orde PORT" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Familia de enderezos %u (AF_*) descoñecida" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "A orde EPRT fallou, o servidor dixo: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "A conexión do socket de datos esgotou o tempo" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Non se pode aceptar a conexión" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Problema ao calcular o hash do ficheiro" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Non se pode obter o ficheiro, o servidor dixo \"%s\"" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "O socket de datos esgotou o tempo" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "A transferencia de datos fallou, o servidor dixo \"%s\"" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Petición" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Non se puido chamar a " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "A conectar a %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Non se puido crear un socket para %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Non se pode iniciar a conexión a %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Non se puido conectar a %s:%s (%s), a conexión esgotou o tempo" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Non se puido conectar a %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "A conectar a %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Non se puido resolver \"%s\"" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Fallo temporal ao resolver \"%s\"" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Algo estraño ocorreu ao resolver \"%s:%s\" (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Non se pode conectar a %s %s:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Non se puido acceder ao chaveiro: \"%s\"" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" +"E: A lista de argumentos de Acquire:gpgv::Options é longa de máis. Sáese." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" +"Erro interno: Sinatura correcta, pero non se puido determinar a pegada " +"dixital da chave" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Atopouse alomenos unha sinatura non válida." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" +"Non se puido executar \"%s\" para verificar a sinatura (¿está gnupg " +"instalado?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Erro descoñecido ao executar gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "As seguintes sinaturas non eran válidas:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"Non se puido verificar as seguintes sinaturas porque a chave pública non " +"está dispoñible:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Non se puido abrir unha canle para %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Erro de lectura do proceso %s" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "A agardar polas cabeceiras" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Recibiuse unha soa liña de cabeceira en %u caracteres" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Liña de cabeceira incorrecta" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "O servidor HTTP enviou unha cabeceira de resposta non válida" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "O servidor HTTP enviou unha cabeceira Content-Length non válida" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "O servidor HTTP enviou unha cabeceira Content-Range non válida" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "Este servidor HTTP ten un soporte de rangos roto" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Formato de data descoñecido" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Fallou a chamada a select" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "A conexión esgotou o tempo" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Erro ao escribir no ficheiro de saída" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Erro ao escribir nun ficheiro" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Erro ao escribir no ficheiro" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "Erro ao ler do servidor. O extremo remoto pechou a conexión" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Erro ao ler do servidor" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Datos da cabeceira incorrectos" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "A conexión fallou" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Erro interno" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Non se pode facer mmap sobre un ficheiro baleiro" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Non se puido facer mmap de %lu bytes" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Non se atopou a selección %s" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Abreviatura de tipo \"%c\" descoñecida" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "A abrir o ficheiro de configuración %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Liña %d longa de máis (máximo %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Erro de sintaxe %s:%u: O bloque comeza sen un nome." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Erro de sintaxe %s:%u: Etiqueta mal formada" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Erro de sintaxe %s:%u: Lixo extra despois do valor" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "Erro de sintaxe %s:%u: Só se poden facer directivas no nivel superior" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Erro de sintaxe %s:%u: Includes aniñados de máis" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Erro de sintaxe %s:%u: Incluído de aquí" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Erro de sintaxe %s:%u: Non se soporta a directiva \"%s\"" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Erro de sintaxe %s:%u: Lixo extra á fin da liña" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... ¡Erro!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Rematado" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Non se coñece a opción de liña de ordes \"%c\" [de %s]." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Non se entende a opción de liña de ordes %s" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "A opción de liña de ordes %s non é booleana" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "A opción %s precisa dun argumento." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "" +"Opción %s: A especificación de elemento de configuración debe ter un =." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "A opción %s precisa dun argumento enteiro, non \"%s\"" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "A opción \"%s\" é longa de máis" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "O senso %s non se entende, probe \"true\" ou \"false\"." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Operación %s non válida" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Non se pode analizar o punto de montaxe %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Non se pode cambiar a %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Non se puido analizar o CD-ROM" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "Non se empregan bloqueos para o ficheiro de bloqueo de só lectura %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Non se puido abrir o ficheiro de bloqueo %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "Non se empregan bloqueos para o ficheiro de bloqueo montado por NFS %s" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Non se puido obter o bloqueo %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Agardouse por %s pero non estaba alí" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "O subproceso %s recibiu un fallo de segmento." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "O subproceso %s devolveu un código de erro (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "O subproceso %s saíu de xeito inesperado" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Non se puido abrir o ficheiro %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "lectura, aínda hai %lu para ler pero non queda ningún" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "escritura, aínda hai %lu para escribir pero non se puido" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Problema ao pechar o ficheiro" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Problema ao borrar o ficheiro" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Problema ao sincronizar o ficheiro" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Caché de paquetes baleira" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "O ficheiro de caché de paquetes está corrompido" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "O ficheiro de caché de paquetes é unha versión incompatible" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Este APT non soporta o sistema de versionamento \"%s\"" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "A caché de paquetes construiuse para unha arquitectura diferente" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Depende" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "PreDepende" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Suxire" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Recomenda" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Conflicto con" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Substitúe a" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Fai obsoleto a" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "importante" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "requirido" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "estándar" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "opcional" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "extra" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "A construír a árbore de dependencias" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Versións candidatas" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Xeración de dependencias" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Non se pode analizar o ficheiro de paquetes %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Non se pode analizar o ficheiro de paquetes %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Liña %lu mal formada na lista de fontes %s (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Liña %lu mal formada na lista de fontes %s (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Liña %lu mal formada na lista de fontes %s (análise de URI)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Liña %lu mal formada na lista de fontes %s (dist absoluta)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Liña %lu mal formada na lista de fontes %s (análise de dist)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "A abrir %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Liña %u longa de máis na lista de fontes %s." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Liña %u mal formada na lista de fontes %s (tipo)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "O tipo \"%s\" non se coñece na liña %u da lista de fontes %s" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Liña %u mal formada na lista de fontes %s (id de provedor)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Esta instalación ha requirir que se elimine temporalmente o paquete esencial " +"%s debido a un bucle de Conflictos e Pre-dependencias. Isto adoita ser malo, " +"pero se o quere facer, active a opción APT::Force-LoopBreak." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "O tipo de ficheiros de índices \"%s\" non está soportado" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"O paquete %s ten que se reinstalar, pero non se pode atopar o seu arquivo." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Erro, pkgProblemResolver::Resolve xerou interrupcións, pode estar causado " +"por paquetes retidos." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "Non se poden resolver os problemas, ten retidos paquetes rotos." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "O directorio de listas %spartial falla." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "O directorio de arquivos %spartial falla." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "A obter o ficheiro %li de %li (fallan %s)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "A obter o ficheiro %li de %li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Non se puido atopar o controlador de métodos %s." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "O método %s non se iniciou correctamente" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "Introduza o disco etiquetado: \"%s\" na unidade \"%s\" e prema Intro." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "O sistema de empaquetamento \"%s\" non está soportado" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Non se puido determinar un tipo de sistema de empaquetamento axeitado" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Non se pode analizar %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "Debe introducir algúns URIs fonte no seu ficheiro sources.list" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" +"Non se puido analizar ou abrir as listas de paquetes ou ficheiro de estado." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "Pode querer executar apt-get update para corrixir estes problemas" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "" +"Rexistro non válido no ficheiro de preferencias, non hai unha cabeceira " +"Package" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Non se entendeu o tipo de inmobilización %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "" +"Non se indicou unha prioridade (ou indicouse cero) para a inmobilización" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "A caché ten un sistema de versionamento incompatible" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Ocorreu un erro ao procesar %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Ocorreu un erro ao procesar %s (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Ocorreu un erro ao procesar %s (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Ocorreu un erro ao procesar %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Ocorreu un erro ao procesar %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Ocorreu un erro ao procesar %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Ocorreu un erro ao procesar %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "Guau, superou o número de nomes de paquetes que este APT pode manexar." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "Guau, superou o número de versións que este APT pode manexar." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "Guau, superou o número de dependencias que este APT pode manexar." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Ocorreu un erro ao procesar %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Ocorreu un erro ao procesar %s (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "Non se atopou o paquete %s %s ao procesar as dependencias de ficheiros" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Non se atopou a lista de paquetes fonte %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "A recoller as provisións de ficheiros" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "Erro de E/S ao gravar a caché de fontes" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "fallou o cambio de nome, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "Os MD5Sum non coinciden" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "" +"Non hai unha clave pública dispoñible para os seguintes IDs de clave:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Non se puido atopar un ficheiro para o paquete %s. Isto pode significar que " +"ten que arranxar este paquete a man. (Falla a arquitectura)" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Non se puido atopar un ficheiro para o paquete %s. Isto pode significar que " +"ten que arranxar este paquete a man." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"Os ficheiros de índices de paquetes están corrompidos. Non hai un campo " +"Filename: para o paquete %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Os tamaños non coinciden" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "O bloque de provedor %s non contén unha pegada dixital" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"A empregar o punto de montaxe de CD-ROMs %s\n" +"A montar o CD-ROM\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "A identificar.. " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Etiqueta armacenada: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "A empregar o punto de montaxe de CD-ROMs %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "A desmontar o CD-ROM\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "A agardar polo disco...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "A montar o CD-ROM...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "A buscar os ficheiros de índices no disco..\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "" +"Atopáronse %i índices de paquetes, %i índices de fontes e %i sinaturas\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Ese non é un nome válido, volva tentalo.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Este disco chámase: \n" +"\"%s\"\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "A copiar as listas de paquetes..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "A gravar a nova lista de fontes\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "As entradas da lista de fontes deste disco son:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "A desmontar o CD-ROM..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "Graváronse %i rexistros.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "Graváronse %i rexistros con %i ficheiros que fallan.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "Graváronse %i rexistros con %i ficheiros que non coinciden\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" +"Graváronse %i rexistros con %i ficheiros que fallan e %i ficheiros que non " +"coinciden\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "A preparar %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "A desempaquetar %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "A se preparar para configurar %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "A configurar %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "Instalouse %s" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "A se preparar para a eliminación de %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "A eliminar %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "Eliminouse %s" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "A se preparar para eliminar %s completamente" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "Eliminouse %s completamente" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Non se puido abrir o ficheiro %s" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "A conexión pechouse prematuramente" + +#~ msgid "File date has changed %s" +#~ msgstr "A data do ficheiro cambiou %s" + +#~ msgid "Reading file list" +#~ msgstr "A ler a lista de paquetes" + +#~ msgid "Could not execute " +#~ msgstr "Non se puido executar " + +#~ msgid "Preparing for remove with config %s" +#~ msgstr "A se preparar para a eliminación con config %s" + +#~ msgid "Removed with config %s" +#~ msgstr "Eliminouse con config %s" diff --git a/po/he.po b/po/he.po new file mode 100644 index 0000000..48010f9 --- /dev/null +++ b/po/he.po @@ -0,0 +1,2560 @@ +# English translation of apt_po. +# This file is put in the public domain. +# Lior Kaplan , 2004. +# +# +msgid "" +msgstr "" +"Project-Id-Version: apt 0.5.25\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2004-06-10 19:58+0300\n" +"Last-Translator: Lior Kaplan \n" +"Language-Team: Hebrew\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "לחבילה %s בגרסה %s יש תלויות שלא נענו:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "לא מצליח לאתר את החבילה %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "" + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr "חבילות נורמליות:" + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr "חבילות וירטואליות לחלוטין:" + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr "" + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr "" + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr "חסרות:" + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "" + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "" + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "" + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "" + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "" + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "" + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "" + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "" + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "קובץ החבילה %s לא מסונכרן." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "אתה חייב לתת בדיוק תבנית אחת" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "לא נמצאו חבילות" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "קבצי חבילה:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "חבילות נעוצות:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(לא נמצא)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr "מותקן:" + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(none)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr "מועמדים:" + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr "× ×¢×¥ חבילה:" + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr "" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s בשביל %s %s קומפל על %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "" + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s הוא לא חבילת DEB תקינה." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "לא מצליח לכתוב ל-%s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "לא מצליח לקבל את גרסת debconf. האם debconf מותקן?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "שגיאה בעיבוד ספריה %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "אין התאמות" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "חלק מהקבצים חסרים בקבוצת קבצי החבילה `%s'" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "מסד הנתונים אינו תקין, הקובץ הועבר ל-%s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "מסד הנתונים ישן, מנסה לשדרג ל-%s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "לא מצליח לפתוח את קובץ מסד הנתונים %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: לא מצליח לקרוא את הספריה %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E: שגיאות תקפות לקובץ" + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "כשלון בפענוח %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "כשלון בפתיחת %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr "" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** כשלון בקישור %s ל-%s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr "" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr "" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr "המתחזק של %s הוא %s ולא %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr "" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr "" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - כשלון בהקצאת זיכרון" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "לא מצליח לפתוח את %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "'%s' אלגוריתם דחיה לא ידוע" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "כשלון בביצוע fork" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "שגיאה פנימית, כלשון ביצירת %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "" + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "כשלון בשינוי השם %s ל-%s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "Y" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "לחבילות הבאות יש תלויות שלא נענו:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "אבל %s מותקנת" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "אבל %s הולכת להיות מותקנת" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "אבל היא אינה ניתנת להתקנה" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "אבל היא חבילה וירטואלית" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "אבל היא לא מותקנת" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "אבל היא אינה הולכת להיות מותקנת" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr "או" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "החבילות החדשות הבאות הולכות להיות מותקנות:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "החבילות הבאות יוסרו:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "החבילות הבאות מעובות:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "החבילות הבאות ישודרגו:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "החבילות הבאות ישודרגו מטה:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "החבילות המחוזקות הבאות ישונו:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (בגלל %s) " + +#: cmdline/apt-get.cc:546 +#, fuzzy +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"א ז ה ר ה: החבילות החיוניות הבאות יוסרו\n" +"על הפעולה להעשות *רק* אם אתה יודע מה אתה עושה!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu משודרגים, %lu מותקנים חדשים, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu מותקנות מחדש, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu משודרגות מטה, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu יוסרו ו-%lu לא ישודרגו.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu לא מותקנות לחלוטין או הוסרו.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "מתקן תלויות..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr "כשלון." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "לא מצליח לתקן תלויות" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "א ז ה ר ה: החבילות החיוניות הבאות יוסרו" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr "סיום" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "אולי תרצה להריץ 'apt-get -f install' כדי לתקן את אלו." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "תלויות שלא נענו. נסה להשתמש באפשרות -f." + +#: cmdline/apt-get.cc:689 +#, fuzzy +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "החבילות הבאות ישודרגו:" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "" + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "היו בעיות והאפשרות -y היתה בשימוש ללא האפשרות --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "" + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "לא מצליח לנעול את ספרית ההורדה." + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "רשימת המקורות לא ניתנת לקריאה." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "צריך לקבל %sB/%sB מתוך הארכיונים.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "צריך לקבל %sB מתוך הארכיונים.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "אחרי פריסה %sB נוספים יהיו בשימוש.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "אחרי פריסה %sB נוספים ישוחררו.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, fuzzy, c-format +msgid "Couldn't determine free space in %s" +msgstr "אין לך מספיק מקום פנוי ב-%s." + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "אין לך מספיק מקום פנוי ב-%s." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "" + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "כן, עשה כפי שאני אומר!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "בטל." + +#: cmdline/apt-get.cc:889 +#, fuzzy +msgid "Do you want to continue [Y/n]? " +msgstr "האם אתה רוצה להמשיך? [Y/n]" + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "כשלון בהבאת %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "כשלון בהורדת חלק מהקבצים" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "ההורדה הסתיימה במסגרת מצב הורדה בלבד." + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "" + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "" + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr "" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "" + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "" + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +#, fuzzy +msgid "Internal error, problem resolver broke stuff" +msgstr "שגיאה פנימית, כלשון ביצירת %s" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "" + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "" + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "" + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "" + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "" + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr "" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "" + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, fuzzy, c-format +msgid "Failed to write file %s" +msgstr "כשלון בפענוח %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "" + +#: methods/cdrom.cc:169 +#, fuzzy +msgid "Disk not found." +msgstr "(לא נמצא)" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "" + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "" + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "" + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "" + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "" + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "" + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "" + +#: methods/gpgv.cc:249 +#, fuzzy +msgid "The following signatures were invalid:\n" +msgstr "החבילות החדשות הבאות הולכות להיות מותקנות:" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "" + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "" + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "" + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "" + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "" + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "" + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "" + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "" + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "" + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "" + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "" + +#: apt-pkg/acquire-item.cc:1070 +msgid "There is no public key available for the following key IDs:\n" +msgstr "" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "" + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "" + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "" + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, fuzzy, c-format +msgid "Installed %s" +msgstr "מותקן:" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "" + +#: methods/rred.cc:219 +msgid "Could not patch file" +msgstr "" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "" + +#~ msgid "File date has changed %s" +#~ msgstr "תאריך הקובץ השתנה %s" diff --git a/po/hu.po b/po/hu.po new file mode 100644 index 0000000..20664bc --- /dev/null +++ b/po/hu.po @@ -0,0 +1,2797 @@ +# Advanced Package Transfer - APT message translation catalog +# Hungarian messages +# PASZTOR Gyorgy , 2002. +# Gabor Kelemen , 2004, 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hu\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-10-21 11:04+0100\n" +"Last-Translator: SZERVÁC Attila \n" +"Language-Team: Hungarian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.3.1\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Poedit-Language: Hungarian\n" +"X-Poedit-Country: HUNGARY\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "%s csomag %s verziójának teljesítetlen függősége van:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Az alábbi csomag nem található: %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Csomagnevek összesen : " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Normális csomagok: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Teljesen virtuális csomagok: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Egyedi virtuális csomagok: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Vegyes virtuális csomagok: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Hiányzik: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Különböző verziók összesen: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Függőségek összesen: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Verzió/Fájl kapcsolatok összesen: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "\"Előkészít\" kapcsolatok összesen: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Minták összesen: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Függőségi-verzió terület összesen: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Slack terület összesen: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Terület összesen: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "%s csomag fájl szinkronon kívül." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Pontosan egy mintát kell megadnod" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Nem találtam csomagokat" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Csomagfájlok:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "" +"A gyorsítótár nincs szinkronban, nem lehet kereszthivatkozni a csomag fájlra" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Rögzített csomagok:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(nem találtam)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Telepítve: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(nincs)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Jelölt: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Csomag Tű: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Verziótáblázat:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s ehhez: %s %s fordítás ideje: %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Használat: apt-cache [opciók] parancs\n" +" apt-cache [opciók] add fájl1 [fájl2 ...]\n" +" apt-cache [opciók] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [opciók] showsrc pkg1 [pkg2 ...]\n" +"\n" +"Az apt-cache egy alacsony szintű eszköz az APT bináris gyorsítótár-" +"fájljainak\n" +"a kezelésére, és azokból információk lekérdezésére\n" +"\n" +"Parancsok:\n" +" add - Hozzávesz egy csomagfájlt a forrás gyorsítótárhoz\n" +" gencaches - Felépíti a csomag és a forrás gyorsítótárat\n" +" showpkg - Megmutatja az általános információkat egy csomagról\n" +" stats - Alapvető statisztikákat mutat\n" +" dump - A teljes fájlt megmutatja tömör formában\n" +" dumpavail - Kinyomtat egy elérhető fájlt az stdoutra\n" +" unmet - Megmutatja a teljesítetlen függőségeket\n" +" search - A csomaglistában keres reguláris kifejezéseket\n" +" show - Egy leírást mutat a csomagról\n" +" depends - Nyers függőségi információt mutat a csomagról\n" +" rdepends - Fordított függőségi információkat mutat a csomagról\n" +" pkgnames - Kilistázza az összes csomag nevét\n" +" dotty - GraphVishez való csomaggrafikonokat generál\n" +" xvcg - xvcg-hez való csomaggrafikonokat generál\n" +" policy - Megmutatja a policy beállításokat\n" +"\n" +"Opciók:\n" +" -h Ez a súgó szöveg.\n" +" -p=? A csomag gyorsítótár.\n" +" -s=? A forrás gyorsítótár.\n" +" -q Letiltja az állapotjelzőt.\n" +" -i Csak a fontos függőségeket mutatja az unmet parancsnál.\n" +" -c=? Ezt a konfigurációs fájlt olvassa be\n" +" -o=? Beállít egy tetszőleges konfigurációs opciót, pl -o dir::cache=/tmp\n" +"Lásd az apt-cache(8) és apt.conf(5) kézikönyvlapokat további információért.\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "Adj egy nevet e lemezhez, mint például 'Debian 2.1r1 Disk 1'" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Tégy be egy lemezt a meghajtóba és üss enter-t" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Ismételd meg e folyamatot készleted többi CD-jével is." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Az argumentumok nincsenek párban" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Használat: apt-config [opciók] parancs\n" +"\n" +"Az apt-config egy egyszerű eszköz az APT konfigurációs fájl olvasására\n" +"\n" +"Parancsok:\n" +" shell - Shell mód\n" +" dump - Megmutatja a konfigurációt\n" +"Opciók:\n" +" -h Ez a súgó szöveg\n" +" -c=? Ezt a konfigurációs fájlt olvassa be\n" +" -o=? Beállít egy tetszőleges konfigurációs opciót, pl -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s nem egy érvényes DEB csomag." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Használat:apt-extracttemplates fájl1 [fájl2 ...]\n" +"\n" +"Az apt-extracttemplates egy eszköz konfigurációs- és minta-információk " +"debian-\n" +"csomagokból való kibontására\n" +"\n" +"Opciók:\n" +" -h Ez a súgó szöveg\n" +" -t Beállítja az átmeneti könyvtárat\n" +" -c=? Ezt a konfigurációs fájlt olvassa be\n" +" -o=? Beállít egy tetszőleges konfigurációs opciót, pl -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Nem lehet írni ebbe: %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Nem lehet megállapítani a debconf verziót. A debconf telepítve van?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "A csomagkiterjesztések listája túl hosszú" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Hiba a(z) %s könyvtár feldolgozásakor" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "A forráskiterjesztések listája túl hosszú" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Hiba a tartalom fájl fejlécének írásakor" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Hiba %s tartalmának feldolgozásakor" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Használat: apt-ftparchive [opciók] parancs\n" +"Parancsok: packages binarypath [felülbírálófájl [útvonal-előtag]]\n" +" sources srcpath [felülbírálófájl [útvonal-előtag]]\n" +" contents path\n" +" release path\n" +" generate config [csoportok]\n" +" clean config\n" +"\n" +"Az apt-ftparchive indexfájlokat generál a Debian archívokhoz. A generálás\n" +"sok stílusát támogatja, a teljesen automatizálttól kezdve a\n" +"dpkg-scanpackages és a dpkg-scansources funkcionális helyettesítéséig.\n" +"\n" +"Az apt-ftparchive Package fájlokat generál a .deb-ek fájából. A Package\n" +"fájl minden vezérlő mezőt tartalmaz minden egyes csomagról úgy az MD5\n" +"hasht mint a fájlméretet. Az override (felülbíráló) fájl támogatott a\n" +"Prioritás és Szekció mezők értékének kényszerítésére.\n" +"\n" +"Hasonlóképpen az apt-ftparchive Sources fájlokat generál .dsc-k fájából.\n" +"A --source-override opció használható forrás-felülbíráló fájlok megadására\n" +"\n" +"A 'packages' és 'sources' parancsokat a fa gyökeréből kell futtatni.\n" +"A BinaryPath-nak a rekurzív keresés kiindulópontjára kell mutatni és\n" +"a felülbírálófájlnak a felülbíráló jelzőket kell tartalmaznia. Az útvonal-" +"előtag\n" +"hozzáadódik a fájlnév mezőkhöz, ha meg van adva. Felhasználására egy példa " +"a\n" +"Debian archívumból:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Opciók:\n" +" -h E súgó szöveg\n" +" --md5 MD5 generálás vezérlése\n" +" -s=? Forrás felülbíráló fájl\n" +" -q Szűkszavú mód\n" +" -d=? Opcionális gyorsítótár-adatbázis kiválasztása\n" +" --no-delink \"delink\" hibakereső mód bekapcsolása\n" +" --contents Tartalom fájl generálásának ellenőrzése\n" +" -c=? Ezt a konfigurációs fájlt olvassa be\n" +" -o=? Beállít egy tetszőleges konfigurációs opciót" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Nincs illeszkedő kiválasztás" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Néhány fájl hiányzik a(z) '%s' csomagfájl-csoportból" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "DB megsérült, a fájl átnevezve %s.old-ra" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "DB régi, megkísérlem frissíteni erre: %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"DB formátum érvénytelen. Ha az apt régebbi változatáról frissítettél, töröld " +"és hozd újra létre az adatbázist." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "A(z) %s DB fájlt nem lehet megnyitni: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "%s elérése sikertelen" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Az archívumnak nincs vezérlő rekordja" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Nem sikerült egy mutatóhoz jutni" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "F: nem lehet a(z) %s könyvtárat olvasni\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "F: %s nem érhető el\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "H: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "F: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "H: Hibás a fájl " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Nem sikerült feloldani ezt: %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Fabejárás nem sikerült" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "%s megnyitása sikertelen" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " DeLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "readlink nem hajtható végre erre: %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "unlink nem hajtható végre erre: %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** %s linkelése ehhez: %s sikertelen" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " DeLink elérte %sB korlátját.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Az archívumnak nem volt csomag mezője" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s nem rendelkezik felülbíráló bejegyzéssel\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " %s karbantartója %s, nem %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s nem rendelkezik forrás felülbíráló bejegyzéssel\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s nem rendelkezik bináris felülbíráló bejegyzéssel sem\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Belső hiba, %s tag nem található" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Nem sikerült memóriát lefoglalni" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "%s megnyitása sikertelen" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Deformált felülbírálás %s %lu. sorában #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Deformált felülbírálás %s %lu. sorában #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Deformált felülbírálás %s %lu. sorában #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Nem lehet a(z)%s felülbírálófájlt olvasni" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "'%s' tömörítési algoritmus ismeretlen" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "%s tömörített kimenetnek egy tömörítő készletre van szüksége" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Nem sikerült IPC csövet létrehozni az alfolyamathoz" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Nem sikerült FILE*-ot létrehozni" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Nem sikerült forkolni" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Gyermekfolyamat tömörítése" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Belső hiba, %s létrehozása sikertelen" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Nem sikerült az alfolyamat IPC-t létrehozni" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Nem sikerült elindítani a tömörítőt " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "kicsomagoló" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "IO az alfolyamathoz/fájlhoz nem sikerült" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Olvasási hiba az MD5 kiszámításakor" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Hiba %s elláncolásakor" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Nem sikerült átnevezni %s-t erre: %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "I" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Regex fordítási hiba - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Az alábbi csomagoknak teljesítetlen függőségei vannak:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "de %s van telepítve" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "de csak %s telepíthető" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "de az nem telepíthető" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "de az egy virtuális csomag" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "de az nincs telepítve" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "de az nincs telepítésre megjelölve" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " vagy" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Az alábbi ÚJ csomagok lesznek telepítve:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Az alábbi csomagok el lesznek TÁVOLÍTVA:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Az alábbi csomagok vissza lesznek tartva:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Az alábbi csomagok frissítve lesznek:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Az alábbi csomagok ÖREGBÍTÉSRE kerülnek:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Az alábbi visszafogott csomagokat cserélem:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (%s miatt) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"FIGYELEM: Az alábbi alapvető csomagok lesznek eltávolítva\n" +"NE tedd ezt, míg nem tudod pontosan, mit csinálsz!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu frissített, %lu újonnan telepített, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu újratelepítendő, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu kerül öregbítésre, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu eltávolítandó és %lu nem frissített.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu nincs teljesen telepítve/eltávolítva.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Függőségek javítása..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " sikertelen." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Nem lehet javítani a függőségeket" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Nem lehet minimalizálni a frissítendő csomagok mennyiségét" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Kész" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "Ezek kijavításához próbáld futtatni az 'apt-get -f install'-t ." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Teljesítetlen függőségek. Próbáld a -f használatával." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "FIGYELEM: Az alábbi csomagok nem hitelesíthetők!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "A hitelesítési figyelmeztetést átléptem.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Valóban telepíted e csomagokat ellenőrzés nélkül (i/N)? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Néhány csomag nem hitelesíthető" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Problémák vannak és a -y -t használtad --force-yes nélkül" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "Belső hiba, az InstallPackages törött csomagokkal lett meghívva!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Csomagokat kellene eltávolítani, de az Eltávolítás nem engedélyezett." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Belső hiba, a rendezés nem zárult" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Nem tudom zárolni a letöltési könyvtárat" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "A források listája olvashatatlan." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "Ez durva... A méretek nem egyeznek, írj ide:apt@packages.debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Letöltendő az archívumokból: %sB/%sB\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Letöltés az archívumokból: %sB\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "Kicsomagolás után %sB lemezterületet használok fel\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Kicsomagolás után %sB lemezterület szabadul fel.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Nem határozható meg a szabad hely itt: %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Nincs elég szabad hely itt: %s." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "A 'Trivial Only' meg van adva, de ez nem egy triviális művelet." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Igen, tedd amit mondok!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Ártalmasnak tűnő műveletet készülsz végrehajtani.\n" +"A folytatáshoz írd be ezt: '%s'\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Megszakítva." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Folytatni akarod [Y/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Sikertelen letöltés: %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Néhány fájlt nem sikerült letölteni" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "A letöltés befejeződött a 'csak letöltés' módban" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Nem lehet letölteni néhány archívumot.\n" +" Próbáld ki az apt-get update -et vagy a --fix-missing -et." + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing és média csere jelenleg nem támogatott" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Nem lehet javítani a hiányzó csomagokat." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Telepítés megszakítása." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Megjegyzés: %s kiválasztása %s helyett\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "%s kihagyása, ez már telepítve van és a frissítés nincs beállítva.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "A megadott %s csomag nincs telepítve, így hát nem is töröltem\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "%s egy virtuális csomag, melyet az alábbi csomagok adnak:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Telepítve]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Egyet név szerint ki kell jelölnöd a telepítésre." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"%s csomag nem elérhető, de egy másik hivatkozik rá\n" +".A kért csomag tehát: hiányzik, elavult vagy csak más forrásból érhető el\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "De az alábbi csomagok felváltják:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "%s csomagnak nincs e telepítéshez kijelölhető változata" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "%s újratelepítése nem lehetséges, mert nem lehet letölteni.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s már a legújabb verzió.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "'%s' kiadás ehhez: '%s' nem található" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "'%s' verzió ehhez: '%s' nem található" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "%s (%s) a kiválasztott verzió ehhez: %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "Az update parancsnak nincsenek argumentumai" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Nem tudom a listakönyvtárat zárolni" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Néhány index fájl letöltése meghiúsult, ezeket mellőzöm vagy régi " +"változatukat használom." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Belső hiba, AllUpgrade megsértett valamit" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Az alábbi csomag nem található: %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Megjegyzés: %s kiválasztása %s reguláris kifejezéshez\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "Próbáld futtatni az 'apt-get -f install'-t az alábbiak javításához:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Teljesítetlen függőségek. Próbáld az 'apt-get -f install'-t csomagok nélkül " +"(vagy telepítsd a függőségeket is!)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Néhány csomagot nem lehetett telepíteni. Ez talán azt jelenti, hogy\n" +"egy lehetetlen állapotot kértél vagy ha az unstable disztribúciót\n" +"használod, akkor néhány igényelt csomag még nem készült el vagy ki\n" +"lett mozdítva az Incoming-ból." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Mivel csak egyetlen műveletet kértél, ez nagy valószínűséggel arra utal\n" +"hogy a csomag egyszerűen nem telepíthető és egy hibajelentést kellene\n" +"kitölteni a csomaghoz." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "Az alábbi információ segíthet megoldani a helyzetet:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Törött csomagok" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Az alábbi extra csomagok kerülnek telepítésre:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Javasolt csomagok:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Ajánlott csomagok:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Frissítés kiszámítása... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Sikertelen" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Kész" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "Belső hiba, hibafeloldó gond" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "" +"Legalább egy csomagot meg kell adnod, aminek a forrását le kell tölteni" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Nem található forráscsomag ehhez: %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "A már letöltött '%s' fájl kihagyása\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Nincs elég szabad hely itt: %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "%sB/%sB forrás-archívumot kell letölteni.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "%sB forrás-archívumot kell letölteni.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Forrás letöltése: %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Nem sikerült néhány archívumot letölteni." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Egy már kibontott forrás kibontásának kihagyása itt: %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "'%s' kibontási parancs nem sikerült.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Ellenőrizd, hogy a 'dpkg-dev' csomag telepítve van-e.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "'%s' elkészítési parancs nem sikerült.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Hiba a gyermekfolyamatnál" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"Legalább egy csomagot adj meg, aminek a fordítási függőségeit ellenőrizni " +"kell" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Nem lehet %s fordítási-függőség információját beszerezni" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "Nincs fordítási függősége a következőnek: %s.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"%s függősége ennek: %s, ez nem elégíthető ki, mert a(z) %s csomag nem " +"található" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"%s függősége ennek: %s, ez nem elégíthető ki, mert a(z) %s csomagnak nincs a " +"verzió-követelményt kielégítő elérhető verziója." + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"%s függőséget %s csomaghoz nem lehet kielégíteni: %s telepített csomag túl " +"friss." + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "%s függőséget %s csomaghoz nem lehet kielégíteni: %s " + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "%s építési függőségei nem elégíthetőek ki." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Nem sikerült az építési függőségeket feldolgozni" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Támogatott modulok:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Használat: apt-get [opciók] parancs\n" +" apt-get [opciók] install|remove pkg1 [pkg2 ...]\n" +" apt-get [opciók] source pkg1 [pkg2 ...]\n" +"\n" +"Az apt-get egy egyszerű parancssori felület csomagok letöltéséhez\n" +"és telepítéséhez. A leggyakrabban használt parancsok az update és\n" +"az install.\n" +"\n" +"Parancsok:\n" +" update - Frissíti a csomaglistákat\n" +" upgrade - Végrehajt egy frissítést\n" +" install - Új csomagokat telepít (csomag a libc6 és nem a libc6.deb)\n" +" remove - Csomagokat távolít el\n" +" source - Forrás archívumokat tölt le\n" +" build-dep - Forráscsomagok építési-függőségét konfigurálja\n" +" dist-upgrade - Disztribúció frissítés, lásd apt-get(8)\n" +" dselect-upgrade - Követi a dselect kijelöléseit\n" +" clean - Törli a letöltött archívum-fájlokat\n" +" autoclean - Törli a régi letöltött archív fájlokat\n" +" check - Ellenőrzi, hogy nincsenek-e törött függőségek\n" +"\n" +"Opciók:\n" +" -h Ez a súgó szöveg.\n" +" -q Naplózható kimenet - nincs folyamatjelző\n" +" -qq Nincs kimenet, kivéve a hibákat\n" +" -d Csak letöltés - NEM telepíti vagy bontja ki az archívokat\n" +" -s Szimulációs mód.\n" +" -y Felteszi, hogy minden kérdésre igen a válasz, és nem kérdez\n" +" -f Próbáld folytatni, akkor is ha a sértetlenségi teszt hibát jelez\n" +" -m Próbáld folytatni, akkor is ha egyes archívumok nem találhatók\n" +" -u Mutat egy listát a frissített csomagokról is\n" +" -b Megépíti a forráscsomagot miután letöltötte\n" +" -c=? Ezt a konfigurációs fájlt olvassa be\n" +" -o=? Beállít egy tetszőleges konfigurációs opciót, pl -o dir::cache=/tmp\n" +"Lásd még az apt-get(8), sources.list(5) és apt.conf(5) kézikönyvlapokat\n" +"további információkért és opciókért.\n" +" Ez az APT a SzuperTehén Hatalmával rendelkezik.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Találat " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Letöltés:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Mellőz " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Hiba " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Letöltve %sB %s alatt (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Dolgozom]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Kérlek tedd be a(z)\n" +" %s\n" +"címkéjű lemezt a(z) %s meghajtóba és üss entert\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Ismeretlen csomagbejegyzés!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Használat: apt-sortpkgs [opciók] fájl1 [fájl2 ...]\n" +"\n" +"Az apt-sortpkgs egy egyszerű eszköz csomagfájlok rendezésére. A -s opciót\n" +"lehet használni annak jelzésére hogy ez milyen típusú fájl.\n" +"\n" +"Opciók:\n" +" -h Ez a súgó szöveg\n" +" -s Forrásfájlrendezést használ\n" +" -c=? Ezt a konfigurációs fájlt olvassa be\n" +" -o=? Beállít egy tetszőleges konfigurációs opciót, pl -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Hibás alapértelmezett beállítás!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Üss entert a folytatáshoz." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Néhány hiba adódott kibontás közben. Nekilátok konfigurálni a" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "már telepített csomagokat. Ez a hibák duplázódását eredményezheti" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "vagy hiányzó függőségek miatti hibákat. Ez így OK, csak az ezen üzenet" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "előtti hibák fontosak. Javítsd azokat és futtasd az [I]nstallt újra" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Elérhető információk egyesítése" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Nem sikerült csöveket létrehozni" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Nem sikerült a gzipet futtatni " + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Hibás archívum" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Tar ellenőrzőösszeg nem egyezik, az archívum megsérült" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Ismeretlen a(z) %u TAR fejléc típus, %s tag" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Érvénytelen archívum-aláírás" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Hiba az archívum tag fejléc olvasásakor" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Érvénytelen archívum tag fejléc" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Az archívum túl rövid" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Nem sikerült olvasni az archívum fejléceket" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "DropNode hívása egy még mindig láncolt node-ra történt" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "A hash elem nem található!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Nem lehet eltérítést lefoglalni" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Belső hiba az AddDiversion-ban" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Megpróbálom felülírni %s -> %s és %s/%s eltérítést" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "A(z) %s -> %s eltérítés hozzáadásának duplázása" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Dupla %s/%s konfigurációs fájl" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "%s fájl írása sikertelen" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Nem sikerült a(z) %s fájlt bezárni" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "A(z) %s útvonal túl hosszú" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "%s egynél többszöri kicsomagolása" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "A(z) %s könyvtár eltérítve" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "A csomag megpróbál írni a(z) %s/%s eltérített célpontba" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Az eltérített útvonal túl hosszú" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "A(z) %s könyvtár nem egy könyvtárral lesz helyettesítve" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Nem sikerült a node helyét megtalálni a hash-ében" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Az útvonal túl hosszú" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Csomagtalálat felülírása %s verziója nélkül" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "A(z) %s/%s fájl felülírja a(z) %s csomagban levőt" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "%s nem olvasható" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "%s nem érhető el" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "%s eltávolítása sikertelen" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "%s létrehozása sikertelen" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "%sinfo nem érhető el" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "Az info és temp könyvtáraknak egy fájlrendszeren kell lenniük" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Csomaglisták olvasása" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Nem sikerült a(z) %sinfo admin könyvtárba váltani" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Belső hiba a csomagnév elhozásakor" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Fájllista olvasása" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Nem sikerült a '%sinfo/%s' listafájlt megnyitni. Ha nem tudod helyreállítani " +"ezt a fájlt, akkor ürítsd ki, és azonnal telepítsd újra a csomag ugyanezen " +"verzióját!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Nem sikerült a(z) %sinfo/%s lista fájlt olvasni" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Belső hiba a Node kinyerésekor" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Nem sikerült a(z) %sdiversions eltérítő fájlt megnyitni" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Az eltérítő fájl hibás" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Érvénytelen sor az eltérítő fájlban: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Belső hiba egy eltérítés hozzáadásakor" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "A csomag gyorstárnak előbb kell inicializálva lennie" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Nem találom a csomag-fejlécet, offszet %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Hibás ConfFile szakasz a státusz fájlban. Offszet %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "MD5 értelmezési hiba. Offszet %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Ez nem egy érvényes DEB archív, hiányzik a '%s' tag" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "Ez nem egy érvényes DEB archív, nincs \"%s\" vagy \"%s\" tagja" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Nem lehet váltani ebbe: %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Belső hiba, a tag nem található" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Nem található érvényes vezérlő fájl" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Értelmezhetetlen vezérlő fájl" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "%s CD-ROM adatbázis nem olvasható" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Kérlek használd az apt-cdrom parancsot a CD felismertetésére. Az apt-get " +"update nem használható új CD-k hozzáadására" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "Hibás CD" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "Nem lehet lecsatolni az itt lévő CD-ROM-ot: %s, talán még használod." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Nem találom a lemezt" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Nem találom a fájlt" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Nem érhető el" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "A módosítási időt beállítása sikertelen" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "Érvénytelen URI, helyi URIk nem kezdődhetnek //-el" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Bejelentkezés a kiszolgálóra:" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Nem lehet a társ nevét megállapítani" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Nem lehet a helyi nevet megállapítani" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "A kiszolgáló megtagadta a kapcsolatot: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "Hibás USER, a kiszolgáló üzenete: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "Hibás PASS, a kiszolgáló üzenete: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Egy proxy kiszolgáló meg lett adva login szkript nélkül, és az Acquire::ftp::" +"ProxyLogin üres." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "A login szkript '%s' parancsa hibázott, a kiszolgáló üzenete: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "Hibás TYPE, a kiszolgáló üzenete: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Időtúllépés a kapcsolatban" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "A kiszolgáló lezárta a kapcsolatot" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Olvasási hiba" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "A válasz túlcsordította a puffert." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Protokoll hiba" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Írási hiba" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Nem lehet létrehozni a socket-et" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "Nem lehet kapcsolódni az adat sockethez, a kapcsolat túllépte az időt" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Nem lehet kapcsolódni a passzív sockethez." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "A getaddrinfo nem talált figyelő socketet" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Nem lehet összekapcsolódni a sockettel" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Nem lehet figyelni a socketen" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Nem lehet megállapítani a socket nevét" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Nem lehet PORT parancsot küldeni" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Ismeretlen %u címcsalád (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "Hibás EPRT, a kiszolgáló üzenete: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Az adat sockethez kapcsolódás túllépte az időt" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Nem lehet elfogadni a kapcsolatot" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Probléma a fájl hash értékének meghatározásakor" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Nem lehet letölteni a fájlt, a kiszolgáló üzenete: '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Az adat socket túllépte az időt" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Adatátvitel sikertelen, a kiszolgáló üzenete: '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Lekérdezés" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Nem lehet meghívni " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Csatlakozás: %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "socket létrehozása sikertelen ehhez: %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Kapcsolat létrehozása sikertelen ehhez: %s: %s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Időtúllépés miatt nem lehet kapcsolódni a következőhöz: %s: %s (%s)" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Nem tudtam kapcsolódni ehhez: %s: %s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Kapcsolódás: %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Nem lehet feloldani a következőt: '%s' " + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Átmeneti hiba '%s' feloldása közben" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Valami rossz történt '%s: %s' feloldásakor (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Sikertelen kapcsolódás ide: %s %s:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "%s kulcstartó nem érhető el" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "H: Az Acquire::gpgv::Options argumentum lista túl hosszú. Kilépek." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "Belső hiba: Jó aláírás, de meghatározhatatlan kulcs ujjlenyomat?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "1 vagy több érvénytelen aláírást találtam." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "'%s' nem futtatható az aláírás ellenőrzéséhez (a gnupg telepítve van?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Ismeretlen gpgv futtatási hiba" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "Az alábbi aláírások érvénytelenek voltak:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"Az alábbi aláírások nem igazolhatók, mert a nyilvános kulcs nem elérhető:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Nem lehet csövet nyitni ehhez: %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Olvasási hiba %s folyamattól" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Várakozás a fejlécekre" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Egyetlen fejléc sort kaptam, ami több mint %u karakteres" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Rossz fejléc sor" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "A http kiszolgáló egy érvénytelen válaszfejlécet küldött" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "A http kiszolgáló egy érvénytelen Content-Length fejlécet küldött" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "A http kiszolgáló egy érvénytelen Content-Range fejlécet küldött" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "Ez a http szerver támogatja a sérült tartományokat " + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Ismeretlen dátum formátum" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Sikertelen kiválasztás" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Időtúllépés a kapcsolatban" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Hiba a kimeneti fájl írásakor" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Hiba fájl írásakor" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Hiba a fájl írásakor" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "Hiba a kiszolgálóról olvasáskor, a túloldal lezárta a kapcsolatot" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Hiba a kiszolgálóról olvasáskor" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Rossz fejlécadat" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Sikertelen kapcsolódás" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Belső hiba" + +# FIXME +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Nem lehet mmap-olni egy üres fájlt" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Nem sikerült %lu bájtot mmap-olni" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "%s kiválasztás nem található" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Ismeretlen típusrövidítés: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "%s konfigurációs fájl megnyitása" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "A(z) %d. sor túl hosszú (maximum %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Szintaktikai hiba %s: %u: A blokk név nélkül kezdődik" + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Szintaktikai hiba %s: %u: hibás formátumú címke" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Szintaktikai hiba %s: %u: fölösleges szemét az érték után" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "Szintaktikai hiba %s: %u: Csak legfelső szinten használhatók előírások" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Szintaktikai hiba %s: %u: Túl sok beágyazott include" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Szintaktikai hiba %s: %u: ugyaninnen include-olva" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Szintaktikai hiba %s: %u: '%s' nem támogatott előírás" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Szintaktikai hiba %s: %u: fölösleges szemét a fájl végén" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Hiba!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Kész" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "A(z) '%c' parancssori opció [a következőből: %s] ismeretlen." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "%s parancssori opció értelmezhetetlen" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "%s parancssori opció nem logikai" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "%s opcióhoz szükséges egy argumentum" + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "" +"%s opció: a konfigurációs elem specifikációhoz szükséges egy =<érték> rész." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "%s opció egész és nem %s típusú argumentumot követel meg" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Túl hosszú %s opció" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "%s jelentés nem értelmezhető, próbáld a true vagy false értékeket" + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "%s érvénytelen művelet" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "%s csatolási pont nem érhető el" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Nem sikerült ide váltani: %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Nem sikerült elérni a CD-ROM-ot." + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "Nem zárolom '%s' csak olvasható zárolási fájlt" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "%s zárolási fájl nem nyitható meg" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "Nem zárolom '%s' NFS-csatlakoztatású zárolási fájlt" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Nem sikerült zárolni: %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "%s nem volt itt, ahogy vártam" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "%s alfolyamat szegmentálási hibát okozott." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "%s alfolyamat hibakóddal tért vissza (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "%s alfolyamat váratlanul kilépett" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Nem lehet megnyitni %s fájlt" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "olvasás, még kellene %lu, de már az összes elfogyott" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "írás, még kiírandó %lu de ez nem lehetséges" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Hiba a fájl bezárásakor" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Hiba a fájl leválasztásával" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Hiba a fájl szinkronizálásakor" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Üres csomag-gyorstár" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "A csomag-gyorstár fájl megsérült" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "A csomag-gyorstár fájl inkompatibilis verziójú" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Ez az APT nem támogatja a(z) '%s' verziórendszert" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "A csomag-gyorstár egy másik architektúrához készült" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Függ ettől" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Függ ettől (előfüggés)" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Javasolja" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Ajánlja" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Ütközik" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Kicseréli" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Elavulttá teszi" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "fontos" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "szükséges" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "szabványos" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "opcionális" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "extra" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Függőségi fa építése" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Lehetséges verziók" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Függőség-generálás" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Nem lehet a(z) %s csomagfájlt feldolgozni (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Nem lehet a(z) %s csomagfájlt feldolgozni (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "A(z) %lu. sor hibás %s forráslistában (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "A(z) %lu. sor hibás %s forráslistában (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "A(z) %lu. sor hibás %s forráslistában (URI feldolgozó)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "A(z) %lu. sor hibás %s forráslistában (Abszolút dist)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "A(z) %lu. sor hibás %s forráslistában (dist feldolgozó)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "%s megnyitása" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "A(z) %u. sor túl hosszú %s forráslistában." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "A(z) %u. sor hibás %s forráslistában (típus)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "'%s' típus nem ismert a(z) %u. sorban a(z) %s forráslistában" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "A(z) %u. sor hibás %s forráslistában (terjesztő id)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Ez a telepítési lépés átmenetileg megköveteli, hogy eltávolítsd a(z) %s " +"alapvető csomagot ami Ütközési/Elő-függőségi hurkot okoz. Ez gyakran rossz, " +"de ha tényleg ezt akarod tenni, aktiváld az APT::Force-LoopBreak opciót." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "A(z) '%s' indexfájltípus nem támogatott" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"A(z) %s csomagot újra kell telepíteni, de nem találok archívumot hozzá." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Hiba, a pkgProblemResolver::Resolve töréseket generált, ezt visszafogott " +"csomagok okozhatják." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "" +"A problémák nem javíthatók, sérült visszafogott csomagok vannak a rendszeren." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "%spartial listakönyvtár hiányzik." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "%spartial archívumkönyvtár hiányzik." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "%li/%li fájl letöltése (%s marad)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "%li/%li fájl letöltése" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "A(z) %s metódus vezérlő nem található." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "A(z) %s metódus nem indult el helyesen" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "Tedd be a(z) %s címkéjű lemezt a(z) %s meghajtóba és üss entert" + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "A(z) '%s' csomagrendszer nem támogatott" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "A megfelelő csomagrendszer típus nem határozható meg" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "%s nem érhető el." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "Néhány 'source' URI-t be kell tenned a sources.list fájlba" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" +"A csomaglista vagy az állapot fájl nem dolgozható fel vagy nem olvasható." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "Próbáld futtatni az apt-get update -et, hogy javítsd e hibákat" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Hibás rekord a tulajdonság fájlban, nincs csomagfejléc" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "A(z) %s tűtípus nem értelmezhető" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Nincs prioritás (vagy nulla) megadva a tűhöz" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "A gyorsítótárnak inkompatibilis verziórendszere van" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Hiba történt %s feldolgozásakor (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Hiba történt %s feldolgozásakor (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Hiba történt %s feldolgozásakor (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Hiba történt %s feldolgozásakor (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Hiba történt %s feldolgozásakor (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Hiba történt %s feldolgozásakor (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Hiba történt %s feldolgozásakor (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" +"Ez nem semmi, túllépted a csomagnevek számát, amit ez az APT kezelni tud!" + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "" +"Ez nem semmi, túllépted a csomagverziók számát, amit ez az APT kezelni tud!" + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" +"Ez nem semmi, túllépted a függőségek számát, amit ez az APT kezelni tud." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Hiba történt %s feldolgozásakor (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Hiba történt %s feldolgozásakor (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "" +"%s %s csomag nem volt megtalálható a fájl függőségeinek feldolgozása közben" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Nem lehet a(z) %s forrás csomaglistáját elérni" + +# FIXME +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "\"Előkészít\" kapcsolatok összegyűjtése" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "IO hiba a forrás-gyorsítótár mentésekor" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "sikertelen átnevezés, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "Az MD5Sum nem megfelelő" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "Nincs elérhető nyilvános kulcs az alábbi kulcs azonosítókhoz:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Nem találtam egy fájlt a(z) %s csomaghoz. Ez azt jelentheti, hogy kézzel " +"kell kijavítani a csomagot. (hiányzó arch. miatt)" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Nem találtam egy fájlt a(z) %s csomaghoz. Ez azt jelentheti, hogy kézzel " +"kell kijavítani a csomagot." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"A csomagindex-fájlok megsérültek. Nincs Filename: mező a(z) %s csomaghoz." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "A méret nem megfelelő" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "A(z) %s terjesztő blokk nem tartalmaz ujjlenyomatot" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"%s CD-ROM csatolási pont használata\n" +"CD-ROM csatolása\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Azonosítás.. " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Tárolt címke: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "%s CD-ROM csatolási pont használata\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "CD-ROM leválasztása\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Várakozás a lemezre...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "CD-ROM felcsatolása...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Indexfájlok keresése a lemezen...\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "%i csomagindexet, %i forrásindexet és %i aláírást találtam\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "E név érvénytelen, próbáld újra.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"E lemez neve: \n" +"%s\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Csomaglisták másolása..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Új forráslista írása\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "E lemezhez tartozó forráslista-bejegyzések a következők:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "CD-ROM leválasztása..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "%i rekord kiírva.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "%i rekord kiírva, %i hiányzó fájllal.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "%i rekord kiírva %i hibásan párosított fájllal\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "%i rekord kiírva %i hiányzó és %i hibásan párosított fájllal\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "%s előkészítése" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "%s kicsomagolása" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "%s konfigurálásának előkészítése" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "%s konfigurálása" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "Telepített %s" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "%s eltávolításának előkészítése" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "%s eltávolítása" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "Eltávolított %s" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "%s teljes eltávolítása előkészítése" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "%s teljesen eltávolítva" + +#: methods/rred.cc:219 +msgid "Could not patch file" +msgstr "%s fájl foltozása sikertelen" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "A kapcsolat idő előtt lezárult" + +#~ msgid "File date has changed %s" +#~ msgstr "A fájl dátuma megváltozott %s" + +#~ msgid "Total Distinct Descriptions: " +#~ msgstr "Összes külső leírás: " + +#~ msgid "Total Desc/File relations: " +#~ msgstr "Összes Leírás/Fájl kapcsolat: " + +#~ msgid "Reading file list" +#~ msgstr "Fájllista olvasása" + +#~ msgid "Could not execute " +#~ msgstr "Nem futtatható" + +#~ msgid "Error occured while processing %s (NewFileDesc1)" +#~ msgstr "Hiba történt %s feldolgozásakor (NewFileDesc1)" + +#~ msgid "Error occured while processing %s (NewFileDesc2)" +#~ msgstr "Hiba történt %s feldolgozásakor (NewFileDesc2)" + +#~ msgid "Wow, you exceeded the number of descriptions this APT is capable of." +#~ msgstr "" +#~ "Ez nem semmi, túllépted a csomagleírások számát, amit ez az APT kezelni " +#~ "tud!" + +#~ msgid "Preparing for remove with config %s" +#~ msgstr "Előkészítés eltávolításhoz %s konfigurálásával" + +#~ msgid "Removed with config %s" +#~ msgstr "%s konfigurálásával eltávolítva" diff --git a/po/it.po b/po/it.po new file mode 100644 index 0000000..7a45dd5 --- /dev/null +++ b/po/it.po @@ -0,0 +1,2818 @@ +# Advanced Package Transfer - APT message translation catalog +# Samuele Giovanni Tonon , 2002. +# +msgid "" +msgstr "" +"Project-Id-Version: apt 0.5.5\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-10-12 09:27+0200\n" +"Last-Translator: Samuele Giovanni Tonon \n" +"Language-Team: Italian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Il pacchetto %s, versione %s, ha una dipendenza non soddisfatta:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Impossibile trovare il pacchetto %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Totale nomi dei pacchetti : " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Pacchetti normali: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Pacchetti virtuali puri: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Pacchetti virtuali singoli: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Pacchetti virtuali misti: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Mancante: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Totale versioni distinte: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Totale dipendenze: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Totale relazioni ver/file: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Totale corrispondenze fornite: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Totale stringhe globalizzate: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Totale spazio di dipendenza di versione: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Totale spazio \"slack\": " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Totale spazio occupato: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Il file dei pacchetti %s non è sincronizzato." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Bisogna specificare un singolo pattern" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Nessun pacchetto trovato" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "File dei pacchetti:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "" +"La cache non è sincronizzata, impossibile referenziare un file di pacchetti" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Pacchetti con pin:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(non trovato)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Installato: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(nessuno)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Candidato: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Pin del pacchetto: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Tabella versione:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s per %s %s compilato il %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Utilizzo: apt-cache [opzioni] comando\n" +" apt-cache [opzioni] add file1 [file2 ...]\n" +" apt-cache [opzioni] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [opzioni] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache è un tool di basso livello usato per manipolare \n" +"i file di cache dei binari di APT, e cercare informazioni in questi\n" +"\n" +"Comandi:\n" +" add - Aggiunge un file di pacchetti alla cache sorgente \n" +" gencaches - Costruisce sia la cache dei pacchetti che dei sorgenti\n" +" showpkg - Mostra informazioni generali per un singolo pacchetto\n" +" showsrc - Mostra i campi dei sorgenti\n" +" stats - Mostra alcune statistiche di base\n" +" dump - Mostra il file in forma compatta\n" +" dumpavail - Stampa un file \"available\" in stdout\n" +" unmet - Mostra le dipendenze non soddisfatte\n" +" search - Cerca nella lista dei pacchetti la regex specificata\n" +" show - Mostra un campo leggibile per il pacchetto specificato\n" +" depends - Mostra informazioni di dipendenza per un pacchetto\n" +" rdepends - Mostra informazioni di dipendenza all'incontrario per un " +"pacchetto\n" +" pkgnames - Elenca i nomi di tutti i pacchetti\n" +" dotty - Genera un grafo dei pacchetti per GraphVis\n" +" xvcg - Genera un grafo dei pacchetti per xvcg\n" +" policy - Mostra le preferenze adottate\n" +"\n" +"Opzioni:\n" +" -h Questo help.\n" +" -p=? la cache pacchetti.\n" +" -s=? la cache sorgenti.\n" +" -q Disabilita l'indicatore di progresso\n" +" -i Mostra solo dipendenze importanti per il comando unmet\n" +" -c=? Legge come configurazione il file specificato\n" +" -o=? Imposta un'opzione di configurazione, come -o dir::cache=/tmp\n" +"Consultare le pagine del manuale apt-cache(8) e apt.conf(5) per maggiori " +"informazioni\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "Si prega di dare un nome a questo disco, tipo 'Debian 2.1r1 Disk 1'" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Inserire un disco nel drive e premere invio" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Ripetere questo processo per il resto dei CD." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Argomenti non in coppia" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Utilizzo: apt-config [opzioni] comando\n" +"\n" +"apt-config è un semplice programma per leggere il file di configurazione di " +"APT\n" +"\n" +"Comandi:\n" +" shell - Modalità shell\n" +" dump - Mostra la configurazione\n" +"\n" +"Opzioni\n" +" -h Questo help.\n" +" -c=? Legge questo file di configurazione\n" +" -o=? Imposta un'opzione di configurazione, come -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s non è un pacchetto DEB valido." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Utilizzo: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates è un tool per estrarre configurazioni e template\n" +"dai pacchetti debian\n" +"\n" +"Opzioni:\n" +" -h Questo help.\n" +" -t Imposta la directory temporanea\n" +" -c=? Legge come configurazione il file specificato\n" +" -o=? Imposta un'opzione di configurazione, come -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Impossibile scrivere in %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Impossibile trovare una versione di debconf. Debconf è installato?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "L'estensione del pacchetto è troppo lunga" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Errore durante l'analisi della directory %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "L'estensione del sorgente è troppo lunga" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Errore nella scrittura dell'header nel file contents" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Errore nell'analisi dei contents %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Utilizzo: apt-ftparchive [opzioni] comando\n" +"Comandi: packages pathaibinari [filedioverride [pathprefix]\n" +" sources pathaisorgenti [filedioverride [pathprefix]\n" +" contents path\n" +" release path\n" +" generate config [gruppi]\n" +" clean config\n" +"\n" +"apt-ftparchive genera file di indice per gli archivi Debian. Supporta\n" +"molti stili di generazione da completamente automatici a alternative\n" +"funzionali per dpkg-scanpackages e dpkg-scansources\n" +"\n" +"apt-ftparchive genera file Packages da un albero di .deb. Il\n" +"file Package contiene le informazioni di tutti i campi control da ogni\n" +"pacchetto così come l'hash MD5 e la dimensione del file. Un file override\n" +"è supportato per forzare il valore di Priorità e Sezione.\n" +"\n" +"Similarmente apt-ftparchive genera file Sources da un albero di .dscs.\n" +"L'opzione --source-override può essere usata per specificare un file\n" +"di override per i sorgenti\n" +"\n" +"I comandi 'packages' e 'sources' devono essere eseguiti nella root \n" +"dell'albero. BinaryPath deve puntare alla base della ricerca \n" +"ricorsiva e il file override deve contenere le opzioni di override.\n" +"Pathprefix è\n" +" aggiunto al campo filename se presente. Esempio di utilizzo \n" +"dall'archivio debian:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages \n" +"\n" +"Opzioni:\n" +" -h Questo help\n" +" --md5 Controlla la generazione del MD5\n" +" -s=? File override dei sorgenti\n" +" -q Silenzioso\n" +" -d=? Seleziona il database di cache opzionale\n" +" --no-delink Abilita modalità di debug del delinking\n" +" --contents Controlla la generazione del file contents\n" +" -c=? Legge come configurazione il file specificato\n" +" -o=? Imposta un'opzione arbitraria di configurazione" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Nessuna selezione corrisponde" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Mancano alcuni file nel file group di pacchetti `%s'" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "DB era corrotto, il file è stato rinominato in %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "Il DB è vecchio, tentativo di aggiornamento %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"Il formato DB non è valido. Se avete aggiornato da una vecchia versione di " +"apt,rimuovete e ricreate il database." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Impossibile aprire il file DB %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Impossibile analizzare %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "L'archivio non ha un campo control" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Impossibile ottenere un cursore" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: Impossibile leggere la directory %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "W: Impossibile analizzare %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E: Errori applicati al file " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Impossibile risolvere %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Visita dell'albero fallita" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Impossibile aprire %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " DeLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Impossibile eseguire readlink su %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Impossibile eseguire unlink su %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Impossibile eseguire link tra %s e %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " DeLink limite di %sB raggiunto.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "L'archivio non ha un campo package" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s non ha un campo override\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " %s maintainer è %s non %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s non ha un campo source override\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s non ha neppure un campo binary override\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Errore interno, impossibile trovare il campo %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Impossibile allocare memoria" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Impossibile aprire %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Override malformato %s linea %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Override malformato %s linea %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Override malformato %s linea %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Impossibile leggere il file override %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Algoritmo di compressione '%s' sconosciuto" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "L'output compresso %s necessita di un insieme di compressione" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Impossibile creare un pipe IPC verso il sottoprocesso" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Impossibile creare FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Impossibile eseguire fork" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Sottoprocesso compresso" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Errore interno, impossibile creare %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Impossibile creare un sottoprocesso IPC" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Impossibile eseguire compressor" + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "decompressore" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "I/O al sottoprocesso/file fallito" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Impossibile leggere durante l'elaborazione MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Problema nell'unlink di %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Impossibile rinominare %s in %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "S" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Errore di compilazione della regex - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "I seguenti pacchetti hanno dipendenze non soddisfatte:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "ma %s è installato" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "ma %s sta per essere installato" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "ma non è installabile" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "ma è un pacchetto virtuale" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "ma non è installato" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "ma non sta per essere installato" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " oppure" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "I seguenti pacchetti NUOVI (NEW) saranno installati:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "I seguenti pacchetti saranno RIMOSSI:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "I seguenti pacchetti sono stati mantenuti alla versione attuale:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "I seguenti pacchetti saranno aggiornati:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "I seguenti pacchetti saranno RETROCESSI (DOWNGRADED):" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "I seguenti pacchetti bloccati saranno cambiati:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (a causa di %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"ATTENZIONE: il seguente pacchetto ESSENZIALE sta per essere rimosso\n" +"Questo non dovrebbe essere fatto a meno che non si sappia esattamente cosa " +"si sta facendo!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu aggiornati, %lu installati, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu reinstallati, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu retrocessi (downgraded), " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu da rimuovere e %lu non aggiornati.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu non completamente installati o rimossi.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Correzione delle dipendenze in corso..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " fallita." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Impossibile correggere le dipendenze" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Impossibile minimizzare l'insieme da aggiornare" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Fatto" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "" +"È consigliabile eseguire `apt-get -f install' per correggere questi problemi." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Dipendenze non trovate. Riprovare usando -f." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "ATTENZIONE: i seguenti pacchetti non possono essere autenticati!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Avviso di autenticazione disabilitato \n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Installare questi pacchetti senza la verifica [s/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Non è stato possibile autenticare alcuni pacchetti" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Sussistono dei problemi e -y è stata usata senza --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "" +"Errore interno, InstallPackages è stato chiamato con un pacchetto rotto!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "I pacchetti devono essere rimossi ma il remove è disabilitato." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Errore interno, l'ordinamento non è terminato" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Impossibile creare un lock sulla directory di download" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "La lista dei sorgenti non può essere letta." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"Che strano... le dimensioni non corrispondono, inviare un'email a " +"apt@packages.debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "È necessario prendere %sB/%sB di archivi. \n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "È necessario prendere %sB di archivi. \n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "Dopo l'estrazione, verranno occupati %sB di spazio su disco.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Dopo l'estrazione, verranno liberati %sB di spazio su disco.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Impossibile determinare lo spazio libero su %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Lo spazio libero in %s non è sufficiente." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "" +"È stata specificata la modalità Trivial Only ma questa non è un'operazione " +"triviale" + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "SI, esegui come richiesto!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Si sta per compiere un'azione potenzialmente pericolosa\n" +"Per continuare scrivere la frase '%s' \n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Interrotto." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Continuare [S/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Impossibile ottenere %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Il download di alcuni file è fallito" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Download completato e in modalità download-only" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Impossibile prendere alcuni archivi, forse è meglio eseguire apt-get update " +"o provare l'opzione --fix-missing" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing su media estraibili non è ancora supportato" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Impossibile correggere i pacchetti mancanti" + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Interruzione dell'installazione in corso." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Nota, si sta selezionando %s al posto di %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" +"%s è stato saltato, perché è già installato e l'aggiornamento non è stato " +"impostato.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "Il pacchetto %s non è installato, quindi non è stato rimosso\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Il pacchetto %s è un pacchetto virtuale fornito da:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Installato]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Bisogna esplicitamente sceglierne uno da installare." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Il pacchetto %s non ha versioni disponibili, ma è nominato da un altro\n" +"pacchetto. Questo significa che il pacchetto manca, è diventato obsoleto\n" +"o è disponibile solo all'interno di un'altra sorgente\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Comunque il seguente pacchetto lo sostituisce:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Il pacchetto %s non ha candidati da installare" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "La reinstallazione di %s non è possibile, non può essere scaricato.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s è già alla versione più recente.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Non è stata trovata la release '%s' per '%s'" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Non è stata trovata la versione '%s' per '%s'" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Versione selezionata %s (%s) per %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "Il comando update non accetta argomenti" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Impossibile creare un lock sulla directory di list" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Impossibile scaricare alcune file di indice, essi verranno ignorati, oppure " +"si useranno quelli precedenti." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Errore interno, AllUpgrade ha rotto qualcosa" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Impossibile trovare %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Nota, si sta selezionando %s per la regex '%s'\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "" +"È consigliabile eseguire 'apt-get -f install' per correggere questi problemi:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Dipendenze non soddisfatte. Provare 'apt-get -f install' senza pacchetti (o " +"specificare una soluzione)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Alcuni pacchetti non possono essere installati. Questo può voler\n" +"dire che è stata richiesta una situazione impossibile oppure, se\n" +"si sta usando la distribuzione \"unstable\", che alcuni pacchetti\n" +"richiesti non sono ancora stati creati o rimossi da incoming." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Poiché è stata richiesta solo una singola operazione è molto facile che\n" +"il pacchetto semplicemente non sia installabile, si consiglia\n" +"di inviare un \"bug report\" per tale pacchetto." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "Le seguenti informazioni possono aiutare a risolvere la situazione: " + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Pacchetto non integro" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "I seguenti pacchetti verranno inoltre installati:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Pacchetti suggeriti:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Pacchetti raccomandati:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Calcolo dell'aggiornamento in corso... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Fallito" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Fatto" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "Errore interno, problem resolver ha rotto qualcosa" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "Bisogna specificare almeno un pacchetto di cui scaricare il sorgente" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Impossibile trovare un pacchetto sorgente per %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Si è saltato il file già scaricato '%s'\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Lo spazio libero in %s non è sufficiente" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "È necessario prendere %sB/%sB di sorgenti.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "È necessario prendere %sB di sorgenti\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Prelievo del sorgente %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Non è stato possibile scaricare alcuni archivi." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Si è saltata l'estrazione del sorgente già estratto in %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Comando di estrazione '%s' fallito.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Verificare se il pacchetto 'dpkg-dev' è installato.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Comando di costruzione '%s' fallito.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Processo figlio fallito" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"Bisogna specificare almeno un pacchetto di cui controllare la generazione di " +"dipendenze" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Impossibile ottenere informazioni di dipendenza di costruzione per %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s non ha dipendenze di costruzione.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"%s dipendenze per %s non possono essere soddisfatte perché non si trova il " +"pacchetto %s" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"%s dipendenze per %s non possono essere soddisfatte perché nessuna versione " +"del pacchetto %s può soddisfare le richieste di versione" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"La dipendenza %s per %s non è stata soddisfatta: il pacchetto installato %s " +"è troppo nuovo" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "La dipendenza %s per %s: %s è fallita" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Non è stato possibile soddisfare le dipendenze di costruzione per %s." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Il calcolo delle dipendenze per la costruzione è fallito" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Moduli supportati:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Utilizzo: apt-get [opzioni] comando\n" +" apt-get [opzioni] install|remove pkg1 [pkg2 ...]\n" +" apt-get [opzioni] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get è una semplice interfaccia a linea di comando per scaricare \n" +"e installare pacchetti. I comandi più usati sono update \n" +"e install.\n" +"\n" +"Comandi:\n" +" update - Aggiorna la lista dei pacchetti\n" +" upgrade - Esegue un aggiornamento\n" +" install - Installa nuovi pacchetti (pkg è libc6 non libc6.deb)\n" +" remove - Rimuove pacchetti\n" +" source - Scarica i pacchetti sorgente\n" +" build-dep - Configura le dipendenze di compilazione per i pacchetti " +"sorgente\n" +" dist-upgrade - Aggiorna la distribuzione, vedere apt-get(8)\n" +" dselect-upgrade - Segue le selezioni di dselect\n" +" clean - Cancella gli archivi dei pacchetti scaricati \n" +" autoclean - Cancella gli archivi vecchi scaricati\n" +" check - Verifica che non ci siano dipendenze rotte\n" +"\n" +"Opzioni:\n" +" -h Questo help.\n" +" -q Output registrabile - nessun indicatore di progresso\n" +" -qq Nessun output eccetto per gli errori\n" +" -d Solamente download - NON installa o decomprime gli archivi\n" +" -s Nessuna azione. Simula i passi in ordine\n" +" -y Assume sì a tutte le domande e non chiede conferma\n" +" -f Tenta di continuare se il controllo di integrità fallisce\n" +" -m Tenta di continuare se gli archivi non si trovano\n" +" -u Mostra una lista dei pacchetti da aggiornare\n" +" -b Costruisce il pacchetto sorgente dopo averlo scaricato\n" +" -V Mostra dettagliatamente i numeri di versione\n" +" -c=? Legge come configurazione il file specificato\n" +" -o=? Imposta un'opzione di configurazione, es -o dir::cache=/tmp\n" +"Consultare le pagine apt-get(8), sources.list(5) e apt.conf(5) del manuale\n" +"per maggiori informazioni e opzioni.\n" +" Questo APT ha i Poteri della Super Mucca.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Hit " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Get:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ign " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Err " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Scaricato %sB in %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [In corso]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Cambio disco: Inserire il disco chiamato\n" +" '%s'\n" +"nel dispositivo '%s' e premere invio\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Campo del pacchetto sconosciuto!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Utilizzo: apt-sortpkgs [opzioni] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs è un semplice tool per ordinare il file dei pacchetti. " +"L'opzione -s\n" +"è usata per indicare che tipo di file è.\n" +"\n" +"Opzioni:\n" +" -h Questo help\n" +" -s Ordina per pacchetto sorgente\n" +" -c=? Legge come configurazione il file specificato\n" +" -o=? Imposta un'opzione di configurazione, es -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Opzione predefinita errata!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Premere invio per continuare." + +# Note to translators: The following four messages belong together. It doesn't +# matter where sentences start, but it has to fit in just these four lines, and +# at only 80 characters per line, if possible. +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Si sono verificati alcuni errori nella scompattazione. Si cercherà di " + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "" +"configurare i pacchetti che sono stati installati. Questo potrebbe generare " + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" +"errori duplicati o errori causati da dipendenze non soddisfatte. Questo va " + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +" bene solo se gli errori sopra questo messaggio sono importanti. Si prega " +"di correggerli e di eseguire [I]nstall un'altra volta" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Aggiornamento delle informazioni disponibili" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Impossibile creare delle pipe" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Impossibile eseguire gzip " + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Archivio corrotto" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Checksum di tar fallito, archivio corrotto" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Tipo %u nell'header del tar sconosciuto, member %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Firma dell'archivio non valida" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Errore nella lettura del member header dell'archivio" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Member header dell'archivio non valido" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "L'archivio è troppo corto" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Impossibile leggere gli header dell'archivio" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "Dropnode invocata su un nodo ancora collegato" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Impossibile localizzare l'elemento hash!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Impossibile allocare la deviazione" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Errore interno in AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "" +"Tentativo di sovrascrittura di una deviazione in corso, %s -> %s e %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Doppia aggiunta di deviazione %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "File di configurazione duplice %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Impossibile scrivere il file %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Chiusura del file %s fallita" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "Il path %s è troppo lungo" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Estrazione di %s eseguita più di una volta" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "La directory %s è deviata" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "" +"Il pacchetto sta cercando di scrivere nella deviazione di destinazione %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Il path della deviazione è troppo lungo" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "La directory %s sta per essere sostituita da una non-directory" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Impossibile localizzare il nodo nel suo hash bucket" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Il path è troppo lungo" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Il pacchetto sovrascritto corrisponde senza versione per %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Il file %s/%s sovrascrive quello nel pacchetto %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Impossibile leggere %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Impossibile analizzare %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Impossibile rimuovere %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Impossibile creare %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Impossibile analizzare %sinfo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "Le directory temp e info devono essere sullo stesso filesystem" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Lettura della lista dei pacchetti in corso" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Impossibile raggiungere la directory admin %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Errore interno nel prendere un nome di un pacchetto" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Lettura della lista dei file in corso" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Impossibile aprire file di lista '%sinfo%s'. Se non si può ripristinare " +"questo file allora crearne uno vuoto e reinstallare immediatamente la stessa " +"versione del pacchetto!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Errore nella lettura del file di lista %sinfo%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Errore interno nel prendere un nodo" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Impossibile aprire il file di diversion %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Il file di diversion è corrotto" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Linea non valida nel file di diversion: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Errore interno nell'aggiunta di una diversion" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "La cache dei pacchetti deve prima essere inizializzata" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Impossibile trovare un Pacchetto: header, offset %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Sezione ConfFile nel file status non corretta. Offset %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Errore nel parsing MD5. Offset %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Questo non è un archivio DEB valido, member '%s' mancante" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "Questo non è un archivio DEB valido, campi '%s' o '%s' mancanti" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Impossibile cambiare su %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Errore interno, impossibile localizzare il campo" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Impossibile localizzare un file control valido" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "File control non corretto" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Impossibile leggere il database del cdrom %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Si prega di usare apt-cdrom per far riconoscere questo CD-ROM da APT. apt-" +"get update non può essere usato per aggiungere nuovi CD-ROM" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "CD-ROM sbagliato" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "Impossibile smontare il CD-ROM in %s, potrebbe essere ancora in uso." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Disco non trovato" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "File non trovato" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Impossibile analizzare" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Impossibile impostare la data di modifica (modification time)" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "URI non valide, le URI locali non devono iniziare con //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Accesso in corso" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Impossibile determinare il nome del peer" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Impossibile determinare il nome locale" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Il server ha rifiutato la connessione e ha detto: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "USER fallito, il server ha detto: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "PASS fallito, il server ha detto: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Si è specificato un proxy server ma senza script di login, Acquire::ftp::" +"ProxyLogin è vuoto." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Comando dello script di login '%s' fallito, il server ha detto: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "TYPE fallito, il server ha detto: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Timeout della connessione" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Il server ha chiuso la connessione" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Errore di lettura" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Una risposta ha superato le dimensioni del buffer." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Corruzione nel protocollo" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Errore di scrittura" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Impossibile creare un socket" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "" +"Impossibile connettersi al socket dati, tempo limite di connessione esaurito" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Impossibile connettersi in modalità passiva" + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "È stato impossibile ottenere un socket in ascolto con getaddrinfo()" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Impossibile eseguire bind() su un socket" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Impossibile eseguire listen() su un socket" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Impossibile determinare il nome del socket" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Impossibile inviare il comando PORT" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Famiglia di indirizzamento %u (AF_*) sconosciuta" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT fallito, il server ha detto: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Tempo limite di connessione esaurito per il socket dati" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Impossibile accettare connessioni" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Problemi nella creazione dell'hash del file" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Impossibile ottenere un file, il server ha detto '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Tempo limite esaurito per il socket dati" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Trasferimento dei dati fallito, il server ha detto '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Query" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Impossibile invocare " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Connessione a %s (%s) in corso" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Impossibile creare un socket per %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Impossibile iniziare la connessione a %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "" +"Impossibile connettersi a %s:%s (%s), tempo limite di connessione esaurito" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Impossibile connettersi a %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Connessione a %s in corso" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Impossibile risolvere '%s'" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "risoluzione di '%s' temporaneamente fallita" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "È accaduto qualcosa di anormale nella risoluzione di '%s:%s' (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Impossibile connettersi a %s %s:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Impossibile accedere al keyring '%s'" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" +"E: Lista argomento da Acquire::gpgv::Options troppo lunga. Uscita in corso." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" +"Errore interno: Firma corretta, ma non è stato possibile determinare il " +"fingerprint della chiave?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Almeno una firma non valida è stata trovata." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" +"Impossibile esseguire '%s' per verificare la firma (gnupg è installato?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Errore sconosciuto durante l'esecuzione di gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "Le seguenti firme non erano valide:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"Le seguenti firme non sono state verificate perché la chiave pubblica non è " +"disponibile:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Impossibile aprire una pipe per %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Errore di lettura dal processo %s" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "In attesa degli header" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Si è ottenuto una singola linea di header su %u caratteri" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Linea nell'header non corretta" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "Il server HTTP ha inviato un header di risposta non valido" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "Il server HTTP ha inviato un Content-Length non valido" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "Il server HTTP ha inviato un Content-Range non valido" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "Questo server HTTP ha il supporto del range bacato" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Formato della data sconosciuto" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Select fallito" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Tempo limite per la connessione esaurito" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Errore nella scrittura del file di output" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Errore nella scrittura nel file" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Errore nella scrittura nel file" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "" +"Errore nella lettura dal server. Il lato remoto ha chiuso la connessione" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Errore nella lettura dal server" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Header dei dati malformato" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Connessione fallita" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Errore interno" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Impossibile eseguire mmap su un file vuoto" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Impossibile eseguire mmap di %lu byte" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Selezione %s non trovata" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Tipo di abbreviazione non riconosciuto: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Apertura del file di configurazione %s in corso" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Linea %d troppo lunga (max %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Errore di sintassi %s:%u: Il blocco inizia senza nome" + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Errore di sintassi %s:%u: Tag malformato" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Errore di sintassi %s:%u: Carattere extra dopo il valore" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" +"Errore di sintassi %s:%u: Le direttive possono essere fatte solo al livello " +"più alto" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Errore di sintassi %s:%u: Troppi include annidati" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Errore di sintassi %s:%u: Incluso da qui" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Errore di sintassi %s:%u: Direttiva non supportata '%s'" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Errore di sintassi %s:%u: caratteri extra alla fine del file" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Errore!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Fatto" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "L'opzione da linea di comando '%c' [da %s] è sconosciuta." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "L'opzione da linea di comando %s non è chiara" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "L'opzione da linea di comando %s, non è booleana" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "L'opzione %s richiede un argomento." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "" +"Opzione %s: la specifica di configurazione del parametro deve avere un " +"=." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "L'opzione %s richiede un argomento intero, non '%s'" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "L'opzione '%s' è troppo lunga" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "Il valore %s non è chiaro, provare true o false." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Operazione non valida %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Impossibile accedere al mount point %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Impossibile raggiungere %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Impossibile accedere al cdrom" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "Locking disabilitato per il file di lock in sola lettura %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Impossibile aprire il file di lock %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "Lock disabilitato per il file di lock %s nfs montato" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Impossibile ottenere il lock %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "In attesa per %s ma non presente" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Il sottoprocesso %s ha ricevuto un segmentation fault." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Il sottoprocesso %s ha ritornato un codice d'errore (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Il sottoprocesso %s è uscito inaspettatamente" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Impossibile aprire il file %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "letto, c'erano ancora %lu da leggere ma non e' stato lasciato nulla" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "scrittura, c'erano ancora %lu da scrivere ma non era possibile" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Si è verificato un problema chiudendo il file" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Si è verificato un problema rimuovendo il file" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Si è verificato un problema sincronizzando il file" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Cache dei pacchetti vuota" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Il file cache dei pacchetti è corrotto" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Il file cache dei pacchetti è in una versione incompatibile" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Questo APT non supporta il sistema di versioning '%s'" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "" +"Il file cache dei pacchetti è stato generato per un'architettura differente" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Dipende" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Predipende" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Consiglia" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Raccomanda" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Va in conflitto" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Sostituisce" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Rende obsoleto" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "importante" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "richiesto" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "standard" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "opzionale" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "extra" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Generazione dell'albero delle dipendenze in corso" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Versioni candidate" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Generazione delle dipendenze" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Impossibile analizzare il file dei pacchetti %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Impossibile analizzare il file dei pacchetti %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "La linea %lu in %s (URI) non è corretta" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "La linea %lu in %s (dist) non è corretta" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "La linea %lu in %s (URI parse) non è corretta" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "La linea %lu nella lista delle fonti %s (Absolute dist) non è corretta" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "La linea %lu in %s (dist parse) non è corretta" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Apertura di %s in corso" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Linea %u troppo lunga nel source list %s." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "La linea %u in %s (type) non è corretta" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Il tipo '%s' non è riconosciuto alla linea %u nella lista sorgenti %s" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "La linea %u in %s (vendor id) non è corretta" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Quest'installazione necessita della rimozione temporanea del pacchetto " +"essenziale %s a causa di un loop Conflitto/Pre-Dipendenza. Questo non è " +"bene, ma se si vuole farlo, si attivi l'opzione APT::Force-LoopBreak " + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Il file indice di tipo '%s' non è supportato" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"Il pacchetto %s deve essere reinstallato, ma non si riesce a trovare un " +"archivio per esso." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Errore, pkgProblemResolver::Resolve ha generato uno stop, questo può essere " +"causato da pacchetti bloccati " + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "Impossibile correggere i problemi, ci sono pacchetti rotti bloccati" + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Manca la directory di liste %spartial." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Manca la directory di archivio %spartial." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "Scaricamento file %li di %li (%s rimanente)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "Scaricamento file %li di %li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Non è stato possibile trovare un driver per il metodo %s." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Il metodo %s non è partito correttamente" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "" +"Per favore inserire il disco chiamato '%s' nel dispositivo '%s' e premere " +"invio." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Il sistema di archiviazione (packaging) '%s' non è supportato" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Impossibile determinare un tipo di sistema appropriato di pacchetti" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Impossibile analizzare %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "Bisogna inserire alcuni URI di tipo 'source' in sources.list" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" +"La lista dei pacchetti o il file di status non possono essere letti o aperti." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "È consigliabile eseguire apt-get update per correggere questi problemi" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Campo non valido nel file delle preferenze, Manca \"Package header\"" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Impossibile capire il tipo di pin %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Nessuna (o zero) priorità specificata per il pin" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "La cache ha un sistema incompatibile di gestione delle versioni" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Errore nell'analisi di %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Errore nell'analisi di %s (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Errore nell'analisi di %s (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Errore nell'analisi di %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Errore nell'analisi di %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Errore nell'analisi di %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Errore nell'analisi di %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" +"WOW, si è ecceduto il numero massimo di nomi di pacchetti che questo APT è " +"capace di gestire" + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "" +"WOW, si è ecceduto il numero massimo di versioni che questo APT è capace di " +"gestire" + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" +"WOW, si è ecceduto il numero massimo di dipendenze che questo APT è capace " +"di gestire" + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Errore nell'analisi di %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Errore nell'analisi di %s (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "" +"È stato impossibile trovare %s %s mentre si processava le dipendenze dei file" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Impossibile controllare la lista dei pacchetti sorgente %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Il File Collezionato Fornisce" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "Errore di I/O nel salvataggio del cache sorgente" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "rename() fallita: %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "Somma MD5 non corrispondente" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "" +"Non esiste una chiave pubblica disponibile per i seguenti ID di chiave:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Non è stato possibile trovare un file per il pacchetto %s. Questo significa " +"che bisogna correggere manualmente l'errore. (a causa di un'architettura " +"mancante)" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Non è stato possibile trovare file per il pacchetto %s. Questo significa che " +"bisogna correggere manualmente l'errore." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"I file indice dei pacchetti sono corrotti. Non c'è un campo Filename: per il " +"pacchetto %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Le Dimensioni non corrispondono" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Il blocco vendor %s non contiene dati" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Si userà il punto di montaggio del CD-ROM %s\n" +"Montaggio CD-ROM\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Identificazione in corso.. " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Etichette salvate: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Si userà il mount point del CD-ROM %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "Smontaggio CD-ROM in corso\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "In attesa del disco...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Montaggio CD-ROM in corso \n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Scansione del disco alla ricerca di file indice, in corso..\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "Trovati %i indici di pacchetto, %i indici di sorgenti e %i firme\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Questo non è un nome valido, riprovare.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Questo disco è chiamato: \n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Copia della lista dei pacchetti in corso..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Scrittura di una nuova lista sorgenti in corso\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Le voci lista sorgenti per questo Disco sono:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "Smontaggio CD-ROM in corso..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "Scritti %i record.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "Scritti %i record con %i file mancanti.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "Scritti %i record con %i file senza match\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "Scritti %i record con %i file mancanti e %i file senza match\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "Preparazione di %s in corso" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "Scompattamento di %s in corso" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "Preparazione alla configurazione di %s in corso" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "Configurazione di %s in corso" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "%s Installato" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "Preparazione per la rimozione di %s in corso" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "Rimozione di %s in corso" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "%s rimosso" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "Preparazione alla rimozione totale di %s in corso" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "Rimozione totale completata %s" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Impossibile aprire il file %s" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Connessione chiusa prematuramente" + +#~ msgid "File date has changed %s" +#~ msgstr "La data del file è cambiata %s" + +#~ msgid "Reading file list" +#~ msgstr "Lettura della lista dei file in corso" + +#~ msgid "Could not execute " +#~ msgstr "Impossibile eseguire " + +#~ msgid "Preparing for remove with config %s" +#~ msgstr "Preparazione per la rimozione con la configurazione %s in corso" + +#~ msgid "Removed with config %s" +#~ msgstr "Rimosso con la configurazione %s" diff --git a/po/ja.po b/po/ja.po new file mode 100644 index 0000000..ccd9cf7 --- /dev/null +++ b/po/ja.po @@ -0,0 +1,2798 @@ +# Japanese mesasges for apt. +# Copyright (C) 2001 Free Software Foundation, Inc. +# Project Vine, Daisuke SUZUKI , 2001-2002 +# Debian Project, Masato Taruishi , 2002 +# Debian Project, Keita Maehara , 2003 +# Debian Project, Kenshi Muto , 2004 +msgid "" +msgstr "" +"Project-Id-Version: apt 0.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-09-08 19:57+0900\n" +"Last-Translator: Kenshi Muto \n" +"Language-Team: Debian Japanese List \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8 bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "パッケージ %s のバージョン %s には解決不可能な依存関係があります:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "パッケージ %s が見つかりません" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "パッケージ名総数: " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " 通常パッケージ: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " 純粋仮想パッケージ: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " 単一仮想パッケージ: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " 複合仮想パッケージ: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " 欠落: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "個別バージョン総数: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "依存関係総数: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "バージョン/ファイル関係総数: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "提供マッピング総数: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Glob 文字列の総数: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "総依存関係・バージョン容量: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "総空き容量: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "総占有容量: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Package ファイル %s が同期していません。" + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "パターンはちょうど 1 つだけ指定してください" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "パッケージが見つかりません" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "パッケージファイル:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "キャッシュが同期しておらず、パッケージファイルを相互参照できません" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Pin パッケージ:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(見つかりません)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " インストールされているバージョン: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(なし)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " 候補: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " パッケージ Pin: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " バージョンテーブル:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s for %s %s コンパイル日時: %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"使用方法: apt-cache [オプション] コマンド\n" +" apt-cache [オプション] add file1 [file2 ...]\n" +" apt-cache [オプション] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [オプション] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache は APT のバイナリキャッシュファイルを操作したり、そこから情\n" +"報を検索したりするための低レベルのツールです\n" +"\n" +"コマンド:\n" +" add - パッケージファイルをソースキャッシュに追加する\n" +" gencaches - パッケージおよびソースキャッシュを生成する\n" +" showpkg - 単一パッケージの一般情報を表示する\n" +" showsrc - ソースレコードを表示する\n" +" stats - 基本ステータス情報を表示する\n" +" dump - すべてのファイルを簡単な形式で表示する\n" +" dumpavail - available ファイルを標準出力に出力する\n" +" unmet - 未解決の依存関係を表示する\n" +" search - 正規表現パターンによってパッケージを検索する\n" +" show - パッケージの情報を表示する\n" +" depends - パッケージが依存しているパッケージを表示する\n" +" rdepends - パッケージの逆依存情報を表示する\n" +" pkgnames - すべてのパッケージ名を表示する\n" +" dotty - GraphVis 用のパッケージグラフを生成する\n" +" xvcg - xvcg 用のパッケージグラフを生成する\n" +" policy - ポリシー設定情報を表示する\n" +"\n" +"オプション:\n" +" -h このヘルプを表示する\n" +" -p=? パッケージキャッシュ\n" +" -s=? ソースキャッシュ\n" +" -q プログレス表示をしない\n" +" -i umnet コマンドで重要な依存情報のみを表示する\n" +" -c=? 指定した設定ファイルを読み込む\n" +" -o=? 指定した設定オプションを読み込む (例: -o dir::cache=/tmp)\n" +"詳細は、apt-cache(8) や apt.conf(5) のマニュアルページを参照してください。\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "このディスクに、'Debian 2.1r1 Disk 1' のような名前を付けてください" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "ディスクをドライブに入れて enter を押してください" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "" +"あなたの持っている CD セットの残り全部に、この手順を繰り返してください。" + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "引数がペアではありません" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"使用方法: apt-config [オプション] コマンド\n" +"\n" +"apt-config は APT の設定ファイルを読み込むための簡単なツールです\n" +"\n" +"コマンド:\n" +" shell - シェルモード\n" +" dump - 設定情報を表示する\n" +"\n" +"オプション:\n" +" -h このヘルプを表示する\n" +" -c=? 指定した設定ファイルを読み込む\n" +" -o=? 指定した設定オプションを適用する(例: -o dir::cache=/tmp)\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s は正しい DEB パッケージではありません。" + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"使用方法: apt-extracttemplates ファイル名1 [ファイル名2 ...]\n" +"\n" +"apt-extracttemplates は debian パッケージから設定とテンプレート情報を\n" +"抽出するためのツールです\n" +"\n" +"オプション:\n" +" -h このヘルプを表示する\n" +" -t 一時ディレクトリを指定する\n" +" -c=? 指定した設定ファイルを読み込む\n" +" -o=? 指定した設定オプションを適用する (例: -o dir::cache=/tmp)\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "%s に書き込めません" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "" +"debconf のバージョンを取得できません。debconf はインストールされていますか?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "パッケージ拡張子リストが長すぎます" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "ディレクトリ %s の処理中にエラーが発生しました" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "ソース拡張子リストが長すぎます" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Contents ファイルへのヘッダの書き込み中にエラーが発生しました" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Contents %s の処理中にエラーが発生しました" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"使用方法: apt-ftparchive [オプション] コマンド\n" +"コマンド: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive は Debian アーカイブ用のインデックスファイルを生成しま\n" +"す。全自動のものから、dpkg-scanpackages と dpkg-scansources の代替機能\n" +"となるものまで、多くの生成方法をサポートしています。\n" +"\n" +"apt-ftparchive は .deb のツリーから Packages ファイルを生成します。\n" +"Packages ファイルは MD5 ハッシュやファイルサイズに加えて、各パッケージ\n" +"のすべての制御フィールドの内容を含んでいます。Priority と Section の値\n" +"を強制するために override ファイルがサポートされています。\n" +"\n" +"同様に apt-ftparchive は .dsc のツリーから Sources ファイルを生成しま\n" +"す。--source-override オプションを使用するとソース override ファイルを\n" +"指定できます。\n" +"\n" +"'packages' および 'sources' コマンドはツリーのルートで実行する必要があ\n" +"ります。BinaryPath には再帰検索のベースディレクトリを指定し、override \n" +"ファイルは override フラグを含んでいる必要があります。もし pathprefix \n" +"が存在すればファイル名フィールドに付加されます。debian アーカイブでの\n" +"使用方法の例:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"オプション:\n" +" -h このヘルプを表示する\n" +" --md5 MD5 の生成を制御する\n" +" -s=? ソース override ファイル\n" +" -q 表示を抑制する\n" +" -d=? オプションのキャッシュデータベースを選択する\n" +" --no-delink delinking デバッグモードを有効にする\n" +" --contents contents ファイルの生成を制御する\n" +" -c=? 指定の設定ファイルを読む\n" +" -o=? 任意の設定オプションを設定する" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "選択にマッチするものがありません" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "パッケージファイルグループ `%s' に見当たらないファイルがあります" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "DB が壊れていたため、ファイル名を %s.old に変更しました" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "DB が古いため、%s のアップグレードを試みます" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"DB フォーマットが無効です。apt の古いバージョンから更新したのであれば、データ" +"ベースを削除・再作成してください。" + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "DB ファイル %s を開くことができません: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "%s の状態を取得するのに失敗しました" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "アーカイブにコントロールレコードがありません" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "カーソルを取得できません" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "警告: ディレクトリ %s が読めません\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "警告: %s の状態を取得できません\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "エラー: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "警告: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "エラー: エラーが適用されるファイルは " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "%s の解決に失敗しました" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "ツリー内での移動に失敗しました" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "%s のオープンに失敗しました" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " リンク %s [%s] を外します\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "%s のリンク読み取りに失敗しました" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "%s のリンク解除に失敗しました" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** %s を %s にリンクするのに失敗しました" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " リンクを外す制限の %sB に到達しました。\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "アーカイブにパッケージフィールドがありませんでした" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s に override エントリがありません\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " %1$s メンテナは %3$s ではなく %2$s です\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s にソース override エントリがありません\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s にバイナリ override エントリがありません\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "内部エラー、メンバー %s を特定できません" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - メモリの割り当てに失敗しました" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "'%s' をオープンできません" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "不正な override %s %lu 行目 #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "不正な override %s %lu 行目 #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "不正な override %s %lu 行目 #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "override ファイル %s を読み込むのに失敗しました" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "'%s' は未知の圧縮アルゴリズムです" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "圧縮出力 %s には圧縮セットが必要です" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "子プロセスへの IPC パイプの作成に失敗しました" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "FILE* の作成に失敗しました" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "fork に失敗しました" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "圧縮子プロセス" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "内部エラー、%s の作成に失敗しました" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "子プロセス IPC の生成に失敗しました" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "以下の圧縮ツールの実行に失敗しました: " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "展開ツール" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "子プロセス/ファイルへの IO が失敗しました" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "MD5 の計算中に読み込みに失敗しました" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "%s のリンク解除で問題が発生しました" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "%s を %s に名前変更できませんでした" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "Y" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "正規表現の展開エラー - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "以下のパッケージには満たせない依存関係があります:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "しかし、%s はインストールされています" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "しかし、%s はインストールされようとしています" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "しかし、インストールすることができません" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "しかし、これは仮想パッケージです" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "しかし、インストールされていません" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "しかし、インストールされようとしていません" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " または" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "以下のパッケージが新たにインストールされます:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "以下のパッケージは「削除」されます:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "以下のパッケージは保留されます:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "以下のパッケージはアップグレードされます:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "以下のパッケージは「ダウングレード」されます:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "以下の変更禁止パッケージは変更されます:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (%s のため) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"警告: 以下の不可欠パッケージが削除されます。\n" +"何をしようとしているか本当にわかっていない場合は、実行してはいけません!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "アップグレード: %lu 個、新規インストール: %lu 個、" + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "再インストール: %lu 個、" + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "ダウングレード: %lu 個、" + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "削除: %lu 個、保留: %lu 個。\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu 個のパッケージが完全にインストールまたは削除されていません。\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "依存関係を解決しています ..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " 失敗しました。" + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "依存関係を訂正できません" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "アップグレードセットを最小化できません" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " 完了" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "" +"これらを直すためには 'apt-get -f install' を実行する必要があるかもしれませ" +"ん。" + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "未解決の依存関係があります。-f オプションを試してください。" + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "警告: 以下のパッケージは認証されていません!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "認証の警告は上書きされました。\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "検証なしにこれらのパッケージをインストールしますか [y/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "いくつかのパッケージを認証できませんでした" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "問題が発生し、-y オプションが --force-yes なしで使用されました" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "内部エラー、InstallPackages が壊れたパッケージで呼び出されました!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "パッケージを削除しなければなりませんが、削除が無効になっています。" + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "内部エラー、調整が終わっていません" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "ダウンロードディレクトリをロックできません" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "ソースのリストを読むことができません。" + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"おっと、サイズがマッチしません。apt@packages.debian.org にメールしてください" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "%2$sB 中 %1$sB のアーカイブを取得する必要があります。\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "%sB のアーカイブを取得する必要があります。\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "展開後に追加で %sB のディスク容量が消費されます。\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "展開後に %sB のディスク容量が解放されます。\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "%s の空き領域を測定できません" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "%s に充分な空きスペースがありません。" + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "Trivial Only が指定されましたが、これは簡単な操作ではありません。" + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Yes, do as I say!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"重大な問題を引き起こす可能性のあることをしようとしています。\n" +"続行するには、'%s' というフレーズをタイプしてください。\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "中断しました。" + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "続行しますか [Y/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "%s の取得に失敗しました %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "いくつかのファイルの取得に失敗しました" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "ダウンロードオンリーモードでパッケージのダウンロードが完了しました" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"いくつかのアーカイブが取得できません。apt-get update を実行するか --fix-" +"missing オプションを付けて試してみてください。" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing とメディア交換は現在同時にはサポートされていません" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "足りないパッケージを直すことができません。" + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "インストールを中断します。" + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "注意、%2$s の代わりに %1$s を選択します\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" +"すでにインストールされておりアップグレードも設定されていないため、%s をスキッ" +"プします。\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "パッケージ %s はインストールされていないため、削除はできません\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "%s は以下のパッケージで提供されている仮想パッケージです:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [インストール済み]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "インストールするパッケージを明示的に選択する必要があります。" + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"パッケージ %s はデータベースには存在しますが、利用できません。\n" +"おそらく、そのパッケージが見つからないか、もう古くなっているか、\n" +"あるいは別のソースからのみしか利用できないという状況が考えられます\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "しかし、以下のパッケージで置き換えられています:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "パッケージ %s にはインストール候補がありません" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "ダウンロードできないため、%s の再インストールは不可能です。\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s はすでに最新バージョンです。\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "'%2$s' のリリース '%1$s' が見つかりませんでした" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "'%2$s' のバージョン '%1$s' が見つかりませんでした" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "%3$s にはバージョン %1$s (%2$s) を選択しました\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "update コマンドは引数をとりません" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "list ディレクトリをロックできません" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視され" +"るか、古いものが代わりに使われます。" + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "内部エラー、AllUpgrade が何かを破壊しました" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "パッケージ %s が見つかりません" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "注意: 正規表現 '%2$s' に対して %1$s を選択しました\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "" +"以下の問題を解決するために 'apt-get -f install' を実行する必要があるかもしれ" +"ません:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"未解決の依存関係です。'apt-get -f install' を実行してみてください (または解法" +"を明示してください)。" + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"インストールすることができないパッケージがありました。おそらく、あり得\n" +"ない状況を要求したか、(不安定版ディストリビューションを使用しているの\n" +"であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移\n" +"動されていないことが考えられます。" + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"単純な操作を行っただけなので、このパッケージは単にインストールできない\n" +"可能性が高いです。そのため、このパッケージへのバグレポートを送ってくだ\n" +"さい。" + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "以下の情報がこの問題を解決するために役立つかもしれません:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "壊れたパッケージ" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "以下の特別パッケージがインストールされます:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "提案パッケージ:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "推奨パッケージ:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "アップグレードパッケージを検出しています ... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "失敗" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "完了" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "内部エラー、問題リゾルバが何かを破壊しました" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "" +"ソースを取得するには少なくともひとつのパッケージ名を指定する必要があります" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "%s のソースパッケージが見つかりません" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "すでにダウンロードされたファイル '%s' をスキップします\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "%s に充分な空きスペースがありません" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "%2$sB 中 %1$sB のソースアーカイブを取得する必要があります。\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "%sB のソースアーカイブを取得する必要があります。\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "ソース %s を取得\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "いくつかのアーカイブの取得に失敗しました。" + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "すでに %s に展開されたソースがあるため、展開をスキップします\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "展開コマンド '%s' が失敗しました。\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "" +"'dpkg-dev' パッケージがインストールされていることを確認してください。\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "ビルドコマンド '%s' が失敗しました。\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "子プロセスが失敗しました" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"ビルド依存関係をチェックするパッケージを少なくとも 1 つ指定する必要があります" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "%s のビルド依存情報を取得できません" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s にはビルド依存情報が指定されていません。\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"パッケージ %3$s が見つからないため、%2$s に対する %1$s の依存関係を満たすこと" +"ができません" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"入手可能な %3$s はいずれもバージョンについての要求を満たせないため、%2$s に対" +"する %1$s の依存関係を満たすことができません" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"%2$s の依存関係 %1$s を満たすことができません: インストールされた %3$s パッ" +"ケージは新しすぎます" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "%2$s の依存関係 %1$s を満たすことができません: %3$s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "%s のビルド依存関係を満たすことができませんでした。" + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "ビルド依存関係の処理に失敗しました" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "サポートされているモジュール:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"使用法: apt-get [オプション] コマンド\n" +" apt-get [オプション] install|remove パッケージ名1 [パッケージ名" +"2 ...]\n" +" apt-get [オプション] source パッケージ名1 [パッケージ名2 ...]\n" +"\n" +"apt-get は、パッケージをダウンロード/インストールするための簡単なコマ\n" +"ンドラインインタフェースです。もっともよく使われるコマンドは、update \n" +"と install です。\n" +"\n" +"コマンド:\n" +" update - パッケージリストを取得・更新します\n" +" upgrade - アップグレードを行います\n" +" install - 新規パッケージをインストールします\n" +" (pkg は libc6.deb ではなく libc6 のように指定します)\n" +" remove - パッケージを削除します\n" +" source - ソースアーカイブをダウンロードします\n" +" build-dep - ソースパッケージの構築依存関係を設定します\n" +" dist-upgrade - ディストリビューションをアップグレードします\n" +" (apt-get(8) を参照)\n" +" dselect-upgrade - dselect の選択に従います\n" +" clean - ダウンロードしたアーカイブファイルを削除します\n" +" autoclean - ダウンロードした古いアーカイブファイルを削除します\n" +" check - 壊れた依存関係がないかチェックします\n" +"\n" +"オプション:\n" +" -h このヘルプを表示する\n" +" -q ログファイルに出力可能な形式にする - プログレス表示をしない\n" +" -qq エラー以外は表示しない\n" +" -d ダウンロードのみ行う - アーカイブのインストールや展開は行わない\n" +" -s 実際には実行しない。実行シミュレーションのみ行う\n" +" -y すべての問い合わせに Yes で答え、プロンプトは返さない\n" +" -f 整合性チェックで失敗しても処理を続行する\n" +" -m アーカイブが存在しない場合も続行する\n" +" -u アップグレードされるパッケージも表示する\n" +" -b ソースパッケージを取得し、ビルドを行う\n" +" -V 冗長なバージョンナンバを表示する\n" +" -c=? 指定した設定ファイルを読み込む\n" +" -o=? 任意の設定オプションを指定する, 例 -o dir::cache=/tmp\n" +"オプション・設定に関しては、マニュアルページ apt-get(8)、sources.list(5)、\n" +"apt.conf(5) を参照してください。\n" +" この APT は Super Cow Powers 化されています。\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "ヒット " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "取得:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "無視 " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "エラー " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "%sB を %s で取得しました (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [処理中]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"メディア変更: \n" +" '%s'\n" +"とラベルの付いたディスクをドライブ '%s' に入れて enter を押してください\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "不明なパッケージレコードです!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"使用方法: apt-sortpkgs [オプション] ファイル名1 [ファイル名2 ...]\n" +"\n" +"apt-sortpkgs はパッケージファイルをソートするための簡単なツールです。\n" +"-s オプションはファイルの種類を示すために使用されます。\n" +"\n" +"オプション:\n" +" -h このヘルプを表示する\n" +" -s ソースファイルソートを使用する\n" +" -c=? 指定した設定ファイルを読み込む\n" +" -o=? 指定した設定オプションを適用する (例: -o dir::cache=/tmp)\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "不正なデフォルト設定です!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "enter を押すと続行します。" + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "展開中にエラーが発生しました。インストールされたパッケージを" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "設定します。これにより、エラーが複数出るか、依存関係の欠如に" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "よるエラーが出るかもしれません。これには問題はなく、上記のメッセージ" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "が重要です。これを修正して「導入」を再度実行してください" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "入手可能情報をマージしています" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "パイプの生成に失敗しました" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "gzip の実行に失敗しました" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "壊れたアーカイブ" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "tar チェックサムが失敗しました。アーカイブが壊れています" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "未知の TAR ヘッダタイプ %u、メンバー %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "不正なアーカイブ署名" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "アーカイブメンバーヘッダの読み込みに失敗しました" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "不正なアーカイブメンバーヘッダ" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "アーカイブが不足しています" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "アーカイブヘッダの読み込みに失敗しました" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "リンクされているノードで DropNode が呼ばれました" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "ハッシュ要素を特定することができません!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "diversion の割り当てに失敗しました" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "AddDiversion での内部エラー" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "%s -> %s と %s/%s の diversion を上書きしようとしています" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "%s -> %s の diversion が二重に追加されています" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "設定ファイル %s/%s が重複しています" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "ファイル %s の書き込みに失敗しました" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "%s のクローズに失敗しました" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "パス %s は長すぎます" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "%s を複数回展開しています" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "ディレクトリ %s は divert されています" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "" +"このパッケージは diversion のターゲットの %s/%s に書き込もうとしています" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "diversion パスが長すぎます" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "ディレクトリ %s が非ディレクトリに置換されようとしています" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "ハッシュバケツ内でノードを特定するのに失敗しました" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "パスが長すぎます" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "%s に対するバージョンのないパッケージマッチを上書きします" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "ファイル %s/%s がパッケージ %s のものを上書きします" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "%s を読み込むことができません" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "%s の状態を取得できません" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "%s の削除に失敗しました" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "%s を作成できません" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "%sinfo の状態の取得に失敗しました" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "info と temp ディレクトリは同じファイルシステム上になければなりません" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "パッケージリストを読み込んでいます" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "管理ディレクトリ %sinfo への移動に失敗しました" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "パッケージ名取得中の内部エラー" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "ファイルリストを読み込んでいます" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"リストファイル '%sinfo/%s' のオープンに失敗しました。このファイルを元に戻すこ" +"とができないなら、その内容を空にして即座に同じバージョンのパッケージを再イン" +"ストールしてください!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "リストファイル %sinfo/%s の読み込みに失敗しました" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "内部エラー、ノードの取得" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "diversions ファイル %sdiversions のオープンに失敗しました" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "diversion ファイルが壊れています" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "diversion ファイルに不正な行があります: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "内部エラー、diversion の追加" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "最初にパッケージキャッシュを初期化しなければなりません" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Package: ヘッダを見つけるのに失敗しました。オフセット %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "status ファイルに不正な ConfFile セクションがあります。オフセット %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "MD5 の解析エラー。オフセット %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "'%s' メンバーがないため、正しい DEB アーカイブではありません" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "" +"'%s' または '%s' メンバーがないため、これは正しい DEB アーカイブではありませ" +"ん" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "%s に変更できませんでした" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "内部エラー、メンバーを特定できません" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "正しいコントロールファイルを特定できませんでした" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "解析できないコントロールファイル" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "CD-ROM データベース %s を読み込むことができません" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"この CD-ROM を APT に認識させるには apt-cdrom を使用してください。新しい CD-" +"ROM を追加するために apt-get update は使用できません。" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "CD が違います" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "%s の CD-ROM は使用中のためアンマウントすることができません。" + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "ディスクが見つかりません。" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "ファイルが見つかりません" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "状態の取得に失敗しました" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "変更時刻の設定に失敗しました" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "不正な URI です。ローカルの URI は // で始まってはいけません" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "ログインしています" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "ピアネームを決定することができません" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "ローカルネームを決定することができません" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "サーバから接続を拒絶されました。応答: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "USER 失敗、サーバ応答: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "PASS 失敗、サーバ応答: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"プロキシサーバが指定されていますが、ログインスクリプトが設定されていません。" +"Acquire::ftp::ProxyLogin が空です。" + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "ログインスクリプトのコマンド '%s' 失敗、サーバ応答: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "TYPE 失敗、サーバ応答: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "接続タイムアウト" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "サーバが接続を切断しました" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "読み込みエラー" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "レスポンスがバッファをオーバフローさせました。" + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "プロトコルが壊れています" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "書き込みエラー" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "ソケットを作成できません" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "データソケットへ接続できませんでした。接続がタイムアウトしました" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "パッシブソケットに接続できません。" + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo はリスニングポートを取得することができませんでした" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "ソケットをバインドできませんでした" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "ソケットをリスンできませんでした" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "ソケットの名前を特定できませんでした" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "PORT コマンドを送信できません" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "未知のアドレスファミリ %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT に失敗しました。サーバ応答: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "データソケット接続タイムアウト" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "接続を accept できません" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "ファイルのハッシュでの問題" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "ファイルを取得できません。サーバ応答 '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "データソケットタイムアウト" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "データ転送に失敗しました。サーバ応答 '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "問い合わせ" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "呼び出せません" + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "%s (%s) へ接続しています" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "%s (f=%u t=%u p=%u) に対するソケットを作成できません" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "%s:%s (%s) への接続を開始できません。" + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "%s:%s (%s) へ接続できませんでした。接続がタイムアウトしました" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "%s:%s (%s) へ接続できませんでした。" + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "%s へ接続しています" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "'%s' を解決できませんでした" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "'%s' が一時的に解決できません" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "'%s:%s' (%i) の解決中に問題が起こりました" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "%s %s へ接続できません:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "キーリングにアクセスできませんでした: '%s'" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "E: Acquire::gpgv::Options の引数リストが長すぎます。終了しています。" + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "内部エラー: 正しい署名ですが、鍵指紋を確定できません?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "少なくとも 1 つの不正な署名が発見されました。" + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" +"署名を検証するための '%s' の実行ができませんでした (gnupg はインストールされ" +"ていますか?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "gpgv の実行中に未知のエラーが発生" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "以下の署名が無効です:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "公開鍵を利用できないため、以下の署名は検証できませんでした:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "%s に対してパイプを開けませんでした" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "%s プロセスからの読み込みエラー" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "ヘッダの待機中です" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "%u 文字を超える 1 行のヘッダを取得しました" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "不正なヘッダ行です" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "http サーバが不正なリプライヘッダを送信してきました" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "http サーバが不正な Content-Length ヘッダを送信してきました" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "http サーバが不正な Content-Range ヘッダを送信してきました" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "http サーバのレンジサポートが壊れています" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "不明な日付フォーマットです" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "select に失敗しました" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "接続タイムアウト" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "出力ファイルへの書き込みでエラーが発生しました" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "ファイルへの書き込みでエラーが発生しました" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "ファイルへの書き込みでエラーが発生しました" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "リモート側で接続がクローズされてサーバからの読み込みに失敗しました" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "サーバからの読み込みに失敗しました" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "不正なヘッダです" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "接続失敗" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "内部エラー" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "空のファイルを mmap できません" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "%lu バイトの mmap ができませんでした" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "選択された %s が見つかりません" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "理解できない省略形式です: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "設定ファイル %s をオープンできませんでした" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "%d 行目が長すぎます (最大 %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "文法エラー %s:%u: ブロックが名前なしで始まっています。" + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "文法エラー %s:%u: 不正なタグです" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "文法エラー %s:%u: 値の後に余分なゴミが入っています" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "文法エラー %s:%u: 命令はトップレベルでのみ実行できます" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "文法エラー %s:%u: インクルードのネストが多すぎます" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "文法エラー %s:%u: ここからインクルードされています" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "文法エラー %s:%u: 未対応の命令 '%s'" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "文法エラー %s:%u: ファイルの最後に余計なゴミがあります" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... エラー!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... 完了" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "コマンドラインオプション '%c' [%s から] は不明です。" + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "コマンドラインオプション %s を理解できません" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "コマンドラインオプション %s は boolean ではありません" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "オプション %s には引数が必要です。" + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "オプション %s: 設定項目には =<値> を指定する必要があります。" + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "オプション %s には '%s' ではなく整数の引数が必要です" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "オプション '%s' は長すぎます" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "%s を解釈することができません。true か false を試してください。" + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "不正な操作 %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "マウントポイント %s の状態を取得できません" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "%s へ変更することができません" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "cdrom の状態を取得するのに失敗しました" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "読み込み専用のロックファイル %s にロックは使用しません" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "ロックファイル %s をオープンできません" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "nfs マウントされたロックファイル %s にはロックを使用しません" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "ロック %s が取得できませんでした" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "%s を待ちましたが、そこにはありませんでした" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "子プロセス %s がセグメンテーション違反を受け取りました。" + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "子プロセス %s がエラーコード (%u) を返しました" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "子プロセス %s が予期せず終了しました" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "ファイル %s をオープンできませんでした" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "読み込みが %lu 残っているはずですが、何も残っていません" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "あと %lu 書き込む必要がありますが、書き込むことができませんでした" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "ファイルのクローズ中に問題が発生しました" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "ファイルの削除中に問題が発生しました" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "ファイルの同期中に問題が発生しました" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "空のパッケージキャッシュ" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "パッケージキャッシュファイルが壊れています" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "このパッケージキャッシュファイルは互換性がないバージョンです" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "この APT はバージョニングシステム '%s' をサポートしていません" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "パッケージキャッシュが異なるアーキテクチャ用に構築されています" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "依存" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "先行依存" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "提案" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "推奨" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "競合" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "置換" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "廃止" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "重要" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "要求" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "標準" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "任意" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "特別" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "依存関係ツリーを作成しています" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "候補バージョン" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "依存関係の生成" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "パッケージファイル %s を解釈することができません (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "パッケージファイル %s を解釈することができません (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "ソースリスト %2$s の %1$lu 行目が不正です (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "ソースリスト %2$s の %1$lu 行目が不正です (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "ソースリスト %2$s の %1$lu 行目が不正です (URI parse)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "ソースリスト %2$s の %1$lu 行目が不正です (absolute dist)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "ソースリスト %2$s の %1$lu 行目が不正です (dist parse)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "%s をオープンしています" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "ソースリスト %2$s の %1$u 行目が長すぎます。" + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "ソースリスト %2$s の %1$u 行目が不正です (type)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "ソースリスト %3$s の %2$u 行にあるタイプ '%1$s' は不明です" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "ソースリスト %2$s の %1$u 行目が不正です (vendor id)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"このインストールは、競合/先行依存のループが原因で、一時的に重要な不可欠パッ" +"ケージ %s を削除します。これは多くの場合に問題が起こる原因となります。本当に" +"これを行いたいなら、APT::Force-LoopBreak オプションを有効にしてください。" + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "インデックスファイルのタイプ '%s' はサポートされていません" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"パッケージ %s を再インストールする必要がありますが、そのためのアーカイブを見" +"つけることができませんでした。" + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"エラー、pkgProblemResolver::Resolve は停止しました。おそらく変更禁止パッケー" +"ジが原因です。" + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "問題を解決することができません。壊れた変更禁止パッケージがあります。" + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "リストディレクトリ %spartial が見つかりません。" + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "アーカイブディレクトリ %spartial が見つかりません。" + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "ファイルを取得しています %li/%li (残り %s)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "ファイルを取得しています %li/%li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "メソッドドライバ %s が見つかりません。" + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "メソッド %s が正常に開始しませんでした" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "" +"'%s' とラベルの付いたディスクをドライブ '%s' に入れて enter を押してくださ" +"い。" + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "パッケージングシステム '%s' はサポートされていません" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "適切なパッケージシステムタイプを特定できません" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "%s の状態を取得できません。" + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "sources.list に 'ソース' URI を指定する必要があります" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" +"パッケージリストまたはステータスファイルを解釈またはオープンすることができま" +"せん。" + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "" +"これらの問題を解決するためには apt-get update を実行する必要があるかもしれま" +"せん" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "" +"不正なレコードが preferences ファイルに存在します。パッケージヘッダがありませ" +"ん" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "pin タイプ %s が理解できませんでした" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "pin で優先度 (または 0) が指定されていません" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "キャッシュに非互換なバージョニングシステムがあります" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "%s を処理中にエラーが発生しました (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "%s を処理中にエラーが発生しました (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "%s を処理中にエラーが発生しました (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "%s を処理中にエラーが発生しました (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "%s を処理中にエラーが発生しました (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "%s を処理中にエラーが発生しました (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "%s を処理中にエラーが発生しました (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "この APT が対応している以上の数のパッケージが指定されました。" + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "この APT が対応している以上の数のバージョンが要求されました。" + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "この APT が対応している以上の数の依存関係が発生しました。" + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "%s を処理中にエラーが発生しました (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "%s を処理中にエラーが発生しました (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "パッケージ %s %s がファイル依存の処理中に見つかりませんでした" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "ソースパッケージリスト %s の状態を取得できません" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "ファイル提供情報を収集しています" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "ソースキャッシュの保存中に IO エラーが発生しました" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "名前の変更に失敗しました。%s (%s -> %s)" + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "MD5Sum が適合しません" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "以下の鍵 ID に対して利用可能な公開鍵がありません:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"パッケージ %s のファイルの位置を特定できません。おそらくこのパッケージを手動" +"で修正する必要があります (存在しないアーキテクチャのため)。" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"パッケージ %s のファイルの位置を特定できません。おそらくこのパッケージを手動" +"で修正する必要があります。" + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"パッケージインデックスファイルが壊れています。パッケージ %s に Filename: " +"フィールドがありません。" + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "サイズが適合しません" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "ベンダブロック %s はフィンガープリントを含んでいません" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"CD-ROM マウントポイント %s を使用します\n" +"CD-ROM をマウントしています\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "確認しています.. " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "格納されたラベル: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "CD-ROM マウントポイント %s を使用します\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "CD-ROM をアンマウントしています\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "ディスクを待っています ...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "CD-ROM をマウントしています ...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "ディスクのインデックスファイルを走査しています ..\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "" +"%i のパッケージインデックス、%i のソースインデックス、%i の署名を見つけまし" +"た\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "これは有効な名前ではありません。再試行してください。\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"このディスクは以下のように呼ばれます: \n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "パッケージリストをコピーしています ..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "新しいソースリストを書き込んでいます\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "このディスクのソースリストのエントリ:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "CD-ROM をアンマウントしています ..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "%i レコードを書き込みました。\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "%i レコードを書き込みました。%i 個のファイルが存在しません。\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "%i レコードを書き込みました。%i 個の適合しないファイルがあります。\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" +"%i レコードを書き込みました。%i 個のファイルが見つからず、%i 個の適合しない" +"ファイルがあります。\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "%s を準備しています" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "%s を展開しています" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "%s の設定を準備しています" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "%s を設定しています" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "%s をインストールしました" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "%s の削除を準備しています" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "%s を削除しています" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "%s を削除しました" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "%s を完全に削除する準備をしています" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "%s を完全に削除しました" + +#: methods/rred.cc:219 +msgid "Could not patch file" +msgstr "ファイルにパッチできませんでした" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "途中で接続がクローズされました" + +#~ msgid "File date has changed %s" +#~ msgstr "ファイル %s の日付が変更されています" + +#~ msgid "Reading file list" +#~ msgstr "ファイルリストを読み込んでいます" + +#~ msgid "Could not execute " +#~ msgstr "実行できませんでした:" + +#~ msgid "Preparing for remove with config %s" +#~ msgstr "設定 %s の削除を準備しています" + +#~ msgid "Removed with config %s" +#~ msgstr "設定 %s を削除しました" diff --git a/po/km.po b/po/km.po new file mode 100644 index 0000000..6ad30ac --- /dev/null +++ b/po/km.po @@ -0,0 +1,2734 @@ +# translation of apt_po_km.po to Khmer +# translation of apt_po_km.po to +# This file is put in the public domain. +# +# Eng Vannak , 2006. +# Poch Sokun , 2006. +# auk piseth , 2006. +# Khoem Sokhem , 2006. +msgid "" +msgstr "" +"Project-Id-Version: apt_po_km\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-10-11 20:34+0200\n" +"PO-Revision-Date: 2006-10-10 09:48+0700\n" +"Last-Translator: Khoem Sokhem \n" +"Language-Team: Khmer \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.2\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "កញ្ចប់ %s កំណែ %s មាន​ភាព​អាស្រ័យ​មិន​ត្រូវ​គ្នា ៖\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "មិន​អាច​កំណត់​ទីតាំង​កញ្ចប់ %s បានឡើយ" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "ឈ្មោះ​កញ្ចប់​សរុប ៖ " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " កញ្ចប់​ធម្មតា ៖ " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " កញ្ចប់​និម្មិត​សុទ្ធ ៖ " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " កញ្ចប់​និម្មិត​តែ​មួយ ៖ " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " កញ្ចប់​និម្មិត​លាយ ៖ " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " បាត់បង់ ៖ " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "កំណែ​ផ្សេងៗ​សរុប ៖ " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "ភាព​អាស្រ័យ​សរុប ៖ " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "ទំនាក់ទំនង កំណែ/ឯកសារ​សរុប ៖ " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "ការផ្គូរផ្គង​ការផ្ដល់​សរុប ៖ " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "ខ្សែ​អក្សរ​សរុប​ ៖ " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "ទំហំ​កំណែ​ភាព​អាស្រ័យ​សរុប ៖ " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "ទំហំ slack សរុប ៖" + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "ទំហំ​សរុប​ដែល​ទុក​សម្រាប់ ៖ " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "ឯកសារ​កញ្ចប់ %s នៅ​ខាងក្រៅ​ការ​ធ្វើសមកាលកម្ម ។" + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "អ្នក​ត្រូវ​តែ​ផ្ដល់​លំនាំ​មួយ​ដែល​ពិត​ប្រាកដ" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "រក​កញ្ចប់​មិន​ឃើញ" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "ឯកសារ​កញ្ចប់ ៖" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "ឃ្លាំង​សម្ងាត់​ឋិតនៅ​ក្រៅ​ការ​ធ្វើ​សមកាល​កម្ម ដែលមិន​អាច x-ref ឯកសារ​កញ្ចប់​បាន​ទេ" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "កញ្ចប់​ដែល​បាន​ខ្ទាស់ ៖" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(រក​មិន​ឃើញ)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " បាន​ដំឡើង ៖ " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(គ្មាន)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " សាកល្បង ៖ " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " ខ្ទាស់​កញ្ចប់ ៖ " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " តារាង​កំណែ ៖" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s សម្រាប់ %s %s បាន​ចងក្រងនៅលើ​%s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"ការ​ប្រើប្រាស់ ៖ apt-cache [options] ពាក្យ​បញ្ជា\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache គឺ​ជា​ឧបករណ៍​កម្រិតទាប​​ដែល​ប្រើ​សម្រាប់​រៀបចំ​ប្រព័ន្ធ​គោល​ពីរ​របស់ APT\n" +"ឯកសារ​ឃ្លាំង​សម្ងាត់ និង ​ព័ត៌មាន​សំណួរ​ពី​ពួក​វា\n" +"\n" +"ពាក្យ​បញ្ជា\n" +" add - បន្ថែម​ឯកសារ​កញ្ចប់​ទៅ​ឃ្លាំង​សម្ងាត់​ប្រភព\n" +" gencaches - បង្កើត​ទាំង​​កញ្ចប់​និង​ឃ្លាំង​សម្ងាត់​ប្រភព\n" +" showpkg - បង្ហាញ​ព័ត៌មាន​ទូទៅ​ខ្លះ​សម្រាប់​កញ្ចប់​តែ​មួយ\n" +" showsrc - បង្ហាញ​កំណត់​ត្រា​ប្រភព\n" +" stats - បង្ហាញ​ស្ថិតិ​មូលដ្ឋាន​ខ្លះ\n" +" dump - បង្ហាញ​ឯកសារ​ទាំងមូល​ក្នុង​ទ្រង់ទ្រាយ​សង្ខេប\n" +" dumpavail - បោះពុម្ព​ឯកសារ​ដែល​មាន​ទៅ stdout\n" +" unmet - បង្ហាញ​ភាពអាស្រ័យ​ unmet \n" +" search - ស្វែងរក​កញ្ចប់​​លំនាំ regex \n" +" show - បង្ហាញ​កំណត់​ត្រា​កញ្ចប់​ដែល​អាច​អាន​បាន\n" +" depends - បង្ហាញព័ត៌មាន​​ភាពអាស្រ័យ​កញ្ចប់​មិន​ទាន់​ច្នៃ\n" +" rdepends - បង្ហាញ​ព័ត៌មាន​ភាពអាស្រ័យ​កញ្ចប់​បញ្ច្រាស់​\n" +" pkgnames - រាយ​ឈ្មោះ​កញ្ចប់​ទាំងអស់​\n" +" dotty - បង្កើត​កញ្ចប់​ក្រាហ្វ​សម្រាប់​ GraphVis\n" +" xvcg - បង្កើត​កញ្ចប់​ក្រាហ្វ​សម្រាប់​ xvcg\n" +" policy - បង្ហាញ ការរៀបចំ​គោលការណ៍​\n" +"\n" +"ជម្រើស​ ៖\n" +" -h នេះ​ជា​អត្ថជំនួយ​\n" +" -p=? ឃ្លាំងសម្ងាត់​កញ្ចប់​ ។\n" +" -s=? ឃ្លាំងសម្ងាត់​ប្រភព ។\n" +" -q ទ្រនិច​ចង្អុល​វឌ្ឍនភាព មិន​អនុញ្ញាត​ ។\n" +" -i បាន​តែ​បង្ហាញ ព័ត៌មាន​ deps ដែល​សំខាន់​សម្រាប់ពាក្យ​បញ្ជាដែល​ខុស​គ្នា  ​​​។\n" +" -c=? អាន​ការកំណត់​រចនាសម្ព័ន្ធ​ឯកសារ​នេះ \n" +" -o=? កំណត់​ជម្រើស​ការ​កំណត់​រចនា​សម្ព័ន្ធ​តាម​ចិត្ត ឧ. eg -o dir::cache=/tmp\n" +"មើល​ apt-cache(8) និង​ apt.conf(5) សម្រាប់​ព័ត៌មាន​បន្ថែម​​មាន​ក្នុង​ទំព័រ​សៀវភៅដៃ​ ។\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "សូម​ផ្ដល់​ឈ្មោះ​ឲ្យ​ថាស​នេះ ឧទាហរណ៍​ដូចជា 'ដេបៀន 2.1r1 ថាស​ទី ១' ជាដើម" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "សូម​បញ្ចូល​ថាស​ក្នុង​ដ្រាយ​ហើយ​ចុច​បញ្ចូល​" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "ធ្វើដំណើរការ​នេះ​ម្តង​ទៀត​ សម្រាប់​ស៊ីឌី​ទាំងអស់​​ក្នុង​សំណុំ​របស់​អ្នក ។" + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "​អាគុយម៉ង់​មិន​មាន​គូ​ទេ" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"ការ​ប្រើប្រាស់ ៖ ពាក្យ​បញ្ជា​ apt-config [ជម្រើស] \n" +"\n" +"apt-config ជា​ឧបករណ៍​សាមញ្ញ​សម្រាប់​អាន​ឯកសារ​កំណត់រចនាសម្ព័ន្ធ​ APT \n" +"\n" +"ពាក្យ​បញ្ជា​ ៖\n" +" shell - របៀប​សែល​\n" +" dump - បង្ហាញ​ការកំណត់​រចនាសម្ព័ន្ធ​\n" +"\n" +"ជម្រើស​\n" +" -h អត្ថនទ​ជំនួយ​នេះ​\n" +" -c=? អាន​ឯកសារ​ការកំណត់​រចនាសម្ព័ន្ធ​នេះ \n" +" -o=? កំណត់​ជម្រើស​ការ​កំណត់​រចនា​សម្ព័ន្ធ​តាម​ចិត្ត ឧ. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s មិនមែន​ជា​កញ្ចប់​ DEB ត្រឹមត្រូវ​ទេ​ ។" + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"ការ​ប្រើប្រាស់​ ៖ apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates ជាឧបករណ៍ដើម្បី​ស្រង់​ព័ត៌មាន​ការ​រចនាសម្ព័ន្ធ​​និង​ពុម្ព​\n" +"ពី​កញ្ចប់​​ដេបៀន \n" +"\n" +"ជម្រើស ៖ ​\n" +" -h អត្ថបទ​ជំនួយ​\n" +" -t កំណត់​ថត​បណ្ដោះ​អាសន្ន\n" +" -c=? អាន​ឯកសារ​ការ​កំណត់​រចនាស្ព័ន្ធ​នេះ\n" +" -o=? កំណត់​ជម្រើស​ការ​កំណត់​រចនា​សម្ព័ន្ធ​តាម​ចិត្ត ឧ. eg -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "មិន​អាច​សរសេរ​ទៅ %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "មិន​អាច​ទទួល​យក​កំណែ​ debconf  ។ តើ​ debconf បានដំឡើង​ឬ ?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "បញ្ជី​ផ្នែក​បន្ថែម​កញ្ចប់​វែង​ពេក" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "​កំហុស​ដំណើរការ​ថត​ %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "បញ្ជី​ផ្នែក​បន្ថែម​ប្រភព​វែង​ពេក" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "កំហុស​សរសេរ​បឋម​កថា​ទៅ​ឯកសារ​មាតិកា" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "កំហុស​ដំណើរការ​មាតិកា​ %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"ការប្រើប្រាស់ ៖ ពាក្យ​បញ្ជា​ apt-ftparchive [ជម្រើស] \n" +"ពាក្យ​បញ្ជា​ ៖ កញ្ចប់ binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" ផ្លូវ​មាតិកា​\n" +" ផ្លូវ​ផ្សាយ​ចេញ \n" +" កំណត់​រចនាស្ព័ន្ធបង្កើត​ [groups]\n" +" ​​កំណត់​រចនាសម្ព័ន្ធសំអាត​​\n" +"\n" +"apt-ftparchive បង្កើត​​ឯកសារ​លិបិក្រម​សម្រាប់​ប័ណ្ណសារ​​ដេបៀន  ។ វា​គាំទ្រ​រចនាប័ទ្ម​នៃ​ការបង្កើតដោយ​" +"ស្វ័យប្រវត្តិ​\n" +"ដើម្បី​ធ្វើការ​ជំនួស​\n" +" dpkg-scanpackages និង dpkg-scansources\n" +"\n" +"apt-ftparchive ដែល​បង្កើត​​​​ឯកសារ​ញ្ចប់​ ពី​មែកធាង​ .debs ។ ឯកសារ​កញ្ចប់មាន​\n" +"​មាតិកា​នៃ វត្ថុបញ្ជា​​វាល​ទាំងអស់ ដែល​បាន​មក​ពី​កញ្ចប់​និមួយ​ៗដូចជា​ MD5 hash និង​ ទំហំ​ឯកសារ​ ។ ឯកសារ​" +"បដិសេធ​​មិន​គាំទ្រ​ \n" +"ដើម្បី​បង្ខំ​តម្លៃ​អាទិភាព​និង សម័យ​ ។\n" +"\n" +"ភាព​ដូច​គ្នា​នៃ​ apt-ftparchive បង្កើត​ឯកសារ​ប្រភព​ពី​មែកធាង​ .dscs ។\n" +"ជម្រើស​បដិសេធ​ប្រភព​អាច​ត្រូវ​បាន​ប្រើ​សម្រាប់​បញ្ចាក់ឯកសារ​បដិសេធ src \n" +"\n" +" បញ្ជា​'កញ្ចប់​' និង​ 'ប្រភព' ត្រូវ​​តែ​រត់​ជា​ root \n" +" ។ BinaryPath ត្រូវ​ចង្អុល​​ទៅ​កាន់​មូលដ្ឋាន​ស្វែងរក​ហៅ​ខ្លួនឯង​ ហើយ​ \n" +"ឯកសារ​បដិសេធ​ត្រូវមាន​ទង​បដិសេធ  ។ ផ្លូវ​បរិបទ​ត្រូវ​បាន​បន្ថែម​​ទៅ​ក្នុង​វាល​ឈ្មោះ​​ឯកសារ​បើ​វា​មាន​  ។ " +"ឧទាហរណ៍​ ការប្រើប្រាស់​ពី​ប័ណ្ណសារ​ \n" +"ដេបៀន  ៖\n" +" apt-ftparchive កញ្ចប់​dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"ជម្រើស​ ៖\n" +" -h អត្ថបទ​ជំនួយ​នេះ​\n" +" --md5 Control MD5 ការបបង្កើត​\n" +" -s=? ឯកសារ​បដិសេធ​ប្រភព​\n" +" -q Quiet\n" +" -d=? ជ្រើស​ជម្រើសលាក់​ទុ​ក​ទិន្នន័យ​\n" +" --គ្មាន​-delink អនុញ្ញាត​ delinking របៀប​បំបាត់​កំហុស​\n" +" --មាតិកា ពិនិត្យ​ការបង្កើត​ឯកសារ​មាតិកា\n" +" -c=? អាន​ឯកសារ​ការកំណត់​រចនាសម្ព័ន្ធ​នេះ​\n" +" -o=? កំណត់​ជម្រើស​ការ​កំណត់​រចនា​សម្ព័ន្ធ​តាម​ចិត្ត" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "គ្មាន​ការ​ជ្រើស​​ដែល​ផ្គួផ្គង​" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "ឯកសារ​មួយ​ចំនួន​បាត់បងពី​ក្រុម​ឯកសារ​កញ្ចប់​ `%s'" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "DB បាន​ខូច​, ឯកសារ​បាន​ប្តូរ​ឈ្មោះ​ទៅ​ជា​ %s.old ។" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "DB ចាស់​, កំពុង​ព្យាយាម​ធ្វើ​ឲ្យ %s ប្រសើរ​ឡើង" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"ទ្រង់ទ្រាយ​មូលដ្ឋាន​ទិន្នន័យ​មិន​ត្រឹមត្រូវ ។ ប្រសិន​បើ​អ្នក​បាន​ធ្វើ​ឲ្យ​វា​ប្រសើឡើង​ពី​កំណែ​ចាស់​របស់ apt សូម​យក​" +"មូលដ្ឋាន​ទិន្នន័យ​ចេញ និង​បង្កើត​មូលដ្ឋាន​ទិន្នន័យ​ឡើង​វិញ ។" + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "មិន​អាច​បើក​ឯកសារ​ DB បានទេ %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "បាន​បរាជ័យ​ក្នុង​ការថ្លែង %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "ប័ណ្ណសារ​គ្មាន​កំណត់​ត្រា​ត្រួត​ពិនិត្យ​ទេ​" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "មិន​អាច​យក​ទស្សន៍ទ្រនិច​" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: មិន​អាច​អាន​ថត %s បាន​ឡើយ\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "W ៖ មិន​អាច​ថ្លែង %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E: កំហុស​អនុវត្ត​លើ​ឯកសារ​" + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "បរាជ័យ​ក្នុង​ការ​ដោះស្រាយ %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "មែក​ធាង បាន​បរាជ័យ" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "បរាជ័យ​ក្នុង​ការ​បើក %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " DeLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​អាន​តំណ​ %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​ផ្ដាច់ %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** បាន​បរាជ័យ​ក្នុង​ការ​ត​ %s ទៅ %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " DeLink កំណត់​នៃ​ការ​វាយ %sB ។\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "ប័ណ្ណសារ​គ្មាន​វាល​កញ្ចប់​" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s គ្មាន​ធាតុធាតុបញ្ចូល​​បដិសេធឡើយ\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " អ្នក​ថែទាំ %s គឺ %s មិនមែន​ %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s គ្មាន​ធាតុ​បដិសេធ​ប្រភព\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s គ្មាន​ធាតុប​ដិសេធគោល​ពីរ​ដែរ\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "កំហុស​ខាងក្នុង ​មិន​អាច​កំណត់​ទីតាំង​សមាជិក​ %s បានឡើយ" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - បរាជ័យ​ក្នុង​ការ​​បម្រុង​​ទុក​សតិ​" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "មិន​អាចបើក​ %s បានឡើយ" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Malformed បដិសេធ %s បន្ទាត់ %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Malformed បដិសេធ %s បន្ទាត់​ %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Malformed បដិសេធ %s បន្ទាត់​ %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​អានឯកសារ​បដិសេធ %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "មិន​ស្គាល់​ក្បួន​ដោះស្រាយ​ការបង្ហាប់​ '%s'" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "​ទិន្នផល​ដែល​បាន​បង្ហាប់​​ %s ត្រូវ​ការ​កំណត់​ការបង្ហាប់​" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "បរាជ័យ​ក្នុង​ការ​បង្កើត​បំពង់​ IPC សម្រាប់​ដំណើរ​ការ​រង​" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "បរាជ័យ​ក្នុង​ការ​បង្កើត​ FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "បាន​បរាជ័យ​ក្នុងការ​ដាក់ជា​ពីរផ្នែក​" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "បង្ហាប់កូន" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "កំហុស​ខាងក្នុង​ បរាជ័យ​ក្នុង​ការ​បង្កើត​ %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "បរាជ័យ​ក្នុង​ការ​បង្កើត​ដំណើរការ​រង​ IPC" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "បរាជ័យ​ក្នុង​ការ​ប្រតិបត្តិ​កម្មវិធី​បង្ហាប់ " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "កម្មវិធី​ពន្លា" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "IO សម្រាប់​ដំណើរការ​រង​/ឯកសារ​ បាន​បរាជ័យ​" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "បាន​បរាជ័យ​ក្នុង​ការអាន​ នៅពេល​គណនា MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "មានបញ្ហា​ក្នុងការ​ផ្ដាច់តំណ %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "បរាជ័យ​ក្នុង​ការ​ប្តូរ​ឈ្មោះ %s ទៅ %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "Y" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Regex កំហុស​ការចងក្រង​ - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "កញ្ចប់​ខាងក្រោម​មាន​ភាពអាស្រ័យ​ដែល​ខុស​គ្នា ៖" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "ប៉ុន្តែ​ %s ត្រូវ​បាន​ដំឡើង​" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "ប៉ុន្តែ​ %s នឹង​ត្រូវ​បាន​ដំឡើ​ង" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "ប៉ុន្តែ​​វា​មិន​អាច​ដំឡើង​បាន​ទេ​" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "ប៉ុន្តែ​​វា​ជា​កញ្ចប់​និម្មិត​" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "ប៉ុន្តែ​វា​មិន​បាន​ដំឡើង​ទេ​" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "ប៉ុន្តែ វា​នឹង​មិន​ត្រូវ​បាន​ដំឡើង​ទេ" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " ឬ" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "កញ្ចប់​ថ្មី​ខាងក្រោម​នឹង​ត្រូវ​បាន​ដំឡើង​ ៖" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "កញ្ចប់​ខាងក្រោម​នឹងត្រូវ​បាន​យកចេញ ៖" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "​កញ្ចប់​ខាង​ក្រោម​ត្រូវ​បាន​យក​ត្រឡប់​មក​វិញ ៖" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "កញ្ចប់​ខាងក្រោម​នឹង​​ត្រូវ​បាន​​ធ្វើ​ឲ្យប្រសើ​ឡើង ៖" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "កញ្ចប់​ខាងក្រោម​នឹង​​ត្រូវ​បាន​បន្ទាប ៖" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "កញ្ចប់​រង់ចាំ​ខាងក្រោម​នឹង​ត្រូវ​​បានផ្លាស់​​ប្តូរ​ ៖" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (ដោយ​សារតែ​ %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"ព្រមាន​ ៖ កញ្ចប់ដែល​ចាំបាច់​ខាងក្រោម​នឹង​ត្រូវ​បាន​យកចេញ ។\n" +"ការយកចេញ​នេះ​មិន​ត្រូវ​បានធ្វើ​ទេ​លុះត្រា​តែ​អ្នកដឹង​ថា​​អ្នក​កំពុង​ធ្វើ​អ្វីឲ្យប្រាកដ !" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu ត្រូវ​បាន​ធ្វើ​ឲ្យ​ប្រសើរ %lu ត្រូវ​បានដំឡើង​ថ្មី " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu ត្រូវ​បាន​ដំឡើង​ឡើង​វិញ " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu ​ត្រូវបានបន្ទាប់ " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu ដែលត្រូវ​យក​ចេញ​ ហើយ​ %lu មិន​​បាន​ធ្វើ​ឲ្យ​ប្រសើរឡើយ ។\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu មិន​បាន​ដំឡើង​ ឬ យក​ចេញបានគ្រប់ជ្រុងជ្រោយ​ឡើយ​ ។\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "កំពុង​កែ​ភាពអាស្រ័យ​..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " បាន​បរាជ័យ ។" + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "មិន​អាច​កែ​ភាព​អាស្រ័យ​បានឡើយ​" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "មិនអាច​បង្រួម​ការ​កំណត់​ភាព​ប្រសើរ​​បាន​ឡើយ​" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " ធ្វើ​រួច" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "អ្នក​ប្រហែល​ជា​ចង់រត់ `apt-get -f install' ដើម្បី​កែ​វា​​ទាំងនេះ​ហើយ ។" + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "ភាព​អាស្រ័យ​ដែល​ខុស​គ្នា ។ ព្យាយាម​ការ​ប្រើ -f ។" + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "ព្រមាន​ ៖ មិនអាច​ធ្វើការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវកញ្ចប់ខាងក្រោមបានឡើយ !" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "បានបដិសេធ​ការព្រមាន​ការផ្ទៀងផ្ទាត់ភាព​ត្រឹមត្រូវ ។\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "ដំឡើង​កញ្ចប់​ទាំងនេះ ​ដោយគ្មានការពិនិត្យ​បញ្ជាក់ [y/N] ? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "មិនអាច​ផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវកញ្ចប់​មួយចំនួន​បានឡើយ​" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "មាន​បញ្ហា​ ហើយ -y ត្រូវ​បាន​ប្រើ​ដោយគ្មាន​​ --force​-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "កំហុស​ខាងក្នុង កញ្ចប់​ដំឡើង​ត្រូវ​បាន​ហៅ​​ជាមួយ​កញ្ចប់​ដែល​ខូច !" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "កញ្ចប់ ​ត្រូវការឲ្យ​យក​ចេញ​​ ប៉ុន្តែមិនអនុញ្ញាត​ឲ្យយកចេញឡើយ ។" + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "កំហុស​ខាងក្នុង​ ការ​រៀប​តាម​លំដាប់​មិន​បាន​បញ្ចប់ឡើយ" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "មិន​អាច​ចាក់​សោ​ថត​ទាញ​យក​បាន​ឡើយ" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "មិន​អាច​អាន​បញ្ជី​ប្រភព​បាន​ឡើយ​ ។" + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "យី អី​ក៏​ចម្លែង​ម្លេះ.. ទំហំ​មិន​ដូច​គ្នា​ឡើយ ។ សូម​ផ្ញើ​អ៊ីមែល​ទៅ apt@packages.debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "ត្រូវការ​​យក​ %sB/%sB នៃ​ប័ណ្ណសារ ។​\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "ត្រូវ​ការយក​ %sB នៃ​ប័ណ្ណសារ ។\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "បន្ទាប់​ពី​ពន្លា​ %sB នៃ​ការ​បន្ថែម​​ទំហំ​ថាស​ត្រូវ​បាន​ប្រើ ។\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "បន្ទាប់​ពី​ពន្លា​ %sB ទំហំ​ថាសនឹង​​ទំនេរ ។ \n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "មិន​អាច​កំណត់​ទំហំ​ទំនេរ​ក្នុង​ %s បានឡើយ" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "អ្នក​គ្មាន​ទំហំ​​ទំនេរ​គ្រប់គ្រាន់​ក្នុង​​ %s ឡើយ ។" + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "បានបញ្ជាក់​តែប្រតិបត្តិការដែលមិនសំខាន់ប៉ុណ្ណោះ ប៉ុន្តែ​នេះមិនមែនជាប្រតិបត្តិការមិនសំខាន់នោះទេ ។" + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "បាទ/ចាស ធ្វើ​ដូច​ដែល​ខ្ញុំ​និយាយ !" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"អ្នកប្រហែល​ជា​ធ្វើ​អ្វីមួយ​ដែល​អាច​បង្ករ​ឲ្យ​មាន​មហន្ដរាយ ។\n" +"ដើម្បី​បន្ត ​​វាយ​ក្នុង​ឃ្លា​ '%s'\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "បោះបង់ ។" + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "តើ​អ្នក​ចង់​បន្តឬ​ [បាទ ចាស/ទេ​] ? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "បរាជ័យ​ក្នុង​ការ​ទៅ​ប្រមូល​យក​ %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "ឯកសារ​មួយ​ចំនួន​បាន​បរាជ័យ​ក្នុង​ការ​ទាញ​យក​" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "បានបញ្ចប់ការទាញ​យក​ ហើយ​តែ​ក្នុង​របៀប​​ទាញ​យក​ប៉ុណ្ណោះ" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"អនុញ្ញាត​ឲ្យ​ទៅ​ប្រមូល​យក​ប័ណ្ណសារ​មួយ​ចំនួន​ ប្រហែល​ជា​រត់​ភាព​ទាន់​សម័យ apt-get ឬ ព្យាយាមប្រើ​ជាមួយ --" +"fix- ដែលបាត់ឬ់ ?" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix- ដែលបាត់​ និង ​ស្វប​មេឌៀ​ដែល​មិនបាន​​គាំទ្រនៅពេល​បច្ចុប្បន្ន​" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "មិន​អាច​កែ​កញ្ចប់​ដែលបាត់បង់​បានឡើយ ។" + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "កំពុង​បោះបង់​ការ​ដំឡើង​ ។" + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "ចំណាំ កំពុង​ជ្រើស​ %s ជំនួស​ %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "កំពុង​រំលង​ %s វា​បាន​ដំឡើង​រួចរាល់​ ហើយ​ភាព​ធ្វើឲ្យ​ប្រសើរ​​មិន​ទាន់​កំណត់​​ ។\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "មិនទាន់បានដំឡើង​កញ្ចប់​ %s ទេ​ ដូច្នេះ មិន​បាន​យកចេញឡើយ \n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "កញ្ចប់​ %s ជា​កញ្ចប់​និម្មិត​ដែល​បាន​ផ្តល់​ដោយ​ ៖\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [បានដំឡើង​]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "អ្នក​គួរតែ​ជ្រើស​យក​មួយ​​ឲ្យ​ច្បាស់​ដើម្បី​ដំឡើង​ ។" + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"មិន​មាន​កញ្ចប់​ %s ទេ ប៉ុន្តែ​វា​ត្រូវ​បាន​យោង​ទៅ​ដោយ​កញ្ចប់​ផ្សេង​ទៀត​ ។\n" +"វា​មានន័យ​ថា​បាត់កញ្ចប់ ​គេ​លែង​ប្រើ ឬ\n" +"អាច​រក​បាន​ពី​ប្រភព​ផ្សេង​ទៀត\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "ទោះ​យ៉ាងណា​ក៏ដោយ កញ្ចប់​ខាងក្រោម​ជំនួស​វា ៖" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "កញ្ចប់​ %s មិនមាន​ការដំឡើងសាកល្បងឡើយ" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "មិនអាចធ្វើការដំឡើង %s ឡើងវិញបានទេ វា​មិនអាចត្រូវបាន​ទាញយកបានឡើយ ។\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s ជាកំណែ​ដែលថ្មីបំផុតរួចទៅហើយ ។\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "រក​មិន​ឃើញ​ការ​ចេញ​ផ្សាយ​ '%s' សម្រាប់​ '%s' ឡើយ" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "រក​មិន​ឃើញ​កំណែ​ '%s' សម្រាប់ '%s'" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "បានជ្រើស​កំណែ​ %s (%s) សម្រាប់ %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "ពាក្យ​បញ្ជា​ដែលធ្វើ​ឲ្យ​ទាន់​សម័យ​គ្មាន​អាគុយម៉ង់​ទេ" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "មិន​អាច​ចាក់​សោ​ថត​បញ្ជីបានឡើយ" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"ឯកសារ​លិបិក្រម​មួយ​ចំនួន​បាន​បរាជ័យ​ក្នុង​ការ​​ទាញ​យក ​ពួកវាត្រូវបាន​មិន​អើពើ​ ឬ ប្រើ​​ឯកសារ​ចាស់​ជំនួសវិញ ​​។" + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "កំហុស​ខាងក្នុង ការធ្វើឲ្យប្រសើរ​ទាំងអស់បានធ្វើឲ្យ​ឧបករណ៍​ខូច" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "មិន​អាច​រក​កញ្ចប់ %s បានទេ" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "ចំណាំ កំពុង​ជ្រើស​ %s សម្រាប់ regex '%s'\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "អ្នក​ប្រហែល​ជា​ចង់​រត់ `apt-get -f install' ដើម្បី​កែ​ពួក​វា​ទាំង​នេះ ៖" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"ភាពអស្រ័យ​ដែល​ខុស​គ្នា ។ ព្យាយាម​ 'apt-get -f install' ដោយ​គ្មាន​កញ្ចប់ (ឬ បញ្ជាក់​ដំណោះស្រាយ) ។" + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"មិនអាច​ដំឡើងកញ្ចប់​មួយចំនួន​បានឡើយ ។ នេះ​មាន​ន័យ​ថា​អ្នក​\n" +"​បានស្នើរ​ស្ថានភាព​ដែល​មិន​អាច​ធ្វើបានមួយ ឬ ​ប្រសិន​បើ​​អ្នក​កំពុង​ប្រើការចែកចាយ​ពុំ​មាន​លំនឹង​នោះ កញ្ចប់​" +"ដែលបាន​ទាមទារនឹងមិនទាន់បានបង្កើត​ឡើយ​\n" +" ឬ ​បានយក​ចេញ​ពីការមកដល់ ។" + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"ចាប់​តាំង​ពី​អ្នក​បាន​ស្នើរ​ប្រតិបត្តិការ​តែមួយមក​ វាទំនង​ហាក់​ដូចជា​\n" +"កញ្ចប់ដែលមិនអាចដំឡើងបានដោយងាយ ហើយនិង​ការប្រឆាំងនឹង​របាយការណ៍​កំហុស\n" +"កញ្ចប់​នោះ​ គួរតែត្រូវបានបរាជ័យ ។" + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "ព័ត៌មាន​ដូចតទៅនេះ អាចជួយ​ដោះស្រាយ​ស្ថានភាព​បាន ៖" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "កញ្ចប់​ដែល​បាន​ខូច​" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "កញ្ចប់​បន្ថែម​ដូចតទៅនេះ នឹងត្រូវបាន​ដំឡើង ៖" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "កញ្ចប់​ដែល​បាន​ផ្ដល់​យោបល់ ៖" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "កញ្ចប់​ដែល​បាន​ផ្ដល់​អនុសាសន៍ ៖" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "កំពុង​គណនា​ការ​ធ្វើ​ឲ្យ​ប្រសើរ... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "បាន​បរាជ័យ" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "ធ្វើរួច​" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "កំហុស​ខាងក្នុង អ្នក​ដោះស្រាយ​បញ្ហា​បានធ្វើឲ្យខូច​ឧបករណ៍" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "យ៉ាងហោចណាស់​ត្រូវ​​បញ្ជាក់​​កញ្ចប់​មួយ ​ដើម្បី​ទៅ​​ប្រមូល​យក​ប្រភព​សម្រាប់" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "មិន​អាច​រក​កញ្ចប់ប្រភព​​សម្រាប់ %s បានឡើយ" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "កំពុង​រំលង​ឯកសារ​ដែល​បាន​ទាញយក​រួច​ '%s'\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "អ្នក​ពុំ​មាន​ទំហំ​ទំនេរ​គ្រប់គ្រាន់​ទេ​នៅក្នុង​ %s ឡើយ" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "ត្រូវការ​យក​ %sB/%sB នៃ​ប័ណ្ណសារ​ប្រភព ។\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "ត្រូវការ​យក​ %sB នៃ​ប័ណ្ណសារ​ប្រភព​ ។\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "ទៅប្រមូល​ប្រភព​ %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "បរាជ័យ​ក្នុងការទៅប្រមូលយក​ប័ណ្ណសារ​មួយចំនួន ។" + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "កំពុង​រំលង​ការស្រាយ​នៃប្រភព​ដែលបានស្រាយរួច​នៅក្នុង %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "ពាក្យ​បញ្ជា​ស្រាយ '%s' បាន​បរាជ័យ​ ។\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "ពិនិត្យ​ប្រសិន​បើកញ្ចប់ 'dpkg-dev' មិន​ទាន់​បាន​ដំឡើង​ ។\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "សាងសង​ពាក្យ​បញ្ជា​ '%s' បានបរាជ័យ​ ។\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "ដំណើរ​ការ​កូន​បាន​បរាជ័យ​" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "ត្រូវតែ​បញ្ជាក់​យ៉ាងហោចណាស់​មួយកញ្ចប់ដើម្បីពិនិត្យ builddeps សម្រាប់" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "មិន​អាច​សាងសង់​​ព័ត៌មាន​ភាពអស្រ័យ​សម្រាប់ %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s មិនមានភាពអាស្រ័យ​ស្ថាបនាឡើយ​ ។\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "%s ភាពអស្រ័យ​សម្រាប់​ %s មិន​អាច​ធ្វើ​ឲ្យ​ពេញចិត្ត​ ព្រោះ​រក​​ %s កញ្ចប់​មិន​ឃើញ​ " + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"ភាពអាស្រ័យ %s សម្រាប់ %s មិនអាច​តម្រូវចិត្តបានទេ ព្រោះ មិនមាន​កំណែ​នៃកញ្ចប់ %s ដែលអាច​តម្រូវចិត្ត​" +"តម្រូវការ​កំណែបានឡើយ" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "បរាជ័យ​ក្នុងការ​តម្រូវចិត្តភាពអាស្រ័យ %s សម្រាប់ %s ៖ កញ្ចប់ %s ដែលបានដំឡើង គឺថ្មីពេក" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "បរាជ័យ​ក្នុងការ​តម្រូវចិត្តភាពអាស្រ័យ %s សម្រាប់ %s: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "ភាពអាស្រ័យ​ដែល​បង្កើត​ %s មិន​អាច​បំពេញ​សេចក្ដី​ត្រូវការ​បាន​ទេ ។" + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​ដំណើរ​​ការ​បង្កើត​ភាព​អាស្រ័យ" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "ម៉ូឌុល​ដែល​គាំទ្រ ៖ " + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"របៀបប្រើ ៖ ពាក្យបញ្ជា apt-get [options]\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] ប្រភព pkg1 [pkg2 ...]\n" +"\n" +"apt-get គឺជា​ចំណុចប្រទាក់​បន្ទាត់​ពាក្យបញ្ជា​សាមញ្ញ​មួយ សម្រាប់​ធ្វើការទាញយក និង\n" +"ដំឡើង​កញ្ចប់ ។ ជាញឹកញាប់​បំផុត គឺប្រើ​ពាក្យបញ្ជា​ដើម្បី​ធ្វើឲ្យទាន់សម័យ​\n" +"និង ដំឡើង ។\n" +"\n" +"ពាក្យ​បញ្ជា ៖\n" +" update - ទៅយក​បញ្ជី​កញ្ចប់​ថ្មី\n" +" upgrade - ធ្វើឲ្យប្រសើរ\n" +" install - ដំឡើង​កញ្ចប់​ថ្មី (pkg គឺ libc6 មិនមែន libc6.deb)\n" +" remove - យក​កញ្ចប់​ចេញ\n" +" source - ទាញយក​ប័ណ្ណសារ​ប្រភព\n" +" build-dep - កំណត់​រចនា​សម្ព័ន្ធ​ភាពអាស្រ័យ​ក្នុងការស្ថាបនា​សម្រាប់​កញ្ចប់​ប្រភព\n" +" dist-upgrade - ការចែកចាយ​ភាពល្អប្រសើរ សូមមើល apt-get(8)\n" +" dselect-upgrade - ដាក់ពីក្រោយ​ជម្រើស dselect\n" +" clean - លុប​ឯកសារប័ណ្ណសារ​ដែលបានទាញ​យក\n" +" autoclean - លុប​ឯកសារប័ណ្ណសារ​ដែលបានទាញយក​ចាស់\n" +" check - ផ្ទៀងផ្ទាត់​ថា​មិនមានភាព​អាស្រ័យ​ដែល​ខូចទេ\n" +"\n" +"ជម្រើស ៖\n" +" -h អត្ថបទ​ជំនួយ​នេះ ៖\n" +" -q ទិន្នផល​ដែល​អាច​ចុះកំណត់ហេតុបាន - មិនមាន​ទ្រនិចបង្ហាញ​ដំណើរការឡើយ\n" +" -qq គ្មាន​លទ្ធផល​ទេ លើកលែងតែ​កំហុស\n" +" -d ទាញយកតែប៉ុណ្ណោះ - កុំដំឡើង​ ឬ ស្រាយ​ប័ណ្ណសារ\n" +" -s No-act. ធ្វើការ​ក្លែង​ការរៀប​តាមលំដាប់\n" +" -y សន្មត​ថា បាទ/ចាស ទៅគ្រប់តម្រូវការ ហើយកុំ​រំលឹក\n" +" -f ប៉ុនប៉ង​ធ្វើការបន្ត​ ប្រសិនបើ​ការពិនិត្យ​ភាពត្រឹមត្រូវ​បរាជ័យ\n" +" -m ប៉ុនប៉ង​ធ្វើការបន្ត​ ប្រសិនបើ​ប័ណ្ណសារ​មិនអាច​ដាក់ទីតាំងបាន\n" +" -u បង្ហាញ​បញ្ជី​កញ្ចប់​ដែល​បានធ្វើឲ្យប្រសើរ​ផងដែរ\n" +" -b ស្ថាបនា​កញ្ចប់ប្រភព បន្ទាប់ពី​ទៅប្រមូលយកវា\n" +" -V បង្ហាញ​លេខកំណែ​ជា​អក្សរ\n" +" -c=? អាន​ឯកសារកំណត់​រចនា​សម្ព័ន្ធ​នេះ\n" +" -o=? កំណត់​ជម្រើស​កំណត់រចនាសម្ព័ន្ធ​តាមចិត្ត​មួយ ឧទ. -o dir::cache=/tmp\n" +"សូមមើល apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "វាយ​" + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "យក​ ៖" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ign " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Err " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "បាន​ទៅ​ប្រមូល​ %sB ក្នុង​ %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [កំពុង​ធ្វើការ​]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"ផ្លាស់ប្តូរ​មេឌៀ ៖ សូម​បញ្ចូល​ថាស​ដែល​មាន​ស្លាក\n" +" '%s'\n" +"ក្នុង​ដ្រាយ​ '%s' ហើយ​ចុច​បញ្ចូល\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "មិន​ស្គាល់​កំណត់​ត្រា​កញ្ចប់ !" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"ការប្រើប្រាស់ ៖ apt-sortpkgs [ជម្រើស] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs ជា​ឧបករណ៍​ធម្មតា​ដើម្បី​តម្រៀប​ឯកសារ​កញ្ចប់ ។ ជម្រើស​ -s បាន​ប្រើ​\n" +"សម្រាប់​ចង្អុល​ប្រភេទ​នៃ​​​ឯកសារ​អ្វីមួយដែល​មាន​ ។\n" +"\n" +"ជម្រើស​\n" +" -h អត្ថបទ​ជំនួយ​នេះ​\n" +" -s ប្រើ​ការ​តម្រៀប​ឯកសារ​ប្រភព\n" +" -c=? អាន​ឯកសារ​កំណត់​រចនាសម្ព័ន្ធនេះ​\n" +" -o=? កំណត់​ជម្រើស​ការ​កំណត់​រចនា​សម្ព័ន្ធ​តាម​ចិត្ត ឧ. -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "ការ​កំណត់​លំនាំ​ដើម​មិន​ល្អ !" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "សង្កត់​ បញ្ចូល ​ដើម្បី​បន្ត ។" + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "កំហុ​ស​មួយ​ចំនួន​បាន​កើត​ឡើង​ខណៈពេល​ពន្លា​កញ្ចប់ ។ ខ្ញុំ​នឹង​កំណត់រចនាសម្ប័ន្ធ" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "កញ្ចប់​ដែល​បាន​ដំឡើង​ ។ នេះ​ប្រហែល​ជា​លទ្ធផល​កំហុស​ស្ទួន​" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "ឬ​ កំហុសដែលបង្ក​ដោយ​ការ​បាត់បង់​ភាពអាស្រ័យ​ ។ ​មិន​អី​ទេ​ គ្រាន់​តែ​ជា​កំហុស " + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "នៅខាងលើ​សារ​នេះ​គឺ​សំខាន់​ណាស់​ ។ សូម​ជួសជុល​ពួកវា​ ហើយ​រត់​ការដំឡើង​ម្តងទៀត​" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "បញ្ចូល​​ព័ត៌មាន​ដែលមាន​ចូល​គ្នា" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "បាន​បរាជ័យក្នុង​ការ​បង្កើត​បំពង់​" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "បាន​បរាជ័យក្នុង​ការ​ប្រតិបត្តិ gzip" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "ប័ណ្ណសារ​បាន​ខូច​" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Tar ឆេកសាំ​បាន​បរាជ័យ ប័ណ្ណសារ​បាន​ខូច" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "មិន​ស្គាល់​ប្រភេទ​បឋមកថា​ TAR %u ដែលជា​សមាជិក​ %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "ហត្ថលេខា​ប័ណ្ណសា​រមិន​ត្រឹមត្រូវ​" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "កំហុស​ក្នុងការ​អានបឋមកថា​សមាជិក​ប័ណ្ណសារ" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "បឋមកថា​សមាជិក​ប័ណ្ណសារ" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "ប័ណ្ណសារ ខ្លីពេក" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "បរាជ័យ​ក្នុងការ​អាន​បឋមកថា​ប័ណ្ណសារ" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "ទម្លាក់​ថ្នាំង​ដែល​បាន​ហៅ​លើ​ថ្នាំងដែល​នៅតែតភ្ជាប់" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "បរាជ័យ​ក្នុងការ​ដាក់ទីតាំង​ធាតុ​ដែលរាយប៉ាយ !" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "បរាជ័យ​ក្នុងការ​បម្រុងទុក​ការបង្វែរ" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "កំហុស​ខាងក្នុង នៅក្នុង AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "កំពុង​ព្យាយាម​សរសេរ​ជាន់​ពីលើ​ការបង្វែរ %s -> %s និង​ %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "ការបន្ថែម​ស្ទួន នៃការបង្វែរ​ %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "ឯកសារ​កំណត់​រចនាសម្ព័ន្ធ​ស្ទួន​ %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "បរាជ័យ​ក្នុងការ​សរសេរ​ឯកសារ %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "បរាជ័យ​ក្នុងការ​បិទឯកសារ %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "ផ្លូវ​ %s វែង​ពេក" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "កំពុង​ពន្លា​ %s ច្រើន​ជាង​ម្តង​" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "ថត​ %s ត្រូវបាន​បង្វែរ" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "កញ្ចប់ ​កំពុង​ព្យាយាម​សរសេរ​ទៅកាន់​គោលដៅ​បង្វែរ​ %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "ផ្លូវ​បង្វែរ វែងពេក" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "ថត​ %s ត្រូវ​បាន​ជំនួស​ដោយ​មិនមែន​ជា​ថត​" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "បរាជ័យ​ក្នុងការ​ដាក់ថ្នាំង​នៅក្នុង​ធុង​រាយប៉ាយ​របស់វា" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "ផ្លូវ​វែង​ពេក" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "សរសេរ​ជាន់​លើកញ្ចប់ផ្គួផ្គង​ដោយ​គ្មាន​កំណែ​សម្រាប់ %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "ឯកសារ​ %s/%s សរសេរជាន់​ពីលើ​មួយ​ក្នុង​កញ្ចប់ %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "មិន​អាច​អាន​ %s បានឡើយ" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "មិន​អាច​ថ្លែង %s បានឡើយ" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "បរាជ័យក្នុងការយក %s ចេញ" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "មិន​អាច​បង្កើត​ %s បានឡើយ" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "បរាជ័យ​ក្នុងការថ្លែង %sinfo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "ថតព័ត៌មាន​ និង ពុម្ព ត្រូវការនៅលើ​ប្រព័ន្ធឯកសារ​ដូចគ្នា​" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "កំពុង​អាន​បញ្ជី​កញ្ចប់" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "បរាជ័យ​ក្នុងការ​ផ្លាស់ប្ដូរទៅជា​ថតអ្នកគ្រប់គ្រង %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "កំហុស​ក្នុង​ការ ក្នុងការ​ទទួល​យក​ឈ្មោះកញ្ចប់" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "កំពុង​អាន​បញ្ជី​ឯកសារ" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"បរាជ័យ​ក្នុងការ​បើក​ឯកសារ​បញ្ជី​ '%sinfo/%s' ។ ប្រសិនបើ​អ្នក​មិន​អាច​ស្តារ​ឯកសារ​នេះបានទេ បន្ទាប់​មក​" +"ធ្វើឲ្យវា​ទទេ ហើយ​ដំឡើង​កញ្ចប់ដែលកំណែ​ដូចគ្នា​ឡើងវិញភ្លាមៗ !" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "បរាជ័យ​ក្នុងការ​អាន​ឯកសារបញ្ជី​ %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "កំហុស​ខាងក្នុង ក្នុង​​ការ​ទទួល​យក​ថ្នាំង​" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "បរាជ័យ​ក្នុងការ​បើក​ឯកសារបង្វែរ​ %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "ឯកសារ​បង្វែរ​បានខូច" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "បន្ទាត់​ដែលមិនត្រឹមត្រូវ​នៅក្នុង​ឯកសារ​បង្វែរ ៖ %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "កំហុស​ខាងក្នុង​ ក្នុង​ការបន្ថែម​ការបង្វែរ​" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "ឃ្លាំងសម្ងាត់ pkg ត្រូវ​តែ​ចាប់ផ្តើម​ដំឡើងមុន" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "បរាជ័យ​ក្នុងការរកកញ្ចប់ ៖ បឋមកថា​ អុហ្វសិត %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "ផ្នែក​ ConfFile ខូច នៅក្នុង​ឯកសារ​ស្ថានភាព ។ អុហ្វសិត​ %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "កំហុស​ក្នុងការញែក​ MD5 ។ អុហ្វសិត​ %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "នេះ​ជាមិនមែនជា​ប័ណ្ណសារ​ DEB ​ត្រឹមត្រូវទេ បាត់បង់សមាជិក​ '%s'​" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "នេះជា​ប័ណ្ណសារ DEB មិន​ត្រឹមត្រូវ វាគ្មានសមាជិក '%s' ឬ '%s'" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "មិនអាច​ប្ដូរ​ទៅជា​ %s បានឡើយ" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "កំហុស​ខាងក្នុង មិន​អាចដាក់ទីតាំង​ឲ្យ​សមាជិក​បានឡើយ" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "បរាជ័យ​ក្នុងការដាក់ទិតាំង​ឯកសារ​ត្រួតពិនិត្យ​ដែលត្រឹមត្រូវ​" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "ឯកសារត្រួតពិនិត្យ​ដែលមិនអាច​ញែកបាន" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "មិន​អាច​អាន​មូលដ្ឋាន​ទិន្នន័យ​​ស៊ីឌីរ៉ូម​​ %s បានឡើយ" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"សូម​ប្រើ​ apt-cdrom ដើម្បី​បង្កើត​ស៊ីឌី-រ៉ូម​នេះ​ ដែលបានរៀបចំ​តាម​ APT​ ។ apt-get ធ្វើ​ឲ្យ​ទាន់សម័យ ​មិន​" +"ត្រូវ​បានប្រើ​ដើម្បី​បន្ថែម​ស៊ីឌី-រ៉ូមថ្មីឡើយ​" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "ស៊ីឌី-រ៉ូមខុស" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "មិនអាចអាន់ម៉ោន ស៊ីឌី​-រ៉ូម​ នៅ​​ក្នុង​ %s បានទេ វាអាចនៅតែប្រើបាន ។" + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "រក​ថាសមិ​ន​ឃើញ​ ។" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "រកឯកសារ​មិន​ឃើញ​" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 +msgid "Failed to stat" +msgstr "បរាជ័យ​ក្នុងការថ្លែង" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +msgid "Failed to set modification time" +msgstr "បរាជ័យក្នុងការកំណត់​ពេលវេលា​ការកែប្រែ​" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "URI មិនត្រឹមត្រូវ​ URIS មូលដ្ឋានមិនត្រូវ​ចាប់ផ្តើម​ជាមួយ​ // ឡើយ" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "កំពុង​ចូល​" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "មិន​អាច​កំណត់ឈ្មោះដែលត្រូវបង្ហាញ​បានឡើយ​" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "មិន​អាច​កំណត់ឈ្មោះមូលដ្ឋាន​បានឡើយ" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "ម៉ាស៊ីន​បម្រើបានបដិសេធ​ការតភ្ជាប់ ហើយ​ បាននិយាយ ៖ %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "USER បរាជ័យ​ ម៉ាស៊ីន​បម្រើបាន​​និយាយ ៖ %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "PASS បានបរាជ័យ​ ម៉ាស៊ីន​បម្រើបាន​​និយាយ ៖ %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"ម៉ាស៊ីន​បម្រើ​ប្រូកស៊ី​ត្រូវ​បាន​បញ្ជាក់​ ប៉ុន្តែ​គ្មាន​ស្គ្រីប​ចូល​ទេ Acquire::ftp::ProxyLogin គឺ ទទេ ។" + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "ពាក្យ​បញ្ជា​ស្គ្រីប​ចូល​ '%s' បានបរាជ័យ ម៉ាស៊ីន​បម្រើ​បាននិយាយ ៖ %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "TYPE បានបរាជ័យ​ ម៉ាស៊ីន​បម្រើ​បាននិយាយ​ ៖ %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "អស់ពេល​ក្នុងការតភ្ជាប់​" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "ម៉ាស៊ីន​បម្រើ​បាន​បិទ​ការតភ្ជាប់​" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "ការអាន​មានកំហុស" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "ឆ្លើយតប​សតិ​បណ្តោះអាសន្ន​​អស់ចំណុះ ។" + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "ការបង្ខូច​ពិធីការ​" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "ការសរសេរ​មានកំហុស" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "មិន​អាច​បង្កើត​រន្ធបានឡើយ" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "មិន​អាច​តភ្ជាប់​​រន្ធទិន្នន័យ​បានឡើយ អស់​ពេល​ក្នុងការតភ្ជាប់​" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "មិនអាចតភ្ជាប់​​រន្ធអកម្ម​​បានឡើយ ។" + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo មិន​អាច​​ទទួល​យក​រន្ធ​សម្រាប់​ស្តាប់​​បានឡើយ" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "មិន​អាច​ចងរន្ធ​បានបានឡើយ​" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "មិនអាច​ស្ដាប់នៅលើរន្ធ​បានឡើយ" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "មិន​អាច​កំណត់​ឈ្មោះរបស់​រន្ធ​បានឡើយ" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "មិនអាច​ផ្ញើពាក្យ​បញ្ជា​ PORT បានឡើយ" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "មិន​ស្គាល់​អាសយដ្ឋាន​គ្រួសារ​ %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT បរាជ័យ​ ម៉ាស៊ីន​បម្រើ​បាន​និយាយ ៖ %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "ការតភ្ជាប់​រន្ធ​​ទិន្នន័បានអស់ពេល​" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "មិនអាច​ទទួលយក​ការតភ្ជាប់​បានឡើយ" + +#: methods/ftp.cc:864 methods/http.cc:958 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "បញ្ហា​ធ្វើឲ្យខូច​ឯកសារ" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "មិន​អាច​ទៅ​ប្រមូល​យក​ឯកសារ​បានឡើយ ម៉ាស៊ីន​បម្រើ​បាន​និយាយ​ '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "រន្ធ​ទិន្នន័យ​បាន​អស់​ពេល​" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "បរាជ័យក្នុងការ​ផ្ទេរ​ទិន្នន័យ ម៉ាស៊ីន​បម្រើ​បាន​និយាយ​ '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "សំណួរ​" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "មិន​អាច​ហៅ​ " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "កំពុង​តភ្ជាប់​ទៅ​កាន់​ %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP ៖ %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "មិន​អាច​បង្កើត​រន្ធ​សម្រាប់ %s (f=%u t=%u p=%u) បានឡើយ" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "មិនអាច​ចាប់ផ្ដើម​ការតភ្ជាប់​​ទៅ​កាន់​ %s:%s (%s) បានឡើយ ។" + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "មិន​អាច​តភ្ជាប់​ទៅ​កាន់​ %s:%s (%s) បានឡើយ ការ​តភ្ជាប់​បានអស់​ពេល​" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "មិន​អាច​តភ្ជាប់​ទៅកាន់​ %s:%s (%s) បានឡើយ ។" + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "កំពុង​តភ្ជាប់​ទៅកាន់ %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "មិន​អាច​ដោះស្រាយ​ '%s' បានឡើយ" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "ការ​ដោះស្រាយ​ភាព​បរាជ័យ​​បណ្តោះអាសន្ន '%s'" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "ការ​ដោះស្រាយ​អ្វី​អាក្រក់ដែល​បាន​កើត​ឡើង​ '%s:%s' (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "មិន​អាច​តភ្ជាប់​ទៅកាន់​​ %s %s ៖" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "មិន​អាច​ចូល​ដំណើរការ keyring ៖ '%s'" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "E ៖ បញ្ជី​អាគុយ​ម៉ង់​ពី​ Acquire::gpgv::Options too long ។ ចេញ​ ។" + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "កំហុស​ខាងក្នុង​ ៖ ហត្ថលេខា​​ល្អ ប៉ុន្តែ ​មិន​អាច​កំណត់​កូនសោ​ស្នាម​ម្រាមដៃ ?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "​បានជួប​ប្រទះ​​​​ហត្ថលេខា​យ៉ាងហោចណាស់មួយ ដែ​លត្រឹមត្រូវ​ ។" + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "មិន​អាច​ប្រតិបត្តិ '%s' ដើម្បី​ផ្ទៀងផ្ទាត់​ហត្ថលេខា (តើ gnupg ត្រូវ​បាន​ដំឡើង​ឬនៅ ?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "មិនស្គាល់កំហុស ក្នុងការប្រតិបត្តិ gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "ហត្ថលេខា​ខាង​ក្រោម​មិន​ត្រឹមត្រូវ ៖\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "ហត្ថលេខា​ខាងក្រោម​មិន​អាចផ្ទៀងផ្ទាត់បាន​ទេ​ ព្រោះកូនសោ​សាធារណៈមិន​អាច​ប្រើ​បាន​ ៖\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "មិន​អាច​បើក​បំពុង​សម្រាប់​ %s បានឡើយ" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "អាចន​កំហុស​ពី​ដំណើរការ %s" + +#: methods/http.cc:376 +msgid "Waiting for headers" +msgstr "កំពុង​រង់ចាំ​បឋមកថា" + +#: methods/http.cc:522 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "យកបន្ទាត់​បឋមកថា​តែមួយ​​ ដែលលើស %u តួអក្សរ" + +#: methods/http.cc:530 +msgid "Bad header line" +msgstr "ជួរ​បឋមកថា​ខូច​" + +#: methods/http.cc:549 methods/http.cc:556 +msgid "The HTTP server sent an invalid reply header" +msgstr "ម៉ាស៊ីន​បម្រើ​ HTTP បានផ្ញើបឋមកថាចម្លើយតបមិនត្រឹមត្រូវ" + +#: methods/http.cc:585 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "ម៉ាស៊ីន​បម្រើ​ HTTP បានផ្ញើ​​បឋមកថាប្រវែង​​​មាតិកា​មិនត្រឹមត្រូវ​" + +#: methods/http.cc:600 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "ម៉ាស៊ីន​បម្រើ​ HTTP បានផ្ញើ​បឋមកថា​ជួរ​មាតិកា​មិន​ត្រឹមត្រូវ​" + +#: methods/http.cc:602 +msgid "This HTTP server has broken range support" +msgstr "ម៉ាស៊ីន​បម្រើ HTTP នេះបាន​ខូច​​​ជួរ​គាំទ្រ​" + +#: methods/http.cc:626 +msgid "Unknown date format" +msgstr "មិនស្គាល់​ទ្រង់ទ្រាយ​កាលបរិច្ឆេទ" + +#: methods/http.cc:773 +msgid "Select failed" +msgstr "ជ្រើស​បាន​បរាជ័យ​" + +#: methods/http.cc:778 +msgid "Connection timed out" +msgstr "ការតភ្ជាប់​បាន​អស់ពេល​" + +#: methods/http.cc:801 +msgid "Error writing to output file" +msgstr "កំហុស​ក្នុងការ​សរសេរទៅកាន់​ឯកសារលទ្ធផល" + +#: methods/http.cc:832 +msgid "Error writing to file" +msgstr "កំហុស​ក្នុងការ​សរសេរទៅកាន់​ឯកសារ" + +#: methods/http.cc:860 +msgid "Error writing to the file" +msgstr "កំហុសក្នុងការ​សរសេរ​ទៅកាន់​ឯកសារ" + +#: methods/http.cc:874 +msgid "Error reading from server. Remote end closed connection" +msgstr "កំហុស​ក្នុងការ​អាន​ពី​ម៉ាស៊ីនបម្រើ ។ ការបញ្ចប់​ពីចម្ងាយ​បានបិទការតភ្ជាប់" + +#: methods/http.cc:876 +msgid "Error reading from server" +msgstr "កំហុស​ក្នុងការអាន​ពី​ម៉ាស៊ីន​បម្រើ" + +#: methods/http.cc:1107 +msgid "Bad header data" +msgstr "ទិន្នន័យ​បឋមកថា​ខូច" + +#: methods/http.cc:1124 +msgid "Connection failed" +msgstr "ការតភ្ជាប់​បាន​បរាជ័យ​" + +#: methods/http.cc:1215 +msgid "Internal error" +msgstr "កំហុស​ខាង​ក្នុង​" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "មិនអាច mmap ឯកសារទទេ​បានឡើយ" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "មិន​អាច​បង្កើត​ mmap នៃ​ %lu បៃបានឡើយ" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "ជម្រើស​ %s រក​មិន​ឃើញ​ឡើយ" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "មិន​បាន​​ទទួល​ស្គាល់​ប្រភេទ​អក្សរ​សង្ខេប ៖ '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "កំពុង​បើ​ឯកសារ​កំណត់រចនាសម្ព័ន្ធ​ %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "បន្ទាត់​ %d វែងពេក​ (អតិបរមា %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "កំហុស​វាក្យ​សម្ពន្ធ %s:%u ៖ ប្លុក​ចាប់​ផ្តើម​​ដោយ​គ្មាន​ឈ្មោះ​ ។" + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "កំហុស​​វាក្យ​សម្ពន្ធ %s:%u ៖ ស្លាក​ដែលបាន Malformed" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "កំហុស​​វាក្យ​សម្ពន្ធ %s:%u ៖ តម្លៃ​ឥតបានការ​នៅ​ក្រៅ​" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "កំហុសវាក្យ​សម្ពន្ធ %s:%u ៖ សេចក្ដីបង្គាប់​អាចត្រូវបានធ្វើ​តែនៅលើ​កម្រិត​កំពូល​តែប៉ុណ្ណោះ" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "កំហុស​វាក្យសម្ពន្ធ %s:%u ៖ មាន​ការរួមបញ្ចូល​ដែលដាក់​រួមគ្នា​យ៉ាងច្រើន" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "កំហុសវាក្យ​សម្ពន្ធ %s:%u ៖ បានរួម​បញ្ចូល​ពី​ទីនេះ​" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "កំហុស​វាក្យ​សម្ពន្ធ %s:%u ៖ សេចក្ដី​បង្គាប់​ដែល​មិនបានគាំទ្រ '%s'" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "កំហុស​វាក្យសម្ពន្ធ %s:%u ៖ សារឥតបានការ​បន្ថែម ដែលនៅខាងចុង​ឯកសារ" + +#: apt-pkg/contrib/progress.cc:154 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... កំហុស ​!" + +#: apt-pkg/contrib/progress.cc:156 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... ធ្វើរួច​" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "ជម្រើស​បន្ទាត់​ពាក្យបញ្ជា '%c' [from %s] មិនស្គាល់ឡើយ ។" + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "មិនយល់​ពី​ជម្រើស​បន្ទាត់​ពាក្យ​បញ្ជា %s ឡើយ" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "ជម្រើស​បន្ទាត់ពាក្យ​បញ្ជា​ %s មិនមែនជាប៊ូលីនទេ" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "ជម្រើស​ %s ត្រូវការ​អាគុយម៉ង់មួយ ។" + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "ជម្រើស %s ៖ ការបញ្ជាក់​ធាតុ​កំណត់រចនាសម្ព័ន្ធត្រូវតែមាន = មួយ ។" + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "ជម្រើស​ %s ត្រូវ​ការ​អាគុយម៉ង់​ចំនួន​គត់​ មិន​មែន​ '%s'" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "ជម្រើស​ '%s' វែងពេក" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "មិនបានយល់អំពី​ការស្គាល់​ %s ឡើយ សូមព្យាយមយក​ ពិត​ ​​​ឫ មិន​ពិត ។" + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "ប្រតិបត្តិការ​មិន​ត្រឹមត្រូវ​ %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "មិនអាច​ថ្លែង ចំណុចម៉ោន %s បានឡើយ" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "មិនអាច​ប្ដូរទៅ %s បានឡើយ" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "បរាជ័យក្នុងការ​ថ្លែង ស៊ីឌីរ៉ូម" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "មិន​ប្រើប្រាស់​ការចាក់សោ សម្រាប់តែឯកសារចាក់សោ​ដែលបានតែអានប៉ុណ្ណោះ %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "មិន​អាច​បើក​ឯកសារ​ចាក់សោ​ %s បានឡើយ" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "មិនប្រើ​ការចាក់សោ សម្រាប់ nfs ឯកសារ​ចាក់សោដែលបានម៉ោន%s" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "មិន​អាច​ចាក់សោ %s បានឡើយ" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "រង់ចាំប់​ %s ប៉ុន្តែ ​វា​មិន​នៅទីនោះ" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "ដំណើរការ​រង​ %s បាន​ទទួល​កំហុស​ការ​ចែកជាចម្រៀក​ ។" + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "ដំណើរការ​រង​ %s បានត្រឡប់​ទៅកាន់​កូដ​មាន​កំហុស​ (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "ដំណើរការ​រង​ %s បានចេញ ដោយ​មិន​រំពឹង​ទុក​ " + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "មិន​អាច​បើក​ឯកសារ​ %s បានឡើយ" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "អាន​, នៅតែ​មាន %lu ដើម្បី​អាន​ ប៉ុន្តែ​គ្មាន​អ្វី​នៅសល់" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "សរសេរ​, នៅតែមាន​ %lu ដើម្បី​សរសេរ​ ប៉ុន្តែ​មិន​អាច​" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "មាន​បញ្ហា​ក្នុងការ​បិទ​ឯកសារ" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "មានបញ្ហា​ក្នុងការ​ផ្ដាច់តំណ​ឯកសារ" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "មានបញ្ហា​ក្នុង​ការធ្វើ​សមកាលកម្មឯកសារ​" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "ឃ្លាំង​កញ្ចប់​ទទេ​" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "​​ឯកសារ​ឃ្លាំង​កញ្ចប់​មិន​ត្រឹមត្រូវ​" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "ឯកសារ​ឃ្លាំងសម្ងាត់​​កញ្ចប់​ជាកំណែ​មិន​ត្រូវគ្នា​" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "APT នេះ មិនគាំទ្រ​ប្រព័ន្ធ​ ការធ្វើកំណែនេះទេ​ '%s'" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "ឃ្លាំង​សម្ងាត់​កញ្ចប់ត្រូវ​បានស្ថាបនា់​សម្រាប់ស្ថាបត្យករ​ខុស​ៗគ្នា​​" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "អាស្រ័យ​" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "អាស្រ័យជា​មុន" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "ផ្ដល់យោបល់​" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "ផ្តល់​អនុសាសន៍​" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "ប៉ះទង្គិច" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "ជំនួស​" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "លែង​ប្រើ" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "សំខាន់​" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "បាន​ទាមទារ" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "គំរូ" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "ស្រេចចិត្ត" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "បន្ថែម" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "កំពុងស្ថាបនា​មែកធាងភាពអាស្រ័យ" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "កំណែ​សាកល្បង​" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "ការបង្កើត​ភាពអាស្រ័យ​" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "មិនអាច​ញែក​ឯកសារកញ្ចប់ %s (1) បានឡើយ" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "មិនអាច​ញែក​ឯកសារកញ្ចប់​ %s (2) បានឡើយ" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "បន្ទាត់ Malformed %lu ក្នុង​ញ្ជី​ប្រភព​ %s (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "បន្ទាត់ Malformed %lu ក្នុង​បញ្ជី​ប្រភព %s (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "បន្ទាត់​ Malformed %lu ក្នុង​បញ្ជី​ប្រភព​ %s (URI ញែក​)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "បន្ទាត់ Malformed %lu ក្នុង​បញ្ជី​ប្រភព​ %s (dist លែងប្រើ)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "បន្ទាត់ Malformed %lu ក្នុង​បញ្ជី​ប្រភព​ %s (dist ញែក​)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "កំពុង​បើក​ %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "បន្ទាត់​ %u មាន​ប្រវែង​វែងពេកនៅ​ក្នុង​បញ្ជី​ប្រភព​ %s ។" + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "បន្ទាត់​ Malformed %u ក្នុង​បញ្ជី​ប្រភព​ %s (ប្រភេទ​)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "ប្រភេទ​ '%s' មិន​ស្គាល់នៅលើបន្ទាត់​ %u ក្នុង​បញ្ជី​ប្រភព​ %s ឡើយ" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "បន្ទាត់​ Malformed %u ក្នុង​បញ្ជី​ប្រភព​ %s (លេខសម្គាល់​ក្រុមហ៊ុន​លក់)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"ការរត់​ការដំឡើង​នេះ នឹងទាមទារ​ឲ្យយកកញ្ចប់ចាំបាច់ %s បណ្ដោះអាសន្ន ដោយសារ រង្វិល ការប៉ះទង្គិច/" +"ភាពអាស្រ័យជាមុន ។ ជាញឹកញាប់គឺ មិនត្រឹមត្រូវ ប៉ុន្តែ ប្រសិនបើអ្នក​ពិតជាចង់ធ្វើវា ធ្វើឲ្យជម្រើស APT::" +"Force-LoopBreak សកម្ម ។" + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "ប្រភេទ​ឯកសារ​លិបិក្រម​ '%s' មិនត្រូវ​បាន​គាំទ្រ​" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "កញ្ចប់ %s ត្រូវការឲ្យដំឡើង ប៉ុន្តែ​ ខ្ញុំ​មិន​អាច​រក​ប័ណ្ណសារ​សម្រាប់​វា​បាន​ទេ​ ។" + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"កំហុស pkgProblemResolver::ដោះស្រាយ​សញ្ញាបញ្ឈប់​ដែលបានបង្កើត នេះ​ប្រហែលជា បង្កដោយកញ្ចប់​" +"ដែលបាន​ទុក ។" + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "មិន​អាច​កែ​បញ្ហាបានទេេ អ្កបានទុក​កញ្ចប់​ដែល​ខូច ។។" + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "រាយបញ្ជី​ថត​ %spartial គឺ​បាត់បង់​ ។" + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "ថត​ប័ណ្ណសារ​ %spartial គឺ​បាត់បង់​ ។" + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "កំពុង​ទៅ​យក​ឯកសារ %li នៃ %li (នៅសល់ %s)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "កំពុង​ទៅយក​ឯកសារ %li នៃ %li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "មិនអាច​រកឃើញ​កម្មវិធី​បញ្ជា​វិធីសាស្ត្រ %s ឡើយ ។" + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "វិធីសាស្ត្រ​ %s មិន​អាច​ចាប់​ផ្តើម​ត្រឹមត្រូវ​ទេ​" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "សូម​បញ្ចូល​ស្លាក​ឌីស​ ៖ '%s' ក្នុង​ដ្រាយ​ '%s' ហើយ​សង្កត់​ចូល ។" + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "មិន​គាំទ្រ​ប្រព័ន្ធ​កញ្ចប់'%s' ឡើយ" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "មិនអាច​កំណត់​ប្រភេទ​ប្រព័ន្ធ​កញ្ចប់​ដែល​សមរម្យ​បានឡើយ" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "មិនអាច​ថ្លែង %s បានឡើយ ។" + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "អ្នកត្រូវតែដាក់ 'ប្រភព' URIs មួយចំនួន​នៅក្នុង sources.list របស់អ្នក" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "បញ្ជី​កញ្ចប់​ ឬ ឯកសារ​ស្ថានភាព​មិន​អាចត្រូវបាន​​ញែក ​​ឬ ត្រូវបាន​បើកបានឡើយ​​ ។" + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "អ្នកប្រហែលជា​ចង់ភាពទាន់សម័យ apt-get ដើម្បី​កែ​បញ្ហា​ទាំងនេះ" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "កំណត់ត្រា​មិនត្រឹមត្រូវ​នៅក្នុង​ឯកសារចំណង់ចំណូលចិត្ត មិនមាន​បឋមកថា​កញ្ចប់ទេ" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "មិន​បាន​យល់​ពី​ប្រភេទ​ម្ជុល %s ឡើយ" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "គ្មាន​អទិភាព (ឬ សូន្យ​) បានបញ្ជាក់​សម្រាប់​ម្ជុល​ទេ" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "ឃ្លាំងសម្ងាត់​មិន​ត្រូវ​គ្នា​នឹង ប្រព័ន្ធ ធ្វើកំណែ" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "កំហុស​បាន​កើត​ឡើង​​ ខណៈ​ពេល​កំពុង​ដំណើរការ​ %s (កញ្ចប់​ថ្មី​)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "កំហុស​បាន​កើតឡើង​ ខណៈពេល​កំពុង​ដំណើរការ​ %s (ប្រើ​កញ្ចប់​១​)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "កំហុស​បាន​កើតឡើង​ ខណៈពេល​កំពុង​ដំណើរការ​ %s (ប្រើកញ្ចប់២)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "កំហុស​បានកើតឡើង​ ខណៈពេល​កំពុង​ដំណើរការ​ %s (កំណែ​​​ឯកសារ​ថ្មី​១)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "កំហុស​បានកើត​ឡើង​ ខណៈពេល​កំពុង​ដំណើរការ​ %s (កំណែ១ថ្មី​)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "កំហុស​បាន​កើតឡើង​ ខណៈពេល​កំពុង​ដំណើរការ​ %s (ប្រើកញ្ចប់​៣)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "កំហុស​បាន​កើត​ឡើង​ខណៈ​ពេល​កំពុង​ដំណើរការ​ %s (កំណែ២​ថ្មី​)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "អស្ចារ្យ អ្នក​មាន​ឈ្មោះ​កញ្ចប់​លើស​ចំនួន​ APT នេះ​ឆបគ្នា​​  ។" + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "អស្ចារ្យ អ្នក​មាន​កំណែ​លើស​ចំនួន​ APT នេះ​ឆបគ្នា​ ។" + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "អស្ចារ្យ​, អ្នក​មាន​ភាពអាស្រ័យ​លើស​ចំនួន​ APT នេះ​ឆបគ្នា​ ។" + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "កំហុស​បានកើតឡើង​ខណៈពេល​កំពុង​ដំណើរការ​ %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "កំហុស​បានកើតឡើង​ខណៈពេល​កំពុង​ដំណើរការ​%s (ផ្តល់​ឯកសារ​ប្រមូល​ផ្តុំ)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "កញ្ចប់​ %s %s រក​មិន​ឃើញ​ខណៈ​ពេល​កំពុង​ដំណើរការ​ភាពអាស្រ័យ​​ឯកសារ" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "មិនអាចថ្លែង បញ្ជី​កញ្ចប់​ប្រភពចប់​ បានឡើយ %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "ការផ្ដល់​ឯកសារ​ប្រមូលផ្ដុំ" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "IO កំហុសក្នុងការររក្សាទុក​ឃ្លាំង​សម្ងាត់​ប្រភព​" + +#: apt-pkg/acquire-item.cc:126 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "ប្តូរ​ឈ្មោះ​បានបរាជ័យ​, %s (%s -> %s) ។" + +#: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:945 +msgid "MD5Sum mismatch" +msgstr "MD5Sum មិន​ផ្គួផ្គង​" + +#: apt-pkg/acquire-item.cc:640 +msgid "There is no public key available for the following key IDs:\n" +msgstr "គ្មាន​កូនសោ​សាធារណៈ​អាច​រក​បាន​ក្នុងកូនសោ IDs ខាងក្រោម​នេះទេ ៖\n" + +#: apt-pkg/acquire-item.cc:753 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"ខ្ញុំ​មិន​អាច​រកទីតាំង​ឯកសារ​សម្រាប់​កញ្ចប់ %s បាន​ទេ ។ ​មាន​ន័យ​ថា​អ្នក​ត្រូវការ​ជួសជុល​កញ្ចប់​នេះ​ដោយ​ដៃ ។ " +"(ដោយសារ​​បាត់​ស្ថាបត្យកម្ម)" + +#: apt-pkg/acquire-item.cc:812 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"ខ្ញុំ​មិន​អាច​រកទីតាំង​ឯកសារ​សម្រាប់​កញ្ចប់ %s បានទេ ។ ​មាន​ន័យ​ថា​អ្នក​ត្រូវការ​ជួសជុល​កញ្ចប់​នេះ​ដោយ​ដៃ ។" + +#: apt-pkg/acquire-item.cc:848 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "កញ្ចប់​ឯកសារ​លិបិក្រម​ត្រូវ​បាន​ខូច ។ គ្មាន​ឈ្មោះ​ឯកសារ ៖ វាល​សម្រាប់​កញ្ចប់នេះ​ទេ​ %s ។" + +#: apt-pkg/acquire-item.cc:935 +msgid "Size mismatch" +msgstr "ទំហំ​មិនបាន​ផ្គួផ្គង​" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "ប្លុក​ក្រុមហ៊ុន​លក់​ %s គ្មាន​ស្នាម​ផ្តិត​ម្រាម​ដៃ" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"ការប្រើប្រាស់​ចំណុចម៉ោន​ ស៊ីឌី​-រ៉ូម​ %s\n" +"កំពុង​ម៉ោន​ស៊ីឌី-រ៉ូម​\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "កំពុង​ធ្វើអត្តសញ្ញាណនា​.. " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "បានទុក​ស្លាក ៖ %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "ប្រើប្រាស់ចំណុចម៉ោន​ ស៊ីឌី​-រ៉ូម​ %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "ការមិនម៉ោន​ ស៊ីឌី-រ៉ូម​\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "កំពុង​រង់ចាំឌីស​...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "កំពុង​ម៉ោន​ ស៊ីឌី​-រ៉ូម​...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "កំពុង​ស្កេន​ឌីស​សម្រាប់​​ឯកសារ​លិបិក្រម​..\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "បានរកឃើញ លិបិក្រម​កញ្ចប់ %i លិបិក្រម​ប្រភព%i និង ហត្ថលេខា %i \n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "នោះមិនមែនជាឈ្មោះត្រឹមត្រូវទេ សូមព្យាយាម​ម្ដងទៀត ។\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"ឌីស​នេះ​ត្រូវ​បាន​ហៅ​ ៖ \n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "កំពុង​ចម្លង​បញ្ជី​កញ្ចប់..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "កំពុងសរសេរ​បញ្ជី​ប្រភព​ថ្មី\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "ធាតុបញ្ចូល​បញ្ជីប្រភព​សម្រាប់​ឌីស​នេះគឺ ៖\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "មិនកំពុងម៉ោន ស៊ីឌី​-រ៉ូម​ ទេ..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "បានសរសេរ %i កំណត់ត្រា ។\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "បានសរសេរ %i កំណត់ត្រា​ជាមួយ​ %i ឯកសារ​ដែល​បាត់បង់ ។\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "បានសរសេរ​ %i កំណត់ត្រា​ជាមួយួយ​ %i ឯកសារ​ដែល​មិន​បាន​ផ្គួផ្គង​\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "បានសរសេរ %i កំណត់ត្រា​ជាមួយ​ %i ឯកសារ​ដែល​បាត់បង់​ និង​ %i ឯកសារ​ដែល​មិន​បាន​ផ្គួផ្គង​ ​\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "កំពុងរៀបចំ​ %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "កំពុង​ស្រាយ %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "កំពុងរៀបចំ​កំណត់រចនាសម្ព័ន្ធ %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "កំពុង​កំណត់​រចនា​សម្ព័ន្ធ %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "បាន​ដំឡើង %s" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "កំពុងរៀបចំដើម្បី​ការយក​ចេញ​នៃ %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "កំពុង​យក %s ចេញ" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "បាន​យក %s ចេញ" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "កំពុង​រៀបចំ​យក %s ចេញ​ទាំង​ស្រុង" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "បាន​យក %s ចេញ​ទាំង​ស្រុង" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "បាន​បិទ​ការ​តភ្ជាប់​មុន​ពេល" diff --git a/po/ko.po b/po/ko.po new file mode 100644 index 0000000..d23c23f --- /dev/null +++ b/po/ko.po @@ -0,0 +1,2766 @@ +# Sunjae Park , 2006. +# Changwoo Ryu , 2004-2005. +# +msgid "" +msgstr "" +"Project-Id-Version: apt\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-10-12 21:22-0400\n" +"Last-Translator: Sunjae Park \n" +"Language-Team: Korean \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "%s 꾸러미의 %s 버전의 의존성이 맞지 않습니다:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "%s 꾸러미를 찾을 수 없습니다" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "전체 꾸러미 이름 : " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " 일반 꾸러미: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " 순수 가상 꾸러미: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " 단일 가상 꾸러미: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " 혼합 가상 꾸러미: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " 빠짐: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "전체 구역별 버전: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "전체 의존성: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "전체 버전/파일 관계: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "전체 제공 매핑: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "전체 패턴 문자열: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "전체 의존성 버전 용량: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "전체 빈 용량: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "차지하는 전체 용량: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "꾸러미 파일 %s 파일이 동기화되지 않았습니다." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "정확히 한 개의 패턴을 넘겨야 합니다" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "꾸러미가 없습니다" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "꾸러미 파일:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "캐시가 동기화되지 않았습니다. 꾸러미 파일을 상호 참조할 수 없습니다" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "핀 꾸러미:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(없음)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " 설치: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(없음)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " 후보: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " 꾸러미 핀: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " 버전 테이블:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s (%s %s), 컴파일 시각 %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"사용법: apt-cache [옵션] 명령\n" +" apt-cache [옵션] add 파일1 [파일2 ...]\n" +" apt-cache [옵션] showpkg 꾸러미1 [꾸러미2 ...]\n" +" apt-cache [옵션] showsrc 꾸러미1 [꾸러미2 ...]\n" +"\n" +"apt-cache는 APT의 바이너리 캐시 파일을 처리하고, 캐시 파일에\n" +"정보를 질의하는 저수준 도구입니다.\n" +"\n" +"명령:\n" +" add - 소스 캐시에 꾸러미 파일을 더합니다\n" +" gencaches - 꾸러미 캐시 및 소스 캐시를 만듭니다\n" +" showpkg - 한 개의 꾸러미에 대한 일반적인 정보를 보여줍니다\n" +" showsrc - 소스 기록을 봅니다\n" +" stats - 기본적인 통계를 봅니다\n" +" dump - 전체 파일을 간략한 형태로 봅니다\n" +" dumpavail - 사용 가능한 파일을 표준출력에 표시합니다\n" +" unmet - 맞지 않는 의존성을 봅니다\n" +" search - 정규식 패턴에 맞는 꾸러미 목록을 찾습니다\n" +" show - 꾸러미에 대해 읽을 수 있는 기록을 봅니다\n" +" depends - 꾸러미에 대해 의존성 정보를 그대로 봅니다\n" +" rdepends - 꾸러미의 역 의존성 정보를 봅니다\n" +" pkgnames - 모든 꾸러미의 이름을 봅니다\n" +" dotty - GraphVis용 꾸러미 그래프를 만듭니다\n" +" xvcg - xvcg용 꾸러미 그래프를 만듭니다\n" +" policy - 정책 설정을 봅니다\n" +"\n" +"옵션:\n" +" -h 이 도움말.\n" +" -p=? 꾸러미 캐시.\n" +" -s=? 소스 캐시.\n" +" -q 상태 표시를 하지 않습니다.\n" +" -i unmet 명령에서 중요한 의존성만 표시합니다.\n" +" -c=? 지정한 설정 파일을 읽습니다.\n" +" -o=? 임의의 옵션을 설정합니다, 예를 들어 -o dir::cache=/tmp\n" +"좀 더 자세한 정보는 apt-cache(8) 및 apt.conf(5) 매뉴얼 페이지를 보십시오.\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "이 디스크를 위해 'Debian 2.1r1 Disk 1'와 같은 이름을 지정해주십시오" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "드라이브에 디스크를 넣고 엔터를 누르십시오" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "현재 갖고 있는 다른 CD에도 이 과정을 반복하십시오." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "인수가 두 개가 아닙니다" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"사용법: apt-config [옵션] 명령\n" +"\n" +"apt-config는 APT 설정 파일을 읽는 간단한 프로그램입니다\n" +"\n" +"명령:\n" +" shell - 쉘 모드\n" +" dump - 설정을 보여 줍니다\n" +"\n" +"옵션:\n" +" -h 이 도움말.\n" +" -c=? 해당 설정 파일을 읽습니다\n" +" -o=? 임의의 옵션을 설정합니다, 예를 들어 -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s은(는) 올바른 DEB 꾸러미가 아닙니다." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"사용법: apt-extracttemplates 파일1 [파일2 ...]\n" +"\n" +"apt-extracttemplates는 데비안 꾸러미에서 설정 및 템플릿 정보를 뽑아내는\n" +"도구입니다\n" +"\n" +"옵션:\n" +" -h 이 도움말\n" +" -t 임시 디렉토리 설정\n" +" -c=? 설정 파일을 읽습니다\n" +" -o=? 임의의 옵션을 설정합니다, 예를 들어 -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "%s에 쓸 수 없습니다" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "debconf 버전을 알 수 없습니다. debconf가 설치되었습니까?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "꾸러미 확장 목록이 너무 깁니다" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "%s 디렉토리를 처리하는 데 오류가 발생했습니다" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "소스 확장 목록이 너무 깁니다" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "컨텐츠 파일에 헤더를 쓰는 데 오류가 발생했습니다" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "%s 컨텐츠를 처리하는 데 오류가 발생했습니다" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"사용법: apt-ftparchive [옵션] 명령\n" +"명령: packages 바이너리경로 [override파일 [경로앞부분]]\n" +" sources 소스경로 [override파일 [경로앞부분]]\n" +" contents 경로\n" +" release 경로\n" +" generate 설정 [그룹]\n" +" clean 설정\n" +"\n" +"apt-ftparchive는 데비안 아카이브용 인덱스 파일을 만듭니다. 이 프로그램은\n" +"여러 종류의 인덱스 파일 만드는 작업을 지원합니다 -- 완전 자동화 작업부터\n" +"dpkg-scanpackages와 dpkg-scansources의 기능을 대체하기도 합니다.\n" +"\n" +"apt-ftparchive는 .deb 파일의 트리에서부터 Package 파일을 만듭니다.\n" +"Package 파일에는 각 꾸러미의 모든 제어 필드는 물론 MD5 해시와 파일\n" +"크기도 들어 있습니다. override 파일을 이용해 Priority와 Section의 값을 \n" +"강제로 설정할 수 있습니다\n" +"\n" +"이와 비슷하게 apt-ftparchive는 .dsc 파일의 트리에서 Sources 파일을\n" +"만듭니다. --source-override 옵션을 이용해 소스 override 파일을\n" +"지정할 수 있습니다.\n" +"\n" +"'packages'와 'sources' 명령은 해당 트리의 맨 위에서 실행해야 합니다.\n" +"\"바이너리경로\"는 검색할 때의 기준 위치를 가리키며 \"override파일\"에는\n" +"override 플래그들을 담고 있습니다. \"경로앞부분\"은 각 파일 이름\n" +"필드의 앞에 더해 집니다. 데비안 아카이브에 있는 예를 하나 들자면:\n" +"\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"옵션:\n" +" -h 이 도움말\n" +" --md5 MD5 만들기 작업을 제어합니다\n" +" -s=? 소스 override 파일\n" +" -q 조용히\n" +" -d=? 캐시 데이터베이스를 직접 설정합니다\n" +" --no-delink 디버깅 모드 지우기를 사용합니다\n" +" --contents 컨텐츠 파일을 만드는 적업을 제어합니다\n" +" -c=? 이 설정 파일을 읽습니다\n" +" -o=? 임의의 옵션을 설정합니다" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "맞는 꾸러미가 없습니다" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "`%s' 꾸러미 파일 그룹에 몇몇 파일이 빠졌습니다" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "DB가 망가졌습니다. 파일 이름을 %s.old로 바꿉니다" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "DB가 오래되었습니다. %s의 업그레이드를 시도합니다" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"DB 형식이 잘못되었습니다. apt 예전 버전에서 업그레이드했다면, 데이터베이스를 " +"지우고 다시 만드십시오." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "DB 파일, %s 파일을 열 수 없습니다: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "%s의 정보를 읽는 데 실패했습니다" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "아카이브에 컨트롤 기록이 없습니다" + +# FIXME: 왠 커서?? +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "커서를 가져올 수 없습니다" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "경고: %s 디렉토리를 읽을 수 없습니다\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "경고: %s의 정보를 읽을 수 없습니다\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "오류: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "경고: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "오류: 다음 파일에 적용하는 데 오류가 발생했습니다: " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "%s의 경로를 알아내는 데 실패했습니다" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "트리에서 이동이 실패했습니다" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "%s 파일을 여는 데 실패했습니다" + +# FIXME: ?? +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " 링크 %s [%s] 없애기\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "%s 파일에 readlink하는 데 실패했습니다" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "%s 파일을 지우는 데 실패했습니다" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** %s 파일을 %s(으)로 링크하는 데 실패했습니다" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " DeLink 한계값 %s바이트에 도달했습니다.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "아카이브에 꾸러미 필드가 없습니다" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s에는 override 항목이 없습니다\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " %s 관리자가 %s입니다 (%s 아님)\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s에는 source override 항목이 없습니다\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s에는 binary override 항목이 없습니다\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "내부 오류, %s 멤버를 찾을 수 없습니다" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - 메모리를 할당하는 데 실패했습니다" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "%s을(를) 열 수 없습니다" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "override %s의 %lu번 줄 #1이 잘못되었습니다" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "override %s의 %lu번 줄 #2가 잘못되었습니다" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "override %s의 %lu번 줄 #3이 잘못되었습니다" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "override 파일 %s을(를) 읽는 데 실패했습니다" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "'%s' 압축 알고리즘을 알 수 없습니다" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "압축된 출력물 %s에는 압축 세트가 필요합니다" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "하위 프로세스에 대한 IPC 파이프를 만드는 데 실패했습니다" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "FILE*를 만드는 데 실패했습니다" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "fork하는 데 실패했습니다" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "압축 하위 프로세스" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "내부 오류, %s을(를) 만드는 데 실패했습니다" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "하위 프로세스 IPC를 만드는 데 실패했습니다" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "다음 압축 프로그램을 실행하는 데 실패했습니다: " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "압축 해제 프로그램" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "하위 프로세스/파일에 입출력하는 데 실패했습니다" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "MD5를 계산하는 동안 읽는 데 실패했습니다" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "%s의 링크를 해제하는 데 문제가 있습니다" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "%s 파일의 이름을 %s(으)로 바꾸는 데 실패했습니다" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "Y" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "정규식 컴파일 오류 - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "다음 꾸러미의 의존성이 맞지 않습니다:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "하지만 %s 꾸러미를 설치했습니다" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "하지만 %s 꾸러미를 설치할 것입니다" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "하지만 설치할 수 없습니다" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "하지만 가상 꾸러미입니다" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "하지만 설치하지 않았습니다" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "하지만 %s 꾸러미를 설치하지 않을 것입니다" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " 혹은" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "다음 새 꾸러미를 설치할 것입니다:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "다음 꾸러미를 지울 것입니다:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "다음 꾸러미를 과거 버전으로 유지합니다:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "다음 꾸러미를 업그레이드할 것입니다:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "다음 꾸러미를 다운그레이드할 것입니다:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "고정되었던 다음 꾸러미를 바꿀 것입니다:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (%s때문에) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"경고: ê¼­ 필요한 다음 꾸러미를 지우게 됩니다.\n" +"무슨 일을 하고 있는 지 정확히 알지 못한다면 지우지 마십시오!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu개 업그레이드, %lu개 새로 설치, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu개 다시 설치, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu개 업그레이드, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu개 지우기 및 %lu개 업그레이드 안 함.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu개를 완전히 설치하지 못했거나 지움.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "의존성을 바로잡는 중입니다..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " 실패." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "의존성을 바로잡을 수 없습니다" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "업그레이드 집합을 최소화할 수 없습니다" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " 완료" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "" +"이 상황을 바로잡으려면 `apt-get -f install'을 실행해야 할 수도 있습니다." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "의존성이 맞지 않습니다. -f 옵션을 사용해 보십시오." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "경고: 다음 꾸러미를 인증할 수 없습니다!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "인증 경고를 무시합니다.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "확인하지 않고 꾸러미를 설치하시겠습니까 [y/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "인증할 수 없는 꾸러미가 있습니다" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "문제가 발생했고 -y 옵션이 --force-yes 옵션 없이 사용되었습니다" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "내부 오류. 망가진 꾸러미에서 InstallPackages를 호출했습니다!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "꾸러미를 지워야 하지만 지우기가 금지되어 있습니다." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "내부 오류. 순서변경작업이 끝나지 않았습니다" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "내려받기 디렉토리를 잠글 수 없습니다" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "소스 목록을 읽을 수 없습니다." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"이상하게도 크기가 서로 다릅니다. apt@packages.debian.org로 이메일을 보내주십" +"시오." + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "%s바이트/%s바이트 아카이브를 받아야 합니다.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "%s바이트 아카이브를 받아야 합니다.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "압축을 풀면 %s바이트의 디스크 공간을 더 사용하게 됩니다.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "압축을 풀면 %s바이트의 디스크 공간이 비워집니다.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "%s의 여유 공간의 크기를 파악할 수 없습니다" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "%s 안에 충분한 여유 공간이 없습니다." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "" +"사소한 작업만 가능하도록(Trivial Only) 지정되었지만 이 작업은 사소한 작업이 " +"아닙니다." + +# 입력을 받아야 한다. 한글 입력을 못 할 수 있으므로 원문 그대로 사용. +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Yes, do as I say!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"시스템에 무언가 해가 되는 작업을 하려고 합니다.\n" +"계속하시려면 다음 문구를 입력하십시오: '%s'\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "중단." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "계속 하시겠습니까 [Y/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "%s 파일을 받는 데 실패했습니다 %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "일부 파일을 받는 데 실패했습니다" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "내려받기를 마쳤고 내려받기 전용 모드입니다" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"아카이브를 받을 수 없습니다. 아마도 apt-get update를 실행해야 하거나 --fix-" +"missing 옵션을 줘서 실행해야 할 것입니다." + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing 옵션과 동시에 미디어 바꾸기는 현재 지원하지 않습니다" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "빠진 꾸러미를 바로잡을 수 없습니다." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "설치를 중단합니다." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "주의, %2$s 대신에 %1$s 꾸러미를 선택합니다\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" +"%s 꾸러미를 건너 뜁니다. 이미 설치되어 있고 업그레이드를 하지 않습니다.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "%s 꾸러미를 설치하지 않았으므로, 지우지 않습니다\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "%s 꾸러미는 다음 꾸러미가 제공하는 가상 꾸러미입니다:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [설치함]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "설치하려면 분명하게 하나를 선택해야 합니다." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"%s 꾸러미를 사용할 수 없습니다. 하지만 다른 꾸러미가 참조하고 있습니다.\n" +"해당 꾸러미가 누락되었거나 지워졌다는 뜻입니다. 아니면 또 다른 곳에서\n" +"꾸러미를 받아와야 하는 경우일 수도 있습니다.\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "하지만 다음 꾸러미가 대체합니다:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "%s 꾸러미는 설치할 수 있는 후보가 없습니다" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "%s 꾸러미를 다시 설치하는 ê±´ 불가능합니다. 내려 받을 수 없습니다.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s 꾸러미는 이미 최신 버전입니다.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "%2$s 꾸러미의 '%1$s' 릴리즈를 찾을 수 없습니다" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "%2$s 꾸러미의 '%1$s' 버전을 찾을 수 없습니다" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "%3$s 꾸러미의 %1$s (%2$s) 버전을 선택합니다\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "update 명령은 인수를 받지 않습니다" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "목록 디렉토리를 잠글 수 없습니다" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"일부 인덱스 파일을 내려받는 데 실패했습니다. 해당 파일을 무시하거나 과거의 버" +"전을 대신 사용합니다." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "내부 오류, AllUpgrade때문에 망가졌습니다" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "%s 꾸러미를 찾을 수 없습니다" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "주의, 정규식 '%2$s'에 대하여 %1$s을(를) 선택합니다\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "다음을 바로잡으려면 `apt-get -f install'을 실행해 보십시오:" + +# FIXME: specify a solution? 무슨 솔루션? +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"의존성이 맞지 않습니다. 꾸러미 없이 'apt-get -f install'을 시도해 보십시오 " +"(아니면 해결 방법을 지정하십시오)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"몇몇 꾸러미를 설치할 수 없습니다. 요청한 상황이 불가능할 수도 있고,\n" +"불안정 배포판을 사용해서 일부 필요한 꾸러미를 아직 만들지 않았거나,\n" +"아직 Incoming에서 나오지 않은 경우일 수도 있습니다." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"한 가지 작업만을 요청하셨으므로, 아마도 이 꾸러미를 설치할 수\n" +"없는 경우일 것이고 이 꾸러미에 버그 보고서를 제출해야 합니다." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "이 상황을 해결하는 데 다음 정보가 도움이 될 수도 있습니다:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "망가진 꾸러미" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "다음 꾸러미를 더 설치할 것입니다:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "제안하는 꾸러미:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "추천하는 꾸러미:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "업그레이드를 계산하는 중입니다... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "실패" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "완료" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "내부 오류, 문제 해결 프로그램이 사고쳤습니다" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "해당되는 소스 꾸러미를 가져올 꾸러미를 최소한 하나 지정해야 합니다" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "%s의 소스 꾸러미를 찾을 수 없습니다" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "이미 다운로드 받은 파일 '%s'은(는) 다시 받지 않고 건너 뜁니다.\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "%s에 충분한 공간이 없습니다" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "소스 아카이브를 %s바이트/%s바이트 받아야 합니다.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "소스 아카이브를 %s바이트 받아야 합니다.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "%s 소스를 가져옵니다\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "일부 아카이브를 가져오는 데 실패했습니다." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "%s에 이미 풀려 있는 소스의 압축을 풀지 않고 건너 뜁니다.\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "압축 풀기 명령 '%s' 실패.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "'dpkg-dev' 꾸러미가 설치되었는지를 확인해주십시오.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "빌드 명령 '%s' 실패.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "하위 프로세스가 실패했습니다" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "해당되는 빌드 의존성을 검사할 꾸러미를 최소한 하나 지정해야 합니다" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "%s의 빌드 의존성 정보를 가져올 수 없습니다" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s 꾸러미에 빌드 의존성이 없습니다.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"%2$s에 대한 %1$s 의존성을 만족시킬 수 없습니다. %3$s 꾸러미를 찾을 수 없습니" +"다" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"%2$s에 대한 %1$s 의존성을 만족시킬 수 없습니다. %3$s 꾸러미의 사용 가능한 버" +"전 중에서는 이 버전 요구사항을 만족시킬 수 없습니다" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"%2$s에 대한 %1$s 의존성을 만족시키는 데 실패했습니다: 설치한 %3$s 꾸러미가 너" +"무 최근 버전입니다" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "%2$s에 대한 %1$s 의존성을 만족시키는 데 실패했습니다: %3$s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "%s의 빌드 의존성을 만족시키지 못했습니다." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "빌드 의존성을 처리하는 데 실패했습니다" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "지원하는 모듈:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"사용법: apt-get [옵션] 명령어\n" +" apt-get [옵션] install|remove 꾸러미1 [꾸러미2 ...]\n" +" apt-get [옵션] source 꾸러미1 [꾸러미2 ...]\n" +"\n" +"apt-get은 꾸러미를 내려받고 설치하는 간단한 명령행 인터페이스입니다.\n" +"가장 자주 사용하는 명령은 update와 install입니다.\n" +"\n" +"명령어:\n" +" update - 꾸러미 목록을 새로 가져옵니다\n" +" upgrade - 업그레이드를 합니다\n" +" install - 새 꾸러미를 설치합니다 (꾸러미는 libc6 식으로. libc6.deb 아님)\n" +" remove - 꾸러미를 지웁니다\n" +" source - 소스 아카이브를 내려 받습니다\n" +" build-dep - 소스 꾸러미의 빌드 의존성을 설정합니다\n" +" dist-upgrade - 배포판 업그레이드, apt-get(8) 참고\n" +" dselect-upgrade - dselect에서 선택한 걸 따릅니다\n" +" clean - 내려받은 아카이브 파일들을 지웁니다\n" +" autoclean - 과거에 내려받은 아카이브 파일들을 지웁니다\n" +" check - 의존성이 망가지지 않았는 지 확인합니다\n" +"\n" +"옵션:\n" +" -h 이 도움말.\n" +" -q 기록 가능한 출력 - 진행 상황 표시를 하지 않습니다\n" +" -qq 오류가 아니면 출력을 하지 않습니다\n" +" -d 내려받기만 합니다 - 아카이브를 설치하거나 풀거나 하지 않습니다\n" +" -s 실제 작업을 하지 않고, 순서대로 시뮬레이션만 합니다\n" +" -y 모든 질문에 대해 \"예\"라고 가정하고 물어보지 않습니다\n" +" -f 꾸러미 내용 검사가 실패해도 계속 시도합니다\n" +" -m 아카이브를 찾을 수 없어도 계속 시도합니다\n" +" -u 업그레이드하는 꾸러미의 목록도 보여줍니다\n" +" -b 소스 꾸러미를 받은 다음에 빌드합니다\n" +" -V 버전 번호를 자세히 보여줍니다\n" +" -c=? 해당 설정 파일을 읽습니다\n" +" -o=? 임의의 옵션을 설정합니다, 예를 들어 -o dir::cache=/tmp\n" +"더 자세한 정보와 옵션을 보려면 apt-get(8), sources.list(5) 및\n" +"apt.conf(5) 매뉴얼 페이지를 보십시오.\n" +" 이 APT는 Super Cow Powers로 무장했습니다.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "기존 " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "받기:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "무시" + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "오류 " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "내려받기 %s바이트, 소요시간 %s (%s바이트/초)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [작업중]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"미디어 바꾸기: '%2$s' 드라이브에 다음 레이블이 달린\n" +"디스크를 넣고 enter를 누르십시오\n" +" '%1$s'\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "알 수 없는 꾸러미 기록!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"사용법: apt-sortpkgs [옵션] 파일1 [파일2 ...]\n" +"\n" +"apt-sortpkgs는 꾸러미 파일을 정렬하는 간단한 도구입니다. -s 옵션은 무슨 파일" +"인지\n" +"알아 내는 데 쓰입니다.\n" +"\n" +"옵션:\n" +" -h 이 도움말\n" +" -s 소스 파일 정렬을 사용합니다\n" +" -c=? 이 설정 파일을 읽습니다\n" +" -o=? 임의의 옵션을 설정합니다, 예를 들어 -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "기본 설정이 잘못되었습니다!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "계속 하시려면 enter를 누르십시오." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "압축을 푸는 데 몇몇 오류가 발생했습니다. 이미 설치된 꾸러미를" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "설정할 것입니다. 오류때문에 의존성을 만족하지 못해 설정하는 과정에서" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" +"오류가 중복되어 나타날 수 있습니다. 하지만 상관없고, 이 메세지 위에 나온" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "오류만 중요합니다. 이 오류를 고친 다음에 설치(I)를 다시 시도하십시오" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "이용 가능 꾸러미 정보를 합칩니다" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "파이프 만들기가 실패했습니다" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "gzip 실행이 실패했습니다" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "아카이브가 손상되었습니다" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "tar 체크섬 실패, 아카이브가 손상되었습니다" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "알 수 없는 TAR 헤더 타입 %u, 멤버 %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "아카이브 시그너쳐가 틀렸습니다" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "아카이브 멤버 헤더를 읽는 데 오류가 발생했습니다" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "아카이브 멤버 헤더가 잘못되었습니다" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "아카이브 길이가 너무 짧습니다" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "아카이브 헤더를 읽는 데 실패했습니다" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "DropNode가 아직 연결되어 있는 노드에 대해 호출되었습니다" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "해시 항목을 찾는 데 실패했습니다" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "diversion을 할당하는 데 실패했습니다" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "AddDiversion에서 내부 오류" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "전환된 파일을 덮어 쓰려고 합니다 (%s -> %s 및 %s/%s)" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "전환된 파일을 두 번 추가합니다 (%s -> %s)" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "%s/%s 설정 파일이 중복되었습니다" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "%s 파일을 쓰는 데 실패했습니다" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "%s 파일을 닫는 데 실패했습니다" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "경로 %s이(가) 너무 깁니다" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "%s을(를) 두 번 이상 풀었습니다" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "%s 디렉토리가 전환되었습니다" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "이 꾸러미에서 전환된 대상에 쓰려고 합니다 (%s/%s)" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "전환하는 경로가 너무 깁니다" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "%s 디렉토리를 디렉토리가 아닌 파일로 덮어쓰려고 합니다" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "해시 버킷에서 노드를 찾는 데 실패했습니다" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "경로가 너무 깁니다" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "덮어 쓰는 꾸러미가 %s 꾸러미의 어떤 버전과도 맞지 않습니다" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "%s/%s 파일은 %s 꾸러미에 있는 파일을 덮어 씁니다" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "%s을(를) 읽을 수 없습니다" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "%s의 정보를 읽을 수 없습니다" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "%s을(를) 지우는 데 실패했습니다" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "%s을(를) 만들 수 없습니다" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "%sinfo의 정보를 읽는 데 실패했습니다" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "정보 디렉토리와 임시 디렉토리는 같은 파일 시스템에 있어야 합니다" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "꾸러미 목록을 읽는 중입니다" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "관리 디렉토리를 %sinfo로 바꾸는 데 실패했습니다" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "꾸러미 이름을 가져오는 데 내부 오류" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "파일 목록을 읽는 중입니다" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"목록 파일 '%sinfo/%s' 파일을 여는 데 실패했습니다. 이 파일을 복구할 수 없다" +"ë©´ 비워 놓고 같은 버전의 꾸러미를 다시 설치하십시오!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "목록 파일 %sinfo/%s 파일을 읽는 데 실패했습니다" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "노드를 얻어 오는 데 내부 오류" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "전환 파일 %sdiversions를 여는 데 실패했습니다" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "전환 파일이 손상되었습니다" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "전환 파일에 잘못된 줄이 있습니다: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "diversion을 추가하는 데 내부 오류" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "꾸러미 캐시를 먼저 초기화해야 합니다" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "꾸러미를 찾는 데 실패했습니다: 헤더, 오프셋 %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "status 파일에서 ConfFile 섹션이 잘못되었습니다. 오프셋 %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "MD5 분석에 오류가 있습니다. 오프셋 %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "올바른 DEB 아카이브가 아닙니다. '%s' 멤버가 없습니다" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "올바른 DEB 아카이브가 아닙니다. '%s' 혹은 '%s' 멤버가 없습니다" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "%s 디렉토리로 이동할 수 없습니다" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "내부 오류, 멤버를 찾을 수 없습니다" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "올바른 control 파일을 찾는 데 실패했습니다" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "control 파일을 파싱할 수 없습니다" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "CD-ROM 데이터베이스 %s을(를) 읽을 수 없습니다" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"이 CD를 APT에서 인식하려면 apt-cdrom을 사용하십시오. apt-get update로는 새 " +"CD를 추가할 수 없습니다." + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "잘못된 CD" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "%s 안의 CD-ROM을 마운트 해제할 수 없습니다. 사용 중일 것입니다." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "디스크가 없습니다." + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "파일이 없습니다" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "파일 정보를 읽는 데 실패했습니다" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "파일 변경 시각을 설정하는 데 실패했습니다" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "URI가 틀렸습니다. 로컬 URI는 //로 시작해야 합니다." + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "로그인하는 중" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "상대방의 이름을 알 수 없습니다" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "로컬 이름을 알 수 없습니다" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "서버에서 다음과 같이 연결을 거부했습니다: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "USER 실패, 서버에서는: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "PASS 실패, 서버에서는: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"프록시 서버를 지정했지만 로그인 스크립트가 없습니다. Acquire::ftp::" +"ProxyLogin 값이 비어 있습니다." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "로그인 스크립트 명령 '%s' 실패, 서버에서는: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "TYPE 실패, 서버에서는: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "연결 시간 초과" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "서버에서 연결을 닫았습니다" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "읽기 오류" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "응답이 버퍼 크기를 넘어갔습니다." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "프로토콜이 틀렸습니다" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "쓰기 오류" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "소켓을 만들 수 없습니다" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "데이터 소켓을 연결할 수 없습니다. 연결 시간이 초과되었습니다" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "수동(passive) 소켓을 연결할 수 없습니다." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo에서 소켓에 listen할 수 없습니다" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "소켓을 bind할 수 없습니다" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "소켓에 listen할 수 없습니다" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "소켓의 이름을 알아낼 수 없습니다" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "PORT 명령을 보낼 수 없습니다" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "주소 %u의 종류(AF_*)를 알 수 없습니다" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT 실패, 서버에서는: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "데이터 소켓 연결 시간 초과" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "연결을 받을 수 없습니다" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "파일 해싱에 문제가 있습니다" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "파일을 가져올 수 없습니다. 서버 왈, '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "데이터 소켓에 제한 시간이 초과했습니다" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "데이터 전송 실패, 서버에서는: %s" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "질의" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "다음을 실행할 수 없습니다: " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "%s(%s)에 연결하는 중입니다" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "%s에 대한 소켓을 만들 수 없습니다 (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "%s:%s에 연결을 초기화할 수 없습니다 (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "%s:%s에 연결할 수 없습니다 (%s). 연결 제한 시간이 초과했습니다" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "%s:%s에 연결할 수 없습니다 (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "%s에 연결하는 중입니다" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "'%s'의 주소를 알아낼 수 없습니다" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "'%s'의 주소를 알아내는 데 임시로 실패했습니다" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "'%s:%s'의 주소를 알아내는 데 무언가 이상한 일이 발생했습니다 (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "%s %s에 연결할 수 없습니다:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "키링에 접근할 수 없습니다: '%s'" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "E: Acquire::gpgv::Options의 인자 목록이 너무 깁니다. 종료하는 중." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "내부 오류: 서명은 올바르지만 키 지문을 확인할 수 없습니다!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "최소한 하나 이상의 서명이 잘못되었습니다." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "서명을 인증하기 위한 '%s' 실행할 수 없습니다(gnupg가 설치됐나요?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "gpgv 실행 도중 알 수 없는 오류 발생" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "다음 서명이 올바르지 않습니다:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "다음 서명들은 공개키가 없기 때문에 인증할 수 없습니다:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "%s에 대한 파이프를 열 수 없습니다" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "%s 프로세스에서 읽는 데 오류가 발생했습니다" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "헤더를 기다리는 중입니다" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "헤더 한 줄에 %u개가 넘는 문자가 들어 있습니다" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "헤더 줄이 잘못되었습니다" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "HTTP 서버에서 잘못된 응답 헤더를 보냈습니다" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "HTTP 서버에서 잘못된 Content-Length 헤더를 보냈습니다" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "HTTP 서버에서 잘못된 Content-Range 헤더를 보냈습니다" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "HTTP 서버에 범위 지원 기능이 잘못되어 있습니다" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "데이터 형식을 알 수 없습니다" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "select가 실패했습니다" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "연결 시간이 초과했습니다" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "출력 파일에 쓰는 데 오류가 발생했습니다" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "파일에 쓰는 데 오류가 발생했습니다" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "해당 파일에 쓰는 데 오류가 발생했습니다" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "서버에서 읽고 연결을 닫는 데 오류가 발생했습니다" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "서버에서 읽는 데 오류가 발생했습니다" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "헤더 데이터가 잘못되었습니다" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "연결이 실패했습니다" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "내부 오류" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "빈 파일에 mmap할 수 없습니다" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "%lu바이트를 mmap할 수 없습니다" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "선택한 %s이(가) 없습니다" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "이 타입 줄임말을 알 수 없습니다: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "설정 파일 %s 파일을 여는 중입니다" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "%d번 줄이 너무 깁니다 (최대 %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "문법 오류 %s:%u: 블럭이 이름으로 시작하지 않습니다." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "문법 오류 %s:%u: 태그의 형식이 잘못되었습니다" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "문법 오류 %s:%u: 값 뒤에 쓰레기 데이터가 더 있습니다" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "문법 오류 %s:%u: 지시어는 맨 위 단계에서만 쓸 수 있습니다" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "문법 오류 %s:%u: include가 너무 많이 겹쳐 있습니다" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "문법 오류 %s:%u: 여기서 include됩니다" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "문법 오류 %s:%u: 지원하지 않는 지시어 '%s'" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "문법 오류 %s:%u: 파일의 끝에 쓰레기 데이터가 더 있습니다" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... 오류!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... 완료" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "명령행 옵션 '%c' 옵션을 [%s에서] 알 수 없습니다." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "명령행 옵션 '%s' 옵션을 알 수 없습니다" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "명령행 옵션 '%s' 옵션은 불리언이 아닙니다" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "%s 옵션에는 인수가 필요합니다." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "%s 옵션: 설정 항목 지정은 =<값> 형태여야 합니다." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "%s 옵션에는 정수 인수가 필요합니다, '%s'이(가) 아닙니다" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "'%s' 옵션이 너무 깁니다" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "%s 센스를 이해할 수 없습니다. ì°¸ 아니면 거짓으로 해 보십시오." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "잘못된 작업 %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "마운트 위치 %s의 정보를 읽을 수 없습니다" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "%s 디렉토리로 이동할 수 없습니다" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "CD-ROM의 정보를 읽을 수 없습니다" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "읽기 전용 잠금 파일 %s에 대해 잠금을 사용하지 않습니다" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "잠금 파일 %s 파일을 열 수 없습니다" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "NFS로 마운트된 잠금 파일 %s에 대해 잠금을 사용하지 않습니다" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "%s 잠금 파일을 얻을 수 없습니다" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "%s 프로세스를 기다렸지만 해당 프로세스가 없습니다" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "하위 프로세스 %s 프로세스가 세그멘테이션 오류를 받았습니다." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "하위 프로세스 %s 프로세스가 오류 코드(%u)를 리턴했습니다" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "하위 프로세스 %s 프로세스가 예상치 못하게 끝났습니다" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "%s 파일을 열 수 없습니다" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "%lu만큼 더 읽어야 하지만 더 이상 읽을 데이터가 없습니다" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "%lu만큼 더 써야 하지만 더 이상 쓸 수 없습니다" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "파일을 닫는 데 문제가 있습니다" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "파일을 지우는 데 문제가 있습니다" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "파일을 동기화하는 데 문제가 있습니다" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "꾸러미 캐시가 비어 있습니다" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "꾸러미 캐시 파일이 손상되었습니다" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "꾸러미 캐시 파일이 호환되지 않는 버전입니다" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "이 APT는 Version System '%s'을(를) 지원하지 않습니다" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "꾸러미 캐시가 다른 아키텍쳐용입니다." + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "의존" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "선의존" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "제안" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "추천" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "충돌" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "대체" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "없앰" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "중요" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "필수" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "표준" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "옵션" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "별도" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "의존성 트리를 만드는 중입니다" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "후보 버전" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "의존성 만들기" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "꾸러미 파일 %s 파일을 파싱할 수 없습니다 (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "꾸러미 파일 %s 파일을 파싱할 수 없습니다 (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "소스 리스트 %2$s의 %1$lu번 줄이 잘못되었습니다 (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "소스 리스트 %2$s의 %1$lu번 줄이 잘못되었습니다 (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "소스 리스트 %2$s의 %1$lu번 줄이 잘못되었습니다 (URI 파싱)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "소스 리스트 %2$s의 %1$lu번 줄이 잘못되었습니다 (절대 dist)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "소스 리스트 %2$s의 %1$lu번 줄이 잘못되었습니다 (dist 파싱)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "%s 파일을 여는 중입니다" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "소스 리스트 %2$s의 %1$u번 줄이 너무 깁니다." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "소스 리스트 %2$s의 %1$u번 줄이 잘못되었습니다 (타입)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "소스 목록 %3$s의 %2$u번 줄의 '%1$s' 타입을 알 수 없습니다" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "소스 리스트 %2$s의 %1$u번 줄이 잘못되었습니다 (벤더 ID)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"이번에 설치할 때 충돌/선의존성이 루프가 걸렸기 때문에 ê¼­ 필요한 %s 꾸러미를 " +"잠깐 지워야 합니다. 이 꾸러미를 지우는 ê±´ 좋지 않지만, 정말 지우려면 APT::" +"Force-LoopBreak 옵션을 켜십시오." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "인덱스 파일 타입 '%s' 타입은 지원하지 않습니다" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"%s 꾸러미를 다시 설치해야 하지만, 이 꾸러미의 아카이브를 찾을 수 없습니다." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"오류, pkgProblemResolver::Resolve가 망가졌습니다, 고정 꾸러미때문에 발생할 수" +"도 있습니다." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "문제를 바로잡을 수 없습니다, 망가진 고정 꾸러미가 있습니다." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "목록 디렉토리 %spartial이 빠졌습니다." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "아카이브 디렉토리 %spartial이 빠졌습니다." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "파일 받아오는 중: %2$li 중 %1$li (%3$s 남았음)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "파일 받아오는 중: %2$li 중 %1$li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "설치 방법 드라이버 %s을(를) 찾을 수 없습니다." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "설치 방법 %s이(가) 올바르게 시작하지 않았습니다" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "" +"'%2$s' 드라이브에 '%1$s'(으)로 표기된 디스크를 삽입하고 엔터를 눌러주십시오." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "꾸러미 시스템 '%s'을(를) 지원하지 않습니다" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "올바른 꾸러미 시스템 타입을 알아낼 수 없습니다" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "%s의 정보를 읽을 수 없습니다." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "sources.list에 '소스' URI를 써 넣어야 합니다" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "꾸러미 목록이나 상태 파일을 파싱할 수 없거나 열 수 없습니다." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "apt-get update를 실행하면 이 문제를 바로잡을 수도 있습니다." + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "기본 설정 파일에 잘못된 데이터가 있습니다. 꾸러미 헤더가 없습니다" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "핀 타입 %s이(가0 무엇인지 이해할 수 없습니다" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "핀에 우선순위(혹은 0)를 지정하지 않았습니다" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "캐시의 버전 시스템이 호환되지 않습니다" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "%s 처리하는 중에 오류가 발생했습니다 (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "%s 처리하는 중에 오류가 발생했습니다 (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "%s 처리하는 중에 오류가 발생했습니다 (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "%s 처리하는 중에 오류가 발생했습니다 (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "%s 처리하는 중에 오류가 발생했습니다 (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "%s 처리하는 중에 오류가 발생했습니다 (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "%s 처리하는 중에 오류가 발생했습니다 (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "우와, 이 APT가 처리할 수 있는 꾸러미 이름 개수를 넘어갔습니다." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "우와, 이 APT가 처리할 수 있는 버전 개수를 넘어갔습니다." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "우와, 이 APT가 처리할 수 있는 의존성 개수를 넘어갔습니다." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "%s 처리중에 오류가 발생했습니다 (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "%s 처리중에 오류가 발생했습니다 (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "파일 의존성을 처리하는 데, %s %s 꾸러미가 없습니다" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "소스 꾸러미 목록 %s의 정보를 읽을 수 없습니다" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "파일에서 제공하는 것을 모으는 중입니다" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "소스 캐시를 저장하는 데 입출력 오류가 발생했습니다" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "이름 바꾸기가 실패했습니다. %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "MD5Sum이 맞지 않습니다" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "다음 키 ID의 공개키가 없습니다:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"%s 꾸러미의 파일을 찾을 수 없습니다. 수동으로 이 꾸러미를 고쳐야 할 수도 있습" +"니다. (아키텍쳐가 빠졌기 때문입니다)" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"%s 꾸러미의 파일을 찾을 수 없습니다. 수동으로 이 꾸러미를 고쳐야 할 수도 있습" +"니다." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"꾸러미 인덱스 파일이 손상되었습니다. %s 꾸러미에 Filename: 필드가 없습니다." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "크기가 맞지 않습니다" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "벤더 블럭 %s의 핑거프린트가 없습니다" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"CD-ROM 마운트 위치로 %s 사용\n" +"CD-ROM을 마운트하는 중입니다\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "알아보는 중입니다.. " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "저장된 레이블: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "CD-ROM 마운트 위치 %s 사용\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "CD-ROM 마운트 해제하는 중입니다\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "디스크를 기다리는 중입니다...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "CD-ROM 마운트하는 중입니다...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "디스크에서 색인 파일을 찾는 중입니다...\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "꾸러미 색인 %i개, 소스 색인 %i개, 시그너처 %i개 발견\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "올바른 이름이 아닙니다. 다시 시도하십시오.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"이 디스크는 다음과 같습니다: \n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "꾸러미 목록을 복사하는 중입니다..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "새 소스 리스트를 쓰는 중입니다\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "이 디스크의 소스 리스트 항목은 다음과 같습니다:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "CD-ROM을 마운트 해제하는 중입니다..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "레코드 %i개를 썼습니다.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "레코드 %i개를 파일 %i개가 빠진 상태로 썼습니다.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "레코드 %i개를 파일 %i개가 맞지 않은 상태로 썼습니다\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "레코드 %i개를 파일 %i개가 빠지고 %i개가 맞지 않은 상태로 썼습니다\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "%s 준비 중" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "%s을(를) 푸는 중입니다" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "%s을(를) 설정할 준비를 하는 중입니다" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "%s 설정 중" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "%s 설치했음" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "%s을(를) 삭제할 준비 중" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "%s 지우는 중" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "%s 지움" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "%s을(를) 완전히 지울 준비를 하는 중입니다" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "%s을(를) 완전히 지웠습니다" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "%s 파일을 열 수 없습니다" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "연결이 너무 빨리 끊어졌습니다" + +#~ msgid "File date has changed %s" +#~ msgstr "%s 파일의 마지막 수정 시각이 바뀌엇습니다" + +#~ msgid "Reading file list" +#~ msgstr "파일 목록을 읽는 중" + +#, fuzzy +#~ msgid "Could not execute " +#~ msgstr "%s 잠금 파일을 얻을 수 없습니다" diff --git a/po/ku.po b/po/ku.po new file mode 100644 index 0000000..06789f9 --- /dev/null +++ b/po/ku.po @@ -0,0 +1,2574 @@ +# Kurdish translation for apt +# Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 +# This file is distributed under the same license as the apt package. +# FIRST AUTHOR , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: apt\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-08-09 16:17+0200\n" +"PO-Revision-Date: 2006-09-16 17:51+0100\n" +"Last-Translator: Erdal Ronahi \n" +"Language-Team: Kurdish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Pakêt nehate dîtin %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Navên paketan bi giştî :" + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Pakêtên normal:" + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Pakêtên farazî yên safî:" + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Pakêta tenê ya farazî:" + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Pakêtên hevbeş yên farazî:" + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Winda: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Guhertoyên vekirî yên giştî:" + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Bindestên giştî:" + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "" + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "" + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "" + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "" + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Cihê giştî yê sist:" + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Cihê giştî yê veqetandî: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Pakêta dosya %s li derveyî demê ye." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Pêwist e tu mînakekê bidî" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Pakêt nayên dîtin" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Pelgehên Pakêt:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(nehate dîtin)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Sazkirî: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(ne tiştek)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Berendam: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Destika pakêtê:" + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Tabloya guhertoyan:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2380 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s ji bo %s %s komkirî di %s %s de\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "Ji kerema xwe re navekî li vî Dîsketî bike, wekî 'Debian 2.1r1 Disk 1'" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Dîsketê siwar bike û piştre bişkoja derbaskirinê bitikîne" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "" + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Bikaranîn: apt-config [vebijark] ferman\n" +"apt-config, amûra xwendina dosyeya mîhengên APTê ye\n" +"\n" +"Ferman\n" +" shell - moda shell\n" +" dump - Mîhengan nîşan dide\n" +"\n" +"Vebijark:\n" +" -h Ev dosyeya alîkariyê ye.\n" +" -c=? Dosyeya mîhengan nîşan dide\n" +" -o=? Rê li ber vedike ku tu karibe li gorî dilê xwe vebijarkan diyar bike. " +"mînak -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s ne paketeke DEB ya derbasdar e." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Nivîsandin ji bo %s ne pêkane" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Guhertoya debconf nehate stendin. debconf sazkirî ye?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Lîsteya dirêjahiya pakêtê zêde dirêj e" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Di şixulandina pêrista %s de çewtî" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Lîsteya dirêjahiya çavkaniyê zêde dirêj e" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Dema li dosyeya naverokê joreagahî dihate nivîsîn çewtî" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Dema şixulandina naveroka %s çewtî" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Di koma pelgehên pakêta '%s' de hin pelgeh kêm in" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "DB xerabe ye, navê dosyeyê weke %s.old hate guherandin" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "Danegir kevn e, ji bo bilindkirina %s hewl dide" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Danegira %s nehate vekirin: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Tomara kontrola arşîvê tuneye" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: pelrêça %s nayê xwendin\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "" + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "%s ji hev nehate veçirandin" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "%s venebû" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr "" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr "" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Di arşîvê de qada pakêtê tuneye" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr "" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr "" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr "" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr "" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "%s venebû" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "" + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "E" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "lê %s sazkirî ye" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "lê %s dê were sazkirin" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "lê sazkirina wê ne gengaz e" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "lê paketeke farazî ye" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "lê ne sazkirî ye" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "lê dê neyê sazkirin" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " û" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Ev pakêtên NÛ dê werine sazkirin:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Ev pakêt dê werine RAKIRIN:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Ev paket dê werine bilindkirin:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (ji ber %s)" + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "" + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu ji nû ve sazkirî" + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "" + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Bindestî tên serrastkirin..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " neserketî." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Temam" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "" + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "" + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "" + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "" + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1811 cmdline/apt-get.cc:1844 +msgid "Unable to lock the download directory" +msgstr "Pelrêça daxistinê nayê quflekirin" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1892 cmdline/apt-get.cc:2128 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "" + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1982 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "" + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "" + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "" + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "" + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2025 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2034 +msgid "Download complete and in download only mode" +msgstr "" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "" + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "" + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Sazkirî]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "" + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Paketên şikestî" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "" + +#: cmdline/apt-get.cc:1685 +msgid "Suggested packages:" +msgstr "Paketên tên pêşniyaz kirin:" + +#: cmdline/apt-get.cc:1686 +msgid "Recommended packages:" +msgstr "Paketên tên tawsiyê kirin:" + +#: cmdline/apt-get.cc:1706 +msgid "Calculating upgrade... " +msgstr "" + +#: cmdline/apt-get.cc:1709 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Serneket" + +#: cmdline/apt-get.cc:1714 +msgid "Done" +msgstr "Temam" + +#: cmdline/apt-get.cc:1779 cmdline/apt-get.cc:1787 +msgid "Internal error, problem resolver broke stuff" +msgstr "" + +#: cmdline/apt-get.cc:1887 +msgid "Must specify at least one package to fetch source for" +msgstr "" + +#: cmdline/apt-get.cc:1917 cmdline/apt-get.cc:2146 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "" + +#: cmdline/apt-get.cc:1961 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "" + +#: cmdline/apt-get.cc:1985 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "" + +#: cmdline/apt-get.cc:1990 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "" + +#: cmdline/apt-get.cc:1993 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "" + +#: cmdline/apt-get.cc:1999 +#, c-format +msgid "Fetch source %s\n" +msgstr "" + +#: cmdline/apt-get.cc:2030 +msgid "Failed to fetch some archives." +msgstr "" + +#: cmdline/apt-get.cc:2058 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "" + +#: cmdline/apt-get.cc:2070 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "" + +#: cmdline/apt-get.cc:2071 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "" + +#: cmdline/apt-get.cc:2088 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "" + +#: cmdline/apt-get.cc:2107 +msgid "Child process failed" +msgstr "" + +#: cmdline/apt-get.cc:2123 +msgid "Must specify at least one package to check builddeps for" +msgstr "" + +#: cmdline/apt-get.cc:2151 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "" + +#: cmdline/apt-get.cc:2171 +#, c-format +msgid "%s has no build depends.\n" +msgstr "" + +#: cmdline/apt-get.cc:2223 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" + +#: cmdline/apt-get.cc:2275 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" + +#: cmdline/apt-get.cc:2310 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" + +#: cmdline/apt-get.cc:2335 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "" + +#: cmdline/apt-get.cc:2349 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "" + +#: cmdline/apt-get.cc:2353 +msgid "Failed to process build dependencies" +msgstr "" + +#: cmdline/apt-get.cc:2385 +msgid "Supported modules:" +msgstr "" + +#: cmdline/apt-get.cc:2426 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "" + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "" + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "" + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Dixebite]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "" + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "" + +#: apt-inst/contrib/extracttar.cc:117 +#, fuzzy +msgid "Failed to create pipes" +msgstr "%s ji hev nehate veçirandin" + +#: apt-inst/contrib/extracttar.cc:144 +#, fuzzy +msgid "Failed to exec gzip " +msgstr "%s ji hev nehate veçirandin" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "" + +#: apt-inst/contrib/arfile.cc:131 +#, fuzzy +msgid "Archive is too short" +msgstr "Tomara kontrola arşîvê tuneye" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "" + +#: apt-inst/filelist.cc:463 +#, fuzzy +msgid "Failed to allocate diversion" +msgstr "%s venebû" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, fuzzy, c-format +msgid "Failed to write file %s" +msgstr "%s ji hev nehate veçirandin" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, fuzzy, c-format +msgid "Failed to close file %s" +msgstr "%s venebû" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, fuzzy, c-format +msgid "The path %s is too long" +msgstr "Lîsteya dirêjahiya çavkaniyê zêde dirêj e" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +#, fuzzy +msgid "The diversion path is too long" +msgstr "Lîsteya dirêjahiya çavkaniyê zêde dirêj e" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, fuzzy, c-format +msgid "Unable to read %s" +msgstr "%s venebû" + +#: apt-inst/extract.cc:494 +#, fuzzy, c-format +msgid "Unable to stat %s" +msgstr "Nivîsandin ji bo %s ne pêkane" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, fuzzy, c-format +msgid "Failed to remove %s" +msgstr "%s ji hev nehate veçirandin" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, fuzzy, c-format +msgid "Unable to create %s" +msgstr "Nivîsandin ji bo %s ne pêkane" + +#: apt-inst/deb/dpkgdb.cc:118 +#, fuzzy, c-format +msgid "Failed to stat %sinfo" +msgstr "%s venebû" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +#, fuzzy +msgid "Reading package lists" +msgstr "Paketên şikestî" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "" + +#: methods/cdrom.cc:114 +#, fuzzy, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Pakêt nehate dîtin %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "" + +#: methods/cdrom.cc:169 +#, fuzzy +msgid "Disk not found." +msgstr "(nehate dîtin)" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +#, fuzzy +msgid "File not found" +msgstr "(nehate dîtin)" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:133 +#: methods/gzip.cc:142 +#, fuzzy +msgid "Failed to stat" +msgstr "%s venebû" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:139 +msgid "Failed to set modification time" +msgstr "" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "" + +#: methods/ftp.cc:173 +#, fuzzy +msgid "Unable to determine the local name" +msgstr "Nivîsandin ji bo %s ne pêkane" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "" + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "" + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "" + +#: methods/ftp.cc:864 methods/http.cc:958 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "" + +#: methods/ftp.cc:877 +#, fuzzy, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Danegira %s nehate vekirin: %s" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "" + +#: methods/ftp.cc:1109 +#, fuzzy +msgid "Unable to invoke " +msgstr "%s venebû" + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "" + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "" + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "" + +#: methods/connect.cc:167 +#, fuzzy, c-format +msgid "Could not resolve '%s'" +msgstr "%s ji hev nehate veçirandin" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "" + +#: methods/connect.cc:223 +#, fuzzy, c-format +msgid "Unable to connect to %s %s:" +msgstr "Nivîsandin ji bo %s ne pêkane" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "" + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "" + +#: methods/gpgv.cc:249 +#, fuzzy +msgid "The following signatures were invalid:\n" +msgstr "Ev pakêtên NÛ dê werine sazkirin:" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" + +#: methods/gzip.cc:57 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "" + +#: methods/gzip.cc:102 +#, c-format +msgid "Read error from %s process" +msgstr "" + +#: methods/http.cc:376 +msgid "Waiting for headers" +msgstr "" + +#: methods/http.cc:522 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "" + +#: methods/http.cc:530 +msgid "Bad header line" +msgstr "" + +#: methods/http.cc:549 methods/http.cc:556 +msgid "The HTTP server sent an invalid reply header" +msgstr "" + +#: methods/http.cc:585 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "" + +#: methods/http.cc:600 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "" + +#: methods/http.cc:602 +msgid "This HTTP server has broken range support" +msgstr "" + +#: methods/http.cc:626 +msgid "Unknown date format" +msgstr "" + +#: methods/http.cc:773 +#, fuzzy +msgid "Select failed" +msgstr " neserketî." + +#: methods/http.cc:778 +msgid "Connection timed out" +msgstr "" + +#: methods/http.cc:801 +#, fuzzy +msgid "Error writing to output file" +msgstr "Dema li dosyeya naverokê joreagahî dihate nivîsîn çewtî" + +#: methods/http.cc:832 +#, fuzzy +msgid "Error writing to file" +msgstr "Dema li dosyeya naverokê joreagahî dihate nivîsîn çewtî" + +#: methods/http.cc:860 +#, fuzzy +msgid "Error writing to the file" +msgstr "Dema li dosyeya naverokê joreagahî dihate nivîsîn çewtî" + +#: methods/http.cc:874 +msgid "Error reading from server. Remote end closed connection" +msgstr "" + +#: methods/http.cc:876 +msgid "Error reading from server" +msgstr "" + +#: methods/http.cc:1107 +msgid "Bad header data" +msgstr "" + +#: methods/http.cc:1124 +msgid "Connection failed" +msgstr "" + +#: methods/http.cc:1215 +msgid "Internal error" +msgstr "" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "" + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "" + +#: apt-pkg/contrib/progress.cc:154 +#, c-format +msgid "%c%s... Error!" +msgstr "" + +#: apt-pkg/contrib/progress.cc:156 +#, c-format +msgid "%c%s... Done" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:268 +#, fuzzy, c-format +msgid "Option '%s' is too long" +msgstr "Lîsteya dirêjahiya çavkaniyê zêde dirêj e" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, fuzzy, c-format +msgid "Unable to stat the mount point %s" +msgstr "Nivîsandin ji bo %s ne pêkane" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, fuzzy, c-format +msgid "Unable to change to %s" +msgstr "Nivîsandin ji bo %s ne pêkane" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:87 +#, fuzzy, c-format +msgid "Could not open lock file %s" +msgstr "Danegira %s nehate vekirin: %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:436 +#, fuzzy, c-format +msgid "Could not open file %s" +msgstr "Danegira %s nehate vekirin: %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "" + +#: apt-pkg/pkgcache.cc:219 +#, fuzzy +msgid "Recommends" +msgstr "Paketên tên tawsiyê kirin:" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "" + +#: apt-pkg/depcache.cc:62 +#, fuzzy +msgid "Candidate versions" +msgstr " Berendam: " + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "" + +#: apt-pkg/tagfile.cc:85 apt-pkg/tagfile.cc:92 +#, fuzzy, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Pakêt nehate dîtin %s" + +#: apt-pkg/tagfile.cc:186 +#, fuzzy, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Pakêt nehate dîtin %s" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "" + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "" + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "" + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "" + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "" + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "" + +#: apt-pkg/acquire-worker.cc:377 +#, fuzzy, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "Dîsketê siwar bike û piştre bişkoja derbaskirinê bitikîne" + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "" + +#: apt-pkg/clean.cc:61 +#, fuzzy, c-format +msgid "Unable to stat %s." +msgstr "Nivîsandin ji bo %s ne pêkane" + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "" + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "" + +#: apt-pkg/acquire-item.cc:126 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "" + +#: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:945 +msgid "MD5Sum mismatch" +msgstr "" + +#: apt-pkg/acquire-item.cc:640 +msgid "There is no public key available for the following key IDs:\n" +msgstr "" + +#: apt-pkg/acquire-item.cc:753 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" + +#: apt-pkg/acquire-item.cc:812 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" + +#: apt-pkg/acquire-item.cc:848 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" + +#: apt-pkg/acquire-item.cc:935 +msgid "Size mismatch" +msgstr "" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "" + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "" + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "" + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, fuzzy, c-format +msgid "Installed %s" +msgstr " Sazkirî: " + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "" + diff --git a/po/makefile b/po/makefile new file mode 100644 index 0000000..45e5b1e --- /dev/null +++ b/po/makefile @@ -0,0 +1,86 @@ +# -*- make -*- + +# This will compile the gettext message catalogues. + +# The other make files drop file lists in build/po/domains/DOMAIN/* which +# is then picked up by this make file to define all the domains and all the +# source files that compose each domain. It then produces the POT files +# and then filters the PO files through the per-domain POT file to create +# the input to msgformat, which is then dumped into a locale directory. + +BASE=.. +SUBDIR=po + +# Bring in the default rules +include ../buildlib/defaults.mak + +CATALOGS := $(addsuffix .gmo,$(shell cat LINGUAS)) +DOMAINS := $(notdir $(wildcard $(PO_DOMAINS)/*)) +POTFILES := $(addsuffix .pot,$(addprefix $(PO)/,$(DOMAINS))) + +# Construct a list of all mo files for all domains under $(PO_DOMAINS) +MOFILES := $(patsubst %.gmo,%.mo,$(CATALOGS)) +MOFILES := $(foreach D,$(DOMAINS),$(addprefix $(PO_DOMAINS)/$(D)/,$(MOFILES))) +LANG_POFILES := $(patsubst %.mo,%.po,$(MOFILES)) +LINGUAS := $(patsubst %.gmo,%,$(CATALOGS)) + +GETDOMAIN = $(word 1,$(subst /, ,$(1))) + +# Generate the list of files from the bits the other make files dropped +# and produce the .pot file. +$(POTFILES) : $(PO)/%.pot : + printf "%s " "Generating POT file $@" + echo $@ : $(wildcard $(PO)/domains/$*/*.*list) $(addprefix $(BASE)/,$(shell cat $(wildcard $(PO)/domains/$*/*.srclist))) > $@.d +# From sh source + cat $(PO)/domains/$*/*.shlist 2> /dev/null | (cd $(BASE) && xargs -n1 bash --dump-po-strings) > $(PO)/domains/$*/sh.pot +# From C/C++ source + cat $(PO)/domains/$*/*.srclist > $(PO)/POTFILES_$*.in + $(XGETTEXT) --default-domain=$* --directory=$(BASE) \ + --add-comments --foreign --keyword=_ --keyword=N_ \ + --files-from=$(PO)/POTFILES_$*.in -o $(PO)/domains/$*/c.pot + rm -f $(PO)/POTFILES_$*.in + $(MSGCOMM) --more-than=0 $(PO)/domains/$*/c.pot $(PO)/domains/$*/sh.pot --output=$@ + +$(PACKAGE)-all.pot: $(POTFILES) + $(MSGCOMM) --more-than=0 $(POTFILES) --output=$@ + +# Filter the complete translation with the domain specific file to produce +# only the subtext needed for this domain +# We cannot express the dependencies required for this directly with a pattern +# rule, so we use the .d hack. +$(LANG_POFILES) : $(PO_DOMAINS)/%.po : $(PACKAGE)-all.pot + printf "%s " "Generating $@" + echo $@ : $(notdir $@) $(PO)/$(call GETDOMAIN,$*).pot > $(PO)/$(call GETDOMAIN,$*)_$(notdir $@).d + $(MSGMERGE) $(notdir $@) $(PO)/$(call GETDOMAIN,$*).pot -o $@ + +$(MOFILES) : $(PO_DOMAINS)/%.mo : $(PO_DOMAINS)/%.po + printf "%s: " "Generating $(LOCALE)/$(notdir $*)/LC_MESSAGES/$(call GETDOMAIN,$*).mo" + $(GMSGFMT) --statistics -o $@ $< + mkdir -p $(LOCALE)/$(notdir $*)/LC_MESSAGES/ + cp $@ $(LOCALE)/$(notdir $*)/LC_MESSAGES/$(call GETDOMAIN,$*).mo + +stats: + for i in *.pot *.po; do echo -n "$$i: "; msgfmt --statistics $$i; done + +binary: $(POTFILES) $(PACKAGE)-all.pot $(MOFILES) + +.PHONY: update-po +update-po: $(PACKAGE)-all.pot + for lang in ${LINGUAS}; do \ + echo "Updating $$lang.po"; \ + $(MSGMERGE) $$lang.po $(PACKAGE)-all.pot -o $$lang.new.po; \ + cmp $$lang.new.po $$lang.po || cp $$lang.new.po $$lang.po; \ + rm -f $$lang.new.po; \ + done + +clean: clean/local +clean/local: update-po + rm -f $(MOFILES) $(LANG_POFILES) $(PO)/*.d + +# Include the dependencies that are available +The_DFiles = $(wildcard $(PO)/*.d) +ifneq ($(words $(The_DFiles)),0) +include $(The_DFiles) +endif + +.NOTPARALLEL: diff --git a/po/nb.po b/po/nb.po new file mode 100644 index 0000000..3a32160 --- /dev/null +++ b/po/nb.po @@ -0,0 +1,2789 @@ +# Norsk bokmalsoversettelse av meldinger i APT." +# Copyright 2002, 2003 Lars Bahner, Axel Bojer, Hans Fredrik Nordhaug +# Filen utgis under Gnu Public License version 2. +# Lisensen er tilgjenglig fra http://www.gnu.org/licenses/gpl.txt +# Lars Bahner , 2002-2003. +# Axel Bojer , 2003. +# Hans Fredrik Nordhaug , 2003. +# Klaus Ade Johnstad , 2004. +# Klaus Ade Johnstad , 2004. +# Axel Bojer , 2004. +# Bjorn Steensrud , 2004. +# Hans Fredrik Nordhaug , 2005-2006. +# +msgid "" +msgstr "" +"Project-Id-Version: apt\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-10-16 00:35+0100\n" +"Last-Translator: Hans Fredrik Nordhaug \n" +"Language-Team: Norwegian Bokmal \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.9.1\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Pakken %s versjon %s har et uinnfridd avhengighetsforhold:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Klarer ikke å finne pakken %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Plassmengde pakkenavn: " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Vanlige pakker: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Rent virtuelle pakker: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Enkle virtuelle pakker: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Sammensatte virtuelle pakker: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Mangler: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Antall unike versjoner: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Antall avhengighetsforhold: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Antall forhold versjon/fil: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Antall tilbudte tilknyttinger: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Antall utvidede strenger: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Total plass for avhengighetsforhold/versjoner: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Plass brukt av slark: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Samlet mengde redegjort plass: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Pakkefila %s er ikke oppdatert." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Du må oppgi nøyaktig ett mønster" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Fant ingen pakker" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Pakkefiler:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "" +"Mellomlageret er ikke oppdatert, kan ikke kryssreferere til en pakkefil" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Låste pakker:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(ikke funnet)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Installert: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(ingen)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Kandidat: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Pakke låst til: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Versjonstabell:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s for %s %s kompilert på %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Bruk: apt-cache [innstillinger] kommando\n" +" apt-cache [innstillinger] add fil1 [fil2 ...]\n" +" apt-cache [innstillinger] showpkg pakke1 [pakke2 ...]\n" +" apt-cache [innstillinger] showsrc pakke1 [pakke2 ...]\n" +"\n" +"apt-cache er et lavnivå-verktøy, som brukes til å håndtere APT sine binære\n" +"lagerfiler, og spørre dem om informasjon.\n" +"\n" +"Ordrer:\n" +" add - Legg en fil til kildelageret\n" +" gencaches - Bygg lagrene for både pakke og kildekode\n" +" showpkg - Vis overordnet informasjon om en enkelt pakke\n" +" showsrc - Vis data om kildekoden\n" +" stats - Vis en enkel statistikk\n" +" dump - Vis fila med liste over tilgjengelige pakker i kompakt form\n" +" dumpavail - Send hele lista over tilgjengelige pakker til standard ut\n" +" unmet - Vis uinnfridde avhengighetsforhold\n" +" search - Søk i pakkelista etter et regulært uttrykkr\n" +" show - Vis et lesbart oppslag for pakken\n" +" depends - Vis rå informasjon om avhengighetsforholdene for pakken\n" +" rdepends - Vis informasjon om de reverserte avhengighetsforholdene for " +"pakken\n" +" pkgnames - List alle pakkenavn\n" +" dotty - Lag pakke-grafer for GraphVis\n" +" xvcg - Lag pakke-grafer for xvcg\n" +" policy - Vis regelinnstillingerr\n" +"\n" +"Innstillinger:\n" +" -h Denne hjelpeteksten\n" +" -p=? Pakkelageret.\n" +" -s=? Kildekodelageret.\n" +" -q Ikke vis framdrift.\n" +" -i Vis bare viktige avhengighetsforhold for kommandoen «unmet».\n" +" -c=? Les denne innstillingsfila.\n" +" -o=? Sett en vilkårlig innstilling, f.eks. -o dir::cache=/tmp\n" +"Les manualsidene apt-cache(8) og apt.conf(5) for mer informasjon.\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "Oppgi et navn for disken, eksempelvis «Debian 2.1r1 disk 1»" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Sett inn en disk i lagringsenheten og trykk Enter" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Gjenta denne prosessen for resten av CD-ene i ditt sett." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Ikke parvise argumenter" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Bruk: apt-config [innstillinger] kommando\n" +"\n" +"apt-config er et enkelt verktøy til å lese APTs innstillingsfil\n" +"\n" +"Ordrer:\n" +" shell - Skallmodus\n" +" dump - Vis innstillingene\n" +"\n" +"Innstillinger:\n" +" -h Denne hjelpeteksten\n" +" -c=? Les denne innstillingsfila.\n" +" -o=? Sett en vilkårlig innstilling, f.eks. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s er ikke en gyldig debianpakke." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Bruk: apt-extracttemplates fil1 [fil2 ...]\n" +"\n" +"apt-extracttemplates er et verktøy til å hente ut informasjon om " +"innstillinger\n" +"og maler fra debianpakker.\n" +"\n" +"Innstillinger:\n" +" -h Denne hjelpeteksten\n" +" -t Lag en midlertidig mappe\n" +" -c=? Les denne innstillingsfila.\n" +" -o=? Sett en vilkårlig innstilling, f.eks. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Kan ikke skrive til %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Kan ikke fastslå debconf-versjonen. Er debconf installert?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Lista over pakkeutvidelser er for lang" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Feil ved lesing av katalogen %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Lista over kildeutvidelser er for lang" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Feil ved skriving av topptekst til innholdsfila" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Det oppsto en feil ved lesing av %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Bruk: apt-ftparchive [innstillinger] ordre\n" +"Ordrer: packages binærsti [overstyringsfil [sti-prefiks]]\n" +" sources kildesti [overstyringsfil [sti-prefiks]]\n" +" contents sti\n" +" release sti\n" +" generate config [grupper]\n" +" clean config\n" +"\n" +"apt-ftparchive oppretter indeksfiler for debianarkiver. Mange ulike\n" +"metoder er støttet - fra helautomatiske til funksjonelle\n" +"erstatninger for dpkg-scanpackages og dpkg-scansources.\n" +"\n" +"apt-ftparchive oppretter «Packages»-filer fra et tre med debianpakker.\n" +"«Packages»-fila inneholder alle kontrollfeltene fra hver pakke i tillegg " +"til\n" +"MD5-nøkkel og filstørrelse. Du kan bruke en overstyringsfil for å tvinge\n" +"gjennom verdier for prioritet og kategori.\n" +"\n" +"apt-ftparchive kan på samme måte opprette kildefiler fra et tre\n" +"med .dsc-filer. Du kan bruke en overstyringsfil med --source-override.\n" +"\n" +"Kommandoene «packages» og «sources» skal kjøres i rota av katalogtreet.\n" +"«Binærsti» skal peke til toppkatalogen for det rekursive søket, og\n" +"overstyringsfila skal inneholde innstillinger for overstyring.\n" +"Sti-prefikset blir lagt til feltene for filnavn, dersom det er oppgitt. Her " +"er\n" +"et eksempel på bruk i debianarkivet:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Innstillinger:\n" +" -h Vis denne hjelpeteksten.\n" +" --md5 Styrer MD5-opprettelsen\n" +" -s=? Overstyringsfil for kildekode.\n" +" -q Stille.\n" +" -d=? Velger om du vil bruke en mellomlagerdatabase.\n" +" --no-delink Bruk avlusingsmodus med «delinking».\n" +" --contents Styrer opprettelse av innholdsfila.\n" +" -c=? Les denne oppsettsfila.\n" +" -o=? Setter en vilkårlig innstilling" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Ingen utvalg passet" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Enkelte filer mangler i pakkegruppa «%s»" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "Databasen er ødelagt. Filnavnet er endret til %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "Databasen er gammel, forsøker å oppgradere %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"DB-formatet er ugyldig. Hvis du oppgraderte fra en eldre versjon av apt, " +"fjern og så gjenopprett databasen." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Klarte ikke å åpne Databasefila %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Klarte ikke å få statusen på %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Arkivet har ingen kontrollpost" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Klarte ikke å finne en peker" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "A: Klarte ikke å lese katalogen %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "A: Klarte ikke å få statusen på %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "F:" + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "A:" + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "F: Det er feil ved fila" + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Klarte ikke å slå opp %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Klarte ikke å finne fram i treet" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Klarte ikke å åpne %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " DeLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Klarte ikke å lese lenken %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Klarte ikke å oppheve lenken %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Klarte ikke å lenke %s til %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " DeLink-grensa på %s B er nådd.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Arkivet har ikke noe pakkefelt" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s har ingen overstyringsoppføring\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " %s-vedlikeholderen er %s, ikke %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s har ingen kildeoverstyringsoppføring\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s har ingen binæroverstyringsoppføring heller\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Intern feil, fant ikke medlemmet %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Klarte ikke å tildele minne" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Klarte ikke å åpne %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Ugyldig overstyring %s linje %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Ugyldig overstyring %s linje %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Ugyldig overstyring %s linje %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Klarte ikke å lese overstyringsfila %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Ukjent komprimeringsalgoritme «%s»" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Komprimert utdata %s trenger et komprimeringssett" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Klarte ikke å opprette IPC-rør til underprosessen" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Klarte ikke å opprette FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Klarte ikke å forgreine prosess" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Komprimer barneprosess" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Intern feil, klarte ikke å opprette %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Klarte ikke å opprette underprosessen IPC" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Klarte ikke å kjøre komprimeringen" + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "dekomprimering" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "Klarte ikke å kommunisere med underprosess/fil" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Klarte ikke å lese under utregning av MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Problem ved oppheving av lenken til %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Klarte ikke å endre navnet på %s til %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "J" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Kompileringsfeil i regulært uttrykk - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Følgende pakker har uinnfridde avhengighetsforhold:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "men %s er installert" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "men %s skal installeres" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "men lar seg ikke installere" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "men er en virtuell pakke" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "men er ikke installert" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "men skal ikke installeres" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " eller" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Følgende NYE pakker vil bli installert:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Følgende pakker vil bli FJERNET:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Følgende pakker er holdt tilbake:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Følgende pakker vil bli oppgradert:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Følgende pakker vil bli NEDGRADERT:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Følgende pakker vil bli endret:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (pga. %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"ADVARSEL: Følgende essensielle pakker vil bli fjernet.\n" +"Dette bør IKKE gjøres, med mindre du vet nøyaktig hva du gjør!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu oppgraderte, %lu nylig installerte, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu installert på nytt, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu nedgraderte, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu å fjerne og %lu ikke oppgradert.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu pakker ikke fullt installert eller fjernet.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Retter på avhengighetsforhold ..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " mislyktes." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Klarer ikke å rette på avhengighetsforholdene" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Klarer ikke å minimere oppgraderingsettet" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Utført" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "Du vil kanskje kjøre «apt-get -f install» for å rette på dette." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Uinnfridde avhengighetsforhold - Prøv «-f»." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "ADVARSEL: Følgende pakker ble ikke autentisert!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Autentiseringsadvarsel overstyrt.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Installer disse pakkene uten verifikasjon [j/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Noen pakker ble ikke autentisert" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Det oppsto problemer og «-y» ble brukt uten «--force-yes»" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "Intern feil, InstallPackages ble kalt med ødelagte pakker!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Pakker trenges å fjernes, men funksjonen er slått av." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Intern feil, sortering fullførte ikke" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Klarer ikke å låse nedlastingsmappa" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "Kan ikke lese kildlista." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"Så rart ... Størrelsene stemmer ikke overens, send en e-post til " +"apt@packages.debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Må hente %sB/%sB med arkiver.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Må hente %sB med arkiver.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "Etter utpakking vil %sB ekstra diskplass bli brukt.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Etter utpakking vil %sB diskplass bli ledig.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Klarte ikke bestemme ledig plass i %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Dessverre, ikke nok ledig plass i %s" + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "" +"«Bare trivielle endringer» ble angitt, men dette er ikke en triviell endring." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Ja, gjør som jeg sier!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Du er iferd med å utføre en mulig skadelig handling.\n" +"For å fortsette skriv inn teksten «%s»\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Avbryter." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Vil du fortsette [Y/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Klarte ikke å skaffe %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Noen av filene kunne ikke lastes ned" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Nedlasting fullført med innstillinga «bare nedlasting»" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Klarte ikke å hente alle arkivene. Du kan prøve med «apt-get update» eller " +"«--fix-missing»." + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "«--fix-missing» og bytte av media støttes nå ikke" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Klarer ikke å rette på manglende pakker." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Avbryter istallasjonen." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Merk, velger %s istedenfor %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" +"Omgår %s - den er allerede installert eller ikke satt til oppgradering.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "Pakken %s er ikke installert, og derfor heller ikke fjernet\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Pakken %s er en virtuell pakke, som oppfylt av:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Installert]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Du må velge en pakke som skal installeres." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Pakken %s er ikke tilgjengelig, men en annen pakke henviser til den.\n" +"Dette kan bety at pakken mangler, er utgått, eller bare finnes \n" +"tilgjengelig fra en annen kilde.\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Følgende pakker erstatter den imidlertid:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Pakken %s har ingen installasjonskandidat" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "Det er ikke mulig å installere %s på nytt - den kan ikke nedlastes.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s er allerede nyeste versjon.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Utgave «%s» av «%s» ble ikke funnet" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Versjon «%s» av «%s» ble ikke funnet" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Utvalgt versjon %s (%s) for %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "Oppdaterings-kommandoen tar ingen argumenter" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Kan ikke låse listemappa" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Klarte ikke å laste ned alle oversiktfilene. De ble ignorerte, eller gamle " +"ble brukt isteden. " + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Intern feil - «AllUpgrade» ødela noe" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Klarte ikke å finne pakken %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Merk, velger %s istedenfor det regulære uttrykket «%s»\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "Du vil kanskje utføre «apt-get -f install» for å rette på disse:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Uinnfridde avhengighetsforhold. Prøv «apt-get -f install» uten pakker (eller " +"angi en løsning)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Noen pakker kunne ikke installeres. Dette kan bety at du har bedt om\n" +"en umulig tilstand eller, hvis du bruker den ustabile utgaven av Debian,\n" +"at visse kjernepakker ennå ikke er laget eller flyttet ut av «Incoming» for\n" +"distribusjonen." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Ettersom du bare bestilte et enkelt inngrep er det overveiende sannsynlig\n" +"at pakken helt enkelt ikke kan installeres, og du bør fylle ut en " +"feilmelding." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "Følgende informasjon kan være til hjelp med å løse problemet:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Ødelagte pakker" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Følgende ekstra pakker vil bli installert." + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Foreslåtte pakker:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Anbefalte pakker" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Beregner oppgradering... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Mislyktes" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Utført" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "Intern feil, problemløser ødela noe" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "Du må angi minst en pakke du vil ha kildekoden til" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Klarer ikke å finne en kildekodepakke for %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Hopper over allerede nedlastet fil «%s»\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Du har ikke nok ledig plass i %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Trenger å skaffe %sB av %sB fra kildekodearkivet.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Trenger å skaffe %sB fra kildekodearkivet.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Skaffer kildekode %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Klarte ikke å skaffe alle arkivene." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Omgår utpakking av allerede utpakket kilde i %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Utpakkingskommandoen «%s» mislyktes.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Sjekk om pakken «dpkg-dev» er installert.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Byggekommandoen «%s» mislyktes.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Barneprosessen mislyktes" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "Du må angi minst en pakke du vil sjekke «builddeps» for" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Klarer ikke å skaffe informasjon om bygge-avhengighetene for %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s har ingen avhengigheter.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "Kravet %s for %s kan ikke oppfylles fordi pakken %s ikke finnes" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"Kravet %s for %s kan ikke oppfylles fordi det ikke finnes noen tilgjengelige " +"versjoner av pakken %s som oppfyller versjonskravene" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Klarte ikke å tilfredsstille %s avhengighet for %s: den installerte pakken %" +"s er for ny" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Klarte ikke å tilfredsstille %s avhengighet for %s: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Klarte ikke å tilfredstille bygg-avhengighetene for %s." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Klarte ikke å behandle forutsetningene for bygging" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Støttede moduler:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Bruk: apt-get [innstillinger] kommando\n" +" apt-get [innstillinger] install|remove pakke1 [pakke2 ...]\n" +" apt-get [innstillinger] source pakke1 [pakke2 ...]\n" +"\n" +"apt-get er et enkelt grensesnitt som kan brukes fra kommandolinja for å " +"laste ned og\n" +"installere pakker. De kommandoene som brukes mest er «update» og «install».\n" +"\n" +"Ordrer:\n" +" update - Hent nye pakkelister\n" +" upgrade - Utfør en oppgradering\n" +" install - Installér nye pakker (Bruk pakkenavn - ikke filnavn (foo.deb))\n" +" remove - Fjern pakker\n" +" source - Last ned kildekode fra arkivene\n" +" build-dep - Sett opp bygge-forutsetninger for kildekodepakker\n" +" dist-upgrade - Oppgradér utgave, les apt-get(8)\n" +" dselect-upgrade - Følg «dselect» sine anbefalinger\n" +" clean - Slett nedlastede arkivfiler\n" +" autoclean - Slett gamle nedlastede arkivfiler\n" +" check - Se etter om det finnes brutte avhengigheter\n" +"\n" +"Innstillinger:\n" +" -h Denne hjelpteksten.\n" +" -q Loggbar tilbakemelding - ikke vis framdrift\n" +" -qq Ingen tilbakemelding - bortsett fra feilmeldinger\n" +" -d Bare nedlasting - IKKE installér eller pakk ut arkivfilene\n" +" -s Simulering - bare simuler kommandoen\n" +" -y Anta Ja til alle forespørsler uten å spørre\n" +" -f Prøv å fortsette hvis integritetstesten mislykkes\n" +" -m Prøv å fortsette når pakker mangler\n" +" -u Vis liste med oppgraderte pakker\n" +" -b Bygg pakken etter at kildekoden er lastet ned\n" +" -V Vis fullstendige versjonsnummere\n" +" -c=? Les denne innstillingsfila\n" +" -o=? Sett en vilkårlig innstilling, f.eks. -o dir::cache=/tmp\n" +"Les manualsiden apt-get(8), sources.list(5) and apt.conf(5)\n" +"for mer informasjon og flere innstillinger\n" +" Denne APT har kraften til en Superku.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Funnet " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Hent:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ign " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Feil " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Hentet %sB på %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Arbeider]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Bytte av media: sett inn CD-en som er merket\n" +" «%s»\n" +"i «%s» og trykk «Enter»\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Ukjent pakkeoppføring" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Bruk: apt-sortpkgs [innstillinger] fil1 [fil2 ...]\n" +"\n" +"apt-sortpkgs er et enkelt redskap til å sortere pakkefiler. Innstillingen\n" +"-s brukes til å angi hvilken filtype det er.\n" +"\n" +"Innstillinger:\n" +" -h Denne hjelpeteksten\n" +" -s Bruk filsortering\n" +" -c=? Les denne innstillingsfila.\n" +" -o=? Sett en vilkårlig innstilling, f.eks. -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Feil standardinnstilling!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Trykk «Enter» og fortsett" + +# Note to translators: The following four messages belong together. It doesn't +# matter where sentences start, but it has to fit in just these four lines, and +# at only 80 characters per line, if possible. +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Feil oppsto ved utpakkinga. Setter nå opp de installerte pakkene." + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "Det kan lede til fordobling av feil eller feil forårsaket av " + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "manglende forutsetninger. Det er greit, bare de nevnte feilene er" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "av betydning. Sett dem i stand dem og kjør [I]nstall igjen." + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Fletter tilgjengelig informasjon" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Klarte ikke å opprette rør" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Klarte ikke å kjøre gzip " + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Ødelagt arkiv" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Tar-sjekksummen mislykkes, arkivet er ødelagt" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Ukjent TAR-hode: type %u, medlem %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Ugyldig arkivsignatur" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Feil ved lesing av arkivmedlemshode" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Ugyldig arkivmedlemshode" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Arkivet er for kort" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Klarte ikke å lese arkivhodene" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "DropNode ble startet på et knutepunkt som ennå er lenket" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Fant ikke nøkkelelementet." + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Klarte ikke å tildele avledning" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Intern feil i AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Prøver å skrive over en avledning, %s -> %s og %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Dobbel tillegging av avledning %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Dobbel oppsettsfil %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Klarte ikke å skrive fila %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Klarte ikke å lukke fila %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "Stien %s er for lang" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Pakker ut %s mer enn en gang" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "Katalogen %s er avledet" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "Pakken prøver å skrive til avledningsmålet %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Avledningsstien er for lang" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "Mappa %s blir byttet ut med noe som ikke er en mappe" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Fant ikke knutepunktet i dens hash-spann" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Stien er for lang" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Skriver over pakketreff uten versjon for %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Fila %s/%s skriver over den tilsvarende fila i pakken %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Klarer ikke å lese %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Klarte ikke å få statusen på %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Klarte ikke å fjerne %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Klarte ikke å opprette %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Klarte ikke å få statusen på %sinfo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "" +"Infokatalogen og den midlertidige katalogen må være på det samme filsystemet" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Leser pakkelister" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Klarte ikke å bytte til adminkatalogen %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Intern feil ved henting av pakkenavn" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Les filliste" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Klarte ikke å åpne listefila «%sinfo/%s». Dersom du ikke kan gjenopprette " +"denne fila, bør du opprette den som en tom fil og installere den samme " +"versjonen av pakken på nytt." + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Klarte ikke å lese listefila %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Intern feil ved henting av node" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Klarte ikke å åpne avledningsfila %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Avledningsfila er ødelagt" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Ugyldig linje i avledningsfila: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Det oppsto en intern feil når avledningen ble lagt til" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "Pakkelageret må klargjøres først" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Fant ikke «Package:»-linje, offset %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Ødelagt «ConfFile»-del i statusfila. Offset %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Feil ved tolking av MD5. Offset %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Dette er ikke et gyldig DEB-arkiv, mangler «%s»-medlemmet" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "" +"Dette er ikke et gyldig DEB-arkiv, det har ikke noe «%s»- eller «%s»-medlem" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Klarte ikke å bytte til %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Intern feil, fant ikke medlem" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Fant ingen gyldig kontrollfil" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Kontrollfila kan ikke tolkes" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Klarer ikke å lese CD-databasen %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Bruk «apt-cdrom» for å gjøre denne CD-plata tilgjengelig for APT. Du kan " +"ikke bruke «apt-get update» til å legge til nye CD-plater." + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "Feil CD-plate" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "" +"Klarer ikke å avmontere CD-plata i %s. Det kan hende plata fremdeles er i " +"bruk." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Disk ikke funnet." + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Fant ikke fila" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Klarte ikke å få status" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Klarte ikke å sette endringstidspunkt" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "Ugyldig adresse. Lokale adresser kan ikke starte med //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Logger inn" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Klarte ikke å fastslå navnet på motparten" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Klarte ikke å fastslå det lokale navnet" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Tjeneren nektet oss å kople til og sa: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "USER mislykkes, tjeneren sa: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "PASS mislykkes, tjeneren sa: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"En mellomtjener er oppgitt, men ikke noe innloggingsskript. Feltet «Acquire::" +"ftp::ProxyLogin» er tomt." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Kommandoen «%s» i innlogginsskriptet mislykkes, tjeneren sa: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "TYPE mislykkes, tjeneren sa: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Tidsavbrudd på forbindelsen" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Tjeneren lukket forbindelsen" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Lesefeil" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Et svar oversvømte bufferen." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Protokollødeleggelse" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Skrivefeil" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Klarte ikke å opprette en sokkel" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "Klarte ikke å kople til datasokkelen, tidsavbrudd på forbindelsen" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Klarte ikke å koble til en passiv sokkel." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo klarte ikke å opprette en lyttesokkel" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Klarte ikke å binde til sokkel" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Klarte ikke å lytte til sokkel" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Klarte ikke å avgjøre sokkelnavnet" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Klarte ikke å sende PORT-kommandoen" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Ukjent adressefamilie %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT mislykkes, tjeneren sa: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Tidsavbrudd på tilkoblingen til datasokkelen" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Klarte ikke å godta tilkoblingen" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Problem ved oppretting av nøkkel for fil" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Klarte ikke å hente fila, tjeneren sa «%s»" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Tidsavbrudd på datasokkelen" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Dataoverføringen mislykkes, tjeneren sa «%s»" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Spørring" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Klarte ikke å starte" + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Kobler til %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Klarte ikke å opprette en sokkel for %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Klarte ikke å starte forbindelsen til %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Klarte ikke å koble til %s:%s (%s), tidsavbrudd på forbindelsen" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Klarte ikke å koble til %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Kobler til %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Klarte ikke å slå opp «%s»" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Midlertidig feil ved oppslag av «%s»" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Noe galt skjedde ved oppslag av «%s:%s» (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Klarte ikke å koble til %s %s:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Klarte ikke å slå opp i nøkkelring; «%s»" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "E: Argumentliste fra Acquire::gpgv::Options for lang. Avbryter." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "Intern feil: God signatur, men kunne bestemme nøkkelfingeravtrykk?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Minst en ugyldig signatur ble funnet." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" +"Klarte ikke kjøre «%s» for å verifisere signaturen (er gnupg installert?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Ukjent feil ved kjøring av gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "De følgende signaturene var ugyldige:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"De følgende signaturene kunne ikke verifiseres fordi den offentlige nøkkelen " +"ikke er tilgjengelig:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Klarte ikke å åpne rør for %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Lesefeil fra %s-prosessen" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Venter på hoder" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Fikk en enkel hodelinje over %u tegn" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Ødelagt hodelinje" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "HTTP-tjeneren sendte et ugyldig svarhode" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "HTTP-tjeneren sendte et ugyldig «Content-Length»-hode" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "HTTP-tjeneren sendte et ugyldig «Content-Range»-hode" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "Denne HTTP-tjeneren har ødelagt støtte for område" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Ukjent datoformat" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Utvalget mislykkes" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Tidsavbrudd på forbindelsen" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Feil ved skriving til utfil" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Feil ved skriving til fil" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Feil ved skriving til fila" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "Feil ved lesing fra tjeneren. Forbindelsen ble lukket i andre enden" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Feil ved lesing fra tjeneren" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Ødelagte hodedata" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Forbindelsen mislykkes" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Intern feil" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Kan ikke utføre mmap på en tom fil" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Kunne ikke lage mmap av %lu bytes" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Fant ikke utvalget %s" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Ukjent typeforkortelse: «%c»" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Åpner oppsettsfila %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Linje %d er for lang (maks %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Syntaksfeil %s:%u: Blokka starter uten navn." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Syntaksfeil %s:%u: Feil på taggen" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Syntaksfeil %s:%u: Ugyldige angivelser etter verdien" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "Syntaksfeil %s:%u: Direktivene kan bare ligge i det øverste nivået" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Syntaksfeil %s:%u: For mange nøstede inkluderte filer" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Syntaksfeil %s:%u: Inkludert herfra" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Syntaksfeil %s:%u: Direktivet «%s» er ikke støttet" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Syntaksfeil %s:%u: Ugyldige angivelser på slutten av fila" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s ... Feil" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s ... Ferdig" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Kjenner ikke kommandolinjevalget «%c» (fra %s)." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Skjønner ikke kommandolinjevalget %s" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Kommandolinjevalget %s er ikke boolsk" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "Valget %s krever et argument." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "Valg %s: Angivelsen av oppsettselementet må ha en =." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "Valget %s må ha et heltallsargument, ikke «%s»" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Valget «%s» er for langt" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "Skjønner ikke %s. Prøv «true» eller «false»." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Ugyldig operasjon %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Klarer ikke å fastsette monteringspunktet %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Klarer ikke å endre %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Klarer ikke å få statusen på CD-spilleren" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "Bruker ikke låsing for den skrivebeskyttede låsefila %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Kunne ikke åpne låsefila %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "Bruker ikke låsing på den nfs-monterte låsefila %s" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Får ikke låst %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Ventet på %s, men den ble ikke funnet" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Underprosessen %s mottok et minnefeilsignal." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Underprosessen %s ga en feilkode (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Underprosessen %s avsluttet uventet" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Kunne ikke åpne fila %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "lese, har fremdeles %lu igjen å lese, men ingen igjen" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "skrive, har fremdeles %lu igjen å skrive, men klarte ikke å" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Problem ved låsing av fila" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Problem ved oppheving av lenke til fila" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Problem ved oppdatering av fila" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Tomt pakkelager" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Pakkens lagerfil er ødelagt" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Pakkens lagerfil er av feil versjon (samvirker ikke)" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Denne APT støtter ikke versjonssystemet «%s»" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "Pakkelageret ble bygd for en annen arkitektur" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Avhenger av" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Forutsetter" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Foreslår" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Anbefaler" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Er i konflikt med" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Erstatter" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Nuller" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "viktig" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "påkrevet" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "vanlig" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "valgfri" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "tillegg" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Skaper oversikt over avhengighetsforhold" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Versjons-kandidater" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Oppretter avhengighetsforhold" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Klarer ikke å fortolke pakkefila %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Klarer ikke å fortolke pakkefila %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Feil på linje %lu i kildelista %s (nettadresse)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Feil på linje %lu i kildelista %s (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Feil på %lu i kildelista %s (fortolkning av nettadressen)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Feil på %lu i kildelista %s (Absolutt dist)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Feil på %lu i kildelista %s (dist fortolking)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Åpner %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Linje %u i kildelista %s er for lang" + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Feil på %u i kildelista %s (type)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Typen «%s» er ukjent i linje %u i kildelista %s" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Feil på %u i kildelista %s (selgers id)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Den forestående installasjon må midlertidig fjerne den meget viktige pakken %" +"s pga. en konflikt/forutsettelses-løkke. Dette er ofte stygt, men hvis du " +"virkelig vil det, så bruk innstillingen APT::Force-LoopBreak." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Oversiktsfil av typen «%s» støttes ikke" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"Pakka %s trenger å installeres på nytt, men jeg finner ikke lageret for den." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Feil, pkgProblemResolver::Resolve skapte et brudd, det kan skyldes pakker " +"som holdes tilbake." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "Klarer ikke å rette problemene, noen ødelagte pakker er holdt tilbake." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Listemappa %spartial mangler." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Arkivmappa %spartial mangler." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "Henter fil %li av %li (%s gjenværende)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "Henter fil %li av %li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Finner ikke metode-driveren %s." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Metoden %s startet ikke korrekt" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "Sett inn disken merket «%s» i lagringsenheten «%s» og trykk Enter." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Pakkesystemet «%s» støttes ikke" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Klarer ikke bestemme en passende pakkesystemtype" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Klarer ikke finne informasjonom %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "" +"Beklager, du må legge inn noen kilder (nettadresser) i din «sources.list»." + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "Pakkelista eller tilstandsfila kunne ikke fortolkes eller åpnes." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "" +"Det kan hende du vil kjøre «apt-get update» for å rette på disse problemene" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Ugyldig oppslag i foretrekksfila, manglende pakkehode" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Forsto ikke spikring av typen %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Ingen prioritet (eller null) spesifisert for pin" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Lageret har et uoverensstemmende versjonssystem" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Feil oppsto under behandling av %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Feil oppsto under behandling av %s (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Feil oppsto under behandling av %s (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Feil oppsto under behandling av %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Feil oppsto under behandling av %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Feil oppsto under behandling av %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Feil oppsto under behandling av %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "Jøss, du har overgått antallet pakkenavn denne APT klarer." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "Jøss, du har overgått antallet versjoner denne APT klarer." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "Jøss, du har overgått antallet avhengighetsforhold denne APT klarer." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Feil oppsto under behandling av %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Feil oppsto under behandling av %s (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "Fant ikke pakken %s %s ved behandling av filkrav" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Kunne ikke finne informasjon om %s - lista over kildekodepakker" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Samler inn filtilbud" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "IO-feil ved lagring av kildekode-lager" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "klarte ikke å endre navnet, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "Feil MD5sum" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "" +"Det er ingen offentlig nøkkel tilgjengelig for de følgende nøkkel-ID-ene:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Klarte ikke å finne en fil for pakken %s. Det kan bety at du må ordne pakken " +"selv (fordi arkitekturen mangler)." + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Klarte ikke å finne en fil for pakken %s. Det kan bety at du må ordne denne " +"pakken selv." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "Oversiktsfilene er ødelagte. Feltet «Filename:» mangler for pakken %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Feil størrelse" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Utgivers blokk %s inneholder ikke no fingeravtrykk" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Bruker CD-ROM monteringspunkt %s\n" +"Monterer CD-ROM\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Indentifiserer.." + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Lagret merkelapp: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Bruker CD-ROM monteringspunkt %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "Avmonterer CD-ROM\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Venter på CD-en...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Monterer CD-ROM...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Leter gjennom CD for indeksfiler..\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "Fant %i pakkeindekser, %i kildeindekser og %i signaturer\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Det er ikke et gyldig navn, prøv igjen.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"CD-en er kalt: \n" +"«%s»\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Kopierer pakkelister..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Skriver ny kildeliste\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Kildelisteoppføringer for denne CD-en er:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "Avmonterer CD-ROM..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "Skrev %i poster.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "Skrev %i poster med %i manglende filer.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "Skrev %i poster med %i feile filer.\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "Skrev %i poster med %i manglende filer og %i feile filer.\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "Forbereder %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "Pakker ut %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "Forbereder konfigurering %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "Konfigurer %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "Installerte %s" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "Forbereder fjerning av %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "Fjerner %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "Fjernet %s" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "Forbereder å fullstendig slette %s" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "Fjernet %s fullstendig" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Kunne ikke åpne fila %s" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Forbindelsen ble uventet stengt" + +#~ msgid "File date has changed %s" +#~ msgstr "Fildatoen er endret %s" + +#~ msgid "Reading file list" +#~ msgstr "Leser filliste" + +#, fuzzy +#~ msgid "Could not execute " +#~ msgstr "Får ikke låst %s" + +#~ msgid "Unknown vendor ID '%s' in line %u of source list %s" +#~ msgstr "Ukjent selger ID «%s» i linje %u i kildelista %s" diff --git a/po/ne.po b/po/ne.po new file mode 100644 index 0000000..2830067 --- /dev/null +++ b/po/ne.po @@ -0,0 +1,2728 @@ +# translation of apt_po.po to Nepali +# Mahesh Subedi , 2006. +# Shyam Krishna Bal , 2006. +# Shiva Pokharel , 2006. +msgid "" +msgstr "" +"Project-Id-Version: apt_po\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-05-27 13:46+0200\n" +"PO-Revision-Date: 2006-06-12 14:35+0545\n" +"Last-Translator: Shiva Pokharel \n" +"Language-Team: Nepali \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2;plural=(n!=1)\n" +"X-Generator: KBabel 1.10.2\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "प्याकेज %s संस्करण %s संग एउटा नभेटिएको dep छ:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "प्याकेज %s तोक्न असक्षम भयो" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "कूल प्याकेज नामहरू :" + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " सामान्य प्याकेजहरू:" + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr "शुद्ध अवास्तविक प्याकेजहरू:" + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " एकल अवास्तविक प्याकेजहरू:" + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " मिश्रित अवास्तविक प्याकेजहरू:" + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " हराइरहेको:" + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "कूल भिन्न संस्करणहरू:" + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "कूल निर्भरताहरू:" + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "जम्मा ver/file सम्बन्धहरू: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "कूल उपलब्ध मानचित्रणहरू:" + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "कूल विश्वव्यापी स्ट्रिङ्गहरू:" + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "कूल निर्भरता संस्करण खाली ठाऊँ:" + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "कूल शिथिल खाली ठाऊँ:" + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "को लागि कूल खाली ठाऊँ लेखांकन:" + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "प्याकेज फाइल %s sync भन्दा बाहिर छ ।" + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "तपाईँले एउटा वास्तविक बान्की दिनुपर्छ" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "कुनै प्याकेजहरू फेला परेन" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "प्याकेज फाइलहरू:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "क्यास sync भन्दा बाहिर छ, प्याकेज फाइल x-ref गर्न सक्दैन" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "पिन गरिएका प्याकेजहरू:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(फेला परेन)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " स्थापना भयो:" + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(कुनै पनि होइन)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " उमेद्वार:" + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr "प्याकेज पिन:" + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " संस्करण तालिका:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2369 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s को लागि %s %s, %s %s मा कम्पाएल गरिएको छ\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"उपयोग: apt-cache [विकल्पहरू] आदेश\n" +" apt-cache [विकल्पहरू] फाइल १ थप्नुहोस् [फाइल २ ...]\n" +" apt-cache [विकल्पहरू] pkg pkg1 देखाउनुहोस् [pkg2 ...]\n" +" apt-cache [विकल्पहरू] src pkg1 देखाउनुहोस् [pkg2 ...]\n" +"\n" +"तिनीहरुबाट APT's बिनारी क्यास फाइलहरू, र क्वेरी सूचना मिलाउन प्रयोग गरिने apt-cache " +"कम-स्तरको उपकरण हो\n" +"\n" +"\n" +"आदेशहरू:\n" +" थप्नुहोस् - स्रोत क्यासमा प्याकेज फाइल थप्नुहोस्\n" +" gencaches - प्याकेज र स्रोत क्यास दुवै निर्माण गर्नुहोस्\n" +" showpkg - एकल प्याकेजको लागि केही सामान्य सूचनाहरू देखाउनुहोस्\n" +" showsrc - स्रोत रेकर्डहरू देखाउनुहोस्\n" +" stats - केही आधारभूत तथ्यांकशास्त्र हरू देखाउनुहोस्\n" +" dump - पुरै फाइल स्पष्ट रुपमा देखाउनुहोस्\n" +" dumpavail - stdout मा एउटा उपलब्ध फाइल मुद्रण गर्नुहोस्\n" +" unmet - नभेटिएका निर्भरताहरू देखाउनुहोस्\n" +" खोजी गर्नुहोस् - regex बान्कीको लागि प्याकेज सूचि खोजी गर्नुहोस्\n" +" देखाउनुहोस् - प्याकेजको लागि पढ्नयोग्य रेकर्ड देखाउनुहोस्\n" +" आधारित - प्याकेजको लागि कच्चा निर्भरता सूचना देखाउनुहोस्\n" +" rdepends - प्याकेजको लागि उल्टो निर्भरता सूचना देखाउनुहोस्\n" +" pkgnames - सबै प्याकेजहरुको नामहरू सूचिबद्ध गर्नुहोस्\n" +" dotty - GraphVis को लागि प्याकेज ग्राफहरू सिर्जना गर्नुहोस्\n" +" xvcg - xvcg को लागि प्याकेज ग्राफहरू सिर्जना गर्नुहोस्\n" +" नीति - नीति सेटिङ्गहरू देखाउनुहोस्\n" +"\n" +"विकल्पहरू:\n" +" -h यो मद्दत पाठ ।\n" +" -p=? प्याकेज क्यास ।\n" +" -s=? स्रोत क्यास ।\n" +" -q प्रगति सूचक अक्षम गर्नुहोस् ।\n" +" -i नभेटिएको आदेशको लागि महत्वपूर्ण deps देखाउनुहोस् ।\n" +" -c=? यो कनफिगरेसन फाइल पढ्नुहोस्\n" +" -o=? एउटा स्वेच्छाचारी कनफिगरेसन फाइल सेट गर्नुहोस्, जस्तै -o dir::cache=/tmp\n" +"धेरै जानकारीकोप लागि apt-cache(8) र apt.conf(5) म्यानुल पृष्टहरू हेर्नुहोस् ।\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "कृपया यो डिस्कको लागि नाम उपलब्ध गराउनुहोस्, जस्तै 'Debian 2.1r1 Disk 1'" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "कृपया ड्राइभमा डिस्क घुसाउनुहोस् र इन्टर थिच्नुहोस्" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "तपाईँको सेटमा बाँकी सि डि हरुको लागि यो प्रक्रिया फेरी गर्नुहोस् । " + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "तर्कहरू जोडामा छैन" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"उपयग: apt-config [विकल्पहरू] आदेश\n" +"\n" +" APT कनफिग फाइल पढ्नको लागि apt-config साधारण उपकरण हो\n" +"\n" +"आदेशहरू:\n" +" शेल - शेल मोड\n" +" dump - कनफिगरेसन देखाउनुहोस्\n" +"\n" +"विकल्पहरू:\n" +" -h यो मद्दत पाठ ।\n" +" -c=? यो कनफिगरेसन फाइल पढ्नुहोस्\n" +" -o=? एउटा स्वेच्छाचारी कनफिगरेसन विकल्प सेट गर्नुहोस्, जस्तै -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s वैध DEB प्याकेज होइन" + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"उपयोग: apt-extracttemplates file1 [file2 ...]\n" +"\n" +" apt-extracttemplates डवियन प्याकेजहरुबाट कनफिगरेसन र टेम्प्लेट सूचना झिक्ने उपकरण हो\n" +"\n" +"\n" +"विकल्पहरू:\n" +" -h यो मद्दत पाठ\n" +" -t टेम्प्लेट डाइरेक्ट्री सेट गर्नुहोस्\n" +" -c=? यो कनफिगरेसन फाइल पढ्नुहोस्\n" +" -o=? एउटा स्वेच्छाचारी कनफिगरेसन विकल्प सेट गर्नुहोस्, जस्तै -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr " %s मा लेख्न असक्षम" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr " debconf संस्करण प्राप्त गर्न सकिएन । के debconf स्थापना भयो ? " + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "प्याकेज विस्तार सूचि अति लामो छ" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "डाइरेक्ट्री %s प्रक्रिया गर्दा त्रुटि" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "स्रोत विस्तार सूचि अति लामो छ" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "सामाग्री फाइलहरुमा हेडर लेख्दा त्रुटि" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "सामग्री %sप्रक्रिया गर्दा त्रुटि" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"उपयोग: apt-ftparchive [विकल्पहरू] आदेश\n" +"आदेशहरू: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive ले डेवियन संग्रहहरुको लागि अनुक्रमणिका फाइलहरू सिर्जना गर्दछ । यसले " +"समर्थन गर्दछ\n" +"dpkg-scanpackages र dpkg-scansources को लागि कार्यात्मक प्रतिस्थापनमा पुरै " +"स्वचालितबाट सिर्जनाको धेरै शैलीहरू\n" +" \n" +"\n" +"apt-ftparchive ले debs को ट्रीबाट प्याकेज फाइलहरू सिर्जना गर्दछ । प्याकेज\n" +"फाइलहरुले प्रत्येक प्याकेजबाट सबै नियन्त्रण फाँटहरुको सामग्रीहरू साथ साथै MD5 hash र " +"filesize समावेश गर्दछ ।\n" +"एउटा अधिलेखन फाइल\n" +"प्राथमिकता र सेक्सनको मान जोड गर्न समर्थित हुन्छ ।\n" +"\n" +"त्यस्तै गरी apt-ftparchive ले .dscs को ट्रीबाट स्रोत फाइलहरू सिर्जना गर्दछ ।\n" +"स्रोत--अधिलेखन--विकल्प src अधीलेखन फाइल निर्दिष्ट गर्न प्रयोग गर्न सकिन्छ\n" +"\n" +"'packages' and 'sources' आदेश ट्रीको मूलमा चलाउन सकिन्छ ।\n" +" विनारी मार्ग फेरी हुने खोजीको विन्दुमा आधारित हुन्छ र \n" +"अधिलेखन फाइलले अधिलेखन झण्डाहरू समाविष्ट गर्दछ । यदि उपस्थित छ भने बाटो उपसर्ग\n" +"फाइलनाम फाँटहरुमा थपिन्छ । उदाहरणको लागि \n" +"डेवियन संग्रहबाट उपयोग:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"विकल्पहरू:\n" +" -h यो मद्दत पाठ\n" +" --md5 नियन्त्रण MD5 सिर्जना\n" +" -s=? स्रोत अधिलेखन फाइल\n" +" -q बन्द गर्नुहोस्\n" +" -d=? वैकल्पिक क्यासिङ डेटाबेस चयन गर्नुहोस्\n" +" --no-delink delinking डिबग मोड सक्षम गर्नुहोस्\n" +" --सामग्रीहरू सामग्री फाइल सिर्जना नियन्त्रण गर्नुहोस्\n" +" -c=? यो कनफिगरेसन फाइल पढ्नुहोस्\n" +" -o=? एउटा स्वेच्छाचारी कनफिगरेसन विकल्प सेट गर्नुहोस्" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "कुनै चयनहरू मेल खाएन" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "केही फाइलहरू प्याकेज फाइल समूह `%s' मा हराइरहेको छ" + +#: ftparchive/cachedb.cc:45 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "DB दूषित थियो, फाइल %s.पुरानो मा पुन:नामकरण गर्नुहोस्" + +#: ftparchive/cachedb.cc:63 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "DB पुरानो छ, %s स्तरवृद्धि गर्न प्रयास गरिदैछ" + +#: ftparchive/cachedb.cc:73 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "DB फाइल %s असक्षम भयो: %s" + +#: ftparchive/cachedb.cc:114 +#, c-format +msgid "File date has changed %s" +msgstr "फाइल डेटाले %s परिवर्तन गर्यो" + +#: ftparchive/cachedb.cc:155 +msgid "Archive has no control record" +msgstr "संग्रह संग नियन्त्रण रेकर्ड छैन" + +#: ftparchive/cachedb.cc:267 +msgid "Unable to get a cursor" +msgstr "कर्सर प्राप्त गर्न असक्षम भयो" + +#: ftparchive/writer.cc:78 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: डाइरेक्ट्री %s पढ्न असक्षम\n" + +#: ftparchive/writer.cc:83 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "W: %s स्थिर गर्न असक्षम\n" + +#: ftparchive/writer.cc:125 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:127 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:134 +msgid "E: Errors apply to file " +msgstr "E: फाइलमा त्रुटिहरू लागू गर्नुहोस्" + +#: ftparchive/writer.cc:151 ftparchive/writer.cc:181 +#, c-format +msgid "Failed to resolve %s" +msgstr "%s हल गर्न असफल भयो" + +#: ftparchive/writer.cc:163 +msgid "Tree walking failed" +msgstr "ट्री हिडाईँ असफल भयो" + +#: ftparchive/writer.cc:188 +#, c-format +msgid "Failed to open %s" +msgstr "%s खोल्न असफल" + +#: ftparchive/writer.cc:245 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " DeLink %s [%s]\n" + +#: ftparchive/writer.cc:253 +#, c-format +msgid "Failed to readlink %s" +msgstr "लिङ्क पढ्न असफल %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid "Failed to unlink %s" +msgstr "अनलिङ्क गर्न असफल %s" + +#: ftparchive/writer.cc:264 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** %s मा %s लिङ्क असफल भयो" + +#: ftparchive/writer.cc:274 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr "यस %sB हिटको डि लिङ्क सिमा।\n" + +#: ftparchive/writer.cc:358 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:266 +#, c-format +msgid "Failed to stat %s" +msgstr " %s स्थिर गर्न असफल" + +#: ftparchive/writer.cc:386 +msgid "Archive had no package field" +msgstr "संग्रह संग कुनै प्याकेज फाँट छैन" + +#: ftparchive/writer.cc:394 ftparchive/writer.cc:603 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s संग कुनै अधिलेखन प्रविष्टि छैन\n" + +#: ftparchive/writer.cc:437 ftparchive/writer.cc:689 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " %s संभारकर्ता %s हो %s होइन\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "आन्तरीक त्रुटि, सदस्य तोक्न सक्दैन %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - स्मृति बाँडफाँड गर्न असफल भयो" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "%s खोल्न असफल" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "वैरुप्य गरिएको अधिलेखन %s रेखा %lu #१" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "वैरुप्य गरिएको अधिलेखन %s रेखा %lu #२" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "वैरुप्य गरिएको अधिलेखन %s रेखा %lu #३" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "अधिलेखन फाइल पढ्न असफल %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "अज्ञात सङ्कुचन अल्गोरिद्म '%s'" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "सङ्कुचन गरिएको निर्गात %s लाई सङ्कुचन सेटको आवश्यक्ता पर्दछ" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "सहायक प्रक्रियामा IPC पाइप सिर्जना गर्न असफल" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "FILE* सिर्जना गर्न असफल" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "काँटा गर्न असफल" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "सङ्कुचन शाखा" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "आन्तरीक त्रुटि, %s सिर्जना गर्न असफल" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "सहायक प्रक्रिया IPC सिर्जना गर्न असफल" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "सङ्कुचनकर्ता कार्यान्वयन गर्न असफल भयो" + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "सङ्कुचनविहिन कर्ता" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "सहायक प्रक्रिया/फाइलमा IO असफल भयो" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "MD5 गणना गर्दा पढ्न असफल भयो" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "समस्या अनलिङ्क भइरहेछ %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr " %s मा %s पुन:नामकरण असफल भयो" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "Y" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "संकलन त्रुटि रिजेक्स गर्नुहोस् - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "निम्न प्याकेजहरुले निर्भरताहरू भेटेनन्:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "तर %s स्थापना भयो" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "तर %s स्थापना हुनुपर्यो" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "तर यो स्थापनायोग्य छैन" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "तर यो अवास्तविक प्याकेज होइन" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "तर यो स्थापना भएन" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "तर यो स्थापना हुन गइरहेको छैन" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr "वा" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "निम्न नयाँ प्याकेजहरू स्थापना हुनेछन्:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "निम्न प्याकेजहरू हटाइनेछन्:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "निम्न प्याकेजहरू पछाडि राखिनेछन्:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "निम्न प्याकेजहरू स्तर वृद्धि हुनेछन्:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "निम्न प्याकेजहरू स्तरकम गरिनेछन्:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "निम्न भइरहेको प्याकेजहरू परिवर्तन हुनेछैन:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (%s कारणले) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"चेतावनी: निम्न आवश्यक प्याकेजहरू हटाइनेछन् ।\n" +"तपाईँ के गरिरहेको यकिन नभएसम्म यो काम गरिने छैन!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu स्तर वृद्धि गरियो, %lu नयाँ स्थापना भयो, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu पुन: स्थापना गरियो, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu स्तर कम गरियो, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu हटाउन र %lu स्तर वृद्धि गरिएन ।\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu पूर्णरुपले स्थापना भएन र हटाइएन ।\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "निर्भरताहरू सुधार गरिदैछ..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr "असफल भयो ।" + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "निर्भरताहरू सुधार गर्न असक्षम भयो" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "स्तर वृद्धि सेटलाई न्यूनतम गर्न असक्षम भयो" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr "काम भयो" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "यी सुधार गर्न तपाईँले `apt-get -f install' चलाउन पर्छ ।" + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "नभेटिएका निर्भरताहरू । -f प्रयोग गरेर प्रयास गर्नुहोस् ।" + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "चेतावनी: निम्न प्याकलेजहरू प्रणाणीकरण हुन सक्दैन! " + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "प्रमाणिकरण चेतावनी अधिलेखन भयो ।\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "यी प्याकेजहरू रूजू बिना स्थापना गर्नुहुन्छ [y/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "केही प्याकेजहरू प्रमाणीकरण हुन सक्दैन" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "त्यहाँ समस्याहरू छन् र हुन्छलाई जोड नगरिकन -y को प्रयोग भयो" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "आन्तरिक त्रुटि, स्थापना प्याकेजहरुलाई भाँचिएको प्याकेज भनिन्थ्यो!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "प्याकेजहरू हट्न चाहदैछन् तर हटाई अक्षम भइरहेछ ।" + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "आन्तरिक त्रुटि, आदेश समाप्त भएको छैन" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1800 cmdline/apt-get.cc:1833 +msgid "Unable to lock the download directory" +msgstr "डाउनलोड डाइरेक्ट्री ताल्चा मार्न असक्षम" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1881 cmdline/apt-get.cc:2117 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "स्रोतहरुको सूचि पढ्न सकिएन ।" + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "कस्तो नमिलेको.. साइजहरू मेल खाएन, apt@packages.debian.org इमेल गर्नुहोस्" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "संग्रहहरुको %sB/%sB प्राप्त गर्न आवश्यक ।\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "संग्रहहरुको %sB प्राप्त गर्न आवश्यक ।\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "अनप्याक गरिसके पछि थप डिस्क खाली ठाउँको %sB प्रयोग हुनेछ ।\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "%sB अनप्याक गरिसके पछि डिस्क खाली ठाउँ खाली हुनेछ ।\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1971 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr " %s मा खाली ठाऊँ निर्धारण गर्न सकिएन" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "तपाईँ संग %s मा पर्याप्त खाली ठाऊँ छैन ।" + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "त्रिभियल मात्र निर्दिष्ट गरिएको छ तर यो त्रिभियल सञ्चालन होइन ।" + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "हो,मैले भने जस्तै गर्नुहोस्!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"तपाईँले केही संभवत: हानिकारक काम गर्नुपर्छ ।\n" +"निरन्तरता दिन '%s' वाक्यांशमा टाइप गर्नुहोस् \n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "परित्याग गर्नुहोस् ।" + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "के तपाईँ निरन्तरता दिन चाहनुहुन्छ [Y/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2014 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "%s %s तान्न असफल भयो\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "केही फाइलहरू डाउनलोड गर्न असफल भयो" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2023 +msgid "Download complete and in download only mode" +msgstr "डाउनलोड समाप्त भयो र डाउनलोडमा मोड मात्रै छ" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"केही संग्रहहरू तान्न असक्षम भयो,apt-get अद्यावधिक चलिरहेछ वा हराइरहेको --fix-संगै प्रयास " +"गर्नुहुन्छ ?" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "हराइरहेको --fix-र स्वाप भइरहेको मेडिया हाल समर्थित भइरहेको छैन" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "हराइरहेको प्याकेजहरू सुधार्न असक्षम भयो ।" + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "स्थापना परित्याग गरिदैछ ।" + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "द्रष्टब्य, %s को सट्टा %s चयन भइरहेछ\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "%s फड्किदैछ, यो पहिल्यै स्थापना भयो र स्तरवृद्धि सेट भएको छैन ।\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "प्याकेज %s स्थापना भएन, त्यसैले हटेन\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "प्याकेज %s ...द्वारा उपलब्ध गराइएको अवास्तविक प्याकेज हो:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [स्थापना भयो]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "तपाईँले स्थापना गर्न स्पष्ट रुपमा एउटा चयन गर्नुहोस् ।" + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"प्याकेज %s उपलब्ध छैन, तर अर्को प्याकेज द्वारा सिफारिस प्याकेज हो ।\n" +"यसको मतलब प्याकेज हराइरहेको प्याकेज, बेकायम भयो\n" +" अर्को स्रोतबाट मात्र उपलब्ध हुन्छ\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "जे भए पनि निम्न प्याकेजहरूले यसलाई बदल्छ:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "प्याकेज %s संग कुनै स्थापना उमेद्वार छैन" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr " %s को पुन: स्थापना सम्भव छैन, यो डाउनलोड हुन सक्दैन ।\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s पहिल्यै नयाँ संस्करण हो ।\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr " '%s' को लागि '%s' निष्काशन फेला पार्न सकिएन" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr " '%s' को लागि '%s' संस्करण फेला पार्न सकिएन" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "%s को लागि चयन भएको संस्करण %s (%s)\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "अद्यावधिक आदेशले कुनै तर्कहरू लिदैन" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "सूचि डाइरेक्ट्री ताल्चा मार्न असफल" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"केही अनुक्रमणिका फाइलहरू डाउनलोड गर्न असफल भयो, तिनीहरू उपेक्षित भए, वा सट्टामा पुरानो " +"एउटा प्रयोग गरियो ।" + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "आन्तरिक त्रुटि,सबै स्तरवृद्धिले उत्तम गुण नष्ट गर्दछ" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "प्याकेज फेला पार्न सकिएन %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "द्रष्टब्य, रिजेक्स '%s' को लागि %s चयन गरिदैछ\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "तपाईँ यसलाई सुधार गर्न `apt-get -f install' चलाउन चाहनुहुन्छ:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"नभेटिएका निर्भरताहरू । प्याकेजहरू बिना 'apt-get -f install' प्रयास गर्नुहोस् ( वा " +"समाधान निर्दिष्ट गर्नुहोस्) ।" + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"केही प्याकेजहरू स्थापना हुन सक्दैन । यसको मतलब तपाईँले\n" +" एउटा असम्भव अवास्थाको अनुरोध गर्नु भएको छ वा यदि तपाईँले प्रयोग गर्नु भइरहेको केहि " +"प्याकेजहरुको आवश्यकता पर्ने अस्थिर\n" +" वितरण अहिले सम्म सिर्जना\n" +" भएको छैन वा आवगमन विनानै सर्यो ।" + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"तपाईँले एकल सञ्चालन मात्र अनुरोध गरे पछि\n" +" यो प्याकेज साधरण तरिकाले नितान्त स्थापनायोग्य देखिदैन र त्यो प्याकेज विरुद्धको\n" +" बग प्रतिवेदन भरिनेछ ।" + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "निम्न सूचनाले अवस्थालाई हल गर्न मद्दत गर्नेछ: " + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "भाँचिएका प्याकेजहरू" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "निम्न अतिरिक्त प्याकेजहरू स्थापना हुनेछन्:" + +#: cmdline/apt-get.cc:1674 +msgid "Suggested packages:" +msgstr "सुझाव दिएका प्याकेजहरू:" + +#: cmdline/apt-get.cc:1675 +msgid "Recommended packages:" +msgstr "सिफारिस गरिएका प्याकेजहरू:" + +#: cmdline/apt-get.cc:1695 +msgid "Calculating upgrade... " +msgstr "स्तर वृद्धि गणना गरिदैछ..." + +#: cmdline/apt-get.cc:1698 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "असफल भयो" + +#: cmdline/apt-get.cc:1703 +msgid "Done" +msgstr "काम भयो" + +#: cmdline/apt-get.cc:1768 cmdline/apt-get.cc:1776 +msgid "Internal error, problem resolver broke stuff" +msgstr "आन्तरिक त्रुटि,समस्या हलकर्ताले उत्तम गुण भाँच्यो " + +#: cmdline/apt-get.cc:1876 +msgid "Must specify at least one package to fetch source for" +msgstr "को लागि स्रोत तान्न कम्तिमा एउटा प्याकेज निर्दिष्ट गर्नुपर्छ" + +#: cmdline/apt-get.cc:1906 cmdline/apt-get.cc:2135 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "%s को लागि स्रोत प्याकेज फेला पार्न असफल भयो" + +#: cmdline/apt-get.cc:1950 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "पहिल्यै डाउनलोड भएका फाइलहरु फड्काइदैछ '%s'\n" + +#: cmdline/apt-get.cc:1974 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "तपाईँ संग %s मा पर्याप्त खाली ठाऊँ छैन" + +#: cmdline/apt-get.cc:1979 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "स्रोत संग्रहहरुको %sB/%sB प्राप्त गर्न आवश्यक छ ।\n" + +#: cmdline/apt-get.cc:1982 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "स्रोत संग्रहहरुको %sB प्राप्त गर्न आवश्यक छ ।\n" + +#: cmdline/apt-get.cc:1988 +#, c-format +msgid "Fetch source %s\n" +msgstr "स्रोत फड्काउनुहोस् %s\n" + +#: cmdline/apt-get.cc:2019 +msgid "Failed to fetch some archives." +msgstr "केही संग्रह फड्काउन असफल भयो ।" + +#: cmdline/apt-get.cc:2047 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr " %s मा पहिल्यै अनप्याक गरिएका स्रोतको अनप्याक फड्काइदैछ\n" + +#: cmdline/apt-get.cc:2059 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "अनप्याक आदेश '%s' असफल भयो ।\n" + +#: cmdline/apt-get.cc:2060 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "जाँच्नुहोस् यदि 'dpkg-dev' प्याकेज स्थापना भयो ।\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "निर्माण आदेश '%s' असफल भयो ।\n" + +#: cmdline/apt-get.cc:2096 +msgid "Child process failed" +msgstr "शाखा प्रक्रिया असफल भयो" + +#: cmdline/apt-get.cc:2112 +msgid "Must specify at least one package to check builddeps for" +msgstr "को लागि builddeps जाँच्न कम्तिमा एउटा प्याकेज निर्दष्ट गर्नुपर्छ" + +#: cmdline/apt-get.cc:2140 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "%s को लागि निर्माण-निर्भरता सूचना प्राप्त गर्न असक्षम भयो" + +#: cmdline/apt-get.cc:2160 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s कुनै निर्माणमा आधारित हुदैन ।\n" + +#: cmdline/apt-get.cc:2212 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "%s को लागि %s निर्भरता सन्तुष्ट हुन सकेन किनभने प्याकेज %s फेला पार्न सकिएन" + +#: cmdline/apt-get.cc:2264 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"%sको लागि %s निर्भरता सन्तुष्ट हुन सकेन किन भने प्याकेज %s को कुनै उपलब्ध संस्करणले संस्करण " +"आवश्यकताहरुलाई सन्तुष्ट पार्न सकेन " + +#: cmdline/apt-get.cc:2299 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "%s को लागि %s निर्भरता सन्तुष्ट पार्न असफल भयो: स्थापित प्याकेज %s अति नयाँ छ" + +#: cmdline/apt-get.cc:2324 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "%s को लागि %s निर्भरता सन्तुष्ट गर्न असफल: %s" + +#: cmdline/apt-get.cc:2338 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "%s को लागि निर्माण निर्भरताहरू सन्तुष्ट गर्न सकिएन । " + +#: cmdline/apt-get.cc:2342 +msgid "Failed to process build dependencies" +msgstr "निर्माण निर्भरताहरू प्रक्रिया गर्न असफल" + +#: cmdline/apt-get.cc:2374 +msgid "Supported modules:" +msgstr "समर्थित मोड्युलहरू:" + +#: cmdline/apt-get.cc:2415 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"उपयोग: apt-get [विकल्पहरू] आदेश\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get डाउनलोड गर्न र प्याकेजहरू स्थापना गर्नको लागि साधारण आदेश लाइन इन्टरफेस हो ।\n" +"बारम्बार प्रयोग भइरहने आदेशहरू अद्यावधिक र स्थापना हुन् ।\n" +"\n" +"\n" +"आदेशहरू:\n" +" अद्यावधिक गर्नुहोस् - प्याकेजहरुको नयाँ सूचिहरू पुन:प्राप्त गर्नुहोस्\n" +" स्तर वृद्धि गर्नुहोस् - एउटा स्तरवृद्धि सम्पादन गर्नुहोस्\n" +" स्थापना गर्नुहोस् - नयाँ प्याकेजहरू स्थापना गर्नुहोस् (pkg libc6 हो libc6.deb होइन)\n" +" हटाउनुहोस् - प्याकेजहरू हटाउनुहोस्\n" +" स्रोत - स्रोत संग्रहहरू डाउनलोड गर्नुहोस्\n" +" build-dep - स्रोत प्याकेजहरुको लागि निर्माण-निर्भरताहरू कनफिगर गर्नुहोस्\n" +" dist-upgrade - स्तरवृद्धि वितरण गर्नुहोस्, apt-get(8) हेर्नुहोस्\n" +" dselect-upgrade - dselect चयनहरू पछ्याउनुहोस्\n" +" सफा गर्नुहोस् - डाउनलोड गरिएको संग्रह फाइलहरू मेट्नुहोस्\n" +" स्वचालित सफा - पुरानो डाउनलोड भएको संग्रह पाइलहरू मेट्नुहोस्\n" +" जाँच्नुहोस् - त्यहाँ कुनै भाँचिएका निर्भरताहरू छैन भन्ने रूजू गर्नुहोस्\n" +"\n" +"विकल्पहरू:\n" +" -h यो मद्दत पाठ.\n" +" -q लगयोग्य निर्गात - कुनै प्रगति सूचि छैन\n" +" -qq त्रुटिहरुको लागि निर्गात बाहेक केही छैन\n" +" -d डाउनलोड मात्र - संग्रहहरू स्थापना वा अनप्याक नगर्नुहोस्\n" +" -s No-act. Perform ordering simulation\n" +" -y सबै क्वेरीहरुलाई हो मान्नुहोस् र दूषित नबनाउनुहोस्\n" +" -f यदि पूर्णरुपले जाँच असफल भयो भने निरन्तरता दिने प्रयत्न गर्नुहोस्\n" +" -m यदि संग्रहहरु स्थानियकरण योग्य छैन भने निरन्तरता दिने प्रयत्न दिनुहोस्\n" +" -u स्तर वृद्धि प्याकेजहरुको सूचि राम्रो संग देखाउनुहोस्\n" +" -b यसलाई तानिसके पछि स्रोत प्याकेज निर्माण गर्नुहोस्\n" +" -V भरबोस संस्करण नम्बरहरू देखाउनुहोस्\n" +" -c=? यो कनफिगरेसन फाइल पढ्नुहोस्\n" +" -o=? एउटा स्वेच्छाचारी कनफिगरेसन विकल्प सेट गर्नुहोस्, जस्तै -o dir::cache=/tmp\n" +"धेरै सूचना र विकल्पको लागि apt-get(8), sources.list(5) र apt.conf(5) manual\n" +"pages हेर्नुहोस् ।\n" +" APT संग सुपर काउ शक्तिहरू छ ।\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "हान्नुहोस्" + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "प्राप्त गर्नुहोस्:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ign " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Err " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "%s (%sB/s) मा %sB मा तानियो\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [काम गरिरहेको]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"मेडिया परिवर्तन: कृपया डिस्क लेबुल ड्राइभ '%s' मा घुसाउनुहोस्\n" +" '%s'\n" +"र इन्टर थिच्नुहोस्\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "अज्ञात प्याकेज रेकर्ड!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"उपयोग: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs प्याकेज फाइलहरू क्रमबद्ध गर्ने साधारण उपकरण हो । -s विकल्प कस्तो खालको " +"फाइल हो भनी इंकित गर्न प्रयोग गरिन्छ ।\n" +"\n" +"विकल्पहरू:\n" +" -h यो मद्दत पाठ\n" +" -s क्रमबद्ध स्रोत फाइल प्रयोग गर्नुहोस्\n" +" -c=? यो कनफिगरेसन फाइल पढ्नुहोस्\n" +" -o=? एउटा स्वेच्छाचारी कनफिगरेसन विकल्प सेट गर्नुहोस्, जस्तै -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "खराब पूर्वनिर्धारण सेटिङ्ग!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "निरन्तरता दिन इन्टर थिच्नुहोस् ।" + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "अनप्याक गर्दा केही त्रुटिहरू देखा पर्यो । म कनफिगर गर्न गइरहेको छु" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "स्थापना भएको प्याकेजहरू । यसले नक्कली त्रुटिहरुमा नतिजा गर्न सक्छ" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "वा त्रुटि हरटाइरहेको निर्भरताहरुले गरेको हो । यो ठीक छ, मात्र त्रुटिहरू" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"दिएको संदेशहरू महत्वपूर्ण छ । कृपया तिनीहरू निश्चित गर्नुहोस् र चलाउनुहोस् [I]फेरी स्थापना " +"गर्नुहोस्" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "उपलब्ध सूचना गाँभिदैछ" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "पाइपहरू सिर्जना गर्न असफल" + +#: apt-inst/contrib/extracttar.cc:143 +msgid "Failed to exec gzip " +msgstr "gzip कार्यन्वयन गर्न असफल" + +#: apt-inst/contrib/extracttar.cc:180 apt-inst/contrib/extracttar.cc:206 +msgid "Corrupted archive" +msgstr "संग्रह दूषित भयो" + +#: apt-inst/contrib/extracttar.cc:195 +msgid "Tar checksum failed, archive corrupted" +msgstr "टार चेकसम असफल भयो, संग्रह दूषित भयो" + +#: apt-inst/contrib/extracttar.cc:298 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "अज्ञात टार हेडर प्रकार %u, सदस्य %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "अवैध संग्रह हस्ताक्षर" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "संग्रह सदस्य हेडर पढ्दा त्रुटि " + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "अवैध संग्रह सदस्य हेडर" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "संग्रह अति छोटो छ" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "संग्रह हेडरहरू पढ्न असफल" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "अहिलेसम्म लिङ्क गरिएको नोडमा बोलाइएको ड्रपनोड" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "ह्यास तत्व तोक्न असफल भयो" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "मोड बाँड्न असफल भयो" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "थपमोडमा आन्तरिक त्रुटि" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "मोड अधिलेखन गर्ने प्यास गरिदै, %s -> %s र %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "मोडको डबल थप %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "नक्कली कनफिगगरेसन फाइल %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "फाइल %s लेख्न असफल भयो" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "%s फाइल बन्द गर्न असफल भयो" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "बाटो %s अति लामो छ " + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "एक भन्दा बढी %s अनप्याक गरिदैछ" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "डाइरेक्ट्री %s फेरियो " + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "प्याकेज लक्षित मोडमा लेख्ने प्यास गर्दैछ %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "घुम्ती बाटो अति लामो छ" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "डाइरेक्ट्री %s डाइरेक्ट्री विहिन द्वारा बदलिदैछ" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "यसको ह्यास बाल्टीमा नोड स्थित गर्न असफल भयो" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "बाटो अति लामो छ" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr " %s को लागि संस्करन बिना अधिलेखन प्याकेज मेल खायो" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "फाइल %s/%s ले प्याकेज %s मा एउटा अधिलेखन गर्दछ" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "%s पढ्न असफल भयो" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "%s स्थिर गर्न असक्षम भयो" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "%s लाई फेरी सार्न असफल भयो" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "%s सिर्जना गर्न असफल भयो" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "%sinfo स्थिर गर्न असफल भयो" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "सूचना र टेम्प डाइरेक्ट्रीहरू एउटै फाइल प्रणालीमा हुनपर्छ" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "प्याकेज सूचिहरू पढिदैछ" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "प्रशासनिक डाइरेक्ट्री %sinfo मा परिवर्तन गर्न असफल भयो" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "प्याकेज नाम प्राप्त गर्दा आन्तरिक त्रुटि" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "फाइल सूचि पढिदैछ" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"सूचि फाइल '%sinfo/%s' खोल्न असफल भयो । यदि तपाईँ यो फाइल पुन:भण्डारण गर्नु सक्नुहुन्न " +"भने यसलाई खाली गर्नुहोस् र तुरुन्तै प्याकेजको उही संस्करण पुन-स्थापना गर्नुहोस् !" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "सूचि फाइल %sinfo/%s पढ्न असफल भयो" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "नोड प्राप्त गर्दा आन्तरिक त्रुटि" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "घुमाउरो फाइल %sdiversions खोल्न असफल भयो" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "घुमाउरो फाइल दूषित भयो" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "घुमाउरो फाइलमा अवैध लाइन:%s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "आन्तरिक त्रुटिले मोड थपिरहेछ" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "pkg क्यास पहिले सुरुवात हुनुपर्छ" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "प्याकेज फेला पार्न असफल भयो: हेडर, अफसेट %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "वस्तु स्थिति फाइलमा खराब कनफिग फाइल । अफसेट %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "MD5 पद वर्णन गर्दा त्रुटि । अफसेट %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "यो वैध DEB संग्रह होइन, '%s' सदस्य हराइरहेछ" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "यो वैध DEB संग्रह होइन, यो संग '%s' वा '%s' सदस्य छैन" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "%s मा परिवर्तन गर्न सकिदैन" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "आन्तरिक त्रुटि, सदस्य तोक्न सकिदैन" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "वैध नियन्त्रण फाइल स्थित गर्नु असफल भयो" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "पद वर्णन गर्न नसकिने नियन्त्रण फाइल" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "सिडी रोम डेटाबेस पढ्न असक्षम %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"कृपया APT ले यो सिडी रोमलाई चिन्नको लागि apt-cdrom प्रयोग गर्नुहोस् । apt-get " +"अद्यावधिक नयाँ सिडी रोमहरू थप्नको लागि प्रयोग गरिदैन" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "गलत सिडी रोम" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "%s मा सिडी रोम अनमाउन्ट गर्न असक्षम भयो, यो अहिले प्रयोगमा हुन सक्छ ।" + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "डिस्क फेला परेन ।" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "फाइल फेला परेन " + +#: methods/copy.cc:42 methods/gpgv.cc:275 methods/gzip.cc:133 +#: methods/gzip.cc:142 +msgid "Failed to stat" +msgstr "स्थिर गर्न असफल भयो" + +#: methods/copy.cc:79 methods/gpgv.cc:272 methods/gzip.cc:139 +msgid "Failed to set modification time" +msgstr "परिमार्जन समय सेट असफल भयो" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "अवैध URl, स्थानिय URIS // संग सुरू हुन सक्दैन" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "लगइन भइरहेछ" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "समान नाम निर्धारण गर्न असक्षम भयो" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "स्थानिय नाम निर्धारण गर्न असक्षम भयो" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "सर्भरले जडान अस्वीकार गर्यो र भन्यो: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "प्रयोगकर्ता असफल भयो, सर्भरले भन्यो: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "पास असफल भयो, सर्भरले भन्यो: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"प्रोक्सी सर्भर निर्दिष्ट गरियो तर कुनै स्क्रिफ्ट लगइन भएन, Acquire::ftp::ProxyLogin " +"खाली छ ।" + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "लगइन स्क्रिफ्ट आदेश '%s' असफल भयो, सर्भरले भन्यो: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "टाइप असफल भयो: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "जडान समय सकियो" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "सर्भरले जडान बन्द गर्यो" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "त्रुटि पढ्नुहोस्" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "एउटा प्रतिक्रियाले बफर अधिप्रवाह गर्यो" + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "प्रोटोकल दूषित" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "त्रुटि लेख्नुहोस्" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "एउटा सकेट सिर्जना गर्न सकेन" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "डेटा सकेट जडान गर्न सकिएन, जडान समय सकियो" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "निस्क्रिय सकेट जडान गर्न सकिएन" + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo सुन्ने सकेट प्राप्त गर्न असक्षम भयो" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "सकेट बाँध्न सकिएन" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "सकेटमा सुन्न सकिएन" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "सकेट नाम निर्धारण गर्न सकिएन" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "पोर्ट आदेश पठाउन असक्षम भयो" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "अज्ञात ठेगाना परिवार %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT असफल भयो, सर्भरले भन्यो: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "डेटा सकेटको जडान समय सकियो" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "जडान स्वीकार गर्न असक्षम भयो" + +#: methods/ftp.cc:864 methods/http.cc:958 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "समस्या द्रुतान्वेषण फाइल" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "फाइल तान्न असक्षम भयो, सर्भरले भन्यो '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "डेटा सकेट समय सकियो" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "डेटा स्थान्तरण असफल भयो, सर्भरले भन्यो '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "क्वेरी" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "आह्वान गर्न असक्षम भयो" + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "%s (%s) मा जडान गरिदैछ" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "%s (f=%u t=%u p=%u) को लागि सकेट सिर्जना गर्न सकिएन" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr " %s:%s (%s) मा जडान सुरुवात गर्न सकेन" + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "%s:%s (%s) मा जडान गर्न सकिएन, जडान समय सकियो" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr " %s:%s (%s) मा जडान गर्न सकिएन ।" + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "%s मा जडान गरिदैछ" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "'%s' हल गर्न सकिएन" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "'%s' हल गर्दा अस्थायी असफल" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr " '%s:%s' (%i) हल गर्दा केही दुष्ट घट्यो" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "%s %s मा जडान गर्न असफल भयो:" + +#: methods/gpgv.cc:64 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "कुञ्जी घण्टी पहुँच गर्न सकिएन: '%s'" + +#: methods/gpgv.cc:99 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "E: प्राप्त गर्नेबाट तर्क सूचि::gpgv::अति लामो विकल्पहरू अवस्थित छ ।" + +#: methods/gpgv.cc:198 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "आन्तरिक त्रुटि: असल हस्ताक्षर, तर कुञ्जी औठाछाप निर्धारण गर्न सकिएन?!" + +#: methods/gpgv.cc:203 +msgid "At least one invalid signature was encountered." +msgstr "कम्तिमा एउटा अवैध हस्ताक्षर विरोध भयो ।" + +#: methods/gpgv.cc:207 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "हस्ताक्षर रूजू गर्न '%s' कार्यन्वयन गर्न सकिएन (के gnupg स्थापना भयो?)" + +#: methods/gpgv.cc:212 +msgid "Unknown error executing gpgv" +msgstr "gpgv कार्यन्वयन गर्दा अज्ञात त्रुटि" + +#: methods/gpgv.cc:243 +msgid "The following signatures were invalid:\n" +msgstr "निम्न हस्ताक्षरहरू अवैध छन्:\n" + +#: methods/gpgv.cc:250 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "निम्न हस्ताक्षरहरू रूजू हुन सक्दैन किन भने सार्वजनिक कुञ्जी उपलब्ध छैन:\n" + +#: methods/gzip.cc:57 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "%s को लागि पाइप खोल्न सकिएन" + +#: methods/gzip.cc:102 +#, c-format +msgid "Read error from %s process" +msgstr "%s प्रक्रियाबाट त्रुटि पढ्नुहोस् " + +#: methods/http.cc:376 +msgid "Waiting for headers" +msgstr "हेडरहरुको लागि पर्खिदैछ" + +#: methods/http.cc:522 +#, c-format +msgid "Got a single header line over %u chars" +msgstr " %u chars माथि एकल हेडर लाइन प्राप्त गर्नुहोस्" + +#: methods/http.cc:530 +msgid "Bad header line" +msgstr "खराब हेडर लाइन" + +#: methods/http.cc:549 methods/http.cc:556 +msgid "The HTTP server sent an invalid reply header" +msgstr "HTTP सर्भरले अवैध जवाफ हेडर पठायो" + +#: methods/http.cc:585 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "HTTP सर्भरले अवैध सामग्री-लम्बाई हेडर पठायो" + +#: methods/http.cc:600 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "HTTP सर्भरले अवैध सामग्री-दायरा हेडर पठायो" + +#: methods/http.cc:602 +msgid "This HTTP server has broken range support" +msgstr "HTTP सर्भर संग भाँचिएको दायरा समर्थन छ" + +#: methods/http.cc:626 +msgid "Unknown date format" +msgstr "अज्ञात मिति ढाँचा" + +#: methods/http.cc:773 +msgid "Select failed" +msgstr "असफल चयन गर्नुहोस्" + +#: methods/http.cc:778 +msgid "Connection timed out" +msgstr "जडान समय सकियो" + +#: methods/http.cc:801 +msgid "Error writing to output file" +msgstr "निर्गात फाइलमा त्रुटि लेखिदैछ" + +#: methods/http.cc:832 +msgid "Error writing to file" +msgstr "फाइलमा त्रुटि लेखिदैछ" + +#: methods/http.cc:860 +msgid "Error writing to the file" +msgstr "फाइलमा त्रुटि लेखिदैछ" + +#: methods/http.cc:874 +msgid "Error reading from server. Remote end closed connection" +msgstr "सर्भरबाट त्रुटि पढिदैछ । दूर गन्तब्य बन्द जडान" + +#: methods/http.cc:876 +msgid "Error reading from server" +msgstr "सर्भरबाट त्रुटि पढिदैछ" + +#: methods/http.cc:1107 +msgid "Bad header data" +msgstr "खराब हेडर डेटा" + +#: methods/http.cc:1124 +msgid "Connection failed" +msgstr "जडान असफल भयो" + +#: methods/http.cc:1215 +msgid "Internal error" +msgstr "आन्तरिक त्रुटि" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "एउटा खाली फाइल mmap बनाउन सकिएन" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "%lu बाइटहरुको mmap बनाउन सकिएन" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "चयन %s फेला पार्न सकिएन" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "नचिनिएको टाइप संक्षिप्त रुप: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "कनफिगरेसन फाइल खोलिदैछ %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "लाइन %d अति लामो छ (अधिक्तम %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "वाक्य संरचना त्रुटि %s:%u: बन्द कुनै नाम बिना सुरू हुन्छ ।" + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "वाक्य संरचना त्रुटि %s:%u: वैरुप गरिएको ट्याग" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "वाक्य संरचना त्रुटि %s:%u: मान पछाडि अतिरिक्त जंक" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "वाक्य संरचना त्रुटि %s:%u: निर्देशनहरू माथिल्लो तहबाट मात्र हुन्छ" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "वाक्य संरचना त्रुटि %s:%u: अति धेरै नेस्टेड समावेश गर्दछ" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "वाक्य संरचना त्रुटि %s:%u: यहाँ बाट समावेश गरेको" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "वाक्य संरचना त्रुटि %s:%u: समर्थन नभएको डाइरेक्टिभ '%s'" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "वाक्य संरचना त्रुटि %s:%u:फाइलको अन्त्यमा अतिरिक्त जंक" + +#: apt-pkg/contrib/progress.cc:154 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... त्रुटि!" + +#: apt-pkg/contrib/progress.cc:156 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... गरियो" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "आदेश लाइन विकल्प '%c' [%s बाट] ज्ञात छैन ।" + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "आदेश लाइन विकल्प %s बुझिएन" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "आदेश लाइन विकल्प %s बूलियन छैन" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "विकल्प %s लाई एउटा तर्कको आवश्यकता पर्दछ ।" + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "विकल्प %s: कनफिगरेसन वस्तु विशिष्टिकरण संग एउटा = हुनुपर्छ ।" + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "विकल्प %s लाई एउटा इन्टिजर तर्कको आवश्यक पर्दछ, '%s' होइन" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "विकल्प '%s' अति लामो छ" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "अर्थ %s बुझिएन, सत्य वा झूठो प्रयास गर्नुहोस् ।" + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "अवैध सञ्चालन %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "माउन्ट बिन्दु %s स्थिर गर्न असक्षम" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "%s मा परिवर्तन गर्न असक्षम" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "सिडी रोम स्थिर गर्न असफल भयो" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "ताल्चा मारिएको फाइल मात्र पढ्नको लागि ताल्चा मार्न प्रयोग गरिएको छैन %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "ताल्चा मारिएको फाइल खोल्न सकिएन %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "nfs माउन्ट गरिएको लक फाइलको लागि लक प्रयोग गरिएको छैन %s" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "ताल्चा प्राप्त गर्न सकिएन %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr " %s को लागि पर्खिरहेको तर यो त्यहाँ छैन" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "सहायक प्रक्रिया %s ले खण्डिकरण गल्ति प्राप्त भयो ।" + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "सहायक प्रक्रिया %s ले एउटा त्रुटि कोड फर्कायो (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "सहायक प्रक्रिया %s अनपेक्षित बन्द भयो" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "फाइल %s खोल्न सकिएन" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "पड्नुहोस्, अहिले सम्म %lu पढ्न छ तर कुनै बाँकी छैन" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "लेख्नुहोस्, अहिले सम्म %lu लेख्न छ तर सकिदैन " + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "फाइल बन्द गर्दा समस्या" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "फाइल अनलिङ्क गर्दा समस्या" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "फाइल गुप्तिकरण गर्दा समस्या" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "खाली प्याकेज क्यास" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "प्याकेज क्यास फाइल दूषित भयो " + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "प्याकेज क्यास फाइल एउटा अमिल्दो संस्करण हो" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "यो APT ले संस्करण प्रणालीलाई समर्थन गर्दैन '%s'" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "प्याकेज क्यास विभिन्न वास्तुकलाको लागि निर्माण भएको हो" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "आधारित" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "पुन:आधारित" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "सुझाव दिन्छ" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "सिफारिस गर्दछ" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "द्वन्दहरू" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "बदल्छ" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "वेकायमहरू" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "महत्वपूर्ण" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "आवश्यक" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "मानक" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "वैकल्पिक" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "अतिरिक्त" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "निर्भरता ट्री निर्माण गरिदैछ" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "उमेद्वार संस्करणहरू" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "निर्भरता सिर्जना" + +#: apt-pkg/tagfile.cc:72 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "प्याकेज फाइल पद वर्णन गर्न असक्षम %s (१)" + +#: apt-pkg/tagfile.cc:102 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "प्याकेज फाइल पद वर्णन गर्न असक्षम %s (२)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "वैरुप्य लाइन %lu स्रोत सूचिमा %s (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "वैरुप्य लाइन %lu स्रोत सूचिमा %s (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "वैरुप्य लाइन %lu स्रोत सूचिमा %s (URI पद वर्णन)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "वैरुप्य लाइन %lu स्रोत सूचिमा %s (पूर्ण dist)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "वैरुप्य लाइन %lu स्रोत सूचिमा %s (dist पद वर्णन )" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "%s खोलिदैछ" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "लाइन %u स्रोत सूचि %s मा अति लामो छ ।" + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "वैरुप्य लाइन %u स्रोत सूचिमा %s (प्रकार)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "स्रोत सूची %s भित्र %u लाइनमा टाइप '%s' ज्ञात छैन" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "वैरुप्य लाइन %u स्रोत सूचिमा %s (बिक्रता आइडी)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"द्वन्द/पुन-आधारित लूपको कारणले गर्दा स्थापना चलाउनको लागि अस्थायी रुपमा प्याकेज %s " +"हटाउनु पर्नेछ । यो प्राय नराम्रो हो, तर यदि तपाईँ यो साँच्चै गर्न चाहनुहुन्छ भने, APT::" +"Force-LoopBreak विकल्प सक्रिय गर्नुहोस् ।" + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "अनुक्रमणिका फाइल प्रकार '%s' समर्थित छैन" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "प्याकेज %s पुन:स्थापना हुन चाहन्छ, तर यसको लागि मैले एउटा संग्रह फेला पार्न सकिन ।" + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"त्रुटि, pkgProblemResolver:: समाधानले विच्छेदन सिर्जना गर्दछ, यो भइरहेको प्याकेजहरुको " +"कारणले गर्दा हो ।" + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "समस्याहरू सुधार्न असक्षम भयो, तपाईँले प्याकेजहरु भाँच्नुभयो ।" + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "आंशिक सूचिहरुको डाइरेक्ट्री %s हराइरहेछ ।" + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "आंशिक संग्रह डाइरेक्ट्री %s हराइरहेछ ।" + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "%li को %li फाइल पुन:प्राप्त गरिदैछ (%s बाँकी छ)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "%li को %li फाइल पुन:प्राप्त गरिदैछ" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "विधि ड्राइभर %s फेला पार्न सकिएन ।" + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "विधि %s सही रुपले सुरू हुन सकेन" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "कृपया डिस्क लेबुल: '%s' ड्राइभ '%s'मा घुसउनुहोस् र इन्टर थिच्नुहोस् । " + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "प्याकिङ्ग प्रणाली '%s' समर्थित छैन" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "उपयुक्त प्याकिङ्ग प्रणाली प्रकार निर्धारन गर्न असक्षम भयो" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "%s स्थिर गर्न असक्षम भयो ।" + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "तपाईँको स्रोत सूचिमा केही 'source' URIs राख्नुहोस्" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "प्याकेज सूचीहरू वा वस्तुस्थिति फाइल पद वर्णन गर्न वा खोल्न सकिएन ।" + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "यो समस्याहरू सुधार्न तपाईँ apt-get अद्यावधिक चलाउन चाहनुहुन्छ" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "प्राथमिकता फाइलमा अवैध रेकर्ड, कुनै प्याकेज हेडर छैन" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "पिन टाइप %s बुझ्न सकिएन " + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "पिनको लागि कुनै प्राथमिकता (वा शून्य) निर्दिष्ट छैन" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "क्यास संग एउटा नमिल्दो संस्करण प्रणाली छ" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr " %s प्रक्रिया गर्दा त्रुटि देखा पर्यो (नयाँ प्याकेज)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr " %s प्रक्रिया गर्दा त्रुटि देखा पर्यो (प्याकेज १ प्रयोग गर्नुहोस्)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr " %s प्रक्रिया गर्दा त्रुटि देखा पर्यो (प्याकेज २ प्रयोग गर्नुहोस्)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr " %s प्रक्रिया गर्दा त्रुटि देखा पर्यो (नयाँ फाइल संस्करण १)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr " %s प्रक्रिया गर्दा त्रुटि देखा पर्यो (नयाँ संस्करण १)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr " %s प्रक्रिया गर्दा त्रुटि देखा पर्यो (प्याकेज ३ प्रयोग गर्नुहोस्)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr " %s प्रक्रिया गर्दा त्रुटि देखा पर्यो (नयाँ संस्करण २)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "वाऊ, APT ले सक्षम गरेको प्याकेज नामहरुको नम्बरलाई तपाईँले उछिन्नुभयो । " + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "वाऊ, APT ले सक्षम गरेको संस्करणहरुको नम्बरलाई तपाईँले उछिन्नुभयो । " + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "वाऊ, APT ले सक्षम गरेको निर्भरताहरुको नम्बरलाई तपाईँले उछिन्नुभयो । " + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr " %s प्रक्रिया गर्दा त्रुटि देखा पर्यो (pkg फेला पार्नुहोस् )" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr " %s प्रक्रिया गर्दा त्रुटि देखा पर्यो (संकलन फाइलले उपलब्ध गर्दछ)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "फाइल निर्भरताहरू प्रक्रिया गर्दा प्याकेज %s %s फेला परेन" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "स्रोत प्याकेज सूची %s स्थिर गर्न सकिएन " + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "फाइल उपलब्धताहरू संकलन गरिदैछ" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "स्रोत क्यास बचत गर्दा IO त्रुटि" + +#: apt-pkg/acquire-item.cc:126 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "पुन:नामकरण असफल गरियो, %s (%s -> %s) ।" + +#: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:945 +msgid "MD5Sum mismatch" +msgstr "MD5Sum मेल भएन" + +#: apt-pkg/acquire-item.cc:640 +msgid "There is no public key available for the following key IDs:\n" +msgstr "निम्न कुञ्जी IDs को लागि कुनै सार्वजनिक कुञ्जी उपलब्ध छैन:\n" + +#: apt-pkg/acquire-item.cc:753 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"%s प्याकेजको लागि मैले फाइल स्थित गर्न सकिन । यसको मतलब तपाईँले म्यानुल्ली यो प्याकेज " +"निश्चित गर्नुहोस् । (arch हराएरहेको कारणले) " + +#: apt-pkg/acquire-item.cc:812 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"%s प्याकेजको लागि मैले फाइल स्थित गर्न सकिन । यसको मतलब तपाईँले म्यानुल्ली यो प्याकेज " +"निश्चित गर्नुहोस् ।" + +#: apt-pkg/acquire-item.cc:848 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "प्याकेज अनुक्रमणिका फाइलहरू दूषित भए । प्याकेज %s को लागि कुनै फाइलनाम: फाँट छैन ।" + +#: apt-pkg/acquire-item.cc:935 +msgid "Size mismatch" +msgstr "साइज मेल खाएन" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "बिक्रता ब्ल्क %s ले कुनै औठाछाप समाविष्ट गर्दैन" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"सिडी रोम माउन्ट विन्दु प्रयोग गरिदैछ %s\n" +"सिडी रोम माउन्ट गरिदैछ\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "परिचय गराइदैछ.." + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "लेबुल भण्डारण गर्नुहोस्:%s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "सिडी रोम माउन्ट विन्दु प्रयोग गरिदैछ %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "सिडी रोम अनमाउन्ट गरिदैछ\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "डिस्को लागि पर्खिदै...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "सिडी रोम माउन्ट गरिदै...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "अनुक्रमणिका फाइलहरुको लागि डिस्क स्क्यान गरिदैछ...\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr " %i प्याकेज अनुक्रमणिकाहरू, %i स्रोत अनुक्रमणिका र %i हस्ताक्षरहरू फेला परे\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "त्यो वैध नाम होइन, फेरी प्रयास गर्नुहोस् ।\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"यो डिस्कको नाम:\n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "प्यकेज सूचिहरू प्रतिलिपी गरिदैछ..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "नयाँ स्रोत सूचि लेखिदैछ\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "यो डिस्कको लागि स्रोत सूचि प्रविष्टिहरू:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "सिडी रोम अनमाउन्ट गरिदैछ..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "%i रेकर्डहरू लेखियो ।\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "हराइरहेको फाइल %i हरू संगै %i रेकर्डहरू लेख्नुहोस् ।\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "मेल नखाएका फाइल %i हरू संगै %i रेकर्डहरू लेख्नुहोस् ।\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "हराइरहेको फाइल %i हरू र मेल नखाएका फाइल %i हरू संगै %i रेकर्डहरू लेख्नुहोस् ।\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr " %s तयार गरिदैछ" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr " %s अनप्याक गरिदैछ" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr " %s कनफिगर गर्न तयार गरिदैछ" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr " %s कनफिगर गरिदैछ" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr " %s स्थापना भयो" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr " %s हटाउन तयार गरिदैछ" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr " %s हटाइदैछ" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr " %s हट्यो" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr " %s पूर्ण रुपले हटाउन तयार गरिदैछ" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr " %s पूर्ण रुपले हट्यो" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "जडान असमायिक बन्द भयो" diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 0000000..6434942 --- /dev/null +++ b/po/nl.po @@ -0,0 +1,2816 @@ +# advanced package transfer - apt message translation catalog +# guus sliepen , 2002. +# jochem berends , 2002. +# wannes soenen , 2002. +# +msgid "" +msgstr "" +"Project-Id-Version: apt\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-10-17 22:35+0100\n" +"Last-Translator: Bart Cornelis \n" +"Language-Team: debian-l10n-dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Pakket %s versie %s heeft een niet-voldane vereiste:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Kan pakket %s niet vinden" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Totaal aantal pakketnamen: " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Normale pakketten: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Zuiver virtuele pakketten: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Losstaande virtuele pakketten: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Gemengde virtuele pakketten: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Ontbrekend: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Totaal aantal verschillende versies: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Totaal aantal vereisten: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Totaal aantal versie/bestand-relaties: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Totaal aantal 'Voorziet'-toewijzingen " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Totaal aantal geglobde strings: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Totale hoeveelheid vereisten-versieruimte: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Totale onbenutte ruimte: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Totale hoeveelheid verantwoorde ruimte: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Pakketbestand %s is niet meer gesynchroniseerd." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "U dient precies één patroon op te geven" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Geen pakketten gevonden" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Pakketbestanden:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "Cache loopt niet synchroon, kan pakketbestand niet 'x-ref'-en" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Vastgepinde pakketten:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(niet gevonden)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Geïnstalleerd: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(geen)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Kandidaat: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Pakketpin: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Versietabel:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s voor %s %s gecompileerd op %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Gebruik: apt-cache [opties] opdracht\n" +" apt-cache [opties] add bestand1 [bestand2 ...]\n" +" apt-cache [opties] showpkg pakket1 [pakket2 ...]\n" +" apt-cache [opties] showsrc pakket1 [pakket2 ...]\n" +"\n" +"apt-cache is een laagniveau-hulpmiddel waarmee u de binaire\n" +"cachebestanden van apt kunt manipuleren, en informatie\n" +"daaruit kunt opvragen.\n" +"Opdrachten:\n" +" add - Voeg een pakketbestand toe aan de broncache\n" +" gencaches - Bouw zowel het pakket- als de broncache\n" +" showpkg - Toon algemene informatie over een enkel pakket\n" +" showsrc - Toon bronrecords\n" +" stats - Toon enkele basisstatistieken\n" +" dump - Toon het gehele bestand in een compacte vorm\n" +" dumpavail - Print een beschikbaarheidsbestand op stdout\n" +" unmet - Toon niet voldane vereisten\n" +" search - Toon lijst met pakketten die met regexpatroon overeenkomen\n" +" show - Toon een leesbaar dossier voor het pakket\n" +" depends - Toon de vereisten voor een pakket\n" +" rdepends - Toon de pakketten die afhankelijk zijn van een pakket\n" +" pkgnames - Toon de namen van alle pakketten\n" +" dotty - Genereer pakketgrafen voor GraphVis\n" +" xvcg - Genereer pakketgrafen voor xvcg\n" +" policy - Toon beleidsinstellingen\n" +"\n" +"Opties:\n" +" -h Deze hulptekst.\n" +" -p=? De pakketcache.\n" +" -s=? De broncache.\n" +" -q Voortgangsindicator uitschakelen.\n" +" -i Toon alleen belangrijke vereisten voor unmet opdracht.\n" +" -c=? Lees dit configuratiebestand.\n" +" -o=? Stel een willekeurige optie in, b.v. -o dir::cache=/tmp\n" +"\n" +"Zie de apt-cache(8) en apt.conf(5) handleidingen voor meer informatie.\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "" +"Gelieve een naam voor deze schijf op te geven, zoals 'Debian 2.1r1 Schijf 1'" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Gelieve een schijf in het station te plaatsen en op 'enter' te drukken" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Dit proces dient herhaald te worden voor alle CD's in uw set." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Argumenten niet in paren" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Gebruik: apt-config [opties] opdracht\n" +"\n" +"apt-config is een eenvoudig programma om het APT-configuratiebestand te " +"lezen\n" +"\n" +"Opdrachten:\n" +" shell - Shell modus\n" +" dump - Toon de configuratie\n" +"\n" +"Opties:\n" +" -h Deze hulptekst.\n" +" -c=? Lees dit configuratiebestand.\n" +" -o=? Stel een willekeurige optie in, b.v. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s is geen geldig DEB-pakket." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Gebruik: apt-extracttemplates bestand1 [bestand2 ...]\n" +"\n" +"apt-extracttemplates is een programma om configuratie- en " +"sjablooninformatie\n" +"uit Debian pakketten te halen.\n" +"\n" +"Opties:\n" +" -h Deze hulptekst.\n" +" -t Stel de tijdelijke map in.\n" +" -c=? Lees dit configuratiebestand.\n" +" -o=? Stel een willekeurige optie in, b.v. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Kan niet naar %s schrijven" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Kan versie van debconf niet bepalen. Is debconf geïnstalleerd?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Pakket-extensielijst is te lang" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Fout bij het verwerken van map %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Bron-extensielijst is te lang" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Fout bij wegschrijven van de koptekst naar het 'contents'-bestand" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Fout bij het verwerken van de inhoud van %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Gebruik: apt-ftparchive [opties] commando\n" +"\n" +"Commandos': packages [voorrangsbestand [padprefix]]\n" +" sources [voorrangsbestand [padprefix]]\n" +" contents \n" +" release \n" +" generate config [groepen]\n" +" clean config\n" +"\n" +"Met apt-ftparchive genereert u index bestanden voor Debian archieven.\n" +"Het ondersteunt verschillende generatiestijlen variërend van volledig \n" +"automatisch tot een functionele vervanging van dpkg-scanpackages en \n" +"dpkg-scansources\n" +"\n" +"apt-ftparchive genereert pakketbestanden van een boom met .debs.\n" +"Het 'Packages'-bestand bevat de inhoud van alle 'control'-velden van elk\n" +"pakket alsook de MD5 hash en de bestandsgrootte. Via een voorrangsbestand\n" +"kunnen de waardes van de 'Priority'- en 'Section'-velden afgedwongen\n" +"worden.\n" +"\n" +"Op overeenkomstige wijze genereert apt-ftparchive de 'Sources'-bestanden\n" +"van een boom met .dscs. De '--source-override'-optie kan gebruikt worden\n" +"om een voorrangsbestand voor bronpakketten te specificeren.\n" +"\n" +"De 'packages' en 'sources' opdrachten dienen uitgevoerd te worden \n" +"in de basismap van de boom. Het pad naar de .deb's dient te verwijzen naar\n" +"het startpunt van de recursieve zoekopdracht en een voorrangsbestand dient\n" +"de voorrangsvlaggen te bevatten. Padprefix wordt toegevoegd aan het\n" +"'filename'-veld indien dit aanwezig is. Enkele voorbeelden uit het debian\n" +"archief:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Opties:\n" +" -h Deze hulptekst\n" +" --md5 Beheer de MD5 generatie\n" +" -s=? Bronvoorrangsbestand\n" +" -q Stille uitvoer\n" +" -d=? Selecteert de optionele caching database\n" +" --no-delink Schakelt de ontlinking debug modus in\n" +" --contents Beheer de generatie van het inhoudsbestand\n" +" -c=? Lees dit configuratiebestand in\n" +" -o=? Stel een willekeurige configuratie optie in" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Geen van de selecties kwam overeen" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Sommige bestanden zijn niet aanwezig in de pakketbestandsgroep '%s'" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "DB is beschadigd, bestand hernoemd naar %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "DB is verouderd, opwaardering van %s wordt geprobeerd" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"DB-formaat is ongeldig. Als u opgewaardeerd heeft van een oudere versie, van " +"apt, dient u de database te verwijderen en opnieuw aan te maken." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Kan het DB-bestand %s niet openen: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Status opvragen van %s is mislukt" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Archief heeft geen 'control'-record" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Kan geen cursor verkrijgen" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: Kon map %s niet lezen\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "W: Kon de status van %s niet opvragen\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "F: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "F: Er zijn fouten van toepassing op het bestand " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Oplossen van %s is mislukt" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Doorlopen boomstructuur is mislukt" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Openen van %s is mislukt" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " OntlLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Uitvoeren van readlink op %s is mislukt" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Ontlinken van %s is mislukt" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Linken van %s aan %s is mislukt" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " Ontlinklimiet van %sB is bereikt.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Archief heeft geen 'package'-veld" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s heeft geen voorrangsingang\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " %s beheerder is %s, niet %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s heeft geen voorrangsingang voor bronpakketten\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s heeft ook geen voorrangsingang voor binaire pakketten\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Interne fout, kon onderdeel %s niet vinden" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Geheugentoewijzing is mislukt" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Kan %s niet openen" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Misvormde voorrangsingang %s op regel %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Misvormde voorrangsingang %s op regel %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Misvormde voorrangsingang %s op regel %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Voorrangsbestand %s kon niet gelezen worden" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Onbekend compressie-algoritme '%s'" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Gecomprimeerde uitvoer %s vereist een compressieset" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Aanmaken van IPC-pijp naar subproces is mislukt" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Aanmaken FILE* is mislukt" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Vorken van proces is mislukt" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Comprimeer kind" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Interne fout, aanmaken van %s is mislukt" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Aanmaken subproces-IPC is mislukt" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Uitvoeren van de compressor is mislukt " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "decompressor" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "IO naar subproces/bestand is mislukt" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Lezen tijdens het berekenen van de MD5 is mislukt" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Probleem bij het ontlinken van %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Hernoemen van %s naar %s is mislukt" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "J" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Regex-compilatiefout - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "De volgende pakketten hebben niet-voldane vereisten:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "maar %s is geïnstalleerd" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "maar %s zal geïnstalleerd worden" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "maar het is niet installeerbaar" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "maar het is een virtueel pakket" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "maar het is niet geïnstalleerd" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "maar het zal niet geïnstalleerd worden" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " of" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "De volgende NIEUWE pakketten zullen geïnstalleerd worden:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "De volgende pakketten zullen VERWIJDERD worden:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "De volgende pakketten zijn achtergehouden:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "De volgende pakketten zullen opgewaardeerd worden:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "De volgende pakketten zullen GEDEGRADEERD worden:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "De volgende vastgehouden pakketten zullen gewijzigd worden:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (vanwege %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"WAARSCHUWING: De volgende essentiële pakketten zullen verwijderd worden.\n" +"Dit dient NIET gedaan te worden tenzij u precies weet wat u doet!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu pakketten opgewaardeerd, %lu pakketten nieuw geïnstalleerd, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu opnieuw geïnstalleerd, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu gedegradeerd, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu te verwijderen en %lu niet opgewaardeerd.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu pakketten niet volledig geïnstalleerd of verwijderd.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Vereisten worden gecorrigeerd..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " mislukt." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Kan vereisten niet corrigeren" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Kon de verzameling op te waarderen pakketten niet minimaliseren" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Klaar" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "U kunt 'apt-get -f install' uitvoeren om dit op te lossen." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Er zijn vereisten waaraan niet voldaan is. Probeer -f te gebruiken." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "" +"WAARSCHUWING: De volgende pakketten kunnen niet geauthenticeerd worden:" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Authenticatiewaarschuwing is genegeerd.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Wilt u deze pakketten installeren zonder verificatie [j/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Sommige pakketten konden niet geauthenticeerd worden" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Er zijn problemen en -y was gebruikt zonder --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "Interne fout, InstallPackages is aangeroepen met defecte pakketten!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Pakketten moeten verwijderd worden maar verwijderen is uitgeschakeld." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Interne fout, rangschikken is niet voltooid" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Kon de ophaalmap niet vergrendelen" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "De lijst van bronnen kon niet gelezen worden." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"Merkwaardig... De groottes kwamen niet overeen, gelieve apt@packages.debian." +"org te mailen" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Er moeten %sB/%sB aan archieven opgehaald worden.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Er moeten %sB aan archieven opgehaald worden.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "Na het uitpakken zal er %sB extra schijfruimte gebruikt worden.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Na het uitpakken zal er %sB schijfruimte vrijkomen.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Kon de hoeveelheid vrije schijfruimte op %s niet bepalen" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "U heeft onvoldoende vrije schijfruimte op %s." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "'Trivial Only' is opgegeven, dit is echter geen triviale bewerking." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Ja, doe wat ik zeg!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"U staat op het punt om iets te doen wat mogelijk schadelijk is.\n" +"Als u wilt doorgaan, dient u de zin '%s' in te typen.\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Afbreken." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Wilt u doorgaan [J/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Ophalen van %s %s is mislukt\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Ophalen van sommige bestanden is mislukt" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Ophalen klaar en alleen-ophalen-modus staat aan" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Kon sommige archieven niet ophalen, misschien kunt u 'apt-get update' of --" +"fix-missing proberen?" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing en medium wisselen wordt op dit moment niet ondersteund" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Geen oplossing voor de missende pakketten gevonden." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Installatie wordt afgebroken." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Let op, %s wordt geselecteerd in plaats van %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" +"%s wordt overgeslagen, het is al geïnstalleerd en opwaardering is niet " +"gevraagd.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "Pakket %s is niet geïnstalleerd, en wordt dus niet verwijderd\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Pakket %s is een virtueel pakket voorzien door:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Geïnstalleerd]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "U dient er één expliciet te selecteren voor installatie." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Pakket %s is niet beschikbaar, hoewel er naar verwezen wordt door\n" +"een ander pakket. Mogelijk betekent dit dat het pakket ontbreekt,\n" +"verouderd is, of enkel beschikbaar is van een andere bron\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Echter, de volgende pakketten vervangen dit:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Pakket %s heeft geen installeerbare kandidaat" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "" +"Herinstallatie van %s is niet mogelijk daar het niet opgehaald kan worden.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s is reeds de nieuwste versie.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Release '%s' voor '%s' is niet gevonden" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Versie '%s' voor '%s' is niet gevonden" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Versie %s (%s) geselecteerd voor %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "De 'update'-opdracht aanvaard geen argumenten" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Kon de lijst-map niet vergrendelen" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Ophalen van sommige indexbestanden is mislukt, deze zijn of genegeerd, of er " +"zijn oudere versies van gebruikt." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Interne fout, AllUpgrade heeft dingen stukgemaakt" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Kon pakket %s niet vinden" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Let op, %s wordt geselecteerd omwille van de regex '%s'\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "" +"U wilt waarschijnlijk 'apt-get -f install' uitvoeren om volgende op te " +"lossen:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Er zijn niet-voldane vereisten. U kunt best 'apt-get -f install' uitvoeren " +"zonder pakketten op te geven, (of u kunt zelf een oplossing specificeren)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Sommige pakketten konden niet geïnstalleerd worden. Dit kan betekenen dat u\n" +"een onmogelijke situatie gevraagd hebt of dat u de 'unstable'-distributie \n" +"gebruikt en sommige benodigde pakketten nog vastzitten in 'incoming'." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Aangezien u slechts een enkele opdracht gegeven hebt is het zeer \n" +"waarschijnlijk dat het pakket gewoon niet installeerbaar is. U kunt dan\n" +"best een foutrapport indienen voor dit pakket." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "De volgende informatie helpt u mogelijk verder:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Niet-werkende pakketten:" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "De volgende extra pakketten zullen geïnstalleerd worden:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Voorgestelde pakketten:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Aanbevolen pakketten:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Opwaardering wordt doorgerekend... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Mislukt" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Klaar" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "Interne fout, probleemoplosser heeft dingen stukgemaakt" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "" +"U dient minstens 1 pakket op te geven waarvan de broncode opgehaald moet " +"worden" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Kan geen bronpakket vinden voor %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Reeds opgehaald bestand '%s' wordt overgeslagen\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "U heeft niet voldoende vrije schijfruimte op %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Moet %sB/%sB aan bronarchieven ophalen.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Moet %sB aan bronarchieven ophalen.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Ophalen bron %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Ophalen van sommige archieven is mislukt." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Het uitpakken van de reeds uitgepakte bron in %s wordt overgeslagen\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Uitpakopdracht '%s' is mislukt.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Gelieve na te gaan of het 'dpkg-dev'-pakket geïnstalleerd is.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Bouwopdracht '%s' is mislukt.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Dochterproces is mislukt" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"U dient tenminste één pakket op te geven om de bouwvereisten van te " +"controleren" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Kan de informatie over de bouwvereisten voor %s niet ophalen" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s heeft geen bouwvereisten.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"De vereiste %s van pakket %s kan niet voldaan worden omdat pakket %s " +"onvindbaar is" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"De vereiste %s van pakket %s kan niet voldaan worden omdat er geen " +"beschikbare versies zijn van pakket %s die aan de versievereisten voldoen" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Voldoen van Vereiste %s van pakket %s is mislukt: geïnstalleerde versie %s " +"is te nieuw" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Voldoen van de vereiste %s van pakket %s is mislukt: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Bouwvereisten voor %s konden niet voldaan worden." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Verwerken van de bouwvereisten is mislukt" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Ondersteunde modules:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Gebruik: apt-get [opties] opdracht\n" +" apt-get [opties] install|remove pakket1 [pakket2 ...]\n" +" apt-get [opties] source pakket1 [pakket2 ...]\n" +"\n" +"apt-get is een eenvoudige commandolijn-interface voor het ophalen en \n" +"installeren van pakketten. De meest gebruikte opdrachten zijn 'update' en\n" +"'install'.\n" +"\n" +"Opdrachten:\n" +" update - Haal de laatste versie van de pakketlijst op\n" +" upgrade - Opwaardeer alle geïnstalleerde pakketten\n" +" install - Installeer nieuwe pakketten (pakket is b.v. libc6, niet libc6." +"deb)\n" +" remove - Verwijder pakketten\n" +" source - Haal bronarchieven op\n" +" build-dep - Installeer de pakketten vereist voor het bouwen van de " +"bronpakketten op\n" +" dist-upgrade - Opwaardeer de distributie, zie apt-get(8)\n" +" dselect-upgrade - Opwaardeer volgens dselect-selecties\n" +" clean - Wis opgehaalde archief bestanden\n" +" autoclean - Wis oude opgehaalde archief bestanden\n" +" check - Controleer onvoldane vereisten\n" +"\n" +"Opties:\n" +" -h Deze hulptekst\n" +" -q Logbare uitvoer - geen voortgangsindicator\n" +" -qq Uitvoer bestaat louter uit foutmeldingen\n" +" -d Alleen ophalen - archieven NIET installeren of uitpakken\n" +" -s Doe-niets. Doe alleen sorteersimulatie\n" +" -y Antwoord ja op alle vragen zonder ze te stellen\n" +" -f Probeer door te gaan als de integriteitstest faalt\n" +" -m Probeer door te gaan als sommige archieven niet gevonden kunnen " +"worden\n" +" -u Toon ook een lijst van bijgewerkte pakketten\n" +" -b Bouw het bronpakket na het ophalen\n" +" -V Toon uitgebreide versie nummers\n" +" -c=? Lees dit configuratiebestand\n" +" -o=? Stel een willekeurige optie in, b.v. -o dir::cache=/tmp\n" +"\n" +"Zie de apt-get(8), sources.list(5) en apt.conf(5) handleidingen\n" +"voor meer informatie en opties.\n" +" Deze APT heeft Super Koekrachten.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Geraakt " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Ophalen:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Genegeerd " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Fout " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "%sB opgehaald in %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Bezig]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Medium wisselen: Gelieve de schijf met label\n" +" '%s'\n" +"in het station '%s' te plaatsen en op 'enter' te drukken\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Onbekend pakketrecord!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Gebruik: apt-sortpkgs [opties] bestand1 [bestand2 ...]\n" +"\n" +"apt-sortpkgs is een simpel programma om pakketbestanden te sorteren.\n" +"De -s optie wordt gebruikt om aan te geven om welk soort bestand het gaat.\n" +"\n" +"Opties:\n" +" -h Deze helptekst\n" +" -s Sorteer bronbestanden\n" +" -c=? Lees dit configuratiebestand\n" +" -o=? Stel een willekeurige optie in, b.v. -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Foute standaardinstelling!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Druk 'enter' om door te gaan." + +# Note to translators: The following four messages belong together. It doesn't +# matter where sentences start, but it has to fit in just these four lines, and +# at only 80 characters per line, if possible. +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Er zijn fouten opgetreden tijdens het uitpakken. De geïnstalleerde" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "" +"pakketten worden geconfigureerd. Hierbij kunnen fouten meerdere malen " +"optreden" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" +"of veroorzaakt worden door niet-voldane vereisten. Dit is Ok, enkel de fouten" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"boven dit bericht zijn belangrijk. U dient ze op te lossen en de installatie " +"opnieuw uit te voeren" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "De beschikbare informatie wordt samengevoegd" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Aanmaken pijp is mislukt" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Uitvoeren van gzip is mislukt " + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Beschadigd archief" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Tar controlesom klopt niet, het pakket is beschadigd" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Onbekende TAR-kopteksttype %u, onderdeel %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Ongeldige archiefondertekening" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Fout bij het lezen van de koptekst van het archief-onderdeel" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Ongeldige koptekst in archiefonderdeel" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Archief is te kort" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Lezen van de archiefkopteksten is mislukt" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "DropNode werd aangeroepen op een nog gelinkte knoop" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Localiseren van het hash-element is mislukt!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Toewijzen van de omleiding is mislukt" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Interne fout in AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Er wordt gepoogd om de omleiding %s->%s en %s/%s te overschrijven" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Dubbele toevoeging van de omleiding %s->%s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Dubbel configuratiebestand %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Wegschrijven van bestand %s is mislukt" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Sluiten van bestand %s is mislukt" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "Het pad %s is te lang" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "%s wordt meer dan eens uitgepakt" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "De map %s is al omgeleid" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "Het pakket probeert om het omleidingsdoel %s/%s weg te schrijven" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Het omleidingspad is te lang" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "De map %s wordt vervangen door een niet-map" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Vinden van de knoop in de hash-emmer is mislukt" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Het pad is te lang" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Pakket-overeenkomst wordt overschreven met 'no version' voor %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Het bestand %s/%s overschrijft het bestand van pakket %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Kan %s niet lezen" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Kan de status van %s niet opvragen" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Verwijderen van %s is mislukt" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Kan %s niet aanmaken" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Opvragen van de status van %sinfo is mislukt" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "" +"De 'info'- en de 'temp'-mappen dienen op hetzelfde bestandsysteem te staan" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Pakketlijsten worden ingelezen" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Verspringen naar de beheermap %sinfo is mislukt" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Interne fout bij het ophalen van de pakketnaam" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Bestandslijst worden ingelezen" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Openen van het lijstbestand '%sinfo/%s' is mislukt. Als u dit bestand niet " +"kunt herstellen, dient u het leeg te maken en daarna onmiddelijk dezelfde " +"versie van het pakket te installeren!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Lezen van lijstbestand %sinfo/%s is mislukt" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Interne fout bij het verkrijgen van een knoop" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Openen van het omleidingsbestand %sdiversions is mislukt" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Het pakketcachebestand is beschadigd" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Ongeldige regel in het omleidingsbestand: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Interne fout bij het toevoegen van een omleiding" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "De pakketcache dient eerst geïnitialiseerd te zijn" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Vinden van een 'Package:'-koptekst is mislukt, regel %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Foute 'ConfFile'-sectie in het statusbestand. Regel %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Fout bij het parsen van de MD5. regel %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Dit is geen geldig DEB archief, het onderdeel '%s' mankeert" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "" +"Dit is geen geldig DEB-archief, het bevat noch een '%s' nog een '%s' " +"onderdeel" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Kon niet wijzigen naar %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Interne fout, kon onderdeel niet vinden" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Localiseren van een geldig 'control'-bestand is mislukt" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Niet-ontleedbaar 'control'-bestand" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Kan de cd-rom databank %s niet lezen" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Om deze APT deze CD te laten herkennen kunt u best apt-cdrom gebruiken. 'apt-" +"get update' is niet in staat om nieuwe CDs toe te voegen" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "Verkeerde CD" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "" +"Kan de CD-ROM in %s niet loskoppelen, mogelijk wordt die nog steeds gebruikt." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Schijf niet gevonden" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Bestand niet gevonden" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Status opvragen is mislukt" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Instellen van de aanpassingstijd is mislukt" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "Ongeldige URI, lokale URIs mogen niet beginnen met //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Bezig met aanmelden" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Kan de 'peer'-naam niet bepalen" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Kan de lokale naam niet bepalen" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Onze verbinding is door de server geweigerd met bericht: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "USER mislukt; bericht van server: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "PASS mislukt; bericht van server: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Er was een proxy-server opgegeven, maar geen aanmeldscript, Acquire::ftp::" +"ProxyLogin is leeg." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Aanmeldscriptopdracht '%s' is mislukt; bericht van server: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "TYPE mislukt; bericht van server: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Verbinding is verlopen" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Verbinding is verbroken door de server" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Leesfout" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Een reactie deed de buffer overlopen" + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Protocolcorruptie" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Schrijffout" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Kon geen socket aanmaken" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "Kon de datasocket niet verbinden, de verbinding verliep" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Kon de passieve socket niet verbinden." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo kon geen luistersocket verkrijgen" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Kon geen socket binden" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Kon niet op de socket niet luisteren" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Kon de socketnaam niet bepalen" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Kan PORT-commando niet verzenden" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Onbekende adresfamilie %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT is mislukt; bericht van server: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Datasocket verbinding is verlopen" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Kan de verbinding niet aanvaarden" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Probleem bij het hashen van het bestand" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Kan bestand niet ophalen; bericht van server: %s" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Datasocket verliep" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Data transfer is mislukt, server zei: %s" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Zoekopdracht" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Aanroepen mislukt van " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Er wordt verbinding gemaakt met %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Kon de socket voor %s (f=%u t=%u p=%u) niet aanmaken" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Kan de verbinding met %s:%s (%s) niet aangaan." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Kon niet verbinden met %s:%s (%s), de verbinding verliep" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Kon niet verbinden met %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Er wordt verbinding gemaakt met %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Kon '%s' niet vinden" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Tijdelijke fout bij het opzoeken van '%s'" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Er gebeurde iets raars bij het zoeken naar '%s:%s' (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Kan niet verbinden met %s %s:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Kon de sleutelring niet benaderen: '%s'" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" +"F: argumentenlijst van Acquire::gpv::Options was te lang. Er wordt " +"afgesloten." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" +"Interne fout: ondertekening is goed maar kon de vingerafdruk van de sleutel\n" +"niet bepalen?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Er is tenminste één ongeldige ondertekening gevonden." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" +"Kon '%s' niet uitvoeren om ondertekening te verifiëren (is gnupg " +"geïnstalleerd?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Onbekende fout bij het uitvoeren van gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "De volgende ondertekeningen waren ongeldig:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"De volgende ondertekeningen konden niet geverifiëerd worden omdat de " +"publieke sleutel niet beschikbaar is:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Kon geen pijp openen voor %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Leesfout door proces %s" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Wachtend op de kopteksten" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Enkele koptekstregel ontvangen met meer dan %u karakters" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Foute koptekstregel" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "Er is door de HTTP server een ongeldige 'reply'-koptekst verstuurd" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "" +"Er is door de HTTP server een ongeldige 'Content-Length'-koptekst verstuurd" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "" +"Er is door de HTTP server een ongeldige 'Content-Range'-koptekst verstuurd" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "De bereik-ondersteuning van deze HTTP-server werkt niet" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Onbekend datumformaat" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Selectie is mislukt" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Verbinding verliep" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Fout bij het schrijven naar het uitvoerbestand" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Fout bij het schrijven naar bestand" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Fout bij het schrijven naar het bestand" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "" +"Fout bij het lezen van de server, andere kant heeft de verbinding gesloten" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Fout bij het lezen van de server" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Foute koptekstdata" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Verbinding mislukt" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Interne fout" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Kan een leeg bestand niet mmappen" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Kon van %lu bytes geen mmap maken" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Selectie %s niet gevonden" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Onbekende typeafkorting '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Configuratiebestand %s wordt geopend" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Regel %d is te lang (maxl %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Syntaxfout %s:%u: Blok start zonder naam." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Syntaxfout %s:%u: Verkeerd gevormde markering" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Syntaxfout %s:%u: Extra rommel na waarde" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" +"Syntaxfout %s:%u: Richtlijnen kunnen enkel op het hoogste niveau gegeven " +"worden" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Syntaxfout %s:%u: Teveel geneste invoegingen" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Syntaxfout %s:%u: Vanaf hier ingevoegd" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Syntaxfout %s:%u: Niet-ondersteunde richtlijn '%s'" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Syntaxfout %s:%u: Extra rommel aan het einde van het bestand" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Fout!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Klaar" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Commandoregel-optie '%c' [van %s] is onbekend." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Commandoregel-optie %s wordt niet begrepen" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Commandoregel-optie %s is niet booleaans" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "Optie %s vereist een argument." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "" +"Optie %s: De specificatie van het configuratie-item dient een = te " +"bevatten." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "Optie %s vereist een integer getal als argument, niet '%s'" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Optie '%s' is te lang" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "Waarde %s wordt niet begrepen, probeer 'true' of 'false'." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Ongeldige operatie %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Kan de status van het aanhechtpunt %s niet opvragen" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Kan %s niet veranderen" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Het opvragen van de CD-status is mislukt" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "" +"Er wordt geen vergrendeling gebruikt voor het alleen-lezen-" +"vergrendelingsbestand %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Kon het vergrendelingsbestand '%s' niet openen" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "" +"Het via nfs aangekoppelde vergrendelingsbestand %s wordt niet vergrendeld" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Kon vergrendeling %s niet verkrijgen" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Er is gewacht op %s, maar die kwam niet" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Subproces %s ontving een segmentatiefout." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Subproces %s gaf de foutcode %u terug" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Subproces %s sloot onverwacht af" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Kon het bestand %s niet openen" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "lees, de laatste te lezen %lu zijn niet beschikbaar" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "schrijf, de laatste %lu konden niet weggeschreven worden" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Probleem bij het afsluiten van het bestand" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Probleem bij het ontlinken van het bestand" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Probleem bij het synchroniseren van het bestand" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Lege pakketcache" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Het pakketcachebestand is beschadigd" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Het pakketcachebestand heeft een niet-compatible versie" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Deze APT ondersteunt het versienummeringssysteem '%s' niet" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "De pakketcache was aangemaakt voor een andere architectuur" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Vereisten" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Voor-Vereisten" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Suggesties" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Aanbevelingen" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Conflicteert met" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Vervangt" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Verouderd" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "belangrijk" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "noodzakelijk" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "standaard" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "optioneel" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "extra" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Boom van vereisten wordt opgebouwd" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Kandidaat-versies" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Generatie vereisten" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Kon pakketbestand %s niet ontleden (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Kon pakketbestand %s niet ontleden (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Misvormde regel %lu in bronlijst %s (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Misvormde regel %lu in bronlijst %s (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Misvormde regel %lu in bronlijst %s (URI parse)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Misvormde regel %lu in bronlijst %s (absolute dist)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Misvormde regel %lu in bronlijst %s (dist parse)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "%s wordt geopend" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Regel %u van de bronlijst %s is te lang." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Misvormde regel %u in bronlijst %s (type)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Type '%s' op regel %u in bronlijst %s is onbekend" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Misvormde regel %u in bronlijst %s (verkopers-ID)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Deze installatieaanroep vereist het tijdelijk verwijderen van het essentiële " +"pakket %s, dit omwille van een Conflicts/Pre-Depends -lus. Dit is vaak " +"slecht, wilt u dit echt doen dan dient u de APT::Force-LoopBreak optie te " +"activeren." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Indexbestandtype '%s' wordt niet ondersteund" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"Pakket %s moet opnieuw geïnstalleerd worden, maar er kan geen archief voor " +"gevonden worden." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Fout, pkgProblemResolver::Resolve maakte scheidingen aan, dit kan " +"veroorzaakt worden door vastgehouden pakketten." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "Kan problemen niet verhelpen, u houdt defecte pakketten vast." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Lijstmap %spartial is afwezig." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Archiefmap %spartial is afwezig." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "Bestand %li van %li wordt opgehaald (nog %s te gaan)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "Bestand %li van %li wordt opgehaald" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Het methodestuurprogramma %s kon niet gevonden worden." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Methode %s startte niet op de juiste manier" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "" +"Gelieve de schijf met label '%s' in het station '%s' te plaatsen en op " +"'enter' te drukken." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Pakketbeheersysteem '%s' wordt niet ondersteund" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Kan geen geschikt pakketsysteemtype bepalen" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Kan de status van %s niet opvragen." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "" +"Uw bronnenlijst (/etc/apt/sources.list) dient minstens 1 bron-URI te bevatten" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" +"De pakketlijsten of het statusbestand konden of niet ontleed, of niet " +"geopend worden." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "" +"U kunt misschien 'apt-get update' uitvoeren om deze problemen te verhelpen" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Ongeldige record in het voorkeurenbestand, geen 'Package'-koptekst" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Pintype %s wordt niet begrepen" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Er is geen prioriteit (of nul) opgegeven voor deze pin" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Cache heeft een niet-compatibel versienummeringssysteem" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Fout tijdens verwerken van %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Fout tijdens verwerken van %s (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Fout tijdens verwerken van %s (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Fout tijdens verwerken van %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Fout tijdens verwerken van %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Fout tijdens verwerken van %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Fout tijdens verwerken van %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "Wauw, u heeft meer pakketten dan deze APT aankan." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "Wauw, u heeft meer versies dan deze APT aankan." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "Wauw, u heeft meer afhankelijkheden dan deze APT aankan." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Fout tijdens verwerken van %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Fout tijdens verwerken van %s (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "" +"Pakket %s %s werd niet gevonden bij het verwerken van de " +"bestandsafhankelijkheden" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Kon de status van de bronpakketlijst %s niet opvragen" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Voorziene bestanden worden verzameld" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "Invoer/Uitvoer-fout tijdens wegschrijven bronpakketcache" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "hernoeming is mislukt, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "MD5Sum komt niet overeen" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "" +"Er zijn geen publieke sleutels beschikbaar voor de volgende sleutel-IDs:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Er kon geen bestand gevonden worden voor pakket %s. Dit kan betekenen dat u " +"dit pakket handmatig moet repareren (wegens missende architectuur)" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Er kon geen bestand gevonden worden voor pakket %s. Dit kan betekenen dat u " +"dit pakket handmatig moet repareren." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"De pakketindex-bestanden zijn beschadigd. Er is geen 'Filename:'-veld voor " +"pakket %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Grootte komt niet overeen" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Verkopersblok %s bevat geen vingerafdruk" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Er wordt gebruik gemaakt van CD-aankoppelpunt %s\n" +"CD wordt aangekoppeld\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Identificatie..." + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Opgeslagen label: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Er wordt gebruik gemaakt van CD-aankoppelpunt %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "CD wordt losgekoppeld\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Er wordt gewacht op de schijf...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "CD wordt aangekoppeld...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Er wordt gescant voor indexbestanden...\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "%i pakket-indexen gevonden, %i bron-indexen en %i handtekeningen\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Dat is een ongeldige naam, gelieve opnieuw te proberen.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"De schijf heet:\n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Pakketlijsten worden gekopieerd..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Nieuwe bronlijst wordt weggeschreven\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Bronlijst-ingangen voor de schijf zijn:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "CD wordt afgekoppeld..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "%i records weggeschreven.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "%i records weggeschreven met %i missende bestanden.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "%i records weggeschreven met %i niet overeenkomende bestanden\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" +"%i records weggeschreven met %i missende bestanden en %i niet overeenkomende " +"bestanden\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "%s wordt voorbereid" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "%s wordt uitgepakt" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "Configuratie van %s wordt voorbereid" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "%s wordt geconfigureerd" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "%s is geïnstalleerd" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "Verwijdering van %s wordt voorbereid" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "%s wordt verwijderd" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "%s is verwijderd" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "Volledige verwijdering van %s wordt voorbereid" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "%s is volledig verwijderd" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Kon het bestand %s niet openen" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Verbinding werd voortijdig afgebroken" diff --git a/po/nn.po b/po/nn.po new file mode 100644 index 0000000..43715ac --- /dev/null +++ b/po/nn.po @@ -0,0 +1,2780 @@ +# translation of apt_nn.po to Norwegian nynorsk +# translation of apt.po to Norwegian nynorsk +# translation of nn.po to Norwegian Nynorsk +# translation of apt.po to Norwegian Nynorsk +# Gaute Hvoslef Kvalnes , 2003. +# Havard Korsvoll , 2004, 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: apt_nn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2005-02-14 23:30+0100\n" +"Last-Translator: Havard Korsvoll \n" +"Language-Team: Norwegian nynorsk \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.9.1\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Pakken %s versjon %s har eit krav som ikkje er oppfylt:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Finn ikkje pakken %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Tal på pakkenamn: " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Vanlege pakkar: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Reine virtuelle pakkar: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Enkle virtuelle pakkar: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Samansette virtuelle pakkar: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Manglar: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Tal på einskildversjonar: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Tal på krav: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Tal på ver./fil-forhold: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Tal på tilbyr-forhold: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Tal på strengar med jokerteikn: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Storleik på kravs- og versjonsrom: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Slingringsmon: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Brukt plass i alt: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Pakkefila %s er ute av takt." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Du må oppgi nøyaktig eitt mnster" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Fann ingen pakkar" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Pakkefiler:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "Mellomlageret er ute av takt, kan ikkje x-referera ei pakkefil" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Spikra pakkar:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(ikkje funne)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Installert: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(ingen)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Kandidat: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Pakke spikra til: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Versjonstabell:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s for %s %s kompilert på %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Bruk: apt-cache [val] kommando\n" +" apt-cache [val] add fil1 [fil2 ...]\n" +" apt-cache [val] showpkg pakke1 [pakke2 ...]\n" +" apt-cache [val] showsrc pakke1 [pakke2 ...]\n" +"\n" +"apt-cache er eit lågnivåverktøy som vert brukt til å handtera\n" +"binærmellomlageret til APT, og til å henta informasjon frå det.\n" +"\n" +"Kommandoar:\n" +" add - Legg ei fil til i kjeldelageret.\n" +" gencaches - Bygg opp lagera for både pakkane og kjeldekoden.\n" +" showpkg - Vis overordna informasjon om ein enkelt pakke.\n" +" showsrc - Vis data om kjeldekoden.\n" +" stats - Vis ein enkel statistikk.\n" +" dump - Vis fila med lista over tilgjengelege pakkar i tett form.\n" +" dumpavail - Send heile lista over tilgjengelege pakkar til stdout.\n" +" unmet - Vis krav som ikkje er oppfylte.\n" +" search - Søk gjennom pakkelista etter eit regulært uttrykk.\n" +" show - Vis ei oversikt over pakken.\n" +" depends - Vis rå informasjon om krava til ein pakke.\n" +" rdepends - Vis baklengs kravinformasjon for ein pakke\n" +" pkgnames - Vis ei liste over alle pakkenamn.\n" +" dotty - Lag pakkegrafar for GraphVis.\n" +" xvcg - Lag pakkegrafar for xvcg\n" +" policy - Vis regelinnstillingar.\n" +"\n" +"Val:\n" +" -h Vis denne hjelpeteksten.\n" +" -p=? Pakkelageret.\n" +" -s=? Kjeldekodelageret.\n" +" -q Ikkje vis framdriftsmålaren.\n" +" -i Vis berre viktige krav for unmet-kommandoen.\n" +" -c=? Les denne oppsettsfila.\n" +" -o=? Set ei vilkårleg innstilling, t.d. «-o dir::cache=/tmp».\n" +"Du finn meir informasjon på manualsidene apt-cache(8) og apt.conf(5).\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "" + +#: cmdline/apt-cdrom.cc:93 +#, fuzzy +msgid "Please insert a Disc in the drive and press enter" +msgstr "" +"Skifte av medum: Set inn plata merkt\n" +" «%s»\n" +"i stasjonen «%s» og trykk Enter.\n" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "" + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Ikkje parvise argument" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Bruk: apt-config [val] kommando\n" +"\n" +"apt-config er eit enkelt verktøy for å lesa oppsettsfila til APT.\n" +"\n" +"Kommandoar:\n" +" shell - Skalmodus\n" +" dump - Vis oppsettet\n" +"\n" +"Val:\n" +" -h Vis denne hjelpeteksten.\n" +" -c=? Les denne oppsettsfila.\n" +" -o=? Set ei vilkårleg innstilling, t.d. «-o dir::cache=/tmp».\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s er ingen gyldig DEB-pakke." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Bruk: apt-extracttemplates fil1 [fil2 ...]\n" +"\n" +"apt-extracttemplates er eit verktøy for å henta ut informasjon om\n" +"oppsett og malar frå Debian-pakkar.\n" +"\n" +"Val:\n" +" -h Vis denne hjelpeteksten\n" +" -t Vel mellombels katalog\n" +" -c=? Les denne innstillingsfila.\n" +" -o=? Set ei vilkårleg innstilling, t.d. «-o dir::cache=/tmp».\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Klarte ikkje skriva til %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Finn ikkje debconf-versjonen. Er debconf installert?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Lista over pakkeutvidingar er for lang" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Feil ved lesing av katalogen %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Lista over kjeldeutvidingar er for lang" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Feil ved skriving av topptekst til innhaldsfila" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Feil ved lesing av %s" + +#: ftparchive/apt-ftparchive.cc:556 +#, fuzzy +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Bruk: apt-ftparchive [val] kommando\n" +"Kommandoar: packages binærstig [overstyringsfil [stigprefiks]]\n" +" sources kjeldesti [overstyringsfil [stiprefiks]]\n" +" contents sti\n" +" generate config [grupper]\n" +" clean config\n" +"\n" +"apt-ftparchive opprettar indeksfiler for Debian-arkiv. Mange ulike\n" +"måtar kan brukast, frå heilautomatiske til funksjonelle erstattingar\n" +"for dpkg-scanpackages og dpkg-scansources.\n" +"\n" +"apt-ftparchive opprettar Package-filer frå eit tre med .debs-filer.\n" +"Package-fila inneheld alle kontrollfelta frå kvar pakke i tillegg til\n" +"MD5-nøkkel og filstorleik. Du kan bruka ei overstyringsfil for å tvinga\n" +"gjennom verdiar for prioritet og kategori.\n" +"\n" +"apt-ftparchive kan på same måten oppretta Sources-filer frå eit tre\n" +"med .dscs-filer. Du kan bruka ei overstyringsfil med --source-override.\n" +"\n" +"Kommandoane «packages» og «sources» skal køyrast i rota av katalogtreet.\n" +"Binærstien skal peika til toppkatalogen i det rekursive søket, og\n" +"overstyringsfila skal innehalda innstillingar for overstyring.\n" +"Stiprefikset vert lagt til filnamnfelta dersom det er oppgjeve. Her er\n" +"eit døme på bruk i Debian-arkivet:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Val:\n" +" -h Vis denne hjelpeteksten.\n" +" --md5 Styrer MD5-genereringa.\n" +" -s=? Overstyringsfil for kjeldekode.\n" +" -q Stille.\n" +" -d=? Vel ein anna mellomlagerdatabase.\n" +" --no-delink Bruk avlusingsmodus med delinking.\n" +" --contents Styrer opprettinga av innhaldsfila.\n" +" -c=? Les denne oppsettsfila.\n" +" -o=? Set ei vilkårleg innstilling." + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Ingen utval passa" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Enkelte filer manglar i pakkefilgruppa %s" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "Databasen er øydelagd. Filnamnet er endra til %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "DB er for gammal, forsøkjer å oppgradere %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Klarte ikkje opna DB-fila %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Klarte ikkje få status til %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Arkivet har ingen kontrollpost" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Klarte ikkje få peikar" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "Å: Klarte ikkje lesa katalogen %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "Å: Klarte ikkje få status til %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "F: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "Å: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "F: Det er feil ved fila " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Klarte ikkje slå opp %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Treklatring mislukkast" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Klarte ikkje opna %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " DeLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Klarte ikkje lesa lenkja %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Klarte ikkje oppheva lenkja %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Klarte ikkje lenkja %s til %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " DeLink-grensa på %sB er nådd.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Arkivet har ikkje noko pakkefelt" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s har inga overstyringsoppføring\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " %s-vedlikehaldaren er %s, ikkje %s\n" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s har inga overstyringsoppføring\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s har inga overstyringsoppføring\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Intern feil, fann ikkje medlemmen %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Klarte ikkje tildela minne" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Klarte ikkje opna %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Misforma overstyring %s linje %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Misforma overstyring %s linje %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Misforma overstyring %s linje %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Klarte ikkje lesa overstyringsfila %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Ukjend komprimeringsalgoritme %s" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Komprimert utdata %s treng eit komprimeringssett" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Klarte ikkje oppretta IPC-røyr til underprosessen" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Klarte ikkje oppretta FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Klarte ikkje gafla" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Komprimer barn" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Intern feil, klarte ikkje oppretta %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Klarte ikkje oppretta underprosessen IPC" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Klarte ikkje køyra komprimeringa " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "dekomprimering" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "Klarte ikkje kommunisera med underprosess/fil" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Klarte ikkje lesa under utrekning av MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Problem ved oppheving av lenkje til %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Klarte ikkje endra namnet på %s til %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "J" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Regex-kompileringsfeil - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Følgjande pakkar har krav som ikkje er oppfylte:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "men %s er installert" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "men %s skal installerast" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "men lèt seg ikkje installera" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "men er ein virtuell pakke" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "men er ikkje installert" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "men skal ikkje installerast" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " eller" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Dei følgjande NYE pakkane vil verta installerte:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Dei følgjande pakkane vil verta FJERNA:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Dei følgjande pakkane er haldne tilbake:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Dei følgjande pakkane vil verta oppgraderte:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Dei følgjande pakkane vil verta NEDGRADERTE:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Dei følgjande pakkane som er haldne tilbake vil verta endra:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (fordi %s) " + +#: cmdline/apt-get.cc:546 +#, fuzzy +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"ÅTVARING: Dei følgjande nødvendige pakkane vil verta fjerna.\n" +"Dette bør IKKJE gjerast utan at du er fullstendig klar over kva du gjer!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu oppgraderte, %lu nyleg installerte, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu installerte på nytt, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu nedgraderte, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu skal fjernast og %lu skal ikkje oppgraderast.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu ikkje fullstendig installerte eller fjerna.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Rettar på krav ..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " mislukkast." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Klarte ikkje retta på krav" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Klarte ikkje minimera oppgraderingsmengda" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Ferdig" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "" +"Du vil kanskje prøva å retta på desse ved å køyra «apt-get -f install»." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Nokre krav er ikkje oppfylte. Prøv med «-f»." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "ÅTVARING: Klarer ikkje autentisere desse pakkane." + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Installer desse pakkane utan verifikasjon [j/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Nokre pakkar kunne ikkje bli autentisert" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Det oppstod problem, og «-y» vart brukt utan «--force-yes»" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Nokre pakkar må fjernast, men fjerning er slått av." + +#: cmdline/apt-get.cc:775 +#, fuzzy +msgid "Internal error, Ordering didn't finish" +msgstr "Intern feil ved tilleggjing av avleiing" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Klarte ikkje låsa nedlastingskatalogen" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "Kjeldelista kan ikkje lesast." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Må henta %sB/%sB med arkiv.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Må henta %sB med arkiv.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "Etter utpakking vil %sB meir diskplass verta brukt.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Etter utpakking vil %sB meir diskplass verta frigjort.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, fuzzy, c-format +msgid "Couldn't determine free space in %s" +msgstr "Du har ikkje nok ledig plass i %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Du har ikkje nok ledig plass i %s." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "" +"«Trivial Only» var spesifisert, men dette er ikkje noka triviell handling." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Ja, gjer som eg seier!" + +#: cmdline/apt-get.cc:868 +#, fuzzy, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Du er i ferd med å utføra ei handling som kan vera skadeleg.\n" +"For å halda fram, må du skriva nøyaktig «%s».\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Avbryt." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Vil du halda fram [J/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Klarte ikkje henta %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Klarte ikkje henta nokre av filene" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Nedlastinga er ferdig i nedlastingsmodus" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Klarte ikkje henta nokre av arkiva. Du kan prøva med «apt-get update» eller " +"«--fix-missing»." + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "«--fix-missing» og byte av medium er ikkje støtta for tida" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Klarte ikkje retta opp manglande pakkar." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Avbryt installasjon." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Merk, vel %s i staden for %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" +"Hoppar over %s, for den er installert frå før og ikkje sett til " +"oppgradering.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "Pakken %s er ikkje installert, og vert difor ikkje fjerna\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Pakken %s er ein virtuell pakke, tilbydd av:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Installert]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Du må velja ein som skal installerast." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Det finst ingen tilgjengeleg versjon av pakken %s, men han er nemnt\n" +"av ein annan pakke. Dette tyder at pakket manglar, er gjort overflødig\n" +"eller er berre tilgjengeleg frå ei anna kjelde\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Dei følgjande pakkane kan brukast i staden:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Det finst ingen installasjonskandidat for pakken %s" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "%s kan ikkje installerast på nytt, for pakken kan ikkje lastast ned.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "Den nyaste versjonen av %s er installert frå før.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Fann ikkje utgåva «%s» av «%s»" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Fann ikkje versjonen «%s» av «%s»" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Vald versjon %s (%s) for %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "Oppdateringskommandoen tek ingen argument" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Klarte ikkje låsa listekatalogen" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Klarte ikkje lasta ned nokre av indeksfilene. Dei er ignorerte, eller gamle " +"filer er brukte i staden." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Intern feil. AllUpgrade øydelagde noko" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Fann ikkje pakken %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Merk, vel %s i staden for regex «%s»\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "" +"Du vil kanskje prøva å retta på desse ved å køyra «apt-get -f install»." + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Nokre krav er ikkje oppfylte. Du kan prøva «apt-get -f install» (eller velja " +"ei løysing)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Nokre av pakkane kunne ikkje installerast. Dette kan koma av at du har\n" +"valt ein umogleg situasjon. Dersom du brukar den ustabile utgåva av\n" +"distribusjonen, kan det òg henda at nokre av pakkane som trengst ikkje\n" +"er laga enno eller at dei framleis ligg i «Incoming»." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Sidan du berre har valt ein enkel operasjon, er det svært sannsynleg at\n" +"pakken rett og slett ikkje lèt seg installera. I såfall bør du senda\n" +"feilmelding." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "Følgjande informasjon kan hjelpa med å løysa situasjonen:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Øydelagde pakkar" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Dei følgjande tilleggspakkane vil verta installerte:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Føreslåtte pakkar:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Tilrådde pakkar" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Reknar ut oppgradering ... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Mislukkast" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Ferdig" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +#, fuzzy +msgid "Internal error, problem resolver broke stuff" +msgstr "Intern feil. AllUpgrade øydelagde noko" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "Du må velja minst éin pakke som kjeldekoden skal hentast for" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Finn ingen kjeldepakke for %s" + +#: cmdline/apt-get.cc:1968 +#, fuzzy, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Hoppar over utpakking av kjeldekode som er utpakka frå før i %s\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Du har ikkje nok ledig plass i %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Må henta %sB/%sB med kjeldekodearkiv.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Må henta %sB med kjeldekodearkiv.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Hent kjeldekode %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Klarte ikkje henta nokre av arkiva." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Hoppar over utpakking av kjeldekode som er utpakka frå før i %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Utpakkingskommandoen «%s» mislukkast.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Byggjekommandoen «%s» mislukkast.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Barneprosessen mislukkast" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "Du må velja minst ein pakke som byggjekrava skal sjekkast for" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Klarte ikkje henta byggjekrav for %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s har ingen byggjekrav.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "Kravet %s for %s kan ikkje oppfyllast fordi pakken %s ikkje finst" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"Kravet %s for %s kan ikkje oppfyllast fordi det ikkje finst nokon " +"tilgjengelege versjonar av pakken %s som oppfyller versjonskrava" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Klarte ikkje oppfylla kravet %s for %s: Den installerte pakken %s er for ny" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Klarte ikkje oppfylla kravet %s for %s: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Byggjekrav for %s kunne ikkje tilfredstillast." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Klarte ikkje behandla byggjekrava" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Støtta modular:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Bruk: apt-get [val] kommando\n" +" apt-get [val] install|remove pakke1 [pakke2 ...]\n" +" apt-get [val] source pakke1 [pakke2 ...]\n" +"\n" +"apt-get er eit enkelt grensesnitt til bruk frå kommandolinja for å lasta\n" +"ned og installera pakkar. Dei vanlegaste kommandoane er «update» og\n" +"«install».\n" +"\n" +"Kommandoar:\n" +" update - Hent nye pakkelister.\n" +" upgrade - Utfør ei oppgradering.\n" +" install - Installer nye pakkar (bruk pakkenamn, ikkje filnamn (foo." +"deb)).\n" +" remove - Fjern pakkar.\n" +" source - Last ned kjeldekode frå arkiva.\n" +" build-dep - Oppfyll byggjekrava for kjeldepakkar.\n" +" dist-upgrade - Oppgrader distribusjonen, les apt-get(8).\n" +" dselect-upgrade - Følg råda frå «dselect».\n" +" clean - Slett nedlasta arkivfiler.\n" +" autoclean - Slett gamle, nedlasta arkivfiler.\n" +" check - Stadfest at det ikkje finst krav som ikkje er oppfylte.\n" +"\n" +"Val:\n" +" -h Vis denne hjelpeteksten.\n" +" -q Ikkje vis framdriftsmåtar, for bruk i loggar.\n" +" -qq Inga tilbakemelding - bortsett frå feilmeldingar.\n" +" -d Berre nedlasting - IKKJE installer eller pakk ut arkivfilene.\n" +" -s Skuggespel, berre simulering av handlingane.\n" +" -y Svar ja på alle spørsmål utan å stoppa.\n" +" -f Prøv å halda fram sjølv om integritetskontrollen mislukkast.\n" +" -m Prøv å halda fram sjølv om nokre pakkar ikkje vert funne.\n" +" -u Ta med oppgraderte pakkar i lista som vert vist.\n" +" -b Bygg pakken etter at kjeldekoden er henta.\n" +" -V Vis fullstendige versjonsnummer.\n" +" -c=? Les denne innstillingsfila.\n" +" -o=? Set ei vilkårleg innstilling, t.d. «-o dir::cache=/tmp».\n" +"Du finn meir informasjon og fleire kommandolinjeval på manualsidene\n" +"til apt-get(8), sources.list(5) og apt.conf(5).\n" +" APT har superku-krefter.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Treff " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Hent:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ign " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Feil " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Henta %sB på %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Arbeider]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Skifte av medum: Set inn plata merkt\n" +" «%s»\n" +"i stasjonen «%s» og trykk Enter.\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Ukjend pakkeoppslag" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Bruk: apt-sortpkgs [val] fil1 [fil2 ...]\n" +"\n" +"apt-sortpkgs er eit enkelt verktøy for å sortera pakkefiler. Innstillinga\n" +"-s vert brukt til å velja kva for ein type fil det er snakk om.\n" +"\n" +"Val:\n" +" -h Vis denne hjelpeteksten.\n" +" -s Bruk kjeldefilsortering.\n" +" -c=? Les denne oppsettsfila.\n" +" -o=? Set ei vilkårleg innstilling, t.d. «-o dir::cache=/tmp».\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Dårleg standardinnstilling" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Trykk Enter for å halda fram." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Nokre feil oppstod ved utpakking. Dei installerte pakkane vert no" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "sette opp. Dette kan føra til følgjefeil eller feil på grunn av" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "krav som ikkje er oppfylte. Det gjer ikkje noko, berre feila ovanfor" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "er viktige. Rett opp dei feila og [i]nstaller på nytt." + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Flettar informasjon om tilgjengelege pakkar" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Klarte ikkje oppretta røyr" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Klarte ikkje køyra gzip " + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Øydelagt arkiv" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Tar-sjekksummen mislukkast, arkivet er øydelagt" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Ukjend TAR-hovud type %u, medlem %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Ugyldig arkivsignatur" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Feil ved lesing av arkivmedlemshovud" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Ugyldig arkivmedlemshovud" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Arkivet er for kort" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Klarte ikkje lesa arkivhovuda" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "DropNode vart kalla på ein node som framleis er lenkja" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Fann ikkje nøkkelelementet." + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Klarte ikkje tildela avleiing" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Intern feil i AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Prøver å skriva over ei avleiing, %s -> %s og %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Dobbel tilleggjing av avleiing %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Dobbel oppsettsfil %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, fuzzy, c-format +msgid "Failed to write file %s" +msgstr "Klarte ikkje skriva fila %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Klarte ikkje lukka fila %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "Stigen %s er for lang" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Pakkar ut %s meir enn éin gong" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "Katalogen %s er avleidd" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "Pakken prøver å skriva til avleiingsmålet %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Avleiingsstigen er for lang" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "Katalogen %s vert bytt ut med ein ikkje-katalog" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Fann ikkje noden i nøkkelbøtta" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Stigen er for lang" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Skriv over pakketreff utan versjon for %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Fila %s/%s skriv over den tilsvarande fila i pakken %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Klarte ikkje lesa %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Klarte ikkje få status til %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Klarte ikkje fjerna %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Klarte ikkje oppretta %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Klarte ikkje få status til %sinfo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "" +"Infokatalogen og den mellombelse katalogen må vera på det same filsystemet" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Les pakkelister" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Klarte ikkje byta til adminkatalogen %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Intern feil ved henting av pakkenamn" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Les filliste" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Klarte ikkje opna listefila «%sinfo/%s». Dersom du ikkje kan gjenoppretta " +"denne fila, bør du oppretta ho som ei tom fil og installera den same " +"versjonen av pakken på nytt." + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Klarte ikkje lesa listefila %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Intern feil ved henting av node" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Klarte ikkje opna avleiingsfila %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Avleiingsfila er øydelagd" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Ugyldig linje i avleiingsfila: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Intern feil ved tilleggjing av avleiing" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "Pakkelageret må først klargjerast" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Fann ikkje «Package:»-linja, offset %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Øydelagd «ConfFile»-del i statusfila. Offset %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Feil ved tolking av MD5. Offset %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Dette er ikkje eit gyldig DEB-arkiv, manglar «%s»-medlemmen" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "" +"Dette er ikkje eit gyldig DEB-arkiv, det har ingen «%s» eller «%s»-medlem" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Klarte ikkje byta til %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Intern feil, fann ikkje medlem" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Fann ikkje noka gyldig kontrollfil" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Kontrollfila kan ikkje tolkast" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Klarte ikkje lesa CD-ROM-databasen %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Bruk «apt-cdrom» for å gjera denne CD-plata tilgjengeleg for APT. Du kan " +"ikkje bruka «apt-get update» til å leggja til nye CD-plater." + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "Feil CD-plate" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "" +"Klarte ikkje montera CD-plata i %s. Det kan henda plata framleis er i bruk." + +#: methods/cdrom.cc:169 +#, fuzzy +msgid "Disk not found." +msgstr "Fann ikkje fila" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Fann ikkje fila" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Klarte ikkje få status" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Klarte ikkje setja endringstidspunkt" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "Ugyldig URI. Lokale URI-ar kan ikkje starta med //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Loggar inn" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Klarte ikkje avgjera namnet på motparten" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Klarte ikkje avgjera det lokale namnet" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Tenaren nekta oss å kopla til, og sa: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "USER mislukkast, tenaren sa: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "PASS mislukkast, tenaren sa: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Ein mellomtenar er oppgitt, men ikkje noko innloggingsskript. Feltet " +"«Acquire::ftp::ProxyLogin» er tomt." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Kommandoen «%s» i innlogginsskriptet mislukkast, tenaren sa: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "TYPE mislukkast, tenaren sa: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Tidsavbrot på samband" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Tenaren lukka sambandet" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Lesefeil" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Eit svar flaumde over bufferen." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Protokolløydeleggjing" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Skrivefeil" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Klarte ikkje oppretta sokkel" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "Klarte ikkje kopla til datasokkel, tidsavbrot på sambandet" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Klarte ikkje kopla til passiv sokkel." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo klarte ikkje oppretta ein lyttesokkel" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Klarte ikkje binda til sokkel" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Klarte ikkje lytta til sokkel" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Klarte ikkje avgjera sokkelnamnet" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Klarte ikkje senda PORT-kommandoen" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Ukjend adressefamilie %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT mislukkast, tenaren sa: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Tidsavbrot på tilkopling til datasokkel" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Klarte ikkje godta tilkoplinga" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Problem ved oppretting av nøkkel for fil" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Klarte ikkje henta fila, tenaren sa «%s»" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Tidsavbrot på datasokkelen" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Dataoverføringa mislukkast, tenaren sa «%s»" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Spørjing" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Klarte ikkje starta " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Koplar til %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Klarte ikkje oppretta sokkel for %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Klarte ikkje initiera sambandet til %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Klarte ikkje kopla til %s:%s (%s), tidsavbrot på sambandet" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Klarte ikkje kopla til %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Koplar til %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Klarte ikkje slå opp «%s»" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Mellombels feil ved oppslag av «%s»" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Det hende noko dumt ved oppslag av «%s:%s» (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Klarte ikkje kopla til %s %s:" + +#: methods/gpgv.cc:65 +#, fuzzy, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Klarte ikkje slå opp «%s»" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "" + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "" + +#: methods/gpgv.cc:249 +#, fuzzy +msgid "The following signatures were invalid:\n" +msgstr "Dei følgjande tilleggspakkane vil verta installerte:" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Klarte ikkje opna røyr for %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Lesefeil frå %s-prosessen" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Ventar på hovud" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Fekk ei enkel hovudlinje over %u teikn" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Øydelagd hovudlinje" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "HTTP-tenaren sende eit ugyldig svarhovud" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "HTTP-tenaren sende eit ugyldig «Content-Length»-hovud" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "HTTP-tenaren sende eit ugyldig «Content-Range»-hovud" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "Denne HTTP-tenaren har øydelagd støtte for område" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Ukjend datoformat" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Utvalet mislukkast" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Tidsavbrot på sambandet" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Feil ved skriving til utfil" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Feil ved skriving til fil" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Feil ved skriving til fila" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "Feil ved lesing frå tenaren. Sambandet vart lukka i andre enden" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Feil ved lesing frå tenaren" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Øydelagde hovuddata" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Sambandet mislukkast" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Intern feil" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Kan ikkje utføra mmap på ei tom fil" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Klarte ikkje laga mmap av %lu byte" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Fann ikkje utvalet %s" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Ukjend typeforkorting: «%c»" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Opnar oppsettsfila %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Linja %d er for lang (maks %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Syntaksfeil %s:%u: Blokka startar utan namn." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Syntaksfeil %s:%u: Misforma tagg" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Syntaksfeil %s:%u: Ekstra rot etter verdien" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "Syntaksfeil %s:%u: Direktiva kan berre liggja i det øvste nivået" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Syntaksfeil %s:%u: For mange nøsta inkluderte filer" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Syntaksfeil %s:%u: Inkludert herifrå" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Syntaksfeil %s:%u: Direktivet «%s» er ikkje støtta" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Syntaksfeil %s:%u: Ekstra rot til slutt i fila" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s ... Feil" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s ... Ferdig" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Kjenner ikkje kommandolinjevalet «%c» (frå %s)." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Skjønar ikkje kommandolinjevalet %s" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Kommandolinjevalet %s er ikkje boolsk" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "Valet %s krev eit argument." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "Val %s: Spesifikasjonen av oppsettselementet må ha ein =." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "Valet %s må ha eit heiltalsargument, ikkje «%s»" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Valet «%s» er for langt" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "Skjønar ikkje %s. Prøv «true» eller «false»." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Ugyldig operasjon %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Klarte ikkje få status til monteringspunktet %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Klarte ikkje byta til %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Klarte ikkje få status til CD-ROM" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "Brukar ikkje låsing for den skrivebeskytta låsefila %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Klarte ikkje opna låsefila %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "Brukar ikkje låsing for den nfs-monterte låsefila %s" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Klarte ikkje låsa %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Venta på %s, men den fanst ikkje" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Underprosessen %s mottok ein segmenteringsfeil." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Underprosessen %s returnerte ein feilkode (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Underprosessen %s avslutta uventa" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Klarte ikkje opna fila %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "lese, har framleis %lu att å lesa, men ingen att" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "skrive, har framleis %lu att å skrive, men klarte ikkje" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Problem ved låsing av fila" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Problem ved oppheving av lenkje til fila" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Problem ved synkronisering av fila" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Tomt pakkelager" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Pakkelagerfila er øydelagd" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Versjonen til pakkelagerfila er ikkje kompatibel" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "APT støttar ikkje versjonssystemet «%s»" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "Pakkelageret er bygd for ein annan arkitektur" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Krav" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Forkrav" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Forslag" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Tilrådingar" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Konflikt" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Byter ut" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Foreldar" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "viktig" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "påkravd" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "vanleg" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "valfri" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "tillegg" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Byggjer kravtre" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Kandidatversjonar" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Genererer kravforhold" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Klarte ikkje tolka pakkefila %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Klarte ikkje tolka pakkefila %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Misforma linje %lu i kjeldelista %s (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Misforma linje %lu i kjeldelista %s (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Misforma linje %lu i kjeldelista %s (URI-tolking)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Misforma linje %lu i kjeldelista %s (absolutt dist)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Misforma linje %lu i kjeldelista %s (dist-tolking)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Opnar %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Linja %u i kjeldelista %s er for lang." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Misforma linje %u i kjeldelista %s (type)" + +#: apt-pkg/sourcelist.cc:244 +#, fuzzy, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Typen «%s» er ukjend i linja %u i kjeldelista %s" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Misforma linje %u i kjeldelista %s (utgjevar-ID)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Denne installasjonen vil verta nøydd til å mellombels fjerna den nødvendige " +"pakken %s på grunn av ei konflikt/forkrav-løkkje. Dette er ofte uheldig, men " +"om du verkeleg vil gjera det, kan du bruka innstillinga «APT::Force-" +"LoopBreak»." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Indeksfiltypen «%s» er ikkje støtta" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "Pakken %s må installerast på nytt, men arkivet finst ikkje." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Feil, «pkgProblemResolver::Resolve» har laga brot. Dette kan skuldast pakkar " +"som er haldne tilbake." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "" +"Klarte ikkje retta opp problema. Nokre øydelagde pakkar er haldne tilbake." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Listekatalogen %spartial manglar." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Arkivkatalogen %spartial manglar." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "" + +#: apt-pkg/acquire.cc:825 +#, fuzzy, c-format +msgid "Retrieving file %li of %li" +msgstr "Les filliste" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Finn ikkje metodedrivaren %s." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Metoden %s starta ikkje rett" + +#: apt-pkg/acquire-worker.cc:377 +#, fuzzy, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "" +"Skifte av medum: Set inn plata merkt\n" +" «%s»\n" +"i stasjonen «%s» og trykk Enter.\n" + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Pakkesystemet «%s» er ikkje støtta" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Klarte ikkje avgjera ein eigna pakkesystemtype" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Klarte ikkje få status på %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "Du må leggja nokre kjelde-URI-ar i fila sources.list." + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "Klarte ikkje tolka eller opna pakkelista eller tilstandsfila." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "" +"Du vil kanskje prøva å retta på desse problema ved å køyra «apt-get update»." + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Ugyldig oppslag i innstillingsfila, manglar pakkehovud" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Skjønar ikkje spikringstypen %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Ingen prioritet (eller null) oppgitt for spiker" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Mellomlageret brukar eit inkompatibelt versjonssystem" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Feil ved behandling av %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Feil ved behandling av %s (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Feil ved behandling av %s (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Feil ved behandling av %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Feil ved behandling av %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Feil ved behandling av %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Feil ved behandling av %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "Jøss, du har overgått talet på pakkenamn som APT kan handtera." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "Jøss, du har overgått talet på versjonar som APT kan handtera." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "Jøss, du har overgått talet på krav som APT kan handtera." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Feil ved behandling av %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Feil ved behandling av %s (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "Fann ikkje pakken %s %s ved behandling av filkrav" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Klarte ikkje få status på kjeldepakkelista %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Samlar inn filtilbod" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "IU-feil ved lagring av kjeldelager" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "endring av namn mislukkast, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "Feil MD5-sum" + +#: apt-pkg/acquire-item.cc:1070 +msgid "There is no public key available for the following key IDs:\n" +msgstr "" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Fann ikkje fila for pakken %s. Det kan henda du må fiksa denne pakken sjølv " +"(fordi arkitekturen manglar)." + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Fann ikkje fila for pakken %s. Det kan henda du må fiksa denne pakken sjølv." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"Pakkeindeksfilene er øydelagde. Feltet «Filename:» manglar for pakken %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Feil storleik" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Utgjevarblokka %s inneheld ingen fingeravtrykk" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Brukar monteringspunktet %s for CD-ROM\n" +"Monterer CD-ROM\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Identifiserer ... " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Lagra etikett: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Brukar monteringspunktet %s for CD-ROM\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "Avmonterer CD-ROM\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Ventar på disk ...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Monterer CD-ROM ...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Leitar etter indeksfiler på disken ...\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "Fann %i pakkeindeksar, %i kjeldeindeksar og %i signaturar\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Det er ikkje eit gyldig namn, prøv igjen.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Disken vert kalla: \n" +"«%s»\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Kopierer pakkelister ..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Skriv ny kjeldeliste\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Kjeldelisteoppføringar for denne disken er:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "Avmonterer CD-ROM ..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "Skreiv %i postar.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "Skreiv %i postar med %i manglande filer.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "Skreiv %i postar med %i filer som ikkje passa\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "Skreiv %i postar med %i manglande filer og %i filer som ikkje passa\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, fuzzy, c-format +msgid "Preparing %s" +msgstr "Opnar %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, fuzzy, c-format +msgid "Unpacking %s" +msgstr "Opnar %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, fuzzy, c-format +msgid "Preparing to configure %s" +msgstr "Opnar oppsettsfila %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, fuzzy, c-format +msgid "Configuring %s" +msgstr "Koplar til %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, fuzzy, c-format +msgid "Installed %s" +msgstr " Installert: " + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, fuzzy, c-format +msgid "Removing %s" +msgstr "Opnar %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, fuzzy, c-format +msgid "Removed %s" +msgstr "Tilrådingar" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, fuzzy, c-format +msgid "Preparing to completely remove %s" +msgstr "Opnar oppsettsfila %s" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, fuzzy, c-format +msgid "Completely removed %s" +msgstr "Klarte ikkje fjerna %s" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Klarte ikkje opna fila %s" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Sambandet vart uventa stengd" + +#~ msgid "File date has changed %s" +#~ msgstr "Fildatoen er endra %s" + +#~ msgid "Reading file list" +#~ msgstr "Les filliste" + +#, fuzzy +#~ msgid "Could not execute " +#~ msgstr "Klarte ikkje låsa %s" + +#~ msgid "Unknown vendor ID '%s' in line %u of source list %s" +#~ msgstr "Ukjend utgjevar-ID «%s» i linja %u i kjeldelista %s" diff --git a/po/pl.po b/po/pl.po new file mode 100644 index 0000000..ce66c57 --- /dev/null +++ b/po/pl.po @@ -0,0 +1,2805 @@ +# Advanced Package Transfer - APT message translation catalog +# Polish translation by: +# Marcin Owsiany , 2002, 2003, 2004. +# Bartosz Fenski , 2005, 2006 +msgid "" +msgstr "" +"Project-Id-Version: apt 0.5.5\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-01-23 15:32+0100\n" +"Last-Translator: Bartosz Fenski \n" +"Language-Team: Polish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Pakiet %s w wersji %s ma niespe³nione zale¿no¶ci:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Nie uda³o siê odnale¼æ pakietu %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Liczba nazw pakietów : " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Zwyk³ych pakietów: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Czysto wirtualnych pakietów: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Pojedynczych pakietów wirtualnych: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Mieszanych pakietów wirtualnych: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Brakuj±cych: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "W sumie ró¿nych wersji: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "W sumie zale¿no¶ci: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "W sumie zale¿no¶ci wersja/plik: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "W sumie mapowañ zapewnieñ: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "W sumie dopasowanych napisów: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Sumaryczny rozmiar obszaru zale¿no¶ci od wersji: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Sumaryczny rozmiar niewykorzystanego miejsca: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Ca³kowity rozmiar: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Plik pakietu %s jest przestarza³y." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Nale¿y podaæ dok³adnie jeden wzór" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Nie znaleziono ¿adnych pakietów" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Plików pakietów:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "" +"Magazyn podrêczny jest przestarza³y, nie mo¿na odwo³aæ siê (x-ref) do pliku " +"pakietu." + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Przypiête pakiety:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(nieznaleziony)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Zainstalowana: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(brak)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Kandyduj±ca: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Sposób przypiêcia: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Tabela wersji:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s dla %s %s skompilowany %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"U¿ycie: apt-cache [opcje] polecenie\n" +" apt-cache [opcje] add plik1 [plik2 ...]\n" +" apt-cache [opcje] showpkg pakiet1 [pakiet2 ...]\n" +" apt-cache [opcje] showsrc pakiet1 [pakiet2 ...]\n" +"\n" +"apt-cache to niskopoziomowe narzêdzie s³u¿±ce do manipulowania\n" +"binarnymi plikami magazynów podrêcznych APT-a, oraz do pobierania\n" +"z nich informacji.\n" +"\n" +"Polecenia:\n" +" add - Dodaj plik pakietów do magazynu podrêcznego\n" +" gencaches - Zbuduj magazyn podrêczny pakietów i ¼róde³\n" +" showpkg - Poka¿ ogólne informacje na temat pojedynczego pakietu\n" +" showsrc - Poka¿ informacje na temat ¼róde³\n" +" stats - Poka¿ podstawowe statystyki\n" +" dump - Poka¿ ca³y plik w skrótowej formie\n" +" dumpavail - Wypisz plik dostêpnych pakietów na standardowe wyj¶cie\n" +" unmet - Poka¿ niespe³nione zale¿no¶ci\n" +" search - Przeszukaj listê pakietów wed³ug wyra¿enia regularnego\n" +" show - Poka¿ czytelny rekord dla danego pakietu\n" +" depends - Poka¿ surowe informacje o zale¿no¶ciach danego pakietu\n" +" rdepends - Poka¿ informacje o zale¿no¶ciach OD danego pakietu\n" +" pkgnames - Poka¿ listê nazw wszystkich pakietów\n" +" dotty - Wygeneruj grafy pakietów dla programu GraphVis\n" +" xvcg - Wygeneruj grafy pakietów dla programu xvcg\n" +" policy - Poka¿ ustawienia polityki\n" +"\n" +"Opcje:\n" +" -h Ten tekst pomocy.\n" +" -p=? Podrêczny magazyn pakietów.\n" +" -s=? Podrêczny magazyn ¼róde³.\n" +" -q Wy³±cz wska¼nik postêpu.\n" +" -i Poka¿ tylko wa¿ne zale¿no¶ci przy poleceniu unmet.\n" +" -c=? Czytaj ten plik konfiguracyjny.\n" +" -o=? Ustaw dowoln± opcjê konfiguracji, np. -o dir::cache=/tmp\n" +"Wiêcej informacji mo¿na znale¼æ na stronach podrêcznika apt-cache(8)\n" +"oraz apt.conf(5).\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "Proszê wprowadziæ nazwê dla tej p³yty, np 'Debian 2.1r1 Disk 1'" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Proszê w³o¿yæ dysk do napêdu i nacisn±æ enter" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Powtórz ten proces dla reszty p³yt." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Argumenty nie s± w parach" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"U¿ycie: apt-config [opcje] polecenie\n" +"\n" +"apt-config to proste narzêdzie do czytania pliku konfiguracyjnego APT\n" +"\n" +"Polecenia:\n" +" shell - Tryb pow³oki\n" +" dump - Poka¿ konfiguracjê\n" +"\n" +"Opcje:\n" +" -h Ten tekst pomocy.\n" +" -c=? Czytaj ten plik konfiguracyjny.\n" +" -o=? Ustaw dowoln± opcjê konfiguracji, np. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s nie jest prawid³owym pakietem DEB." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"U¿ycie: apt-extracttemplates plik1 [plik2 ...]\n" +"\n" +"apt-extracttemplates to narzêdzie s³u¿±ce do pobierania informacji\n" +"i konfiguracji i szablonach z pakietów Debiana.\n" +"\n" +"Opcje:\n" +" -h Ten tekst pomocy.\n" +" -t Ustaw katalog tymczasowy\n" +" -c=? Czytaj ten plik konfiguracyjny.\n" +" -o=? Ustaw dowoln± opcjê konfiguracji, np. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Nie uda³o siê pisaæ do %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Nie uda³o siê pobraæ wersji debconf. Czy debconf jest zainstalowany?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Lista rozszerzeñ pakietów jest zbyt d³uga" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "B³±d przetwarzania katalogu %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Lista rozszerzeñ pakietów ¼ród³owych jest zbyt d³uga" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "B³±d przy zapisywaniu nag³ówka do pliku zawarto¶ci" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "B³±d podczas przetwarzania zawarto¶ci %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"U¿ycie: apt-ftparchive [opcje] polecenie\n" +"Polecenia: packages ¶cie¿ka_do_binariów [plik_override [przedrostek]]\n" +" sources ¶cie¿ka_do_¼róde³ [plik_override [przedrostek]]\n" +" contents ¶cie¿ka\n" +" release ¶cie¿ka\n" +" generate konfiguracja [grupy]\n" +" clean konfiguracja\n" +"\n" +"apt-ftparchive generuje pliki indeksów dla archiwów Debiana. Obs³uguje\n" +"ró¿ne rodzaje generowania, od w pe³ni zautomatyzowanych po funkcjonalne\n" +"zamienniki programów dpkg-scanpackages i dpkg-scansources.\n" +"\n" +"apt-ftparchive generuje pliki Package na postawie drzewa plików .deb.\n" +"Wygenerowany plik zawiera pola kontrolne wszystkich pakietów oraz ich\n" +"skróty MD5 i rozmiary. Obs³ugiwany jest plik override, pozwalaj±cy okre¶liæ\n" +"priorytet i dzia³ pakietu.\n" +"\n" +"apt-ftparchive podobnie generuje pliki Sources na podstawie drzewa plików\n" +".dsc. Przy pomocy opcji --source-override mo¿na podaæ plik override dla\n" +"pakietów ¼ród³owych.\n" +"\n" +"Polecenia 'packages' i 'sources' powinny byæ wykonywane w katalogu g³ównym\n" +"drzewa. `¶cie¿ka_do_binariów' powinna wskazywaæ na katalog, od którego " +"zacznie\n" +"siê wyszukiwanie, a plik override powinien zawieraæ odpowiednie flagi.\n" +"Przedrostek (o ile zosta³ podany) jest dodawany przed ¶cie¿k± do ka¿dego\n" +"pliku. Przyk³adowe u¿ycie, z archiwum Debiana:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Opcje:\n" +" -h Ten tekst pomocy\n" +" --md5 Generuj sumy kontrolne MD5\n" +" -s=? Plik override dla ¼róde³\n" +" -q `Ciche' dzia³anie\n" +" -d=? Opcjonalna podrêczna baza danych\n" +" --no-delink W³±cz tryb diagnostyczny od³±czania\n" +" --contents Generuj plik zawarto¶ci (Contents)\n" +" -c=? Czytaj ten plik konfiguracyjny\n" +" -o=? Ustaw dowoln± opcjê konfiguracji" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Nie dopasowano ¿adnej nazwy" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Brakuje pewnych plików w grupie plików pakietów `%s'" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "Baza by³a uszkodzona, plik zosta³ przeniesiony do %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "Baza jest przestarza³a, próbujê zaktualizowaæ %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Nie uda³o siê otworzyæ pliku DB %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Nie uda³o siê wykonaæ operacji stat na %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Archiwum nie posiada rekordu control" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Nie uda³o siê pobraæ kursora" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: Nie uda³o siê odczytaæ katalogu %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "W: Nie mo¿na wykonaæ operacji stat na %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E: B³êdy odnosz± siê do pliku " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Nie uda³o siê przet³umaczyæ nazwy %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Przej¶cie po drzewie nie powiod³o siê" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Nie uda³o siê otworzyæ %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " Od³±czenie %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Nie uda³o siê odczytaæ dowi±zania %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Nie uda³o siê usun±æ %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Nie uda³o siê dowi±zaæ %s do %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " Osi±gniêto ograniczenie od³±czania %sB.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Archiwum nie posiada³o pola pakietu" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s nie posiada wpisu w pliku override\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " opiekunem %s jest %s, a nie %s\n" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s nie posiada wpisu w pliku override\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s nie posiada wpisu w pliku override\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "B³±d wewnêtrzny, nie uda³o siê odnale¼æ sk³adnika %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Nie uda³o siê zaalokowaæ pamiêci" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Nie mo¿na otworzyæ %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "B³êdna linia %2$lu #1 pliku override %1$s" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "B³êdna linia %2$lu #2 pliku override %1$s" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "B³êdna linia %2$lu #3 pliku override %1$s" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Nie uda³o siê czytaæ pliku override %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Nieznany algorytm kompresji '%s'" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Skompresowany plik wynikowy %s wymaga podania kompresji" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Nie uda³o siê utworzyæ potoku IPC do podprocesu" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Nie uda³o siê utworzyæ obiektu FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Nie uda³o siê utworzyæ procesu potomnego" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Potomny proces kompresuj±cy" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "B³±d wewnêtrzny, nie uda³o siê utworzyæ %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Nie uda³o siê utworzyæ IPC z podprocesem" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Nie uda³o siê uruchomiæ kompresora " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "dekompresor" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "Zawiod³a operacja IO na pliku/podprocesie" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Nie uda³o siê czytanie w czasie liczenia skrótu MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Problem przy usuwaniu %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Nie uda³o siê zmieniæ nazwy %s na %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "T" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "B³±d kompilacji wyra¿enia regularnego - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Nastêpuj±ce pakiety maj± niespe³nione zale¿no¶ci:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "ale %s jest zainstalowany" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "ale %s ma zostaæ zainstalowany" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "ale nie da siê go zainstalowaæ" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "ale jest pakietem wirtualnym" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "ale nie jest zainstalowany" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "ale nie zostanie zainstalowany" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " lub" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Zostan± zainstalowane nastêpuj±ce NOWE pakiety:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Nastêpuj±ce pakiety zostan± USUNIÊTE:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Nastêpuj±ce pakiety zosta³y zatrzymane:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Nastêpuj±ce pakiety zostan± zaktualizowane:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Zostan± zainstalowane STARE wersje nastêpuj±cych pakietów:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Zostan± zmienione nastêpuj±ce zatrzymane pakiety:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (z powodu %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"UWAGA: Zostan± usuniête nastêpuj±ce istotne pakiety.\n" +"Nie powinno siê tego robiæ, chyba ¿e dok³adnie wiesz, co robisz!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu aktualizowanych, %lu nowo instalowanych, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu przeinstalowywanych, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu cofniêtych wersji, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu usuwanych i %lu nieaktualizowanych.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu nie w pe³ni zainstalowanych lub usuniêtych.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Naprawianie zale¿no¶ci..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " nie uda³o siê." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Nie uda³o siê naprawiæ zale¿no¶ci" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Nie uda³o siê zminimalizowaæ zbioru aktualizacji" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Gotowe" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "Nale¿y uruchomiæ `apt-get -f install', aby je naprawiæ." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Niespe³nione zale¿no¶ci. Spróbuj u¿yæ -f." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "UWAGA: Nastêpuj±ce pakiety nie mog± zostaæ zweryfikowane!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Ostrze¿enie uwierzytelniania zignorowano.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Zainstalowaæ te pakiety bez weryfikacji [t/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Niektóre pakiety nie mog³y zostaæ zweryfikowane" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "By³y problemy, a u¿yto -y bez --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "B³±d wewnêtrzny, InstallPackages u¿yto z zepsutymi pakietami!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Pakiety powinny zostaæ usuniête, ale Remove jest wy³±czone." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "B³±d wewnêtrzny, sortowanie niezakoñczone" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Nie uda³o siê zablokowaæ katalogu pobierania" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "Nie uda³o siê odczytaæ list ¼róde³." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "Dziwne.. rozmiary siê nie zgadzaj±, zg³o¶ pod apt@packages.debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Konieczne pobranie %sB/%sB archiwów.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Konieczne pobranie %sB archiwów.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "Po rozpakowaniu zostanie dodatkowo u¿yte %sB miejsca na dysku.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Po rozpakowaniu zostanie zwolnione %sB miejsca na dysku.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Nie uda³o siê ustaliæ ilo¶ci wolnego miejsca w %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Niestety w %s nie ma wystarczaj±cej ilo¶ci wolnego miejsca." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "Nakazano wykonywaæ tylko trywialne operacje, a to nie jest trywialne." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Tak, rób jak mówiê!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Zaraz zrobisz co¶ potencjalnie szkodliwego.\n" +"Aby kontynuowaæ wpisz zdanie '%s'\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Przerwane." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Czy chcesz kontynuowaæ [T/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Nie uda³o siê pobraæ %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Nie uda³o siê pobraæ niektórych plików" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Ukoñczono pobieranie w trybie samego pobierania" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Nie uda³o siê pobraæ niektórych archiwów, spróbuj uruchomiæ apt-get update " +"lub u¿yæ opcji --fix-missing" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing i zamienianie no¶ników nie jest obecnie obs³ugiwane" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Nie uda³o siê poprawiæ brakuj±cych pakietów." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Przerywanie instalacji" + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Uwaga, wybieranie %s zamiast %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" +"Pomijanie %s, jest ju¿ zainstalowane, a nie zosta³o wybrana aktualizacja.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "Pakiet %s nie jest zainstalowany, wiêc nie zostanie usuniêty.\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Pakiet %s jest pakietem wirtualnym zapewnianym przez:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Zainstalowany]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Nale¿y jednoznacznie wybraæ jeden z nich do instalacji." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Pakiet %s nie ma dostêpnej wersji, ale odnosi siê do niego inny pakiet.\n" +"Zazwyczaj oznacza to, ¿e pakietu brakuje, zosta³ zast±piony przez inny\n" +"pakiet lub nie jest dostêpny przy pomocy obecnie ustawionych ¼róde³.\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Jednak nastêpuj±ce pakiety go zastêpuj±:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Pakiet %s nie ma kandydata do instalacji" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "" +"Przeinstalowanie pakietu %s nie jest mo¿liwe, nie mo¿e on zostaæ pobrany.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s jest ju¿ w najnowszej wersji.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Wydanie '%s' dla '%s' nie zosta³o znalezione" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Wersja '%s' dla '%s' nie zosta³a znaleziona" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Wybrano wersjê %s (%s) dla %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "Polecenie update nie wymaga ¿adnych argumentów" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Nie uda³o siê zablokowaæ katalogu list" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Nie uda³o siê pobraæ niektórych plików indeksu, zosta³y one zignorowane lub " +"zosta³a u¿yta ich starsza wersja." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "B³±d wewnêtrzny, AllUpgrade wszystko popsu³o" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Nie uda³o siê odnale¼æ pakietu %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Uwaga, wybieranie %s za wyra¿enie '%s'\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "Nale¿y uruchomiæ `apt-get -f install', aby je naprawiæ:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Niespe³nione zale¿no¶ci. Spróbuj 'apt-get -f install' bez pakietów (lub " +"podaj rozwi±zanie)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Nie uda³o siê zainstalowaæ niektórych pakietów. Mo¿e to oznaczaæ,\n" +"¿e za¿±dano niemo¿liwej sytuacji lub u¿ywasz dystrybucji niestabilnej,\n" +"w której niektóre pakiety nie zosta³y jeszcze utworzone lub przeniesione\n" +"z katalogu Incoming (\"Przychodz±ce\")." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Poniewa¿ za¿±dno tylko jednej operacji, jest bardzo prawdopodobne, ¿e\n" +"danego pakietu po prostu nie da siê zainstalowaæ i nale¿y zg³osiæ w nim\n" +"b³±d." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "Nastêpuj±ce informacje mog± pomóc rozpoznaæ sytuacjê:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Pakiety s± b³êdne" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Zostan± zainstalowane nastêpuj±ce dodatkowe pakiety:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Sugerowane pakiety:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Polecane pakiety:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Obliczanie aktualizacji..." + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Nie uda³o siê" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Gotowe" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "B³±d wewnêtrzny, rozwi±zywanie problemów wszystko popsu³o" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "" +"Nale¿y podaæ przynajmniej jeden pakiet, dla którego maj± zostaæ pobrane " +"¼ród³a" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Nie uda³o siê odnale¼æ ¼ród³a dla pakietu %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Pomijanie ju¿ pobranego pliku '%s'\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "W %s nie ma wystarczaj±cej ilo¶ci wolnego miejsca" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Konieczne pobranie %sB/%sB archiwów ¼róde³.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Konieczne pobranie %sB archiwów ¼róde³.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Pobierz ¼ród³o %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Nie uda³o siê pobraæ niektórych archiwów." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Pomijanie rozpakowania ju¿ rozpakowanego ¼ród³a w %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Polecenie rozpakowania '%s' zawiod³o.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Sprawd¼ czy pakiet 'dpkg-dev' jest zainstalowany.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Polecenie budowania '%s' zawiod³o.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Proces potomny zawiód³" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"Nale¿y podaæ przynajmniej jeden pakiet, dla którego maj± zostaæ pakiety " +"wymagane do budowania" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "" +"Nie uda³o siê pobraæ informacji o zale¿no¶ciach na czas budowania dla %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s nie ma zale¿no¶ci czasu budowania.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"Zale¿no¶æ %s od %s nie mo¿e zostaæ spe³niona, poniewa¿ nie znaleziono " +"pakietu %s" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"Zale¿no¶æ %s od %s nie mo¿e zostaæ spe³niona, poniewa¿ ¿adna z dostêpnych " +"wersji pakietu %s nie ma odpowiedniej wersji" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Nie uda³o siê spe³niæ zale¿no¶ci %s od %s: Zainstalowany pakiet %s jest zbyt " +"nowy" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Nie uda³o siê spe³niæ zale¿no¶ci %s od %s: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Nie uda³o siê spe³niæ zale¿no¶ci na czas budowania od %s." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Nie uda³o siê przetworzyæ zale¿no¶ci na czas budowania" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Obs³ugiwane modu³y:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"U¿ycie: apt-get [opcje] polecenie\n" +" apt-get [opcje] install|remove pakiet1 [pakiet2 ...]\n" +" apt-get [opcje] source pakiet1 [pakiet2 ...]\n" +"\n" +"apt-get to prosty interfejs linii poleceñ do pobierania i instalacji\n" +"pakietów. Najczê¶ciej u¿ywane polecenia to update i install.\n" +"\n" +"Polecenia:\n" +" update - Pobierz nowe listy pakietów\n" +" upgrade - Wykonaj aktualizacjê\n" +" install - Zainstaluj nowe pakiety (pakiet to np. libc6, nie libc6.deb)\n" +" remove - Usuñ pakiety\n" +" source - Pobierz archiwa ¼ród³owe\n" +" build-dep - Skonfiguruj zale¿no¶ci na czas budowania dla pakietów " +"¼ród³owych\n" +" dist-upgrade - Aktualizacja dystrybucji, patrz apt-get(8)\n" +" dselect-upgrade - Instaluj wed³ug wyborów dselect\n" +" clean - Usuñ pobrane pliki archiwów\n" +" autoclean - Usuñ stare pobrane pliki archiwów\n" +" check - Sprawd¼, czy wszystkie zale¿no¶ci s± spe³nione\n" +"\n" +"Opcje:\n" +" -h Ten tekst pomocy.\n" +" -q Nie pokazuj wska¼nika postêpu (przydatne przy rejestrowaniu " +"dzia³ania)\n" +" -qq Nie wypisuj nic oprócz komunikatów b³êdów\n" +" -d Tylko pobierz - NIE instaluj ani nie rozpakowuj archiwów\n" +" -s Bez dzia³ania. Wykonaj tylko symulacjê ustawiania kolejno¶ci\n" +" -y Zak³adaj odpowied¼ \"tak\" na wszystkie pytania, nie pytaj\n" +" -f Próbuj dzia³aæ nawet je¶li zawiedzie sprawdzenie integralno¶ci\n" +" -m Próbuj dzia³aæ nawet je¶li nie mo¿na znale¼æ niektórych archiwów\n" +" -u Poka¿ te¿ listê aktualizowanych pakietów\n" +" -b Zbuduj pakiet po pobraniu archiwum ¼ród³owego\n" +" -V Poka¿ pe³n± informacjê na temat wersji\n" +" -c=? Czytaj ten plik konfiguracyjny.\n" +" -o=? Ustaw dowoln± opcjê konfiguracji, np. -o dir::cache=/tmp\n" +"Wiêcej informacji i opcji mo¿na znale¼æ na stronach podrêcznika\n" +"apt-get(8), sources.list(5) i apt.conf(5).\n" +" Ten APT ma moce Super Krowy.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Traf " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Pob: " + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ign " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "B³±d " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Pobrano %sB w %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Pracujê]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Zmiana no¶nika: Proszê w³o¿yæ dysk oznaczony\n" +" '%s'\n" +"do napêdu '%s' i nacisn±æ enter\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Nieznany rekord pakietu!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"U¿ycie: apt-sortpkgs [opcje] plik1 [plik2 ...]\n" +"\n" +"apt-sortpkgs to proste narzêdzie s³u¿±ce do sortowania plików pakietów.\n" +"Opcji -s u¿ywa siê do wskazania typu pliku.\n" +"\n" +"Opcje:\n" +" -h Ten tekst pomocy.\n" +" -s Sortowanie pliku ¼róde³.\n" +" -c=? Czytaj ten plik konfiguracyjny.\n" +" -o=? Ustaw dowoln± opcjê konfiguracji, np. -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Nieprawid³owe ustawienie domy¶lne!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Naci¶nij enter, aby kontynuowaæ." + +# Note to translators: The following four messages belong together. It doesn't +# matter where sentences start, but it has to fit in just these four lines, and +# at only 80 characters per line, if possible. +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Wyst±pi³y problemy przy rozpakowywaniu. Zainstalowane pakiety zostan±" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "skonfigurowane. Mo¿e to spowodowaæ podwójne b³êdy lub b³êdy" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" +"spowodowane brakuj±cymi zale¿no¶ciami. To jest normalne. Tylko powy¿sze" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "b³êdy s± istotne. Proszê je poprawiæ i ponownie wybraæ [I]nstalacjê." + +#: dselect/update:30 +msgid "Merging available information" +msgstr "£±czenie informacji o dostêpnych pakietach" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Nie uda³o siê utworzyæ potoków" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Nie uda³o uruchomiæ programu gzip " + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Uszkodzone archiwum" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Niepoprawna suma kontrolna tar, archiwum jest uszkodzone" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Nieznany typ nag³ówka TAR %u, sk³adnik %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Nieprawid³owy podpis archiwum" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "B³±d przy czytaniu nag³ówka sk³adnika archiwum" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Nieprawid³owy nag³ówek sk³adnika archiwum" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Archiwum jest za krótkie" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Nie uda³o siê odczytaæ nag³ówków archiwum" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "DropNode wywo³ane na wci±¿ pod³±czonym wê¼le" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Nie uda³o siê odnale¼æ elementu hasha!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Nie uda³o siê utworzyæ objazdu" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "B³±d wewnêtrzny w AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Próba nadpisania objazdu, %s -> %s i %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Podwójne dodanie objazdu %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Zduplikowany plik konfiguracyjny %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Nie uda³o siê zapisaæ pliku %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Nie uda³o siê zamkn±æ pliku %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "¦cie¿ka %s jest zbyt d³uga" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Wypakowanie %s wiêcej ni¿ raz" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "Objazd katalogu %s" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "Pakiet próbuje pisaæ do celu objazdu %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Zbyt d³uga ¶cie¿ka objazdu" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "Katalog %s zosta³ zast±piony obiektem nie bêd±cym katalogiem" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Nie uda³o siê znale¼æ wêz³a w jego kube³ku haszuj±cym" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "¦cie¿ka jest zbyt d³uga" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Dopasowanie dla %s nadpisuj±cego pakietu bez wersji" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Plik %s/%s nadpisuje plik w pakiecie %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Nie mo¿na czytaæ %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Nie mo¿na wykonaæ operacji stat na %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Nie uda³o siê usun±æ %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Nie mo¿na utworzyæ %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Nie uda³o siê wykonaæ operacji stat na %sinfo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "Pliki info i temp musz± byæ na tym samym systemie plików" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Czytanie list pakietów" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Nie uda³o siê przej¶æ do katalogu administracyjnego %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "B³±d wewnêtrzny podczas pobierania nazwy pakietu" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Czytanie listy plików" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Nie uda³o siê otworzyæ pliku listy '%sinfo/%s'. Je¶li nie mo¿esz przywróciæ " +"tego pliku, utwórz go jako pusty plik i bezzw³ocznie przeinstaluj tê sam± " +"wersjê pakietu!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Nie uda³o siê przeczytaæ pliku listy %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "B³±d wewnêtrzny przy pobieraniu wêz³a" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Nie uda³o siê otworzyæ pliku objazdów %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Plik objazdów jest uszkodzony" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Nieprawid³owa linia w pliku objazdów: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "B³±d wewnêtrzny przy dodawaniu objazdu" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "Magazyn podrêczny pakietów musi wcze¶niej zostaæ zainicjalizowany" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Nie uda³o siê znale¼æ nag³ówka Package:, offset %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "B³êdna sekcja ConfFile w pliku stanu. Offset %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "B³±d przy czytaniu skrótu MD5. Offset %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "To nie jest poprawne archiwum DEB, brakuje sk³adnika '%s'" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "To nie jest poprawne archiwum DEB, brakuje sk³adnika '%s' lub '%s'" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Nie uda³o siê przej¶æ do %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "B³±d wewnêtrzny, nie uda³o siê odnale¼æ sk³adnika" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Nie uda³o siê odnale¼æ poprawnego pliku control" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Plik kontrolny nie mo¿e zostaæ poprawnie zinterpretowany" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Nie mo¿na odczytaæ bazy danych CD-ROM-ów %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Proszê u¿yæ programu apt-cdrom, aby APT móg³ rozpoznaæ tê p³ytê CD. Nowych " +"p³yt nie mo¿na dodawaæ przy pomocy polecenia apt-get update" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "Niew³a¶ciwa p³yta CD" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "Nie uda³o siê odmontowaæ CD-ROM-u w %s, byæ mo¿e wci±¿ jest u¿ywany." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Nie odnaleziono dysku." + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Nie odnaleziono pliku" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Nie uda³o siê wykonaæ operacji stat" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Nie uda³o siê ustawiæ czasu modyfikacji" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "Nieprawid³owe URI, lokalne URI nie mog± zaczynaæ siê od //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Rejestrowanie siê" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Nie mo¿na okre¶liæ nazwy zdalnego systemu" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Nie uda³o siê okre¶liæ nazwy lokalnego systemu" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Serwer odrzuci³ nasze po³±czenie i powiedzia³: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "Polecenie USER nie powiod³o siê, serwer powiedzia³: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "Polecenie PASS nie powiod³o siê, serwer powiedzia³: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Okre¶lono serwer po¶rednicz±cy, ale nie okre¶lono skryptu rejestrowania, " +"Acquire::ftp::ProxyLogin jest puste." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "" +"Polecenie skryptu rejestrowania '%s' nie powiod³o siê, serwer powiedzia³: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "Polecenie TYPE nie powiod³o siê, serwer powiedzia³: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Przekroczenie czasu po³±czenia" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Serwer zamkn±³ po³±czenie" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "B³±d odczytu" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Odpowied¼ przepe³ni³a bufor." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Naruszenie zasad protoko³u" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "B³±d zapisu" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Nie uda³o siê utworzyæ gniazda" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "Nie uda³o siê po³±czyæ gniazda danych, przekroczenie czasu po³±czenia" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Nie uda³o siê po³±czyæ pasywnego gniazda." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo nie by³o w stanie uzyskaæ s³uchaj±cego gniazda" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Nie uda³o siê przy³±czyæ gniazda" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Nie uda³o siê s³uchaæ na gnie¼dzie" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Nie uda³o siê okre¶liæ nazwy gniazda" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Nie mo¿na wys³aæ polecenia PORT" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Nieznana rodzina adresów %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "Polecenie EPRT nie powiod³o siê, serwer powiedzia³: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Przekroczony czas po³±czenia gniazda danych" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Nie uda³o siê przyj±æ po³±czenia" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Nie uda³o siê obliczyæ skrótu pliku" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Nie mo¿na pobraæ pliku, serwer powiedzia³ '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Przekroczony czas oczekiwania na dane" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Nie uda³o siê przes³aæ danych, serwer powiedzia³ '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Info" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Nie mo¿na wywo³aæ " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Pod³±czanie do %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Nie uda³o siê utworzyæ gniazda dla %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Nie uda³o siê zainicjalizowaæ po³±czenia z %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Nie uda³o siê po³±czyæ z %s:%s (%s), przekroczenie czasu po³±czenia" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Nie uda³o siê po³±czyæ z %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "£±czenie z %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Nie uda³o siê przet³umaczyæ nazwy '%s'" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Tymczasowy b³±d przy t³umaczeniu '%s'" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Co¶ niegodziwego sta³o siê przy t³umaczeniu '%s:%s' (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Nie uda³o siê po³±czyæ z %s %s:" + +#: methods/gpgv.cc:65 +#, fuzzy, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Nie uda³o siê przet³umaczyæ nazwy '%s'" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "E: Lista argumentów Acquire::gpgv::Options zbyt d³uga. Wychodzimy." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" +"B³±d wewnêtrzny: Prawid³owa sygnatura, ale nie nie uda³o siê ustaliæ " +"jejodcisku?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Napotkano przynajmniej jedn± nieprawid³ow± sygnaturê." + +#: methods/gpgv.cc:213 +#, fuzzy, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr " by zweryfikowaæ sygnaturê (czy gnupg jest zainstalowane?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Nieznany b³±d podczas uruchamiania gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "Nastêpuj±ce sygnatury by³y b³êdne:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"Nastêpuj±ce sygnatury nie mog³y zostaæ zweryfikowane z powodu braku klucza " +"publicznego:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Nie uda³o siê otworzyæ potoku dla %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "B³±d odczytu z procesu %s" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Oczekiwanie na nag³ówki" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Otrzymano pojedyncz± liniê nag³ówka o d³ugo¶ci ponad %u znaków" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Nieprawid³owa linia nag³ówka" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "Serwer HTTP przys³a³ nieprawid³owy nag³ówek odpowiedzi" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "Serwer HTTP przys³a³ nieprawid³owy nag³ówek Content-Length" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "Serwer HTTP przys³a³ nieprawid³owy nag³ówek Content-Range" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "Ten serwer HTTP nieprawid³owo obs³uguje zakresy (ranges)" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Nieznany format daty" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Operacja select nie powiod³a siê" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Przekroczenie czasu po³±czenia" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "B³±d przy pisaniu do pliku wyj¶ciowego" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "B³±d przy pisaniu do pliku" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "B³±d przy pisaniu do pliku" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "B³±d czytania z serwera: Zdalna strona zamknê³a po³±czenie" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "B³±d czytania z serwera" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "B³êdne dane nag³ówka" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Po³±czenie nie uda³o siê" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "B³±d wewnêtrzny" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Nie mo¿na wykonaæ mmap na pustym pliku" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Nie uda³o siê wykonaæ mmap %lu bajtów" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Nie odnaleziono wyboru %s" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Nierozpoznany skrót typu: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Otwieranie pliku konfiguracyjnego %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Linia %d jest zbyt d³uga (max %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "B³±d sk³adniowy %s:%u: Blok nie zaczyna siê nazw±." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "B³±d sk³adniowy %s:%u: B³êdny znacznik" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "B³±d sk³adniowy %s:%u: Po warto¶ci wystêpuj± ¶mieci" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" +"B³±d sk³adniowy %s:%u: Dyrektywy mog± wystêpowaæ tylko na poziomie najwy¿szym" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "B³±d sk³adniowy %s:%u: Zbyt wiele zagnie¿d¿onych operacji include" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "B³±d sk³adniowy %s:%u: W³±czony tutaj" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "B³±d sk³adniowy %s:%u: Nieobs³ugiwana dyrektywa '%s'" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "B³±d sk³adniowy %s:%u: ¦mieci na koñcu pliku" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... B³±d!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Gotowe" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Opcja linii poleceñ '%c' [z %s] jest nieznana." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Niezrozumia³a opcja linii poleceñ %s" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Opcja linii poleceñ %s nie jest typu boolean" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "Opcja %s wymaga argumentu." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "Opcja %s: Specyfikacja elementu konfiguracji musi zawieraæ =." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "Opcja %s wymaga argumentu typu ca³kowitego, nie '%s'" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Opcja '%s' jest zbyt d³uga" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "Znaczenie %s jest nieznane, spróbuj true albo false." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Nieprawid³owa operacja %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Nie uda³o siê wykonaæ operacji stat na punkcie montowania %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Nie uda³o siê przej¶æ do %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Nie uda³o siê wykonaæ operacji stat na CDROM-ie" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "Dla pliku blokady %s tylko do odczytu nie zostanie u¿yta blokada" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Nie uda³o siê otworzyæ pliku blokady %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "Dla pliku blokady %s montowanego przez NFS nie zostanie u¿yta blokada" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Nie uda³o siê uzyskaæ blokady %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Oczekiwano na proces %s, ale nie by³o go" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Podproces %s spowodowa³ naruszenie segmentacji." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Podproces %s zwróci³ kod b³êdu (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Podproces %s zakoñczy³ siê niespodziewanie" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Nie uda³o siê otworzyæ pliku %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "nale¿a³o przeczytaæ jeszcze %lu, ale nic nie zosta³o" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "nale¿a³o zapisaæ jeszcze %lu, ale nie uda³o siê to" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Problem przy zamykaniu pliku" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Problem przy usuwaniu pliku" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Problem przy zapisywaniu pliku na dysk" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Pusty magazyn podrêczny pakietów" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Magazyn podrêczny pakietów jest uszkodzony" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Magazyn podrêczny pakietów jest w niezgodnej wersji" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Ta wersja APT nie obs³uguje systemu wersji '%s'" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "Ten magazyn podrêczny pakietów zosta³ zbudowany dla innej architektury" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Wymaga" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "PreWymaga" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Sugeruje" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Poleca" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Jest w konflikcie z" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Zastêpuje" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Czyni zbêdnym" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "wa¿ny" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "wymagany" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "standardowy" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "opcjonalny" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "dodatkowy" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Budowanie drzewa zale¿no¶ci" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Kandyduj±ce wersje" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Generowanie zale¿no¶ci" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Nie uda³o siê zanalizowaæ pliku pakietu %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Nie uda³o siê zanalizowaæ pliku pakietu %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Nieprawid³owa linia %lu w li¶cie ¼róde³ %s (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Nieprawid³owa linia %lu w li¶cie ¼róde³ %s (dystrybucja)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Nieprawid³owa linia %lu w li¶cie ¼róde³ %s (analiza URI)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Nieprawid³owa linia %lu w li¶cie ¼róde³ %s (bezwzglêdna dystrybucja)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Nieprawid³owa linia %lu w li¶cie ¼róde³ %s (analiza dystrybucji)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Otwieranie %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Linia %u w li¶cie ¼róde³ %s jest zbyt d³uga." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Nieprawid³owa linia %u w li¶cie ¼róde³ %s (typ)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Typ '%s' jest nieznany w linii %u listy ¼róde³ %s" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Nieprawid³owa linia %u w li¶cie ¼róde³ %s (identyfikator producenta)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"To uruchomienie programu bêdzie wymaga³o tymczasowego usuniêcia istotnego " +"pakietu %s z powodu pêtli konfliktów/pre-zale¿no¶ci. Czêsto nie oznacza to " +"nic dobrego, ale je¶li naprawdê chcesz to zrobiæ, w³±cz opcjê APT::Force-" +"LoopBreak." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Plik indeksu typu '%s' nie jest obs³ugiwany" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"Pakiet %s ma zostaæ przeinstalowany, ale nie mo¿na znale¼æ jego archiwum." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"B³±d, pkgProblemResolver::Resolve zwróci³ b³±d, mo¿e to byæ spowodowane " +"\"zatrzymanymi\" pakietami." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "Nie uda³o siê naprawiæ problemów, zatrzymano uszkodzone pakiety." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Brakuje katalogu list %spartial." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Brakuje katalogu archiwów %spartial." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, fuzzy, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "Pobieranie pliku %li z %li (%s pozosta³o)" + +#: apt-pkg/acquire.cc:825 +#, fuzzy, c-format +msgid "Retrieving file %li of %li" +msgstr "Czytanie listy plików" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Nie uda³o siê odnale¼æ sterownika metody %s." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Metoda %s nie uruchomi³a siê poprawnie." + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "W³ó¿ do napêdu '%s' dysk o nazwie: '%s' i naci¶nij enter." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "System pakietów '%s' nie jest obs³ugiwany" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Nie uda³o siê okre¶liæ odpowiedniego typu systemu pakietów" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Nie uda³o siê wykonaæ operacji stat na pliku %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "Nale¿y dopisaæ jakie¶ URI 'source' do pliku sources.list" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "Nie uda³o siê otworzyæ lub zanalizowaæ zawarto¶ci list pakietów." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "Nale¿y uruchomiæ apt-get update aby naprawiæ te problemy." + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Nieprawid³owy rekord w pliku ustawieñ, brak nag³ówka Package" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Nierozpoznany typ przypinania %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Brak (lub zerowy) priorytet przypiêcia" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Magazyn podrêczny ma niezgodny system wersji" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Wyst±pi³ b³±d podczas przetwarzania %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Wyst±pi³ b³±d podczas przetwarzania %s (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Wyst±pi³ b³±d podczas przetwarzania %s (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Wyst±pi³ b³±d podczas przetwarzania %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Wyst±pi³ b³±d podczas przetwarzania %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Wyst±pi³ b³±d podczas przetwarzania %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Wyst±pi³ b³±d podczas przetwarzania %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" +"Och, przekroczono liczbê pakietów, któr± ten APT jest w stanie obs³u¿yæ." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "Och, przekroczono liczbê wersji, któr± ten APT jest w stanie obs³u¿yæ." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" +"Och, przekroczono liczbê zale¿no¶ci, któr± ten APT jest w stanie obs³u¿yæ." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Wyst±pi³ b³±d podczas przetwarzania %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Wyst±pi³ b³±d podczas przetwarzania %s (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "" +"Pakiet %s %s nie zosta³ odnaleziony podczas przetwarzania zale¿no¶ci plików" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Nie uda³o siê wykonaæ operacji stat na li¶cie pakietów ¼ród³owych %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Zbieranie zapewnieñ plików" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "B³±d wej¶cia/wyj¶cia przy zapisywaniu podrêcznego magazynu ¼róde³" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "nie uda³o siê zmieniæ nazwy, %s (%s -> %s)" + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "B³êdna suma MD5" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "Dla nastêpuj±cego identyfikatora klucza brakuje klucza publicznego:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Nie uda³o siê odnale¼æ pliku dla pakietu %s. Mo¿e to oznaczaæ, ¿e trzeba " +"bêdzie rêcznie naprawiæ ten pakiet (z powodu brakuj±cej architektury)." + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Nie uda³o siê odnale¼æ pliku dla pakietu %s. Mo¿e to oznaczaæ, ¿e trzeba " +"bêdzie rêcznie naprawiæ ten pakiet." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"Pliki indeksu pakietów s± uszkodzone. Brak pola Filename: dla pakietu %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "B³êdny rozmiar" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Blok producenta %s nie zawiera odcisku" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Wykorzystuê %s jako punkt montowania CD-ROMu\n" +"Montowanie CD-ROMu\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Identyfikacja.. " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Etykieta: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Wykorzystujê %s jako punkt montowania CD-ROMu\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "Odmontowanie CD-ROMu\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Oczekiwanie na p³ytê...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Montowanie CD-ROMu...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Skawnowanie p³yty w poszukiwaniu plików indeksu..\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "" +"Znaleziono %i indeksów pakietów, %i indeksów ¼ród³owych, %i indeksów " +"t³umaczeñ i %i sygnatur\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "To nie jest prawid³owa nazwa, spróbuj ponownie.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"P³yta nosi nazwê: \n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Kopiowanie list pakietów..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Zapisywanie nowej listy ¼róde³\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "¬ród³a dla tej p³yty to:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "Odmontowanie CD-ROMu..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "Zapisano %i rekordów.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "Zapisano %i rekordów z %i brakuj±cymi plikami.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "Zapisano %i rekordów z %i niepasuj±cymi plikami\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "Zapisano %i rekordów z %i brakuj±cymi plikami i %i niepasuj±cymi\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "Przygotowanie %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "Rozpakowywanie %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "Przygotowanie do konfiguracji %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "Konfigurowanie %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr " Zainstalowany %s" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "Przygotowanie do usuniêcia %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "Usuwanie %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "Usuniêto %s" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, fuzzy, c-format +msgid "Preparing to completely remove %s" +msgstr "Przygotowanie do konfiguracji %s" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, fuzzy, c-format +msgid "Completely removed %s" +msgstr "Nie uda³o siê usun±æ %s" + +#: methods/rred.cc:219 +msgid "Could not patch file" +msgstr "Nie uda³o siê na³o¿yæ ³atki na plik" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Po³±czenie zosta³o zamkniête przedwcze¶nie" + +#~ msgid "File date has changed %s" +#~ msgstr "Data pliku uleg³a zmianie %s" + +#~ msgid "Reading file list" +#~ msgstr "Czytanie listy plików" + +#~ msgid "Could not execute " +#~ msgstr "Nie uda³o siê uruchomiæ " + +#~ msgid "Preparing for remove with config %s" +#~ msgstr "Przygotowanie do usuniêcia %s wraz z konfiguracj±" + +#~ msgid "Removed with config %s" +#~ msgstr "Usuniêto %s wraz z konfiguracj±" + +#~ msgid "Total Distinct Descriptions: " +#~ msgstr "W sumie ró¿nych opisów: " + +#~ msgid "Total Desc/File relations: " +#~ msgstr "W sumie zale¿no¶ci opis/plik: " + +#~ msgid "Error occured while processing %s (NewFileDesc1)" +#~ msgstr "Wyst±pi³ b³±d podczas przetwarzania %s (NewFileDesc1)" + +#~ msgid "Error occured while processing %s (NewFileDesc2)" +#~ msgstr "Wyst±pi³ b³±d podczas przetwarzania %s (NewFileDesc2)" + +#~ msgid "Wow, you exceeded the number of descriptions this APT is capable of." +#~ msgstr "" +#~ "Och, przekroczono liczbê opisów, któr± ten APT jest w stanie obs³u¿yæ." diff --git a/po/pt.po b/po/pt.po new file mode 100644 index 0000000..b19459a --- /dev/null +++ b/po/pt.po @@ -0,0 +1,2909 @@ +# Debian-PT translation for apt. +# Copyright (C) 2004 Free Software Foundation, Inc. +# Miguel Figueiredo , 2005, 2006. +# +# +msgid "" +msgstr "" +"Project-Id-Version: apt\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-10-14 21:55+0100\n" +"Last-Translator: Rui Az. \n" +"Language-Team: Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "O pacote %s versão %s tem uma dependência não satisfeita:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Impossível encontrar o pacote %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Total de Nomes de Pacotes : " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Pacotes Normais: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Pacotes Puramente Virtuais: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Pacotes Virtuais Únicos: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Pacotes Virtuais Misturados: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Faltam: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Total de Versões Distintas: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Total de Dependências: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Total de relações Ver/Ficheiro: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Total de Mapeamentos Disponibilizados: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Total de Strings Globbed: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Total de espaço de Dependência de Versão: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Total de espaço Desperdiçado: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Total de Espaço Contabilizado: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "O ficheiro do pacote %s está dessincronizado." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Você deve dar exactamente um pattern" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Não foi encontrado nenhum pacote" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Ficheiros de Pacotes :" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "" +"A cache está dessincronizada, não pode x-referenciar um ficheiro de pacote" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Pacotes Marcados: " + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(não encontrado)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Instalado: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(nenhum)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Candidato: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Marcação do Pacote: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Tabela de Versão:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s para %s %s compilado em %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Utilização: apt-cache [opções] comando\n" +" apt-cache [opções] add ficheiro1 [ficheiro1 ...]\n" +" apt-cache [opções] showpkg pacote1 [pacote2 ...]\n" +" apt-cache [opções] showsrc pacote1 [pacote2 ...]\n" +"\n" +"O apt-cache é uma ferramenta de baixo nível utilizada para manipular\n" +"os ficheiros de cache binários do APT e para procurar informações\n" +"neles\n" +"\n" +"Comandos:\n" +" add - Adiciona um ficheiro de pacote à cache de fontes\n" +" gencaches - Constrói ambas as caches de pacotes e de fontes\n" +" showpkg - Mostra informações gerais sobre um pacote\n" +" showsrc - Mostra registros de fontes\n" +" stats - Mostra estatísticas básicas\n" +" dump - Mostra o ficheiro inteiro de forma concisa\n" +" dumpavail - Imprime um ficheiro disponível para stdout\n" +" unmet - Mostra dependências não satisfeitas\n" +" search - Procura na lista de pacotes por um pattern regex\n" +" show - Mostra um registro legível sobre o pacote\n" +" depends - Mostra informações em bruto de dependências de um pacote\n" +" pkgnames - Lista o nome de todos os pacotes\n" +" dotty - Gera gráficos de pacotes para o GraphVis\n" +" xvcg - Gera gráficos de pacotes para o xvcg\n" +" policy - Mostra as configurações de políticas\n" +"\n" +"Opções:\n" +" -h Este texto de ajuda.\n" +" -p=? A cache de pacotes.\n" +" -s=? A cache de fontes.\n" +" -q Desabilita o indicador de progresso.\n" +" -i Mostra apenas dependências importantes para o comando unmet.\n" +" -c=? Ler o ficheiro de configuração especificado.\n" +" -o=? Define uma opção arbitrária de configuração, ex: -o dir::cache=/tmp\n" +"Veja as páginas do manual apt-cache(8) e apt.conf(5) para mais informações.\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "" +"Por favor forneça um nome para este Disco, tal como 'Debian 2.1r1 Disco 1'" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Por favor insira um Disco no leitor e pressione enter" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Repita este processo para o resto dos CDs no seu conjunto." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Argumentos não estão em pares" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Utilização: apt-config [opções] comando\n" +"\n" +"O apt-config é uma ferramenta simples para ler o ficheiro de configuração\n" +"do APT\n" +"\n" +"Comandos:\n" +" shell - Modo Shell\n" +" dump - Mostra a configuração\n" +"\n" +"Opções:\n" +" -h Este texto de ajuda.\n" +" -c=? Ler este arquivo de configuração\n" +" -o=? Define uma opção arbitrária de configuração, ex: -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s não é um pacote DEB válido." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Utilização: apt-extracttemplates ficheiro1 [ficheiro2 ...]\n" +"\n" +"O apt-extracttemplates é uma ferramenta para extrair configuração\n" +"e informação de template de pacotes debian.\n" +"\n" +"Opções:\n" +" -h Este texto de ajuda\n" +" -t Define o directório temporário\n" +" -c=? Ler este arquivo de configuração\n" +" -o=? Define uma opção arbitrária de configuração, ex: -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Impossível escrever para %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Não foi possível obter a versão do debconf. O debconf está instalado?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Lista de extensão de pacotes é demasiado longa" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Erro processando o directório %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Lista de extensão de fontes é demasiado longa" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Erro ao gravar cabeçalho no ficheiro de conteúdo" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Erro processando o ficheiro Contents %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Utilização: apt-ftparchive [opções] comando\n" +"Comandos: packages caminho_binário [ficheiro_override [prefixo_caminho]]\n" +" sources caminho_fonte [ficheiro_override [prefixo_caminho]]\n" +" contents caminho\n" +" release caminho\n" +" generate config [grupos]\n" +" clean config\n" +"\n" +"O apt-ftparchive gera ficheiros de índice para repositórios Debian. Ele \n" +"suporta muitos estilos de criação, desde totalmente automatizados até \n" +"substitutos funcionais para o dpkg-scanpackages e dpkg-scansources\n" +"\n" +"O apt-ftparchive gera ficheiros Packages a partir de uma árvore de .debs.\n" +" O ficheiro Package contém o conteúdo de todos os campos de controle de \n" +"cada pacote bem como o hash MD5 e tamanho do ficheiro. Um ficheiro \n" +"override é suportado para forçar o valor de Priority e Section.\n" +"\n" +"Similarmente, o apt-ftparchive gera ficheiros Sources a partir de uma \n" +"árvore de .dscs. A opção --source-override pode ser utilizada para \n" +"especificar um ficheiro override de fontes\n" +"\n" +"Os comandos 'packages' e 'sources' devem ser executados na raiz da \n" +"árvore. CaminhoBinário deve apontar para a base de procura recursiva \n" +"e o ficheiro override deve conter as flags override. CaminhoPrefixo é \n" +"incluído aos campos filename caso esteja presente. Exemplo de uso do \n" +"repositório Debian :\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Opções:\n" +" -h Este texto de ajuda\n" +" --md5 Controla a criação do MD5\n" +" -s=? Ficheiro override de código-fonte \n" +" -q Quieto\n" +" -d=? Selecciona a base de dados de caching opcional\n" +" --no-delink Habilita o modo de debug delinking\n" +" --contents Controla a criação do ficheiro de conteúdo\n" +" -c=? Lê este ficheiro de configuração\n" +" -o=? Define uma opção de configuração arbitrária" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Nenhuma selecção coincidiu" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Alguns ficheiros faltam no ficheiro de grupo de pacotes `%s'" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "A base de dados estava corrompida, ficheiro renomeado para %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "DB é antiga, tentando uma actualização %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"O formato DB é inválido. Se actualizou a partir de uma versão antiga do apt, " +"por favor remova-a e recrie a base de dados." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Não foi possível abrir o ficheiro DB %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Falha ao executar stat %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "O arquivo não tem registro de controle" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Não foi possível obter um cursor" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: Não foi possível ler o directório %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "W: Não foi possível fazer stat %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E: Erros aplicam-se ao ficheiro " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Falha ao resolver %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Falhou ao percorrer a árvore" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Falhou ao abrir %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " DeLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Falhou ao executar readlink %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Falhou ao executar unlink %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Falhou ao ligar %s a %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " Limite DeLink de %sB atingido.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Arquivo não possuía campo pacote" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s não possui entrada override\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " maintainer de %s é %s, não %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s não possui fonte de entrada de 'override'\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s não possui de igual modo entrada binária de 'override'\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Erro Interno, não foi possível localizar o membro %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Falha ao alocar memória" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Impossível abrir %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Override malformado %s linha %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Override malformado %s linha %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Override malformado %s linha %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Falha ao ler o ficheiro override %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Algoritmo de Compressão Desconhecido '%s'" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Saída compactada %s precisa de um conjunto de compressão" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Falha ao criar pipe IPC para subprocesso" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Falha ao criar FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Falha ao executar fork" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Compactar Filho" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Erro Interno, Falha ao criar %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Falha ao criar subprocesso IPC" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Falha ao executar compressor " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "descompactador" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "IO para subprocesso/arquivo falhou" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Falha ao ler durante o cálculo de MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Problema ao executar unlinking %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Falha ao renomear %s para %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "S" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Erro de compilação de regex - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Os pacotes a seguir têm dependências não satisfeitas:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "mas %s está instalado" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "mas %s está para ser instalado" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "mas não está instalável" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "mas é um pacote virtual" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "mas não está instalado" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "mas não vai ser instalado" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " ou" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Os seguintes NOVOS pacotes serão instalados:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Os seguintes pacotes serão REMOVIDOS:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Os seguintes pacotes serão mantidos em suas versões actuais:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Os seguintes pacotes serão actualizados:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Aos seguintes pacotes será feito o DOWNGRADE :" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Os seguintes pacotes mantidos serão mudados :" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (devido a %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"AVISO: Os seguintes pacotes essenciais serão removidos.\n" +"Isso NÃO deverá ser feito a menos que saiba exactamente o que está a fazer!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu pacotes actualizados, %lu pacotes novos instalados, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu reinstalados, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu a que foi feito o downgrade, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu a remover e %lu não actualizados.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu pacotes não totalmente instalados ou removidos.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Corrigindo dependências..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " falhou." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Impossível corrigir dependências" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Impossível minimizar o conjunto de actualizações" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Feito" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "Você pode querer executar `apt-get -f install' para corrigir isso." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Dependências não satisfeitas. Tente utilizar -f." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "AVISO: Os seguintes pacotes não podem ser autenticados" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Aviso de autenticação ultrapassado.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Instalar estes pacotes sem verificação [y/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Alguns pacotes não puderam ser autenticados" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Há problemas e -y foi usado sem --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "Erro Interno, InstallPackages foi chamado com pacotes estragados!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Pacotes precisam de ser removidos mas Remove está desabilitado." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Erro Interno, Ordering não terminou" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Impossível criar lock no directório de download" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "A lista de fontes não pôde ser lida." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"Estranho.. Os tamanhos não coincidiram, escreva para apt@packages.debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "É necessário fazer o download de %sB/%sB de arquivos.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "É necessário fazer o download de %sB de arquivos.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "" +"Depois de descompactar, %sB adicionais de espaço em disco serão utilizados.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Depois de descompactar, %sB de espaço em disco serão libertados.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Impossível de determinar espaço livre em %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Você não possui espaço livre suficiente em %s." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "Trivial Only especificado mas essa não é uma operação trivial." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Sim, faça como eu digo!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Você está prestes a fazer algo potencialmente nocivo.\n" +"Para continuar escreva a frase '%s'\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Abortado." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Você deseja continuar [Y/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Falha ao obter %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Falhou o download de alguns ficheiros" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Download completo e em modo de apenas download" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Impossível obter alguns arquivos, execute talvez apt-get update ou tente com " +"--fix-missing?" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing e troca de mídia não são suportados actualmente" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Impossível corrigir os pacotes em falta." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Abortando a Instalação." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Nota, seleccionando %s em vez de %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "Saltando %s, já está instalado e a actualização não está definida.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "O pacote %s não está instalado, então não será removido\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "O pacote %s é um pacote virtual disponibilizado por:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Instalado]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Você deve seleccionar explicitamente um para instalar." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"O pacote %s não está disponível, mas é referenciado por outro pacote.\n" +"Isso pode significar que o pacote falta, ficou obsoleto ou\n" +"está disponível somente a partir de outra fonte\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "No entanto, os seguintes pacotes substituem-no:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "O pacote %s não tem candidato para instalação" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "" +"A reinstalação de %s não é possível, o download do mesmo não pode ser " +"feito.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s já é a versão mais recente.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Release '%s' para '%s' não foi encontrado" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Versão '%s' para '%s' não foi encontrada" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Versão seleccionada %s (%s) para %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "O comando update não leva argumentos" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Impossível criar lock no directório de listas" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Falhou o download de alguns ficheiros de índice, foram ignorados ou os " +"antigos foram usados em seu lugar." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Erro Interno, AllUpgrade estragou algo" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Impossível encontrar o pacote %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Nota, seleccionando %s para a expressão regular '%s'\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "Você deve querer executar `apt-get -f install' para corrigir isto:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Dependências não satisfeitas. Tente `apt-get -f install' sem nenhum pacote " +"(ou especifique uma solução)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Alguns pacotes não puderam ser instalados. Isso pode significar que\n" +"você solicitou uma situação impossível ou se você está a usar a\n" +"distribuição instável, que alguns pacotes requisitados ainda não foram \n" +"criados ou foram tirados do Incoming." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Já que você requisitou uma única operação é extremamente provável que o \n" +"pacote esteja simplesmente não instalável e deve ser enviado um relatório " +"de\n" +"bug sobre esse pacote." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "A seguinte informação pode ajudar a resolver a situação:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Pacotes estragados" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Os seguintes pacotes extra serão instalados:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Pacotes sugeridos :" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Pacotes recomendados :" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Calculando Actualização... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Falhou" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Pronto" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "Erro Interno, o solucionador de problemas estragou coisas" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "" +"Deve-se especificar pelo menos um pacote para que se obtenha o código fonte" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Impossível encontrar um pacote de código fonte para %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Saltando ficheiro do qual já havia sido feito download '%s'\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Você não possui espaço livre suficiente em %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Preciso obter %sB/%sB de arquivos de código fonte.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Precisa obter %sB de arquivos de código fonte.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Obter Código Fonte %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Falha ao obter alguns arquivos." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "" +"Saltando a descompactação de pacote código fonte já descompactado em %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "O comando de descompactação '%s' falhou.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Verifique se o pacote 'dpkg-dev' está instalado.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "O comando de compilação '%s' falhou.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "O processo filho falhou" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"Deve especificar pelo menos um pacote para verificar as dependências de " +"compilação" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Impossível obter informações de dependências de compilação para %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s não tem dependências de compilação.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"a dependência de %s por %s não pôde ser satisfeita porque o pacote %s não " +"pôde ser encontrado" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"a dependência de %s por %s não pode ser satisfeita porque nenhuma versão " +"disponível do pacote %s pode satisfazer os requisitos de versão" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Falha ao satisfazer a dependência %s para %s: Pacote instalado %s é muito " +"novo" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Falha ao satisfazer a dependência %s para %s: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Não foi possível satisfazer as dependências de compilação para %s." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Falha ao processar as dependências de compilação" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Módulos Suportados:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Utilização: apt-get [opções] comando\n" +" apt-get [opções] install|remove pacote1 [pacote2 ...]\n" +" apt-get [opções] source pacote1 [pacote2 ...]\n" +"\n" +"O apt-get é um interface simples de linha de comando para fazer o\n" +"download de pacotes e instalá-los. Os comandos usados mais frequentemente\n" +"são o update e install\n" +"\n" +"Comandos:\n" +" update - Obtém novas listas de pacotes\n" +" upgrade - Executa uma actualização\n" +" install - Instala novos pacotes (um pacote é libc6 e não libc6.deb)\n" +" remove - Remove um pacote\n" +" source - Faz o download de arquivos de código fonte\n" +" build-dep - Configura as dependências de compilação de pacotes código " +"fonte\n" +" dist-upgrade - Actualiza a distribuição, consulte apt-get(8)\n" +" dselect-upgrade - Segue as selecções feitas do dselect\n" +" clean - Apaga arquivos obtidos para instalação\n" +" autoclean - Apaga arquivos antigos obtidos para instalação\n" +" check - Verifica se não há dependências erradas\n" +"\n" +"Opções:\n" +" -h Este texto de ajuda\n" +" -q Saída para log, excepto para erros\n" +" -qq Sem saída, excepto para erros\n" +" -d Fazer o download apenas - NÃO instalar ou descompactar arquivos\n" +" -s Não-agir. Executar simulação de ordenação\n" +" -y Assumir Sim para todas as perguntas, sem pedir confirmação\n" +" -f Tenta continuar se a verificação de integridade falhar\n" +" -m Tenta continuar se os arquivos não poderem ser localizados\n" +" -u Mostra uma lista também de pacotes actualizados\n" +" -b Compila o pacote fonte depois de fazer o download\n" +" -c=? Ler este arquivo de configuração\n" +" -o=? Definir uma opção de configuração arbitrária, \n" +" ex -o dir::cache=/tmp\n" +"Veja as páginas do manual apt-get(8), sources.list(5) e apt.conf(5)\n" +"para mais informações e opções.\n" +" Este APT tem Poderes de Super Vaca.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Atingido " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Obter:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ign " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Err " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Obtidos %sB em %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Trabalhando]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Troca de mídia: Por favor insira o disco chamado\n" +" '%s'\n" +"na drive '%s' e pressione enter\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Registro de pacote desconhecido!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Utilização: apt-sortpkgs [opções] ficheiro1 [ficheiro2 ...]\n" +"\n" +"O apt-sortpkgs é uma ferramenta simples para ordenar ficheiros de pacote.\n" +"A opção -s é usada para indicar que tipo de ficheiro é.\n" +"\n" +"Opções:\n" +" -h Este texto de ajuda\n" +" -s Usar ordenação de arquivo fonte\n" +" -c=? Ler este arquivo de configuração\n" +" -o=? Define uma opção arbitrária de configuração, ex: -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Configuração padrão Errada!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Pressione enter para continuar." + +# Note to translators: The following four messages belong together. It doesn't +# matter where sentences start, but it has to fit in just these four lines, and +# at only 80 characters per line, if possible. +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Alguns erros ocorreram ao descompactar. Irei configurar os pacotes" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "que foram instalados. Isto pode resultar em erros duplicados" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "causados por dependências em falta. Isto está OK, somente os erros" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"acima desta mensagem são importantes. Por favor resolva-os e execute [I]" +"nstalar novamente" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Juntando informação Disponível" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Falha ao criar pipes" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Falha ao executar gzip " + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Arquivo corrompido" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Checksum do arquivo tar falhou, arquivo corrompido" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Tipo de cabeçalho TAR %u desconhecido, membro %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Assinatura de arquivo inválida" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Erro na leitura de cabeçalho membro de arquivo" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Cabeçalho membro de arquivo inválido" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Arquivo é demasiado pequeno" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Falha ao ler os cabeçalhos do arquivo" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "DropNode chamado em nó ainda linkado" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Falha ao localizar o elemento de hash !" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Falha ao alocar desvio (diversion)" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Erro Interno em AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Tentando sobrescrever um desvio, %s -> %s e %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Adição dupla de desvio %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Arquivo de configuração duplicado %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Falha ao escrever ficheiro %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Falha ao fechar ficheiro %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "O caminho %s é demasiado longo" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Descompactando %s mais de uma vez" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "O directório %s é desviado" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "O pacote está a tentar gravar no alvo de desvio %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "O caminho de desvio é muito longo" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "O directório %s está sendo substituído por um não-directório" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Falha ao localizar nó no seu hash bucket" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "O caminho é demasiado longo" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Sobreescrita de pacote não coincide com nenhuma versão para %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Ficheiro %s/%s sobrescreve o que está no pacote %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Impossível ler %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Impossível executar stat %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Falha ao remover %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Impossível criar %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Impossível executar stat %sinfo." + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "Os directórios info e temp precisam estar no mesmo sistema de arquivos" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "A Ler Listas de Pacotes" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Falha ao mudar para o directório administrativo %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Erro Interno obtendo um Nome de Pacote" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Lendo Listagem de Ficheiros" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Falha ao abrir o ficheiro da lista '%sinfo/%s'. Caso você não consiga " +"restaurar este ficheiro, crie outro vazio e re-instale a mesma versão do " +"pacote !" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Falha ao ler o ficheiro de lista %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Erro Interno obtendo um Nó" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Falha ao abrir o ficheiro de desvios %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "O ficheiro de desvios está corrompido" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Linha inválida no ficheiro de desvio: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Erro Interno ao adicionar um desvio" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "A cache de pacotes tem de ser inicializada primeiro" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Falha ao encontrar um Pacote: Cabeçalho, posição %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Secção ConfFile errada no ficheiro de estado. Offset %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Erro ao fazer parse ao MD5. Offset %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Este não é um arquivo DEB válido, falta o membro '%s'" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "Este não é um arquivo DEB válido, não tem '%s' ou o membro '%s'" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Não foi possível mudar para %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Erro Interno, não foi possível localizar membro" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Falha em localizar um ficheiro de controle válido" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Ficheiro de controle não interpretável" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Impossível ler a base de dados de cdrom %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Por favor utilize o apt-cdrom para fazer com que este CD seja reconhecido " +"pelo APT. apt-get update não pode ser utilizado para adicionar novos CDs" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "CD errado" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "Impossível desmontar o CD-ROM em %s, o mesmo ainda pode estar em uso." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Disco não encontrado" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Arquivo não encontrado" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Falha ao executar stat" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Falha ao definir hora de modificação" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "URI inválido, URIs locais não devem iniciar com //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "A entrar no sistema" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Impossível determinar o nome do posto" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Impossível determinar o nome local" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "O servidor recusou a nossa ligação e respondeu: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "USER falhou, o servidor respondeu: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "PASS falhou, o servidor respondeu: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Um servidor de proxy foi especificado mas não um script de login, Acquire::" +"ftp::ProxyLogin está vazio." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Comando de script de login '%s' falhou, o servidor respondeu: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "TYPE falhou, o servidor respondeu: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Tempo limite de ligação atingido" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Servidor fechou a ligação" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Erro de leitura" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Uma resposta sobrecarregou o buffer" + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Corrupção de protocolo" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Erro de escrita" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Não foi possível criar um socket" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "Não foi possível ligar socket de dados, a ligação expirou" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Não foi possível ligar socket passivo." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo não foi capaz de obter um socket de escuta" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Não foi possível fazer o bind a um socket" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Não foi possível executar listen no socket" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Não foi possível determinar o nome do socket" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Impossível enviar o comando PORT" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Família de endereços %u desconhecida (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT falhou, o servidor respondeu: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Ligação de socket de dados expirou" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Impossível aceitar ligação" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Problema fazendo o hash do ficheiro" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Impossível obter ficheiro, o servidor respondeu '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Socket de dados expirou" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Transferência de dados falhou, o servidor respondeu '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Pesquisa" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Impossível invocar " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Ligando a %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Não foi possível criar um socket para %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Não posso iniciar a ligação para %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Não foi possível ligar a %s:%s (%s), a conexão expirou" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Não foi possível ligar em %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Ligando a %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Não foi possível resolver '%s'" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Falha temporária resolvendo '%s'" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Algo estranho aconteceu ao resolver '%s:%s' (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Impossível ligar a %s %s:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Não foi possível aceder à 'keyring': '%s'" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" +"E: A lista de argumentos de Acquire::gpgv::Options é demasiado longa. A sair." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" +"Erro interno: Assinatura válida, mas não foi possível determinar a impressão " +"digital da chave?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Pelo menos uma assinatura inválida foi encontrada." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" +"Não foi possível executar '%s' para verificar a assinatura (gnupg está " +"instalado?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Erro desconhecido ao executar gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "As seguintes assinaturas estavam inválidas:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"As seguintes assinaturas não puderam ser verificadas porque a chave pública " +"não está disponível:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Não foi possível abrir pipe para %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Erro de leitura do processo %s" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Aguardando por cabeçalhos" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Recebi uma única linha de cabeçalho acima de %u caracteres" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Linha de cabeçalho errada" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "O servidor http enviou um cabeçalho de resposta inválido" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "O servidor http enviou um cabeçalho Conten-Length inválido" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "O servidor http enviou um cabeçalho Conten-Range inválido" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "Este servidor http possui suporte a range errado" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Formato de data desconhecido" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Select falhou." + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "A ligação expirou" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Erro gravando para ficheiro de saída" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Erro gravando para ficheiro" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Erro gravando para o ficheiro" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "Erro lendo do servidor. O Remoto fechou a ligação" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Erro lendo do servidor" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Dados de cabeçalho errados" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Falhou a ligação" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Erro interno" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Não é possível fazer mmap a um ficheiro vazio" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Impossível fazer mmap de %lu bytes" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Selecção %s não encontrada" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Abreviatura de tipo desconhecida: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Abrindo ficheiro de configuração %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Linha %d é demasiado longa (max %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Erro de sintaxe %s:%u: Bloco inicia sem nome." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Erro de sintaxe %s:%u: Tag Malformada" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Erro de sintaxe %s:%u: Lixo extra depois do valor" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" +"Erro de sintaxe %s:%u: Directivas só podem ser feitas no nível mais alto" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Erro de sintaxe %s:%u: Muitos includes encadeados" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Erro de sintaxe %s:%u: Incluído a partir deste ponto" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Erro de sintaxe %s:%u: Directiva '%s' não suportada" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Erro de sintaxe %s:%u: Lixo extra no final do ficheiro" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Erro !" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Pronto" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Opção de linha de comandos '%c' [de %s] é desconnhecida." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Opção de linha de comandos %s não é compreendida" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Opção de linha de comandos %s não é booleana" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "Opção %s requer um argumento." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "" +"Opção %s: Especificação de item de configuração deve possuir um =." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "Opção %s requer um argumento inteiro, não '%s'" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Opção '%s' é demasiado longa" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "O sentido %s não é compreendido, tente verdadeiro ou falso." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Operação %s inválida" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Impossível executar stat ao ponto de montagem %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Impossível mudar para %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Impossível executar stat ao cdrom" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "Não utilizando locking para ficheiro lock apenas de leitura %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Não foi possível abrir ficheiro de lock %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "Não usando locking para ficheiro de lock montado via nfs %s" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Não foi possível obter lock %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Esperou, por %s mas não estava lá" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Sub-processo %s recebeu uma falha de segmentação." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Sub-processo %s retornou um código de erro (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Sub-processo %s finalizou inesperadamente" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Não foi possível abrir ficheiro o %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "leitura, ainda restam %lu para serem lidos mas não resta nenhum" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "gravação, ainda restam %lu para gravar mas não foi possível" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Problema ao fechar o ficheiro" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Problema removendo o link ao ficheiro" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Problema sincronizando o ficheiro" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Cache de pacotes vazia" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "O ficheiro de cache de pacotes está corrompido" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "O ficheiro de cache de pacotes é de uma versão incompatível" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Este APT não suporta o Sistema de Versões '%s'" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "A cache de pacotes foi gerada para uma arquitectura diferente" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Depende" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Pré-Depende" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Sugere" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Recomenda" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Em Conflito" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Substitui" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Obsoleta" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "importante" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "requerido" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "padrão" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "opcional" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "extra" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Construindo Árvore de Dependências" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Versões Candidatas" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Geração de Dependência" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Impossível o parse ao ficheiro de pacote %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Impossível o parse ao ficheiro de pacote %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Linha malformada %lu na lista de fontes %s (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Linha malformada %lu na lista de fontes %s (distribuição)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Linha malformada %lu na lista de fontes %s (parse de URI)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Linha malformada %lu na lista de fontes %s (Distribuição absoluta)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Linha malformada %lu na lista de fontes %s (dist parse)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Abrindo %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Linha %u é demasiado longa na lista de fontes %s." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Linha malformada %u na lista de fontes %s (tipo)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "O tipo '%s' não é conhecido na linha %u na lista de fontes %s" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Linha malformada %u na lista de fontes %s (id de fornecedor)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Esta execução da instalação irá requerer remover temporariamente o pacote " +"essencial %s devido a um loop de Conflitos/Pré-Dependências. Isto " +"normalmente é mau, mas se você quer realmente fazer isso, active a opção " +"APT::Force-LoopBreak." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Tipo do ficheiro de índice '%s' não é suportado" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"O pacote %s precisa ser reinstalado, mas não foi possível encontrar um " +"repositório para o mesmo." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Erro, pkgProblemResolver::Resolve gerou falhas, isto pode ser causado por " +"pacotes mantidos (hold)." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "Impossível corrigir problemas, você manteve (hold) pacotes estragados." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Falta directório de listas %spartial." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Falta o directório de repositório %spartial." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "A obter o ficheiro %li de %li (%s restantes)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "A obter o ficheiro %li·of·%li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "O driver do método %s não pôde ser encontrado." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Método %s não iniciou corretamente" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "" +"Por favor insira o disco denominado: '%s' no leitor '%s' e pressione enter." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Sistema de empacotamento '%s' não é suportado" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "" +"Não foi possível determinar um tipo de sistema de empacotamento aplicável" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Impossível executar stat %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "Você deve colocar alguns URIs 'source' no seu sources.list" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" +"As listas de pacotes ou o ficheiro de status não pôde ser analisado ou " +"aberto." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "Você terá que executar apt-get update para corrigir estes problemas" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Registro inválido no ficheiro de preferências, sem cabeçalho Pacote" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Não foi possível entender o tipo de marca %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Nenhuma prioridade (ou zero) especificada para marcação" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "A Cache possui um sistema de versões incompatível" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Um erro ocorreu ao processar %s (NovoPacote)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Um erro ocorreu ao processar %s (UsePacote1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Um erro ocorreu ao processar %s (UsePacote2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Um erro ocorreu ao processar %s (NovoArquivoVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Um erro ocorreu ao processar %s (NovaVersão1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Um erro ocorreu ao processar %s (UsePacote3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Um erro ocorreu ao processar %s (NovaVersão2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" +"Uau, você excedeu o número de nomes de pacotes que este APT é capaz de " +"suportar." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "" +"Uau, você excedeu o número de versões que este APT é capaz de suportar." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" +"Uau, você excedeu o número de dependências que este APT é capaz de suportar." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Um erro ocorreu ao processar %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Um erro ocorreu ao processar %s (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "" +"O pacote %s %s não foi encontrado ao processar as dependências de ficheiros" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Não foi possível executar stat à lista de pacotes de código fonte %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Obtendo File Provides" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "Erro de I/O ao gravar a cache de código fonte" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "falhou renomear, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "MD5Sum incorreto" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "" +"Não existe qualquer chave pública disponível para as seguintes IDs de " +"chave:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Não foi possível localizar um arquivo para o pacote %s. Isto pode significar " +"que você precisa consertar manualmente este pacote. (devido a arquitectura " +"não especificada)." + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Não foi possível localizar arquivo para o pacote %s. Isto pode significar " +"que você precisa consertar manualmente este pacote." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"Os arquivos de índice de pacotes estão corrompidos. Nenhum campo Filename: " +"para o pacote %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Tamanho incorrecto" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "O bloco de fabricante %s não contém a impressão digital" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Utilizando o ponto de montagem do CD-ROM %s\n" +"A montar o CD-ROM\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "A identificar.. " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Label Guardada: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "A utilizar o mount point do CD-ROM %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "A desmontar o CD-ROM\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "A aguardar pelo disco...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "A montar o CD-ROM...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "A pesquisar os ficheiros de index do Disco..\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "Encontrou %i indexes de pacotes, %indexes de source e %i assinaturas\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Isso não é um nome válido, tente de novo.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Este Disco tem o nome: \n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "A copiar listas de pacotes..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "A escrever lista de novas source\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "As entradas de listas de Source para este Disco são:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "A desmontar o CD-ROM..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "Escreveu %i registos.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "Escreveu %i registos com %i ficheiros em falta.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "Escreveu %i registos com %i ficheiros não coincidentes\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" +"Escreveu %i registos com %i ficheiros em falta e %i ficheiros não " +"coincidentes\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "A preparar %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "A desempacotar %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "A preparar para configurar %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "A configurar %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "%s instalado" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "A preparar para remoção de %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "A remover %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "%s removido" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "A preparar para remover completamente %s" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "Remoção completa de %s" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Não foi possível abrir ficheiro o %s" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Conexão encerrada prematuramente" + +#~ msgid "File date has changed %s" +#~ msgstr "Data do ficheiro mudou %s" + +#~ msgid "Reading file list" +#~ msgstr "Lendo Lista de Ficheiros" + +#~ msgid "Could not execute " +#~ msgstr "Impossível de executar " + +#~ msgid "Preparing for remove with config %s" +#~ msgstr "A preparar para remover com a configuração %s" + +#~ msgid "Removed with config %s" +#~ msgstr "Removido com a configuração %s" + +#~ msgid "The pkg cache must be initialize first" +#~ msgstr "A cache de pacotes deve ser inicializada primeiro" + +#~ msgid "Error occured while processing %s (NewPackage)" +#~ msgstr "Um erro ocorreu ao processar %s (NovoPacote)" + +#~ msgid "Error occured while processing %s (UsePackage1)" +#~ msgstr "Um erro ocorreu ao processar %s (UsePacote1)" + +#~ msgid "Error occured while processing %s (UsePackage2)" +#~ msgstr "Um erro ocorreu ao processar %s (UsePacote2)" + +#~ msgid "Error occured while processing %s (NewFileVer1)" +#~ msgstr "Um erro ocorreu ao processar %s (NovoArquivoVer1)" + +#~ msgid "Error occured while processing %s (NewVersion1)" +#~ msgstr "Um erro ocorreu ao processar %s (NovaVersão1)" + +#~ msgid "Error occured while processing %s (UsePackage3)" +#~ msgstr "Um erro ocorreu ao processar %s (UsePacote3)" + +#~ msgid "Error occured while processing %s (NewVersion2)" +#~ msgstr "Um erro ocorreu ao processar %s (NovaVersão2)" + +#~ msgid "Error occured while processing %s (FindPkg)" +#~ msgstr "Um erro ocorreu ao processar %s (FindPkg)" + +#~ msgid "Error occured while processing %s (CollectFileProvides)" +#~ msgstr "Um erro ocorreu ao processar %s (CollectFileProvides)" + +#~ msgid "Unknown vendor ID '%s' in line %u of source list %s" +#~ msgstr "" +#~ "ID de fornecedor desconhecido '%s' na linha %u da lista de fontes %s" + +#~ msgid "" +#~ "Some broken packages were found while trying to process build-" +#~ "dependencies.\n" +#~ "You might want to run `apt-get -f install' to correct these." +#~ msgstr "" +#~ "Alguns pacotes quebrados foram encontrados enquanto se tentava " +#~ "processar \n" +#~ "as dependências de construção.\n" +#~ "Você pode querer rodar `apt-get -f install' para corrigí-los." + +#~ msgid "Sorry, you don't have enough free space in %s to hold all the .debs." +#~ msgstr "" +#~ "Desculpe, você não tem espaço livre o suficiente em %s para guardar os ." +#~ "debs." + +#, fuzzy +#~ msgid "Extract " +#~ msgstr "extra" + +#, fuzzy +#~ msgid "De-replaced " +#~ msgstr "Substitui" + +#, fuzzy +#~ msgid "Replaced file " +#~ msgstr "Substitui" + +#, fuzzy +#~ msgid "You must give at least one file name" +#~ msgstr "Você deve passar exatamente um padrão" + +#, fuzzy +#~ msgid "Regex compilation error" +#~ msgstr "Erro de compilação de regex - %s" + +#, fuzzy +#~ msgid "Failed to stat %s%s" +#~ msgstr "Falha ao baixar %s %s\n" + +#, fuzzy +#~ msgid "Failed to open %s.new" +#~ msgstr "Falha ao baixar %s %s\n" + +#, fuzzy +#~ msgid "Failed to rename %s.new to %s" +#~ msgstr "Falha ao baixar %s %s\n" + +#, fuzzy +#~ msgid "Couldn't wait for subprocess" +#~ msgstr "Não foi possível checar a lista de pacotes fonte %s" + +#, fuzzy +#~ msgid " files " +#~ msgstr " falhou." + +#, fuzzy +#~ msgid "Done. " +#~ msgstr "Pronto" + +#, fuzzy +#~ msgid "Could not find a record in the DSC '%s'" +#~ msgstr "Impossível achar pacote %s" + +#, fuzzy +#~ msgid "Failed too stat %s" +#~ msgstr "Impossível checar %s." diff --git a/po/pt_BR.po b/po/pt_BR.po new file mode 100644 index 0000000..da4f908 --- /dev/null +++ b/po/pt_BR.po @@ -0,0 +1,2881 @@ +# Brazilian Portuguese translation for apt. +# Copyright (C) 2002 Free Software Foundation, Inc. +# Gustavo Noronha Silva , 2002. +# Andre Luis Lopes , 2002-2005. +# Felipe Augusto van de Wiel (faw) , 2006. +msgid "" +msgstr "" +"Project-Id-Version: apt\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-08-21 00:40-0300\n" +"Last-Translator: Felipe Augusto van de Wiel (faw) \n" +"Language-Team: l10n portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "O pacote %s versão %s tem uma dependência desencontrada:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Impossível encontrar o pacote %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Total de Nomes de Pacotes : " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Pacotes normais: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Pacotes puramente virtuais: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Pacotes virtuais únicos: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Pacotes virtuais misturados: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Faltando: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Total de versões distintas: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Total de dependências: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Total de relações ver/arquivo: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Total de mapeamentos Provides: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Total de strings globbed: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Total de espaço de dependência de versão: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Total de espaço frouxo: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Total de espaço contabilizado: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "O arquivo de pacote %s está dessincronizado." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Você deve passar exatamente um padrão" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Nenhum pacote encontrado" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Arquivos de pacote:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "O cache está fora de sincronia, não posso x-ref um arquivo de pacote" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Pacotes pinados:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(não encontrado)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Instalado: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(nenhum)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Candidato: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Pin do pacote: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Tabela de versão:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s para %s %s compilado em %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Uso: apt-cache [opções] comando\n" +" apt-cache [opções] add arquivo1 [arquivo1 ...]\n" +" apt-cache [opções] showpkg pacote1 [pacote2 ...]\n" +" apt-cache [opções] showsrc pacote1 [pacote2 ...]\n" +"\n" +"O apt-cache é uma ferramenta de baixo nível usada para manipular\n" +"os arquivos de cache binários do APT e para buscar informações\n" +"neles\n" +"\n" +"Comandos:\n" +" add - Adiciona um arquivo de pacote ao cache de fontes\n" +" gencaches - Constrói ambos os caches de pacotes e fontes\n" +" showpkg - Mostra informações gerais sobre um pacote\n" +" showsrc - Mostra registros fontes\n" +" stats - Mostra estatísticas básicas\n" +" dump - Mostra o arquivo inteiro em uma forma concisa\n" +" dumpavail - Imprime um arquivo \"available\" para stdout\n" +" unmet - Mostra dependências não satisfeitas (quebradas)\n" +" search - Procura a lista de pacotes por um padrão regex\n" +" show - Mostra um registro legível sobre o pacote\n" +" depends - Mostra informações cruas de dependências de um pacote\n" +" rdepends - Mostra informações de dependências reversas de um pacote\n" +" pkgnames - Lista o nome de todos os pacotes\n" +" dotty - Gera gráficos de pacotes para o GraphVis\n" +" xvcg - Gera gráficos de pacotes para o xvcg\n" +" policy - Mostra as configurações de políticas\n" +"\n" +"Opções:\n" +" -h Esse texto de ajuda.\n" +" -p=? O cache de pacotes.\n" +" -s=? O cache de fontes.\n" +" -q Desabilita o indicador de progresso.\n" +" -i Mostra apenas dependências importantes para o comando unmet.\n" +" -c=? Ler arquivo de configuração especificado.\n" +" -o=? Define uma opção arbitrária de configuração, ex: -o dir::cache=/tmp\n" +"Veja as páginas de manual apt-cache(8) e apt.conf(5) para maiores " +"informações.\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "" +"Por favor, forneça um nome para este Disco, como 'Debian 2.1r1 Disco 1'" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Por favor, insira um Disco no leitor e pressione enter" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Repita este processo para o restante dos CDs em seu conjunto." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Argumentos não estão em pares" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Uso: apt-config [opções] comando\n" +"\n" +"O apt-config é uma ferramenta simples para ler o arquivo de configuração\n" +"do APT\n" +"\n" +"Comandos:\n" +" shell - Modo shell\n" +" dump - Mostra a configuração\n" +"\n" +"Opções:\n" +" -h Esse texto de ajuda.\n" +" -c=? Ler esse arquivo de configuração\n" +" -o=? Define uma opção arbitrária de configuração, ex: -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s não é um pacote DEB válido." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Uso: apt-extracttemplates arquivo1 [arquivo2 ...]\n" +"\n" +"O apt-extracttemplates é uma ferramenta para extrair configuração\n" +"e informação de modelo (\"template\") de pacotes debian.\n" +"\n" +"Opções:\n" +" -h Esse texto de ajuda\n" +" -t Define o diretório temporário\n" +" -c=? Ler esse arquivo de configuração\n" +" -o=? Define uma opção arbitrária de configuração, ex: -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Impossível escrever para %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Não foi possível obter a versão do debconf. O debconf está instalado?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Lista de extensão de pacotes é muito extensa" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Erro processando o diretório %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Lista de extensão de fontes é muito extensa" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Erro ao gravar cabeçalho no arquivo de conteúdo" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Erro processando conteúdo %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Uso: apt-ftparchive [opções] comando\n" +"Comandos: packages caminho_binário [arquivo_override [prefixo_caminho]]\n" +" sources caminho_fonte [arquivo_override [prefixo_caminho]]\n" +" contents caminho\n" +" release caminho\n" +" generate config [grupos]\n" +" clean config\n" +"\n" +"O apt-ftparchive gera arquivos de índice para repositórios Debian. Ele \n" +"suporta muitos estilos de geração, desde totalmente automatizadas até \n" +"substitutos funcionais para o dpkg-scanpackages e dpkg-scansources\n" +"\n" +"O apt-ftparchive gera arquivos Package a partir de uma árvore de .debs. \n" +"O arquivo Package contém o conteúdo de todos os campos control de \n" +"cada pacote bem como o hash MD5 e tamanho de arquivo. Um arquivo \n" +"override é suportado para forçar o valor de Priority e Section.\n" +"\n" +"Similarmente, o apt-ftparchive gera arquivos Sources a partir de uma \n" +"árvore de .dscs. A opção --source-override pode ser usada para \n" +"especificar um arquivo override de fontes\n" +"\n" +"Os comandos 'packages' e 'sources' devem ser executados na raiz da \n" +"árvore. CaminhoBinário deve apontar para a base de procura recursiva \n" +"e o arquivo override deve conter as flags override. CaminhoPrefixo é \n" +"incluído aos campos filename caso esteja presente. Exemplo de uso do \n" +"repositório Debian:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Opções:\n" +" -h Este texto de ajuda\n" +" --md5 Controla a geração de MD5\n" +" -s=? Arquivo fonte (source) override\n" +" -q Quieto\n" +" -d=? Seleciona a base de dados de caching opcional\n" +" --no-delink Habilita o modo de depuração delinking\n" +" --contents Controla a geração do arquivo de conteúdo\n" +" -c=? Lê este arquivo de configuração\n" +" -o=? Define uma opção de configuração arbitrária" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Nenhuma seleção correspondente" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Alguns arquivos estão faltando no arquivo de grupo de pacotes `%s'" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "BD estava corrompido, arquivo renomeado para %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "BD é antigo, tentando atualizar %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"Formato do BD é inválido. Se você atualizou a partir de uma versão antiga do " +"apt, por favor remova e recrie o banco de dados." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Impossível abrir arquivo BD %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Falha ao checar %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Repositório não possui registro de controle" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Impossível obter um cursor" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: Impossível ler o diretório %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "W: Impossível checar %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E: Erros aplicam ao arquivo " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Falha ao resolver %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Falha ao percorrer a árvore" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Falha ao abrir %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " DeLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Falha ao executar readlink %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Falha ao executar unlink %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Falha ao ligar %s a %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " Limite DeLink de %sB atingido.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Repositório não possuía campo pacote" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s não possui entrada override\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " mantenedor de %s é %s, não %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s não possui entrada source override\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s também não possui entrada binary override\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Erro interno, não foi possível localizar membro %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Falha ao alocar memória" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Impossível abrir %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Override malformado %s linha %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Override malformado %s linha %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Override malformado %s linha %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Falha ao ler o arquivo override %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Algoritmo de compactação desconhecido '%s'" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Saída compactada %s precisa de um conjunto de compactação" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Falha ao criar pipe IPC para subprocesso" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Falha ao criar FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Falha oa executar fork" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Compactar filho" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Erro interno, falha ao criar %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Falha ao criar subprocesso IPC" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Falha ao executar compressor " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "descompactador" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "IO para subprocesso/arquivo falhou" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Falha ao ler durante o cálculo MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Problema executando unlinking %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Falha ao renomear %s para %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "S" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Erro de compilação de regex - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Os pacotes a seguir têm dependências desencontradas:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "mas %s está instalado" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "mas %s está para ser instalado" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "mas não está instalável" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "mas é um pacote virtual" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "mas não está instalado" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "mas não vai ser instalado" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " ou" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Os NOVOS pacotes a seguir serão instalados:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Os pacotes a seguir serão REMOVIDOS:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Os pacotes a seguir serão mantidos em suas versões atuais:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Os pacotes a seguir serão atualizados:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Os pacotes a seguir serão REVERTIDOS:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Os seguintes pacotes mantidos serão mudados:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (por causa de %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"AVISO: Os pacotes essenciais a seguir serão removidos.\n" +"Isso NÃO deveria ser feito a menos que você saiba exatamente o que você está " +"fazendo!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu pacotes atualizados, %lu pacotes novos instalados, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu reinstalados, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu desatualizados, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu a serem removidos e %lu não atualizados.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu pacotes não totalmente instalados ou removidos.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Corrigindo dependências..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " falhou." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Impossível corrigir dependências" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Impossível minimizar o conjunto de atualizações" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Pronto" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "Você pode querer rodar `apt-get -f install' para corrigir isso." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Dependências desencontradas. Tente usar -f." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "AVISO: Os pacotes a seguir não podem ser autenticados!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Aviso de autenticação sobrescrito.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Instalar estes pacotes sem verificação [s/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Alguns pacotes não puderam ser autenticados" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Há problemas e -y foi usado sem --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "Erro interno, InstallPackages foi chamado com pacotes quebrados!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Pacotes precisam ser removidos mas a remoção está desabilitada." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Erro interno, Ordenação não finalizou" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Impossível criar lock no diretório de download" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "A lista de fontes não pôde ser lida." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "Que estranho.. Os tamanhos não batem, informe apt@packages.debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "É preciso fazer o download de %sB/%sB de arquivos.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "É preciso fazer o download de %sB de arquivos.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "" +"Depois de desempacotar, %sB adicionais de espaço em disco serão usados.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Depois de desempacotar, %sB de espaço em disco serão liberados.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Não foi possível determinar o espaço livre em %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Você não possui espaço suficiente em %s." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "Trivial Only especificado mas essa não é uma operação trivial." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Sim, faça o que eu digo!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Você está prestes a fazer algo potencialmente destruidor.\n" +"Para continuar digite a frase '%s'\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Abortar." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Quer continuar [S/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Falha ao buscar %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Alguns arquivos falharam ao baixar" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Baixar completo e no modo somente baixar (\"download only\")" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Impossível buscar alguns arquivos, talvez executar apt-get update ou tentar " +"com --fix-missing?" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing e troca de mídia não são suportados atualmente" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Impossível corrigir pacotes faltosos." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Abortando instalação." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Nota, selecionando %s ao invés de %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" +"Ignorando %s, já está instalado e a atualização não está configurada.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "O pacote %s não está instalado, então não será removido\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "O pacote %s é um pacote virtual provido por:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Instalado]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Você deve selecionar um explicitamente para instalar." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"O pacote %s não está disponível, mas é referenciado por outro pacote.\n" +"Isso pode significar que o pacote está faltando, ficou obsoleto ou\n" +"está disponível somente a partir de outra fonte\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "No entanto, os pacotes a seguir o substituem:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "O pacote %s não tem candidato para instalação" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "A reinstalação de %s não é possível, não pode ser baixado.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s já é a versão mais nova.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Release '%s' para '%s' não foi encontrada" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Versão '%s' para '%s' não foi encontrada" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Versão selecionada %s (%s) para %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "O comando update não leva argumentos" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Impossível criar lock no diretório de listas" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Alguns arquivos de índice falharam para baixar, eles foram ignorados ou os " +"antigos foram usados no lugar." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Erro interno, AllUpgrade quebrou as coisas" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Impossível achar pacote %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Nota, selecionando %s para expressão regular '%s'\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "Você deve querer executar `apt-get -f install' para corrigir isso:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Dependências desencontradas. Tente `apt-get -f install' sem nenhum pacote " +"(ou especifique uma solução)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Alguns pacotes não puderam ser instalados. Isso pode significar que\n" +"você solicitou uma situação impossível ou se você está usando a\n" +"distribuição instável, que alguns pacotes requeridos não foram\n" +"criados ainda ou foram tirados do Incoming." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Já que você solicitou uma única operação é bem provável que o pacote\n" +"esteja simplesmente não instalável e um relato de erro sobre esse\n" +"pacotes deve ser enviado." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "A informação a seguir pode ajudar a resolver a situação:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Pacotes quebrados" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Os pacotes extra a seguir serão instalados:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Pacotes sugeridos:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Pacotes recomendados:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Calculando atualização... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Falhou" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Pronto" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "Erro interno, o solucionador de problemas quebrou coisas" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "Deve-se especificar pelo menos um pacote para que se busque o fonte" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Impossível encontrar um pacote fonte para %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Ignorando arquivo já obtido '%s'\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Você não possui espaço livre suficiente em %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Preciso obter %sB/%sB de arquivos fonte.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Precisa obter %sB de arquivos fonte.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Obter fonte %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Falha ao buscar alguns arquivos." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Ignorando desempacotamento de fonte já desempacotado em %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Comando de desempacotamento '%s' falhou.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Confira se o pacote 'dpkg-dev' está instalado.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Comando de construção '%s' falhou.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Processo filho falhou" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"Deve-se especificar pelo menos um pacote para que se cheque as dependências " +"de construção" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Impossível conseguir informações de dependência de construção para %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s não tem dependências de construção.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"a dependência de %s por %s não pôde ser satisfeita porque o pacote %s não " +"pôde ser encontrado" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"a dependência de %s por %s não pôde ser satisfeita porque nenhuma versão " +"disponível do pacote %s pôde satisfazer os requerimentos de versão" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Falha ao satisfazer a dependência de %s por %s: Pacote instalado %s é muito " +"novo" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Falha ao satisfazer dependência de %s por %s: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Não foi possível satisfazer as dependências de compilação para %s." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Falha ao processar as dependências de construção" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Módulos suportados:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Uso: apt-get [opções] comando\n" +" apt-get [opções] install|remove pacote1 [pacote2 ...]\n" +" apt-get [opções] source pacote1 [pacote2 ...]\n" +"\n" +"O apt-get é uma interface simples de linha de comando para fazer o\n" +"download de pacotes e instalá-los. Os comandos usados mais frequentemente\n" +"são update e install.\n" +"\n" +"Comandos:\n" +" update - Adquire novas listas de pacotes\n" +" upgrade - Faz uma atualização\n" +" install - Instala novos pacotes (um pacote é libc6 e não libc6.deb)\n" +" remove - Remove pacotes\n" +" source - Baixa arquivos fonte\n" +" build-dep - Configura as dependências de compilação de pacotes fonte\n" +" dist-upgrade - Atualiza a distribuição, consulte apt-get(8)\n" +" dselect-upgrade - Segue as seleções do dselect\n" +" clean - Apaga arquivos baixados para instalação\n" +" autoclean - Apaga arquivos antigos baixados para instalação\n" +" check - Verifica se não há dependências quebradas\n" +"\n" +"Opções:\n" +" -h Esse texto de ajuda\n" +" -q Saída logável, exceto para erros\n" +" -qq Sem saída, exceto para erros\n" +" -d Fazer o download apenas - NÃO instalar ou desempacotar arquivos\n" +" -s Não-agir. Executar simulação de ordenação\n" +" -y Assumir Sim para todas as perguntas e não questionar\n" +" -f Tenta continuar se a checagem de integridade falhar\n" +" -m Tenta continuar se os arquivos não podem ser localizados\n" +" -u Mostra uma lista de pacotes atualizados também\n" +" -b Constrói o pacote fonte depois de baixá-lo\n" +" -V Exibe números de versões mais detalhados\n" +" -c=? Ler esse arquivo de configuração\n" +" -o=? Definir uma opção de configuração arbitrária, ex -o dir::cache=/tmp\n" +"Veja as páginas de manual apt-get(8), sources.list(5) e apt.conf(5)\n" +"para maiores informações e opções.\n" +" Este APT tem Poderes de Super Vaca.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Atingido " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Obtendo:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ign " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Err " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Baixados %sB em %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Trabalhando]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Troca de mídia: por favor insira o disco nomeado\n" +" '%s'\n" +"no drive '%s' e pressione enter\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Registro de pacote desconhecido!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Uso: apt-sortpkgs [opções] arquivo1 [arquivo2 ...]\n" +"\n" +"O apt-sortpkgs é uma ferramenta simples para ordenar arquivos de pacote.\n" +"A opção -s é usada para indicar que tipo de arquivo é.\n" +"\n" +"Opções:\n" +" -h Esse texto de ajuda\n" +" -s Usar ordenação de arquivo fonte\n" +" -c=? Ler esse arquivo de configuração\n" +" -o=? Define uma opção arbitrária de configuração, ex: -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Configuração padrão ruim!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Pressione enter para continuar." + +# Note to translators: The following four messages belong together. It doesn't +# matter where sentences start, but it has to fit in just these four lines, and +# at only 80 characters per line, if possible. +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "" +"Alguns erros ocorreram ao desempacotar. Eu vou configurar os pacotes que " +"foram" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "" +"instalados. Isto pode resultar em erros duplicados ou erros causados por" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" +"dependências faltantes. Isto está OK, somente os erros acima desta mensagem" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "são importantes. Por favor, conserte-os e execute [I]nstalar novamente" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Mesclando informação disponível" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Falha ao criar pipes" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Falha ao executar gzip " + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Arquivo corrompido" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Checksum do arquivo tar falhou, arquivo corrompido" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Tipo de cabeçalho TAR %u desconhecido, membro %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Assinatura de arquivo inválida" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Erro na leitura de cabeçalho membro de arquivo" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Cabeçalho membro de arquivo inválido" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Arquivo é muito pequeno" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Falha ao ler os cabeçalhos do arquivo" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "DropNode chamado em nodo ainda ligado (linked)" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Falha ao localizar o elemento hash!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Falha ao alocar desvio (diversion)" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Erro interno em AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Tentando sobreescrever um desvio, %s -> %s e %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Adição dupla de desvio %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Arquivo de configuração duplicado %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Falha ao gravar arquivo %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Falha ao fechar arquivo %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "O caminho %s é muito longo" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Desempacotando %s mais de uma vez" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "O diretório %s é desviado (diverted)" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "O pacote está tentando gravar no alvo de desvio %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "O caminho de desvio é muito longo" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "O diretório %s está sendo substituído por um não-diretório" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Falha ao localizar nodo em seu hash bucket" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "O caminho é muito longo" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Sobreescrita de pacote não casa com nenhuma versão para %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Arquivo %s/%s sobreescreve arquivo no pacote %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Impossível ler %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Impossível checar %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Falha ao remover %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Impossível criar %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Falha ao checar %sinfo." + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "Os diretórios info e temp precisam estar no mesmo sistema de arquivos" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Lendo lista de pacotes" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Falha ao mudar para o diretório administrativo %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Erro interno obtendo um nome de pacote" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Lendo listagem de pacotes" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Falha ao abrir o arquivo de lista '%sinfo/%s'. Caso você não consiga " +"restaurar esse arquivo, crie um outro arquivo vazio e reinstale a mesma " +"versão do pacote!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Falha ao ler o arquivo de lista %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Erro interno obtendo um nodo" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Falha ao abrir o arquivo de desvios %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "O arquivo de desvios está corrompido" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Linha inválida no arquivo de desvio: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Erro interno ao adicionar um desvio" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "O cache de pacotes deve ser inicializado primeiro" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Falha ao encontrar um Pacote: cabeçalho, posição %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Seção ConfFile ruim no arquivo de estado. Posição %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Erro interpretando MD5. Posição %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Este não é um arquivo DEB válido, membro '%s' faltando" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "" +"Este não é um arquivo DEB válido, o mesmo não possui um membro '%s' ou '%s'" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Não foi possível mudar para %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Erro interno, não foi possível localizar membro" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Falha em localizar um arquivo de controle válido" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Arquivo de controle não interpretável" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Impossível ler a base de dados de cdrom %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Por favor use o apt-cdrom para fazer com que este CD-ROM seja reconhecido " +"pelo APT. apt-get update não pode ser usado para adicionar novos CD-ROMs" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "CD-ROM errado" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "Impossível desmontar o CD-ROM em %s, o mesmo ainda pode estar em uso." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Disco não encontrado." + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Arquivo não encontrado" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Falha ao checar" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Falha ao definir hora de modificação" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "URI inválida, URIs locais não devem iniciar com //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Logando" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Impossível determinar o nome do ponto" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Impossível determinar o nome local" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Servidor recusou a conexão e respondeu: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "USER falhou, servidor respondeu: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "PASS falhou, servidor respondeu: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Um servidor proxy foi especificado mas não um script de login, Acquire::ftp::" +"ProxyLogin está vazio." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Comando de script de login '%s' falhou, servidor respondeu: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "TYPE falhou, servidor respondeu: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Conexão expirou" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Servidor fechou a conexão" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Erro de leitura" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Uma resposta sobrecarregou o buffer" + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Corrupção de protocolo" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Erro de gravação" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Não foi possível criar um socket" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "Não foi possível conectar socket de dados, conexão expirou" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Não foi possível conectar socket passivo." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo não foi capaz de obter um socket de escuta" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Não foi possível fazer o bind de um socket" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Não foi possível ouvir no socket" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Não foi possível determinar o nome do socket" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Impossível enviar o comando PORT" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Família de endereços %u desconhecida (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT falhou, servidor respondeu: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Conexão do socket de dados expirou" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Impossível aceitar conexão" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Problema fazendo o hash do arquivo" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Impossível obter arquivo, servidor respondeu '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Socket de dados expirou" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Transferência de dados falhou, servidor respondeu '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Pesquisa" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Impossível invocar " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Conectando em %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Não foi possível criar um socket para %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Não posso iniciar a conexão para %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Não foi possível conectar em %s:%s (%s), conexão expirou" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Não foi possível conectar em %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Conectando a %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Não foi possível resolver '%s'" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Falha temporária resolvendo '%s'" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Algo estranho aconteceu resolvendo '%s:%s' (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Impossível conectar em %s %s:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Não foi possível acessar o chaveiro: '%s'" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" +"E: Lista de argumentos de Acquire::gpgv::Options muito extensa. Saindo." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" +"Erro interno: Assinatura boa, mas não foi possível determinar a impressão " +"digital da chave?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Ao menos uma assinatura inválida foi encontrada." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" +"Não foi possível executar '%s' para verificar a assinatura (o gnupg está " +"instalado?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Erro desconhecido executando gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "As seguintes assinaturas eram inválidas:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"As assinaturas a seguir não puderam ser verificadas devido a chave pública " +"não estar disponível:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Não foi possível abrir pipe para %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Erro de leitura do processo %s" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Aguardando por cabeçalhos" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Recebi uma única linha de cabeçalho acima de %u caracteres" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Linha de cabeçalho ruim" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "O servidor HTTP enviou um cabeçalho de resposta inválido" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "O servidor HTTP enviou um cabeçalho Content-Length inválido" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "O servidor HTTP enviou um cabeçalho Content-Range inválido" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "Este servidor HTTP possui suporte a range quebrado" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Formato de data desconhecido" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Seleção falhou" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Conexão expirou" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Erro gravando para arquivo de saída" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Erro gravando para arquivo" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Erro gravando para o arquivo" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "Erro lendo do servidor. Ponto remoto fechou a conexão" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Erro lendo do servidor" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Dados de cabeçalho ruins" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Conexão falhou" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Erro interno" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Não foi possível fazer mmap de arquivo vazio" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Impossível fazer mmap de %lu bytes" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Seleção %s não encontrada" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Abreviação de tipo desconhecida: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Abrindo arquivo de configuração %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Linha %d muito longa (máx. %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Erro de sintaxe %s:%u: Bloco inicia sem nome." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Erro de sintaxe %s:%u: Tag mal formada" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Erro de sintaxe %s:%u: Lixo extra depois do valor" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" +"Erro de sintaxe %s:%u: Diretivas podem ser feitas somente no nível mais alto" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Erro de sintaxe %s:%u: Muitos includes aninhados" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Erro de sintaxe %s:%u: Incluído a partir deste ponto" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Erro de sintaxe %s:%u: Diretiva '%s' não suportada" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Erro de sintaxe %s:%u: Lixo extra no final do arquivo" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Erro!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Pronto" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Opção de linha de comando '%c' [de %s] é desconnhecida." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Opção de linha de comando %s não é compreendida" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Opção de linha de comando %s não é booleana" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "Opção %s requer um argumento." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "" +"Opção %s: Especificação de item de configuração deve possuir um =." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "Opção %s requer um argumento inteiro, não '%s'" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Opção '%s' é muito longa" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "Sentido %s não é compreendido, tente verdadeiro ou falso." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Operação %s inválida" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Impossível checar o ponto de montagem %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Impossível mudar para %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Impossível checar o cdrom" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "Não usando locking para arquivo de trava somente leitura %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Não foi possível abrir arquivo de trava %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "Não usando locking para arquivo de trava montado via nfs %s" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Não foi possível obter trava %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Esperado %s mas este não estava lá" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Sub-processo %s recebeu uma falha de segmentação." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Sub-processo %s retornou um código de erro (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Sub-processo %s finalizou inesperadamente" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Não foi possível abrir arquivo %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "leitura, ainda restam %lu para serem lidos mas nenhum deixado" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "gravação, ainda restam %lu para gravar mas não foi possível" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Problema fechando o arquivo" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Problema removendo o link do arquivo" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Problema sincronizando o arquivo" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Cache de pacotes vazio" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "O arquivo de cache de pacotes está corrompido" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "O arquivo de cache de pacotes é uma versão incompatível" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Este APT não suporta o sistema de versões '%s'" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "O cache de pacotes foi gerado para uma arquitetura diferente" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Depende" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Pré-Depende" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Sugere" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Recomenda" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Conflita" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Substitui" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Obsoleta" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "importante" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "requerido" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "padrão" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "opcional" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "extra" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Construindo árvore de dependências" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Versões candidatas" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Geração de dependência" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Impossível analisar arquivo de pacote %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Impossível analisar arquivo de pacote %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Linha mal formada %lu no arquivo de fontes %s (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Linha mal formada %lu no arquivo de fontes %s (distribuição)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Linha mal formada %lu no arquivo de fontes %s (análise de URI)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Linha mal formada %lu no arquivo de fontes %s (distribuição absoluta)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "" +"Linha mal formada %lu no arquivo de fontes %s (análise de distribuição)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Abrindo %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Linha %u muito longa na lista de fontes %s." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Linha mal formada %u no arquivo de fontes %s (tipo)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Tipo '%s' não é conhecido na linha %u na lista de fontes %s" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Linha mal formada %u na lista de fontes %s (id de fornecedor)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Esta execução de instalação irá requerer remover temporariamente o pacote " +"essencial %s devido a um loop de Conflitos/Pré-Dependências. Isso geralmente " +"é ruim, mas se você realmente quer fazer isso, ative a opção APT::Force-" +"LoopBreak." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Tipo de arquivo de índice '%s' não é suportado" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"O pacote %s precisa ser reinstalado, mas não foi possível encontrar um " +"arquivo para o mesmo." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Erro, pkgProblemResolver::Resolve gerou falhas, isto pode ser causado por " +"pacotes mantidos (hold)." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "Impossível corrigir problemas, você manteve (hold) pacotes quebrados." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Diretório de listas %spartial está faltando." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Diretório de repositório %spartial está faltando." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "Obtendo o arquivo %li de %li (%s restantes)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "Obtendo arquivo %li de %li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "O driver do método %s não pôde ser encontrado." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Método %s não iniciou corretamente" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "" +"Por favor, insira o disco nomeado: '%s' no leitor '%s' e pressione enter." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Sistema de empacotamento '%s' não é suportado" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "" +"Não foi possível determinar um tipo de sistema de empacotamento aplicável." + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Impossível checar %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "Você deve colocar algumas URIs 'source' em seu sources.list" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" +"As listas de pacotes ou os arquivos de status não puderam ser analisados ou " +"abertos." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "Você terá que executar apt-get update para corrigir esses problemas" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Registro inválido no arquivo de preferências, sem cabeçalho Package" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Não foi possível entender o tipo de pin %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Nenhuma prioridade (ou zero) especificada para pin" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "O cache possui um sistema de versões incompatível" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Um erro ocorreu processando %s (NovoPacote)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Um erro ocorreu processando %s (UsePacote1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Um erro ocorreu processando %s (UsePacote2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Um erro ocorreu processando %s (NovoArquivoVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Um erro ocorreu processando %s (NovaVersão1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Um erro ocorreu processando %s (UsePacote3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Um erro ocorreu processando %s (NovaVersão2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" +"Uau, você excedeu o número de nomes de pacotes que este APT é capaz de " +"suportar." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "" +"Uau, você excedeu o número de versões que este APT é capaz de suportar." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" +"Uau, você excedeu o número de dependências que este APT é capaz de suportar." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Um erro ocorreu processando %s (EncontrarPacote)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Um erro ocorreu processando %s (ColetarArquivoProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "" +"Pacote %s %s não foi encontrado enquanto processando dependências de arquivo" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Não foi possível checar a lista de pacotes fonte %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Coletando Arquivo Provides" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "Erro de I/O ao gravar cache fonte" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "renomeação falhou, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "MD5Sum incorreto" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "Não existem chaves públicas para os seguintes IDs de chaves:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Não foi possível localizar um arquivo para o pacote %s. Isto pode significar " +"que você precisa consertar manualmente este pacote. (devido a arquitetura " +"não especificada)." + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Não foi possível localizar arquivo para o pacote %s. Isto pode significar " +"que você precisa consertar manualmente este pacote." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"Os arquivos de índice de pacotes estão corrompidos. Nenhum campo Filename: " +"para o pacote %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Tamanho incorreto" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Bloco Fornecedor %s não contém impressão digital (\"fingerprint\"" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Usando ponto de montagem de CD-ROM %s\n" +"Montando CD-ROM\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Identificando.. " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Rótulo armazenado: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Usando ponto de montagem de CD-ROM %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "Desmontando CD-ROM\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Aguardando por disco...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Montando CD-ROM...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Procurando por arquivos de índice no disco..\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "" +"Encontrado(s) %i índice(s) de pacote(s), %i índice(s) de fonte(s) e %i " +"assinaturas\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Este não é um nome válido, tente novamente.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Esse disco é chamado: \n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Copiando lista de pacotes..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Gravando nova lista de fontes\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Entradas na lista de fontes para este disco são:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "Desmontando CD-ROM..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "Gravados %i registros.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "Gravados %i registros com %i arquivos faltando.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "Gravados %i registros com %i arquivos que não combinam\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" +"Gravados %i registros com %i arquivos faltando e %i arquivos que não " +"combinam\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "Preparando %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "Desempacotando %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "Preparando para configurar %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "Configurando %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "%s instalado" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "Preparando para a remoção de %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "Removendo %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "%s removido" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "Preparando para remover completamente %s" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "%s completamente removido" + +#: methods/rred.cc:219 +msgid "Could not patch file" +msgstr "Não foi possível aplicar o patch" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Conexão encerrada prematuramente" + +#~ msgid "Total package names: " +#~ msgstr "Total de nomes de pacotes: " + +#~ msgid "File date has changed %s" +#~ msgstr "Data do arquivo mudou %s" + +#~ msgid "Reading file list" +#~ msgstr "Lendo Listagem de Pacotes" + +#~ msgid "Could not execute " +#~ msgstr "Não foi possível executar " + +#~ msgid "Preparing for remove with config %s" +#~ msgstr "Preparando para remoção de %s e sua configuração" + +#~ msgid "Removed with config %s" +#~ msgstr "%s e sua configuração removidos" + +#~ msgid "Unknown vendor ID '%s' in line %u of source list %s" +#~ msgstr "" +#~ "ID de fornecedor desconhecido '%s' na linha %u da lista de fontes %s" + +#~ msgid "" +#~ "Some broken packages were found while trying to process build-" +#~ "dependencies.\n" +#~ "You might want to run `apt-get -f install' to correct these." +#~ msgstr "" +#~ "Alguns pacotes quebrados foram encontrados enquanto se tentava " +#~ "processar \n" +#~ "as dependências de construção.\n" +#~ "Você pode querer rodar `apt-get -f install' para corrigí-los." + +#~ msgid "Sorry, you don't have enough free space in %s to hold all the .debs." +#~ msgstr "" +#~ "Desculpe, você não tem espaço livre o suficiente em %s para guardar os ." +#~ "debs." + +#, fuzzy +#~ msgid "Extract " +#~ msgstr "extra" + +#, fuzzy +#~ msgid "De-replaced " +#~ msgstr "Substitui" + +#, fuzzy +#~ msgid "Replaced file " +#~ msgstr "Substitui" + +#, fuzzy +#~ msgid "You must give at least one file name" +#~ msgstr "Você deve passar exatamente um padrão" + +#, fuzzy +#~ msgid "Regex compilation error" +#~ msgstr "Erro de compilação de regex - %s" + +#, fuzzy +#~ msgid "Failed to stat %s%s" +#~ msgstr "Falha ao baixar %s %s\n" + +#, fuzzy +#~ msgid "Failed to open %s.new" +#~ msgstr "Falha ao baixar %s %s\n" + +#, fuzzy +#~ msgid "Failed to rename %s.new to %s" +#~ msgstr "Falha ao baixar %s %s\n" + +#, fuzzy +#~ msgid "Couldn't wait for subprocess" +#~ msgstr "Não foi possível checar a lista de pacotes fonte %s" + +#, fuzzy +#~ msgid " files " +#~ msgstr " falhou." + +#, fuzzy +#~ msgid "Done. " +#~ msgstr "Pronto" + +#, fuzzy +#~ msgid "Could not find a record in the DSC '%s'" +#~ msgstr "Impossível achar pacote %s" + +#, fuzzy +#~ msgid "Failed too stat %s" +#~ msgstr "Impossível checar %s." diff --git a/po/ro.po b/po/ro.po new file mode 100644 index 0000000..e3d5d1e --- /dev/null +++ b/po/ro.po @@ -0,0 +1,2796 @@ +# translation of apt_po_ro.po to Romanian +# This file is put in the public domain. +# +# Sorin Batariuc , 2004, 2005, 2006. +msgid "" +msgstr "" +"Project-Id-Version: apt_po_ro\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-09-19 01:35+0300\n" +"Last-Translator: Sorin Batariuc \n" +"Language-Team: Romanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Pachetul %s versiunea %s are o dependenţă neîndeplinită:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Nu pot localiza pachetul %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Total nume pachete : " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Pachete normale: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Pachete virtuale pure: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Pachete virtuale singulare: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Pachete virtuale mixte: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Lipsă: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Total versiuni distincte: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Total dependenÅ£e: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Total relaÅ£ii versiune/fişier: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Total cartări Furnizează: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Total şiruri înglobate: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Total spaÅ£iu versiuni ale dependenÅ£elor: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Total spaÅ£iu intern: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Total spaÅ£iu contorizat pentru: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Fişierul pachetului %s este desincronizat." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Trebuie să daÅ£i exact un şablon" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Nu s-au găsit pachete" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Fişiere pachet: " + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "Cache este desincronizat, nu pot executa x-ref un fişier pachet" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Pachete alese special:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(negăsit)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Instalat: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(niciunul)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Candidează: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Pachet ales special: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Tabela de versiuni:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s pentru %s %s compilat pe %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Utilizare: apt-cache [opÅ£iuni] comanda\n" +" apt-cache [opÅ£iuni] add fişier1 [fişier2 ...]\n" +" apt-cache [opÅ£iuni] showpkg pachet1 [pachet2 ...]\n" +" apt-cache [opÅ£iuni] showsrc pachet1 [pachet2 ...]\n" +"\n" +"apt-cache este o unealtă de nivel scăzut pentru manipularea fişierelor\n" +"binare din cache-ul APT, şi de interogare a informaÅ£iilor din ele\n" +"\n" +"Comenzi:\n" +" add - Adaugă un fişier pachet la cache-ul sursă\n" +" gencaches - Construieşte şi cache-ul pachet şi cache-ul sursă\n" +" showpkg - Arată unele informaÅ£ii generale pentru un singur pachet\n" +" showsrc - Arată înregistrările sursei\n" +" stats - Arată unele statistici de bază\n" +" dump - Arată întregul fişier într-o formă concisă\n" +" dumpavail - Afişează un fişier disponibil către stdout\n" +" unmet - Arată dependenÅ£ele neîndeplinite\n" +" search - Caută în lista de pachete pentru un şablon regex\n" +" show - Arată o înregistrare lizibilă pentru pachet\n" +" depends - Arată informaÅ£ii brute de dependenţă pentru un pachet\n" +" rdepends - Arată dependenÅ£ele inversate pentru un pachet\n" +" pkgnames - Afişează numele tuturor pachetelor\n" +" dotty - Generează grafice de pachete pentru GraphVis\n" +" xvcg - Generează grafice de pachete pentru xvcg\n" +" policy - Arată ajustările de politică\n" +"\n" +"OpÅ£iuni:\n" +" -h Acest text de ajutor.\n" +" -p=? Cache-ul de pachete.\n" +" -s=? Cache-ul de surse.\n" +" -q Dezactivează indicatorul de progres.\n" +" -i Arată doar dependenÅ£ele importante pentru comanda neîndeplinită.\n" +" -c=? Citeşte acest fişier de configurare\n" +" -o=? Ajustează o opÅ£iune de configurare arbitrară, ex. -o dir::cache=/tmp\n" +"VedeÅ£i manualele apt-cache(8) şi apt.conf(5) pentru mai multe informaÅ£ii.\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "" +"Vă rog furnizaÅ£i un nume pentru acest disc, cum ar fi 'Debian 2.1r1 Disk 1'" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Vă rog introduceÅ£i un disc în unitate şi apăsaÅ£i Enter" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "RepetaÅ£i această procedură pentru restul CD-urilor." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Argumentele nu sunt perechi" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Utilizare: apt-config [opÅ£iuni] comanda\n" +"\n" +"apt-config este o unealtă simplă pentru citirea fişierului de configurare " +"APT\n" +"\n" +"Comenzi:\n" +" shell - Modul consolă\n" +" dump - Arată configurarea\n" +"\n" +"OpÅ£iuni:\n" +" -h Acest text de ajutor.\n" +" -c=? Citeşte acest fişier de configurare\n" +" -o=? Ajustează o opÅ£iune de configurare arbitrară, ex. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s nu este un pachet DEB valid." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Utilizare: apt-extracttemplates fişier1 [fişier2 ...]\n" +"\n" +"apt-extracttemplates este o unealtă pentru extragerea informaÅ£iilor \n" +"de configurare şi şabloane dintr-un pachet Debian\n" +"\n" +"OpÅ£iuni\n" +" -h Acest text de ajutor.\n" +" -t Impune directorul temp\n" +" -c=? Citeşte acest fişier de configurare\n" +" -o=? Ajustează o opÅ£iune de configurare arbitrară, ex. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Nu pot scrie în %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Nu pot citi versiunea debconf. Este instalat debconf?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Lista de extensii pentru pachet este prea lungă" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Eroare la prelucrarea directorului %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Lista de extensii pentru sursă este prea lungă" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Eroare la scrierea antetului în fişierul index" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Eroare la prelucrarea conÅ£inutului %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Utilizare: apt-ftparchive [opÅ£iuni] comanda\n" +"Comenzi: packages cale_binare [fişier_înlocuire [prefix_cale]]\n" +" sources cale_src [fişier_înlocuire [prefix_cale]]\n" +" contents cale\n" +" release cale\n" +" generate config [grupuri]\n" +" clean config\n" +"\n" +"apt-ftparchive generează fişiere de indexare pentru arhivele Debian. " +"Suportă\n" +"multe stiluri de generare de la complet automat la înlocuiri funcÅ£ionale\n" +"pentru dpkg-scanpackage şi dpkg-scansources\n" +"\n" +"apt-ftparchive generează fişierele Package dintr-un arbore de .deb-uri.\n" +"Fişierul Pachet înglobează conÅ£inutul tuturor câmpurilor de control din " +"fiecare\n" +"pachet cât şi MD5 hash şi dimensiunea fişierului. Un fişier de înlocuire " +"este\n" +"furnizat pentru a forÅ£a valoarea Priorităţii şi SecÅ£iunii.\n" +"\n" +"În mod asemănator apt-ftparchive generează fişierele Sources dintr-un arbore " +"de .dsc-uri.\n" +"OpÅ£iunea --source-override poate fi folosită pentru a specifica fişierul de " +"înlocuire\n" +"\n" +"Comenzile 'packages' şi 'sources' ar trebui executate în rădăcina " +"arborelui.\n" +"Cale_binare ar trebui să indice baza căutării recursive şi fişierul de " +"înlocuire ar\n" +"trebui să conÅ£ină semnalizatorul de înlocuire. Prefix_cale este adăugat " +"câmpului\n" +"de nume fişier dacă acesta este prezent. Exemplu de utilizare din arhiva\n" +"Debian:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"OpÅ£iuni:\n" +" -h Acest text de ajutor.\n" +" --md5 Generarea controlului MD5\n" +" -s=? Fişierul de înlocuire pentru surse\n" +" -q În linişte\n" +" -d=? Selectează baza de date de cache opÅ£ională\n" +" --no-delink Activează modul de depanare dezlegare\n" +" --contents Generarea fişierului cu sumarul de control\n" +" -c=? Citeşte acest fişier de configurare\n" +" -o=? Ajustează o opÅ£iune de configurare arbitrară" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Nu s-a potrivit nici o selecÅ£ie" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Unele fişiere lipsesc din grupul fişierului pachet '%s'" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "DB a fost corupt, fişierul a fost redenumit %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "DB este vechi, se încearcă înnoirea %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"Formatul DB este nevalid. Dacă l-aÅ£i înnoit pe apt de la o versiune mai " +"veche, ştergeÅ£i şi recreaÅ£i baza de date." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Nu pot deschide fişierul DB %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Eşuare în determinarea stării %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Arhiva nu are înregistrare de control" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Nu pot obÅ£ine un cursor" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "A: Nu pot citi directorul %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "A: Nu pot determina starea %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "A: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E: Erori la fişierul " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Eşuare în a rezolva %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Eşuare în parcurgerea arborelui" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Eşuare la deschiderea %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " Dezlegare %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Eşuare la citirea legăturii %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Eşuare în desfacerea legăturii %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Eşuare în legarea %s de %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " Limita de %sB a dezlegării a fost atinsă.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Arhiva nu are câmp de pachet" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s nu are intrare de înlocuire\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " %s responsabil este %s nu %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s nu are nici o intrare sursă de înlocuire\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s nu are nici intrare binară de înlocuire\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Eroare internă, nu pot localiza membrul %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Eşuare în alocarea memoriei" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Nu pot deschide %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Înlocuire greşită %s linia %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Înlocuire greşită %s linia %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Înlocuire greşită %s linia %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Eşuare la citirea fişierului de înlocuire %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Algoritm de compresie necunoscut '%s'" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Rezultatul comprimat %s are nevoie de o ajustare a compresiei" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Eşuare în crearea conexiunii IPC către subproces" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Eşuare în crearea FIŞIERULUI*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Eşuare în bifurcare" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Comprimare copil" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Eroare internă, eşuare în a crea %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Eşuare în a crea subprocesul IPC" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Eşuare în executarea compresorului" + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "decompresor" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "IE către subproces/fişier eşuat" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Eşuare la citire în timpul calculării MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Problemă la desfacerea %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Eşuare în a redenumi %s în %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "Y" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Eroare de compilare expresie regulată - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Următoarele pachete au dependenÅ£e neîndeplinite:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "dar %s este instalat" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "dar %s este pe cale de a fi instalat" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "dar nu este instalabil" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "dar este un pachet virtual" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "dar nu este instalat" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "dar nu este pe cale să fie instalat" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " sau" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Următoarele pachete NOI vor fi instalate:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Următoarele pachete vor fi ŞTERSE:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Următoarele pachete au fost reÅ£inute:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Următoarele pachete vor fi ÎNNOITE:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Următoarele pachete vor fi DE-GRADATE:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Următoarele pachete Å£inute vor fi schimbate:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (datorită %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"AVERTISMENT: Următoarele pachete esenÅ£iale vor fi şterse.\n" +"Aceasta NU ar trebui făcută decât dacă ştiÅ£i exact ce vreÅ£i!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu înnoite, %lu nou instalate, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu reinstalate, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu de-gradate, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu de şters şi %lu neînnoite.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu instalate sau şterse incomplet.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Corectez dependenÅ£ele..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " eşuare." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Nu pot corecta dependenÅ£ele" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Nu pot micşora mulÅ£imea pachetelor de înnoire" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Terminat" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "AÅ£i putea să porniÅ£i 'apt-get -f install' pentru a corecta acestea." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "DependenÅ£e neîndeplinite. ÎncercaÅ£i să folosiÅ£i -f." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "AVERTISMENT: Următoarele pachete nu pot fi autentificate!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Avertisment de autentificare înlocuit.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "InstalaÅ£i aceste pachete fără verificare [y/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Unele pachete n-au putut fi autentificate" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Sunt unele probleme şi -y a fost folosit fără --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "Eroare internă, InstallPackages a fost apelat cu pachete deteriorate!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Pachete trebuiesc şterse dar ştergerea este dezactivată." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Eroare internă, Ordering nu s-a terminat" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Nu pot încuia directorul de descărcare" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "Lista surselor nu poate fi citită." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"Ce ciudat.. Dimensiunile nu se potrivesc, scrieÅ£i la apt@packages.debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Este nevoie să descărcaÅ£i %sB/%sB de arhive.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Este nevoie să descărcaÅ£i %sB de arhive.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "După despachetare va fi folosit %sB de spaÅ£iu suplimentar pe disc.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "După despachetare va fi eliberat %sB din spaÅ£iul de pe disc.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "N-am putut determina spaÅ£iul disponibil în %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Nu aveÅ£i suficient spaÅ£iu în %s." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "" +"A fost specificat 'doar neimportant' dar nu este o operaÅ£iune neimportantă." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Da, fă cum îţi spun!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"SunteÅ£i pe cale de a face ceva cu potenÅ£ial distructiv.\n" +"Pentru a continua tastaÅ£i fraza '%s'\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "RenunÅ£are." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "VreÅ£i să continuaÅ£i [Y/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Eşuare în aducerea %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Eşuare în descărcarea unor fişiere" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Descărcare completă şi în modul doar descărcare" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Nu pot aduce unele arhive, poate porniÅ£i 'apt-get update' sau încercaÅ£i cu --" +"fix-missing?" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing şi schimbul de mediu nu este deocamdată suportat" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Nu pot corecta pachetele lipsă." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Abandonez instalarea." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Notă, se selectează %s în locul lui %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "Sar peste %s, este deja instalat şi înnoirea nu este activată.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "Pachetul %s nu este instalat, aşa încât nu este şters\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Pachetul %s este un pachet virtual furnizat de către:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Instalat]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Ar trebui să alegeÅ£i în mod explicit unul pentru instalare." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Pachetul %s nu este disponibil, dar este menÅ£ionat de către alt pachet.\n" +"Aceasta ar putea însemna că pachetul lipseşte, s-a învechit, sau\n" +"este disponibil numai din altă sursă\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Oricum următoarele pachete îl înlocuiesc:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Pachetul %s nu are nici un candidat la instalare" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "Reinstalarea lui %s nu este posibilă, nu poate fi descărcat.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s este deja la cea mai nouă versiune.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Release '%s' pentru '%s' n-a fost găsită" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Versiunea '%s' pentru '%s' n-a fost găsită" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Versiune selectată %s (%s) pentru %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "Comanda de actualizare nu are argumente" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Nu pot încuia directorul cu lista" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Unele fişiere index au eşuat la descărcare, fie au fost ignorate, fie au " +"fost folosite în loc unele vechi." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Eroare internă, înnoire totală a defectat diverse chestiuni" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Nu pot găsi pachetul %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Notă, selectare %s pentru expresie regulată '%s'\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "AÅ£i putea porni 'apt-get -f install' pentru a corecta acestea:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"DependenÅ£e neîndeplinite. ÎncercaÅ£i 'apt-get -f install' fără nici un pachet " +"(sau oferiÅ£i o altă soluÅ£ie)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Unele pachete n-au putut fi instalate. Aceasta ar putea însemna că aÅ£i " +"cerut\n" +"o situaÅ£ie imposibilă sau că folosiÅ£i distribuÅ£ia instabilă în care unele " +"pachete\n" +"cerute n-au fost create încă sau au fost mutate din Incoming." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Din moment ce doar aÅ£i cerut o singură operaÅ£iune este extrem de probabil\n" +" că pachetul pur şi simplu nu este instalabil şi un raport de eroare pentru\n" +"acest pachet ar trebui completat." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "Următoarele informaÅ£ii ar putea să vă ajute la rezolvarea situaÅ£iei:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Pachete deteriorate" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Următoarele extra pachete vor fi instalate:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Pachete sugerate:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Pachete recomandate:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Calculez înnoirea... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Eşuare" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Terminat" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "" +"Eroare internă, rezolvatorul de probleme a deteriorat diverse chestiuni" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "Trebuie specificat cel puÅ£in un pachet pentru a-i aduce sursa" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Nu pot găsi o sursă pachet pentru %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Sar peste fişierul deja descărcat '%s'\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Nu aveÅ£i suficient spaÅ£iu în %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Este nevoie să descărcaÅ£i %sB/%sB din arhivele surselor.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Este nevoie să descărcaÅ£i %sB din arhivele surselor.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Aducere sursa %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Eşuare în a aduce unele arhive." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Sar peste despachetarea sursei deja despachetate în %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Comanda de despachetare '%s' eşuată.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "VerificaÅ£i dacă pachetul 'dpkg-dev' este instalat.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Comanda de construire '%s' eşuată.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Eşuare proces copil" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"Trebuie specificat cel puÅ£in un pachet pentru a-i verifica dependenÅ£ele " +"înglobate" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Nu pot prelua informaÅ£iile despre dependenÅ£ele înglobate ale lui %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s nu are dependenÅ£e înglobate.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"DependenÅ£a lui %s de %s nu poate fi satisfăcută deoarece pachetul %s nu " +"poate fi găsit" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"DependenÅ£a lui %s de %s nu poate fi satisfăcută deoarece nici o versiune " +"disponibilă a pachetului %s nu poate satisface versiunile cerute" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Eşuare în a satisface dependenÅ£a lui %s de %s: Pachetul instalat %s este " +"prea nou" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Eşuare în a satisface dependenÅ£a lui %s de %s: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "DependenÅ£ele înglobate pentru %s nu pot fi satisfăcute." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Eşuare în a prelucra dependenÅ£ele înglobate" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Module suportate:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Utilizare: apt-get [opÅ£iuni] comanda\n" +" apt-get [opÅ£iuni] install|remove pachet1 [pachet2 ...]\n" +" apt-get [opÅ£iuni] source pachet1 [pachet2 ...]\n" +"\n" +"apt-get este o simplă interfaţă în linie de comandă pentru descărcarea şi\n" +"instalarea pachetelor. Cele mai frecvent folosite comenzi sunt update\n" +"şi install.\n" +"\n" +"Comenzi:\n" +" update - Aduce noile liste de pachete\n" +" upgrade - Realizează o înnoire\n" +" install - Instalează pachete noi (pachet este libc6, nu libc6.deb)\n" +" remove - Şterge pachete\n" +" source - Descarcă arhivele sursă\n" +" build-dep - Configurează dependenÅ£ele înglobate pentru sursele " +"pachetelor\n" +" dist-upgrade - Înnoirea distribuÅ£iei, vedeÅ£i apt-get(8)\n" +" dselect-upgrade - Urmează selecÅ£iile dselect\n" +" clean - Şterge fişierele arhivă descărcate\n" +" autoclean - Şterge vechile fişiere arhivă descărcate\n" +" check - Verifică dacă există dependenÅ£e neîndeplinite\n" +"\n" +"OpÅ£iuni:\n" +" -h Acest text de ajutor.\n" +" -q Afişare jurnalizabilă - fără indicator de progres\n" +" -qq Fără afişare, cu excepÅ£ia erorilor\n" +" -d Doar descărcare - NU instala sau despacheta arhive\n" +" -s Fără acÅ£iune. Realizează o simulare\n" +" -y Presupune DA la toate întrebările şi nu solicita răspuns\n" +" -f Încercare de continuare dacă verificarea integrităţii eşuează\n" +" -m Încercare de continuare dacă arhivele sunt de negăsit\n" +" -u Arată o listă de pachete ce pot fi înnoite\n" +" -b Construieşte sursa pachetului după aducere\n" +" -V Arată numerele versiunilor în mod logoreic\n" +" -c=? Citeşte acest fişier de configurare\n" +" -o=? Ajustează o opÅ£iune de configurare arbitrară, ex. -o dir::cache=/tmp\n" +"VedeÅ£i manualul apt-get(8), sources.list(5) şi apt.conf(5)\n" +"pentru mai multe informaÅ£ii şi opÅ£iuni.\n" +" Acest APT are puterile unei Super Vaci.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Atins " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Luat:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ignorat " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Eroare" + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Adus %sB în %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [În lucru]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Schimbare de mediu: Vă rog introduceÅ£i discul numit\n" +" '%s'\n" +"în unitatea '%s' şi apăsaÅ£i Enter\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Înregistrare de pachet necunoscut!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Utilizare: apt-sortpkgs [opÅ£iuni] fişier1 [fişier2 ...]\n" +"\n" +"apt-sortpkgs este o unealtă simplă pentru sortarea fişierelor pachete. " +"OpÅ£iunea\n" +"-s este folosită pentru a indica ce fel de fişier este.\n" +"\n" +"OpÅ£iuni:\n" +" -h Acest text de ajutor\n" +" -s Foloseşte sortarea de fişiere sursă\n" +" -c=? Citeşte acest fişier de configurare\n" +" -o=? Ajustează o opÅ£iune de configurare arbitrară, ex.: -o dir::cache=/" +"tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Ajustări implicite necorespunzătoare!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "ApăsaÅ£i Enter pentru a continua." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "S-au produs unele erori în timpul despachetării. Voi configura" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "" +"pachetele care au fost instalate. Aceasta ar putea rezulta erori dublate" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" +"sau erori cauzate de dependenÅ£e lipsă. Aceasta este normal, doar erorile" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"de deasupra acestui mesaj sunt importante. Vă rog corectaÅ£i-le şi porniÅ£i " +"din nou [I]nstalarea" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Unirea informaÅ£iilor disponibile" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Eşuare în crearea conexiunilor" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Eşuare în executarea gzip" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Arhivă deteriorată" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Eşuarea sumei de control în arhiva tar, arhivă deteriorată" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Tip antet TAR %u necunoscut, membru %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Semnătură de arhivă necorespunzătoare" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Eroare la citirea antetului membru al arhivei" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Antet membru de arhivă necorespunzător" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Arhiva este prea scurtă" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Eşuare la citirea antetelor de arhivă" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "Chemat DropNode pe un nod încă legat" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Eşuare în localizarea elementului hash!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Eşuare în alocarea diversiunii" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Eroare internă în adăugare diversiune" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Încercare de suprascriere diversiune, %s -> %s şi %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Adăugare dublă de diversiune %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Fişier de configurare duplicat %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Eşuare în scrierea fişierului %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Eşuare în a închide fişierul %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "Calea %s este prea lungă" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Despachetarea %s de mai multe ori" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "Directorul %s este distras" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "Pachetul încearcă să scrie în Å£inta de diversiune %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Calea de diversiune este prea lungă" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "Directorul %s este înlocuit de un non-director" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Eşuare în localizarea nodului din tranşa hash" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Calea este prea lungă" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Pachetul suprascris nu se potriveşte cu nici o versiune pentru %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Fişierul %s/%s suprascrie pe cel din pachetul %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Nu pot citi %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Nu pot determina starea %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Eşuare în ştergerea %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Nu pot crea %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Eşuare în a determina starea %sinfo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "" +"Directoarele de informaÅ£ii şi temporare trebuie să fie în acelaşi sistem de " +"fişiere" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Citire liste de pachete" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Eşuare în a schimba către directorul %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Eroare internă la preluarea numelui de pachet" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Citire derulare fişier" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Eşuare în deschiderea fişierului listă '%sinfo/%s'. Dacă nu puteÅ£i restaura " +"acest fişier atunci goliÅ£i-l şi imediat reinstalaÅ£i aceeaşi versiune a " +"pachetului!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Eşuare la citirea fişierului listă %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Eroare internă la preluarea unui nod" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Eşuare la deschiderea fişierului de diversiuni %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Fişierul diversiune este deteriorat" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Linie necorespunzătoare în fişierul diversiune: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Eroare internă în timpul adăugării unei diversiuni" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "Cache-ul pachetului trebuie întâi iniÅ£ializat" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Eşuare în a găsi un pachet: antet, ofset %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "SecÅ£iune necorespunzătoare ConfFile în fişierul de stare. Offset %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Eroare la analiza MD5. Offset %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Aceasta nu este o arhivă DEB validă, lipseşte membrul '%s'" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "Aceasta nu este o arhivă DEB validă, nu are membrul '%s' sau '%s'" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Nu pot schimba la %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Eroare internă, nu pot localiza membrul" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Eşuare de localizare a unui fişier de control valid" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Fişier de control neanalizabil" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Nu pot citi baza de date a cdrom-ului %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Vă rog folosiÅ£i apt-cdrom pentru a face recunoscut acest CD de către APT. " +"'apt-get update' nu poate fi folosit pentru adăugarea de noi CD-uri" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "CD-ROM necorespunzător" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "Nu pot demonta CDROM-ul în %s, poate este încă utilizat." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Disc negăsit." + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Fişier negăsit" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Eşuare de determinare a stării" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Eşuare la ajustarea timpului" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "URI invalid, URIS local trebuie sa nu înceapă cu //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Se autentifică" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Nu pot determina numele pereche" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Nu pot determina numele local" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Serverul ne-a refuzat conectarea şi a spus: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "Eşuare UTILIZATOR, serverul a spus: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "Eşuare PAROLĂ, serverul a spus: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Un server proxy a fost specificat dar nu exista nici un script de conectare, " +"Acquire::ftp::ProxyLogin este gol." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Script comandă de conectare '%s' eşuat, serverul a spus: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "Eşuare TIP, serverul a spus: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Timpul de conectare a expirat" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Serverul a terminat conexiunea" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Eroare de citire" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Un răspuns a inundat zona tampon." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Degradare protocol" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Eroare de scriere" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Nu pot crea un socket" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "Nu pot conecta data socket, timpul de conectare a expirat" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Nu pot conecta socket pasiv" + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo n-a reuşit să obÅ£ină un socket de ascultare" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Nu pot lega un socket" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Nu pot asculta pe un socket" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Nu pot determina numele socket-ului" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Nu pot trimite comanda PORT" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Familie de adrese necunoscută %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "Eşuare EPRT, serverul a spus: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Timp de conectare data socket expirat" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Nu pot accepta conexiune" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Problemă la indexarea fişierului" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Nu pot aduce fişierul, serverul a spus '%s" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Timp expirat pentru data socket" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Eşuare transfer de date, serverul a spus: '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Interogare" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Nu pot invoca" + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Conectare la %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Nu pot crea un socket pentru %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Nu pot iniÅ£ia conectarea la %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "N-am putut conecta la %s:%s (%s), timp de conectare expirat" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "N-am putut conecta la %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Conectare la %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Nu pot rezolva '%s'" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Eşuare temporară în rezolvarea '%s'" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "S-a întâmplat ceva rău la rezolvarea '%s:%s' (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Nu pot conecta la %s %s" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Nu pot accesa keyring: '%s'" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "E: Listă de argumente din Acquire::gpgv::Options prea lungă. Ies." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" +"Eroare internă: Semnătură corespunzătoare, dar n-am putut determina cheia " +"amprentei digitale?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Cel puÅ£in o semnătură invalidă a fost întâlnită." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" +"Nu pot executa '%s' pentru verificarea semnăturii (este instalat gnupg?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Eroare necunoscută în timp ce se execută gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "Următoarele semnături au fost invalide:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"Următoarele semnături n-au putut fi verificate datorită cheii publice care " +"este indisponibilă:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Nu pot deschide conexiunea pentru %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Eroare de citire din procesul %s" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "În aşteptarea antetelor" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Primit o singură linie de antet peste %u caractere" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Linie de antet necorespunzătoare" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "Serverul http a trimis un antet de răspuns necorespunzător" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "Serverul http a trimis un antet lungime-conÅ£inut necorespunzător" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "Serverul http a trimis un antet zonă de conÅ£inut necorespunzător" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "Acest server http are zonă de suport necorespunzătoare" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Format de date necunoscut" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Eşuarea selecÅ£iei" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Timp de conectare expirat" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Eroare la scrierea fişierului de rezultat" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Eroare la scrierea în fişier" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Eroare la scrierea în fişierul" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "" +"Eroare la citirea de pe server, conexiunea a fost închisă de la distanţă" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Eroare la citirea de pe server" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Antet de date necorespunzător" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Conectare eşuată" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Eroare internă" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Nu pot mmap un fişier gol" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Nu pot face mmap la %lu bytes" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "SelecÅ£ia %s nu s-a găsit" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Tip de prescurtare nerecunoscut: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Deschidere fişier de configurare %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Linie %d prea lungă (max %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Eroare de sintaxă %s:%u: Blocul începe fără nume" + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Eroare de sintaxă %s:%u: etichetă greşită" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Eroare de sintaxă %s:%u: mizerii suplimentare după valoare" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" +"Eroare de sintaxă %s:%u: directivele pot fi date doar la nivelul superior" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Eroare de sintaxă %s:%u: prea multe imbricări incluse" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Eroare de sintaxă %s:%u: incluse de aici" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Eroare de sintaxă %s:%u: directivă nesuportată '%s'" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Eroare de sintaxă %s:%u: mizerii suplimentare la sfârşitul fişierului" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Eroare!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Terminat" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "OpÅ£iunea linie de comandă '%c' [din %s] este necunoscută." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "OpÅ£iunea linie de comandă %s nu este înÅ£eleasă" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "OpÅ£iunea linie de comandă %s nu este booleană" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "OpÅ£iunea %s necesită un argument" + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "" +"OpÅ£iunea %s: SpecificaÅ£ia configurării articolului trebuie să aibă o =." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "OpÅ£iunea %s necesită un argument integru, nu '%s'" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "OpÅ£iunea '%s' este prea lungă" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "Sensul %s nu este înÅ£eles, încercaÅ£i adevărat (true) sau fals (false)." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "OperaÅ£iune invalidă %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Nu pot determina starea punctului de montare %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Nu pot schimba la %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Eşuare la determinarea stării cdrom-ului" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "Nu s-a folosit închiderea pentru fişierul disponibil doar-citire %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Nu pot deschide fişierul blocat %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "Nu este folosit blocajul pentru fişierul montat nfs %s" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Nu pot determina blocajul %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Aşteptat %s, dar n-a fost acolo" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Subprocesul %s a primit o eroare de segmentare." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Subprocesul %s a întors un cod de eroare (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Subprocesul %s s-a terminat brusc" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Nu pot deschide fişierul %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "citire, încă mai am %lu de citit dar n-a mai rămas nimic" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "scriere, încă mai am %lu de scris dar nu pot" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Problemă la închiderea fişierului" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Problemă la dezlegarea fişierului" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Problemă în timpul sincronizării fişierului" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Cache gol de pachet" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Cache-ul fişierului pachet este deteriorat" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Fişierul cache al pachetului este o versiune incompatibilă" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Acest APT nu suportă versioning system '%s'" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "Cache-ul pachetului a fost construit pentru o arhitectură diferită" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Depinde" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Pre-depinde" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Sugerează" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Recomandă" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Este în conflict" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Înlocuieşte" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Învechit" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "important" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "cerut" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "standard" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "opÅ£ional" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "extra" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Se construieşte arborele de dependenţă" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Versiuni candidat" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Generare dependenÅ£e" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Nu pot analiza fişierul pachet %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Nu pot analiza fişierul pachet %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Linie greşită %lu în lista sursă %s (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Linie greşită %lu în lista sursă %s (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Linie greşită %lu în lista sursă %s (analiza URI)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Linie greşită %lu în lista sursă %s (dist. absolută)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Linie greşită %lu în lista sursă %s (analiza dist.)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Deschidere %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Linia %u prea lungă în lista sursă %s." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Linie greşită %u în lista sursă %s (tip)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Tipul '%s' nu este cunoscut în linia %u din lista sursă %s" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Linie greşită %u în lista sursă %s (identificator vânzător)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Aceasta instalare va avea nevoie de ştergerea temporară a pachetului " +"esenÅ£ial %s din cauza unui bucle conflict/pre-dependenţă. Asta de multe ori " +"nu-i de bine, dar dacă vreÅ£i întradevăr s-o faceÅ£i, activaÅ£i opÅ£iunea APT::" +"Force-LoopBreak." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Tipul de fişier index '%s' nu este suportat" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"Pachetul %s are nevoie să fie reinstalat, dar nu pot găsi o arhivă pentru el." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Eroare, pkgProblemResolver::Resolve a generat întreruperi, aceasta poate fi " +"cauzată de pachete Å£inute." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "Nu pot corecta problema, aÅ£i Å£inut pachete deteriorate." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Directorul de liste %spartial lipseşte." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Directorul de arhive %spartial lipseşte." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "Se descarcă fişierul %li din %li (%s rămas)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "Se descarcă fişierul %li din %li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Metoda driver %s nu poate fi găsită." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Metoda %s nu s-a lansat corect" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "" +"Vă rog introduceÅ£i discul numit: '%s' în unitatea '%s' şi apăsaÅ£i Enter." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Sistemul de pachete '%s' nu este suportat" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Nu pot determina un tip de sistem de pachete potrivit" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Nu pot determina starea %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "Trebuie să puneÅ£i nişte 'surse' de URI în sources.list" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" +"Listele de pachete sau fişierul de stare n-au putut fi analizate sau " +"deschise." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "" +"AÅ£i putea vrea să porniÅ£i 'apt-get update' pentru a corecta aceste probleme." + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Înregistrare invalidă în fişierul de preferinÅ£e, fără antet de pachet" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Nu s-a înÅ£eles tipul de pin %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Fără prioritate (sau zero) specificată pentru pin" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Cache are un versioning system incompatibil" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Eroare apărută în timpul procesării %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Eroare apărută în timpul procesării %s (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Eroare apărută în timpul procesării %s (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Eroare apărută în timpul procesării %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Eroare apărută în timpul procesării %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Eroare apărută în timpul procesării %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Eroare apărută în timpul procesării %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" +"Mamăăă, aÅ£i depăşit numărul de nume de pachete de care este capabil acest " +"APT." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "" +"Mamăăă, aÅ£i depăşit numărul de versiuni de care este capabil acest APT." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" +"Mamăăă, aÅ£i depăşit numărul de dependenÅ£e de care este capabil acest APT." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Eroare apărută în timpul procesării %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Eroare apărută în timpul procesării %s (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "" +"Nu s-a găsit pachetul %s %s în timpul procesării dependenÅ£elor de fişiere" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Nu pot determina starea listei surse de pachete %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Colectare furnizori fişier" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "Eroare IO în timpul salvării sursei cache" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "redenumire eşuată, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "Nepotrivire MD5Sum" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "" +"Nu există nici o cheie publică disponibilă pentru următoarele " +"identificatoare de chei:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"N-am putut localiza un fişier pentru pachetul %s. Aceasta ar putea însemna " +"că aveÅ£i nevoie să reparaÅ£i manual acest pachet (din pricina unui arch lipsă)" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"N-am putut localiza un fişier pentru pachetul %s. Aceasta ar putea însemna " +"că aveÅ£i nevoie să depanaÅ£i manual acest pachet." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"Fişierele index de pachete sunt deteriorate. Fără câmpul 'nume fişier:' la " +"pachetul %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Nepotrivire dimensiune" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Blocul vânzător %s nu conÅ£ine amprentă" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Utilizare puct de montare CD-ROM %s\n" +"Montare CD-ROM\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Identificare.. " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Etichetă memorată: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Utilizare punct de montare CD-ROM %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "Demontare CD-ROM\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Aştept discul...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Montez CD-ROM...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Scanez discul de fişierele index..\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "Găsite %i indexuri de pachete, %i indexuri de surse şi %i semnături\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Acesta nu este un nume valid, mai încercaÅ£i.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Acest disc este numit: \n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Copiez listele de pachete.." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Scriere noua listă sursă\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Intrările listei surselor pentru acest disc sunt:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "Demontez CD-ROM..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "S-au scris %i înregistrări.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "S-au scris %i înregistrări cu %i fişiere lipsă.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "S-au scris %i înregistrări cu %i fişiere nepotrivite\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" +"S-au scris %i înregistrări cu %i fişiere lipsă şi %i fişiere nepotrivite\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "Se pregăteşte %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "Se despachetează %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "Se pregăteşte configurarea %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "Se configurează %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "Instalat %s" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "Se pregăteşte ştergerea lui %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "Se şterge %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "Şters %s" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "Se pregăteşte ştergerea completă a %s" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "Şters complet %s" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Nu pot deschide fişierul %s" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Conexiune închisă prematur" diff --git a/po/ru.po b/po/ru.po new file mode 100644 index 0000000..6b28c45 --- /dev/null +++ b/po/ru.po @@ -0,0 +1,2809 @@ +# translation of apt_ru.po to Russian +# Russian messages for the apt suite. +# +# Vadim Kutchin , 2002. +# Ilgiz Kalmetev , 2002. +# Tichomir Koryakov , 2002. +# Nikolai Prokoschenko , 2004. +# Dmitry Astapov , 2004. +# Dmitry Astapov , 2004. +# Yuri Kozlov , 2004, 2005, 2006. +msgid "" +msgstr "" +"Project-Id-Version: 0.6.46.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-10-16 21:53+0400\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.2\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Пакет %s версии %s имеет неудовлетворённую зависимость:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Не могу найти пакет %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Всего имён пакетов : " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Нормальных пакетов: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Чисто виртуальных пакетов: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Одиночных виртуальных пакетов: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Смешанных виртуальных пакетов: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Пропущено: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Всего уникальных версий: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Всего зависимостей: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Всего отношений Версия/Файл: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Всего отношений Provides: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Всего развёрнутых строк: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Всего информации о зависимостях: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Пустого места в кэше: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Общее пространство посчитанное для: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Список пакетов %s рассинхронизирован." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Вы должны задать ровно один шаблон" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Не найдено ни одного пакета" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Списки пакетов:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "Кэш рассинхронизирован, невозможно обнаружить ссылку на список пакетов" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Зафиксированные пакеты:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(не найдено)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Установлен: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(отсутствует)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Кандидат: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Фиксатор пакета: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Таблица версий:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s для %s %s скомпилирован %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Использование: apt-cache [options] command\n" +" или: apt-cache [options] add file1 [file1 ...]\n" +" или: apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" или: apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache - низкоуровневый инструмент, использующийся для управления\n" +"двоичными кэш-файлами APT'а, а также для извлечения информации из них\n" +"Команды:\n" +" add - добавить файл пакета в кэш исходников\n" +" gencaches - построить оба кэша пакетов - бинарных и с исходными текстами\n" +" showpkg - общая информация о конкретном пакете\n" +" stats - основная статистика\n" +" dump - показать весь файл в сжатой форме\n" +" dumpavail - выдать на stdout список доступных пакетов\n" +" unmet - показать неудовлетворённые зависимости\n" +" search - найти пакеты, имя которых удовлетворяет регулярному выражению\n" +" show - показать информацию о пакете в удобочитаемой форме\n" +" depends - показать информацию о зависимостях пакета построчно\n" +" rdepends - показать информацию об обратных зависимостях пакета\n" +" pkgnames - показать имена всех пакетов\n" +" dotty - генерировать граф зависимостей пакетов в формате GraphVis\n" +" xvcg - генерировать граф зависимостей пакетов в формате xvcg\n" +" policy - показать текущую политику выбора пакетов\n" +"\n" +"Опции:\n" +" -h Этот текст.\n" +" -p=? Кэш пакетов.\n" +" -s=? Кэш исходников.\n" +" -q Не показывать индикатор прогресса.\n" +" -i Показывать только важные зависимости для команды unmet.\n" +" -c=? Читать указанный файл конфигурации.\n" +" -o=? Установить произвольную опцию конфигурации, к примеру, -o dir::cache=/" +"tmp\n" +"Подробности в страницах руководства apt-cache(8) и apt.conf(5).\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "Задайте имя для этого диска, например 'Debian 2.1r1 Disk 1'" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Вставьте диск в устройство и нажмите ввод" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Повторите этот процесс для всех имеющихся CD." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Непарные аргументы" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Использование: apt-config [options] command\n" +"\n" +"apt-config - простой инструмент для чтения конфигурационного файла APT\n" +"\n" +"Команды:\n" +" shell - режим shell\n" +" dump - показать конфигурацию\n" +"\n" +"Опции:\n" +" -h Этот текст.\n" +" -с=? Читать указанный конфигурационный файл.\n" +" -o=? Установить произвольную опцию, к примеру, -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s не является правильным DEB-пакетом." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Использование: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates извлекает из пакетов Debian конфигурационные скрипты\n" +"и файлы-шаблоны\n" +"\n" +"Опции:\n" +" -h Этот текст\n" +" -t Установить каталог для временных файлов\n" +" -c=? Читать указанный конфигурационный файл\n" +" -o=? Указать произвольную опцию, к примеру, -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Невозможно записать в %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Невозможно определить версию debconf. Он установлен?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Список расширений, допустимых для пакетов, слишком длинен" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Ошибка обработки каталога %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "" +"Список расширений, допустимых для пакетов с исходными текстами, слишком " +"длинен" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "" +"Ошибка записи заголовка в полный перечень содержимого пакетов (Contents)" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "ошибка обработки полного перечня содержимого пакетов (Contents) %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Использование: apt-ftparchive [параметры] команда\n" +"Команды: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive генерирует индексные файлы архивов Debian. Он поддерживает\n" +"множество стилей генерации: от полностью автоматического до функциональной " +"замены\n" +"программ dpkg-scanpackages и dpkg-scansources\n" +"\n" +"apt-ftparchive генерирует файлы Package (списки пакетов) для дерева\n" +"каталогов, содержащих файлы .deb. Файл Package включает в себя управляющие\n" +"поля каждого пакета, а также хеш MD5 и размер файла. Значения управляющих\n" +"полей \"приоритет\" (Priority) и \"секция\" (Section) могут быть изменены с\n" +"помощью файла override.\n" +"\n" +"Кроме того, apt-ftparchive может генерировать файлы Sources из дерева\n" +"каталогов, содержащих файлы .dsc. Для указания файла override в этом \n" +"режиме можно использовать параметр --source-override.\n" +"\n" +"Команды 'packages' и 'sources' надо выполнять, находясь в корневом каталоге\n" +"дерева, которое вы хотите обработать. BinaryPath должен указывать на место,\n" +"с которого начинается рекурсивный обход, а файл переназначений (override)\n" +"должен содержать записи о переназначениях управляющих полей. Если был " +"указан\n" +"Pathprefix, то его значение добавляется к управляющим полям, содержащим\n" +"имена файлов. Пример использования для архива Debian:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Параметры:\n" +" -h Этот текст\n" +" --md5 Управление генерацией MD5-хешей\n" +" -s=? Указать файл переназначений (override) для пакетов с исходными " +"текстами\n" +" -q Не выводить сообщения в процессе работы\n" +" -d=? Указать кэширующую базу данных (не обязательно)\n" +" --no-delink Включить режим отладки процесса удаления файлов\n" +" --contents Управление генерацией полного перечня содержимого пакетов\n" +" (файла Contents)\n" +" -c=? Использовать указанный конфигурационный файл\n" +" -o=? Указать произвольный параметр конфигурации" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Совпадений не обнаружено" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "В группе пакетов `%s' отсутствуют некоторые файлы" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "БД была повреждена, файл переименован в %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "DB устарела, попытка обновить %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"Неправильный формат базы данных (DB). Если вы производили обновление apt, " +"удалите и пересоздайте базу данных." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Не удалось открыть DB файл %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Не удалось получить атрибуты %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "В архиве нет поля control" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Невозможно получить курсор" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: Не удалось прочитать каталог %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "W: Не удалось прочитать атрибуты %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E: Ошибки относятся к файлу '" + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Не удалось проследовать по ссылке %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Не удалось совершить обход дерева" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Не удалось открыть %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr "DeLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Не удалось прочесть ссылку %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Не удалось удалить %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Не удалось создать ссылку %s на %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " Превышен лимит в %sB в DeLink.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "В архиве нет поля package" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " Нет записи о переназначении (override) для %s\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " пакет %s сопровождает %s, а не %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " Нет записи source override для %s\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " Нет записи binary override для %s\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Внутренняя ошибка, не удалось найти составную часть %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - не удалось выделить память" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Не удалось открыть %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Неправильная запись о переназначении (override) %s на строке %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Неправильная запись о переназначении (override) %s на строке %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Неправильная запись о переназначении (override) %s на строке %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Не удалось прочесть файл переназначений (override)%s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Неизвестный алгоритм сжатия '%s'" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "" +"Для получения сжатого вывода %s необходимо включить использования сжатия" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Не удалось создать IPC-канал для порождённого процесса" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Не удалось создать FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Не удалось запустить порождённый процесс" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Процесс-потомок, производящий сжатие" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Внутренняя ошибка, не удалось создать %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Не удалось создать IPC с порождённым процессом" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Не удалось выполнить компрессор " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "декомпрессор" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "Ошибка ввода/вывода в подпроцесс/файл" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Ошибка чтения во время вычисления MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Не удалось удалить %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Не удалось переименовать %s в %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "д" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Ошибка компиляции регулярного выражения - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Пакеты, имеющие неудовлетворённые зависимости:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "но %s уже установлен" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "но %s будет установлен" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "но он не может быть установлен" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "но это виртуальный пакет" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "но он не установлен" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "но он не будет установлен" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " или" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "НОВЫЕ пакеты, которые будут установлены:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Пакеты, которые будут УДАЛЕНЫ:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Пакеты, которые будут оставлены в неизменном виде:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Пакеты, которые будут обновлены:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Пакеты, будут заменены на более СТАРЫЕ версии:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "" +"Пакеты, которые должны были бы остаться без изменений, но будут заменены:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (вследствие %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"ВНИМАНИЕ: Эти существенно важные пакеты будут удалены.\n" +"НЕ ДЕЛАЙТЕ этого, если вы НЕ представляете себе все возможные последствия!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "обновлено %lu, установлено %lu новых пакетов, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "переустановлено %lu переустановлено, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu пакетов заменены на старые версии, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "для удаления отмечено %lu пакетов, и %lu пакетов не обновлено.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "не установлено до конца или удалено %lu пакетов.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Исправление зависимостей..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " не удалось." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Невозможно скорректировать зависимости" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Невозможно минимизировать набор обновлений" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Готово" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "" +"Возможно, для исправления этих ошибок вы захотите воспользоваться `apt-get -" +"f install'." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Неудовлетворённые зависимости. Попытайтесь использовать -f." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "ВНИМАНИЕ: Следующие пакеты невозможно аутентифицировать!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Аутентификационное предупреждение не принято в внимание.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Установить эти пакеты без проверки [y/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Некоторые пакеты невозможно аутентифицировать" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Существуют проблемы, а опция -y использована без --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "" +"Внутренняя ошибка, InstallPackages была вызвана с неработоспособными " +"пакетами!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Пакеты необходимо удалить, но удаление запрещено." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Внутренняя ошибка, Ordering не завершилась" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Невозможно заблокировать каталог для загрузки" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "Не читается перечень источников." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "Странно.. Несовпадение размеров, напишите на apt@packages.debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Необходимо скачать %sB/%sB архивов.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Необходимо скачать %sБ архивов.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "" +"После распаковки объем занятого дискового пространства возрастёт на %sB.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "" +"После распаковки объем занятого дискового пространства уменьшится на %sB.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Не удалось определить количество свободного места в %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Недостаточно свободного места в %s." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "" +"Запрошено выполнение только тривиальных операций, но это не тривиальная " +"операция." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Да, делать, как я скажу!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"То, что вы хотите сделать, может иметь нежелательные последствия.\n" +"Чтобы продолжить, введите фразу: '%s'\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Аварийное завершение." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Хотите продолжить [Д/н]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Не удалось загрузить %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Некоторые файлы не удалось загрузить" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Указан режим \"только загрузка\", и загрузка завершена" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Невозможно загрузить некоторые архивы, вероятно надо запустить apt-get " +"update или попытаться повторить запуск с ключом --fix-missing" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing и смена носителя в данный момент не поддерживаются" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Невозможно исправить ситуацию с пропущенными пакетами." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Аварийное завершение установки." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Заметьте, вместо %2$s выбирается %1$s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" +"Пропускается %s - пакет уже установлен, и опция upgrade не установлена.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "Пакет %s не установлен, поэтому не может быть удалён\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Пакет %s - виртуальный, его функции предоставляются пакетами:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Установлен]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Вы должны явно указать, какой именно вы хотите установить." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Пакет %s недоступен, но упомянут в списке зависимостей другого пакета.\n" +"Это может означать, что пакет отсутствует, устарел, или доступен из " +"источников, не упомянутых в sources.list\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Однако следующие пакеты могут его заменить:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Для пакета %s не найдены кандидаты на установку" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "Переустановка %s невозможна, он не загружается.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "Уже установлена самая новая версия %s.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Релиз '%s' для '%s' не найден" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Версия '%s' для '%s' не найдена" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Выбрана версия %s (%s) для %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "Команде update не нужны аргументы" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Невозможно заблокировать каталог со списками пакетов" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Некоторые индексные файлы не загрузились, они были проигнорированы или " +"вместо них были использованы старые версии" + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Внутренняя ошибка, AllUpgrade все поломал" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Не могу найти пакет %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Заметьте, регулярное выражение %2$s приводит к выбору %1$s\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "" +"Возможно, для исправления этих ошибок вы захотите воспользоваться `apt-get -" +"f install':" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Неудовлетворённые зависимости. Попытайтесь выполнить 'apt-get -f install', " +"не указывая имени пакета, (или найдите другое решение)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Некоторые пакеты невозможно установить. Возможно, Вы просите невозможного,\n" +"или же используете нестабильного дистрибутив, и запрошенные Вами пакеты\n" +"ещё не созданы или были удалены из Incoming." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Так как Вы просили выполнить только одну операцию, то вероятнее всего, что\n" +"пакет просто не может быть установлен из-за ошибок в самом пакете.\n" +"Необходимо послать отчёт об этой ошибке." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "Следующая информация возможно поможет Вам:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Сломанные пакеты" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Будут установлены следующие дополнительные пакеты:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Предлагаемые пакеты:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Рекомендуемые пакеты:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Расчёт обновлений... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Неудачно" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Готово" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "Внутренняя ошибка, решатель проблем всё поломал" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "" +"Укажите как минимум один пакет, для которого необходимо загрузить исходные " +"тексты" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Невозможно найти пакет с исходными текстами для %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Пропускаем уже загруженный файл '%s'\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Недостаточно места в %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Необходимо загрузить %sB/%sB из архивов исходных текстов.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Нужно загрузить %sB архивов с исходными текстами.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Загрузка исходных текстов %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Некоторые архивы не удалось загрузить." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "" +"Распаковка исходных текстов пропущена, так как в %s уже находятся " +"распакованные исходные тексты\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Команда распаковки '%s' завершилась неудачно.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Проверьте, установлен ли пакет 'dpkg-dev'.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Команда сборки '%s' завершилась неудачно.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Порождённый процесс завершился неудачно" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"Для проверки зависимостей для сборки необходимо указать как минимум один " +"пакет" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Невозможно получить информацию о зависимостях для сборки %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s не имеет зависимостей для сборки.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"Зависимость типа %s для %s не может быть удовлетворена, так как пакет %s не " +"найден" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"Зависимость типа %s для %s не может быть удовлетворена, поскольку ни одна из " +"версий пакета %s не удовлетворяет требованиям" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Не удалось удовлетворить зависимость типа %s для пакета %s: Установленный " +"пакет %s новее, чем надо" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Невозможно удовлетворить зависимость типа %s для пакета %s: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Зависимости для сборки %s не могут быть удовлетворены." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Обработка зависимостей для сборки завершилась неудачно" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Поддерживаемые модули:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Использование: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get - простой интерфейс командной строки для загрузки и\n" +"установки пакетов. Наиболее часто используемые команды - update \n" +"и install.\n" +"\n" +"Команды:\n" +" update - загрузить новые списки пакетов\n" +" upgrade - выполнить обновление пакетов\n" +" install - установить новые пакеты (имя пакета указывается\n" +" как libc6, а не libc6.deb)\n" +" remove - удалить пакеты\n" +" source - загрузить архивы с исходными текстами\n" +" build-dep - загрузить все необходимое для сборки указанного\n" +" пакета из исходных текстов\n" +" dist-upgrade - обновить всю систему, подробнее - в apt-get(8)\n" +" dselect-upgrade - руководствоваться выбором, сделанным в dselect'е\n" +" clean - удалить загруженные архивы\n" +" autoclean - удалить старые загруженные архивы\n" +" check - проверить наличие нарушенных зависимостей\n" +"\n" +"Опции:\n" +" -h Этот текст.\n" +" -q Выводить сообщения, пригодные для записи в файл журнала.\n" +" Не выводить индикатор прогресса\n" +" -qq Выводить только сообщения об ошибках\n" +" -d только загрузить - не устанавливать и не распаковывать архивы\n" +" -s Не выполнять действия на самом деле. Имитация работы\n" +" -y Отвечать \"Да\" на все вопросы. Сами вопросы при этом не выводятся\n" +" -f продолжать, даже если проверка целостности не прошла\n" +" -m продолжать, даже если местоположение архивов неизвестно\n" +" -u показывать список обновляемых пакетов\n" +" -b компилировать пакет из исходных текстов после их загрузки\n" +" -c=? читать указанный файл конфигурации\n" +" -o=? установить произвольную опцию, например, -o dir::cache=/tmp\n" +"Страницы руководства apt-get(8), sources.list(5) и apt.conf(5)\n" +"содержат больше информации.\n" +" This APT has Super Cow Powers.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "В кэше " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Получено:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ign " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Err " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Получено %sB за %s (%sB/c)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Ожидание]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Смена носителя: вставьте диск с меткой '%s' в устройство '%s' и нажмите " +"ввод\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Запись о неизвестном пакете!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Использование: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs - простой инструмент для сортировки списков пакетов. Опция -s\n" +"используется, чтобы указать тип списка.\n" +"\n" +"Опции:\n" +" -h этот текст\n" +" -s сортировать список файлов с исходными текстами\n" +" -c=? читать указанный файл конфигурации\n" +" -o=? установить произвольную опцию, например, -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Неправильное значение по умолчанию!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Для продолжения нажмите ввод." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Во время распаковки возникли ошибки. Будет продолжен процесс настройки" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "установленных пакетов. Это может привести к повторению ошибок или" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" +"возникновению новых из-за неудовлетворённых зависимостей. Это нормально," + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"важны только ошибки, указанные выше. Исправьте их и выполните установку ещё " +"раз" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Объединение информации о доступных пакетах" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Не удалось создать порождённые процессы" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Не удалось выполнить gzip " + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Повреждённый архив" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Неправильная контрольная сумма Tar, архив повреждён" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Неизвестный заголовок в архиве TAR. Тип %u, элемент %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Неверная сигнатура архива" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Ошибка чтения заголовка элемента архива" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Неправильный заголовок элемента архива" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Слишком короткий архив" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Не удалось прочитать заголовки архива" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "DropNode вызван для узла, который ещё используется" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Не удалось найти элемент хэша!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Не удалось создать diversion" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Внутренняя ошибка в AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Попытка изменения diversion, %s -> %s и %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Двойное добавление diversion %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Повторно указанный конфигурационный файл %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Не удалось записать в файл %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Не удалось закрыть файл %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "Слишком длинный путь %s" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Повторная распаковка %s" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "Каталог %s входит в список diverted" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "Пакет пытается писать в diversion %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Путь diversion слишком длинен" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "Каталог %s был заменён не-каталогом" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Не удалось разместить узел в хэше" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Путь слишком длинен" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Файлы заменяются содержимым пакета %s без версии" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Файл %s/%s переписывает файл в пакете %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Невозможно прочитать %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Невозможно получить атрибуты %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Не удалось удалить %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Не удалось создать %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Не удалось получить атрибуты %sinfo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "Каталоги info и temp должны находиться на одной файловой системе" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Чтение списков пакетов" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Не удалось сменить текущий каталог на административный каталог %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Внутренняя ошибка при получении имени пакета" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Чтение списков файлов в пакете" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Не удалось открыть список файлов '%sinfo/%s'. Если Вы не можете восстановить " +"его, то обнулите его и немедленно переустановите такую же версию пакета!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Ошибка чтения списка файлов %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Внутренняя ошибка при получении Node" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Не удалось открыть файл diversions %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Файл diversions повреждён" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Неверная строка в файле diversions: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Внутренняя ошибка при добавлении diversion" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "В первую очередь должен быть проинициализирован кэш пакетов" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Не удалось найти заголовок Package:, смещение %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Неверная секция ConfFile в status-файле. Смещение %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Ошибка чтения контрольной суммы. Смещение %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Это неправильный DEB-архив - отсутствует составная часть '%s'" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "Это неправильный DEB-архив - отсутствует составная часть '%s' или '%s'" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Не могу перейти в каталог %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Внутренняя ошибка, не могу найти составную часть" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Не могу найти правильный control-файл" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Не могу прочесть содержимое control-файла" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Невозможно прочесть базу %s с CD" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Пожалуйста, используйте apt-cdrom, чтобы APT смог распознать данный CD. apt-" +"get update не используется для добавления нового CD" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "Ошибочный CD" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "Невозможно размонтировать CD-ROM в %s, возможно он ещё используется." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Диск не найден." + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Файл не найден" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Не удалось получить атрибуты" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Не удалось установить время модификации" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "Неправильный URI, локальный URI не должен начинаться с //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Вход в систему " + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Невозможно определить имя удалённого сервера" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Невозможно определить локальное имя" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Сервер разорвал соединение и сообщил: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "Команда USER не выполнена, сервер сообщил: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "Команда PASS не выполнена, сервер сообщил: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Proxy-сервер указан, однако нет сценария входа в систему, Acquire::ftp::" +"ProxyLogin пуст." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "" +"Команда '%s' сценария входа в систему завершилась неудачно, сервер сообщил: %" +"s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "Команда TYPE не выполнена, сервер сообщил: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Допустимое время ожидания для соединения истекло" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Сервер прервал соединение" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Ошибка чтения" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Ответ переполнил буфер." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Искажение протокола" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Ошибка записи" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Не удалось создать сокет" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "" +"Не могу присоединиться к сокету данных, время на установление соединения " +"истекло" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Невозможно присоединить пассивный сокет" + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "Вызов getaddrinfo не смог получить сокет" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Невозможно присоединиться к сокету" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Не могу принимать соединения на сокете" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Не удалось определить имя сокета" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Невозможно послать команду PORT" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Неизвестное семейство адресов %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "Команда EPRT не выполнена, сервер сообщил: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Время установления соединения для сокета данных истекло" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Невозможно принять соединение" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Проблема при хэшировании файла" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Невозможно загрузить файл, сервер сообщил: '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Время ожидания соединения для сокета данных истекло" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Передача данных завершилась неудачно, сервер сообщил: '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Запрос" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Невозможно вызвать " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Соединение с %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Не удаётся создать сокет для %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Невозможно инициализировать соединение с %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Не удаётся соединиться с %s:%s (%s), connection timed out" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Не удаётся соединиться с %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Соединение с %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Не могу найти IP адрес для %s" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Временная ошибка при попытке получить IP адрес '%s'" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "" +"Что-то странное произошло при попытке получить IP адрес для '%s:%s' (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Невозможно соединиться с %s %s:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Нет доступа к связке (keyring) ключей: '%s'" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" +"E: Слишком большой список параметров у Acquire::gpgv::Options. Завершение " +"работы." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" +"Внутренняя ошибка: Правильная подпись, но не удалось определить отпечаток " +"ключа?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Найдена как минимум одна неправильная подпись." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "Не удалось выполнить '%s' для проверки подписи (gnupg установлена?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Неизвестная ошибка при выполнении gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "Следующие подписи неверные:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"Следующие подписи не могут быть проверены, так как недоступен общий ключ:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Не удалось открыть канал для %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Ошибка чтения из процесса %s" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Ожидание заголовков" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Получен заголовок длиннее %u символов" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Неверный заголовок" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "Http-сервер послал неверный заголовок" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "Http сервер послал неверный заголовок Content-Length" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "Http-сервер послал неверный заголовок Content-Range" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "Этот http-сервер не поддерживает загрузку фрагментов файлов" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Неизвестный формат данных" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Ошибка в select" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Время ожидания для соединения истекло" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Ошибка записи в выходной файл" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Ошибка записи в файл" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Ошибка записи в файл" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "Ошибка чтения, удалённый сервер прервал соединение" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Ошибка чтения с сервера" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Неверный заголовок данных" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Соединение разорвано" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Внутренняя ошибка" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Невозможно отобразить в память пустой файл" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Невозможно отобразить в память %lu байт" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Не найдено: %s" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Неизвестная аббревиатура типа: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Открытие файла конфигурации %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Строка %d слишком длинна (максимум %d)." + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Синтаксическая ошибка %s:%u: в начале блока нет имени." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Синтаксическая ошибка %s:%u: искажённый тэг" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Синтаксическая ошибка %s:%u: лишние символы после значения" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" +"Синтаксическая ошибка %s:%u: директивы могут задаваться только на верхнем " +"уровне" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Синтаксическая ошибка %s:%u: слишком много вложенных include" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Синтаксическая ошибка %s:%u вызвана include из этого места" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Синтаксическая ошибка %s:%u: не поддерживаемая директива '%s'" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Синтаксическая ошибка %s:%u: лишние символы в конце файла" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Ошибка!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Готово" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Неизвестная опция командной строки '%c' [из %s]." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Не распознанная опция командной строки %s" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Опция командной строки %s - не логический переключатель \"да/нет\"" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "Опция %s требует аргумента." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "Опция %s: значение должно иметь вид =." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "Опция %s требует аргумент в виде целого числа, а не '%s'" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Слишком длинная опция '%s'" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "Смысл %s не ясен, используйте true или false." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Неверная операция %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Невозможно прочитать атрибуты точки монтирования %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Невозможно сменить текущий каталог на %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Невозможно получить атрибуты cdrom" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "" +"Блокировка не используется, так как файл блокировки %s доступен только для " +"чтения" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Не могу открыть файл блокировки %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "" +"Блокировка не используется, так как файл блокировки %s находится на файловой " +"системе nfs" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Не могу получить доступ к файлу блокировки %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Ожидалось завершение процесса %s, но он не был запущен" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "" +"Нарушение защиты памяти (segmentation fault) в порождённом процессе %s." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Порождённый процесс %s вернул код ошибки (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Порождённый процесс %s неожиданно завершился" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Не могу открыть файл %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "" +"ошибка при чтении. собирались прочесть ещё %lu байт, но ничего больше нет" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "ошибка при записи, собирались записать ещё %lu байт, но не смогли" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Проблема закрытия файла" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Ошибка при удалении файла" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Проблема при синхронизации файловых буферов с диском" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Кэш пакетов пуст" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Кэш пакетов повреждён" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Не поддерживаемая версия кэша пакетов" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Данный APT не поддерживает Систему Версий '%s'" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "Кэш пакетов был собран для другой архитектуры" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Зависит" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "ПредЗависит" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Предлагает" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Рекомендует" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Конфликтует" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Заменяет" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Замещает" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "важный" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "необходимый" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "стандартный" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "необязательный" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "дополнительный" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Построение дерева зависимостей" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Версии-кандидаты" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Генерирование зависимостей" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Невозможно прочесть содержимое пакета %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Невозможно прочесть содержимое пакета %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Искажённая строка %lu в списке источников %s (проблема в URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "" +"Искажённая строка %lu в списке источников %s (проблема в имени дистрибутива)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Искажённая строка %lu в списке источников %s (анализ URI)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Искажённая строка %lu в списке источников %s (absolute dist)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Искажённая строка %lu в списке источников %s (dist parse)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Открытие %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Строка %u в списке источников %s слишком длинна." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Искажённая строка %u в списке источников %s (тип)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Неизвестный тип '%s' в строке %u в списке источников %s" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Искажённая строка %u в списке источников %s (vendor id)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Вследствие возникновения циклических зависимостей типа Конфликтует/" +"ПредЗависит, для продолжения установки необходимо временно удалить " +"существенно важный пакет %s. Это может привести к фатальным последствиям. " +"Если Вы действительно хотите продолжить, включите опцию APT::Force-LoopBreak." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Не поддерживается индексный файл типа '%s'" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "Пакет %s нуждается в переустановке, но я не могу найти архив для него." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Ошибка, pkgProblemResolver::Resolve сгенерировал повреждённые пакеты. Это " +"может быть вызвано отложенными (held) пакетами." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "Невозможно исправить ошибки, у Вас отложены (held) битые пакеты." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Каталог %spartial отсутствует." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Архивный каталог %spartial отсутствует." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "Загружается файл %li из %li (%s осталось)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "Загружается файл %li из %li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Драйвер для метода %s не найден." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Метод %s запустился не корректно" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "Вставьте диск с меткой '%s' в устройство '%s' и нажмите ввод." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Менеджер пакетов '%s' не поддерживается" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Невозможно определить подходящий тип менеджера пакетов" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Невозможно получить атрибуты %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "Вы должны заполнить sources.list, поместив туда URI источников пактов" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "Списки пакетов или status-файл не могут быть открыты или прочитаны." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "Вы можете запустить 'apt-get update' для исправления этих ошибок" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Неверная запись в файле preferences: отсутствует заголовок Package" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Неизвестный тип фиксации %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Для фиксации не указан приоритет (или указан нулевой)" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Кэш имеет несовместимую систему версий" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Произошла ошибка во время обработки %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Произошла ошибка во время обработки %s (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Произошла ошибка во время обработки %s (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Произошла ошибка во время обработки %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Произошла ошибка во время обработки %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Произошла ошибка во время обработки %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Произошла ошибка во время обработки %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "Превышено допустимое количество имён пакетов." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "Превышено допустимое количество версий." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "Превышено допустимое количество зависимостей." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Произошла ошибка во время обработки %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Произошла ошибка во время обработки %s (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "Во время обработки файла зависимостей не найден пакет %s %s" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Не удалось получить атрибуты списка пакетов с исходными текстами %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Сбор информации о Provides" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "Ошибка ввода/вывода при попытке сохранить кэш исходных текстов" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "переименовать не удалось, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "MD5Sum не совпадает" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "Недоступен общий ключ для следующих ключей (ID):\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Я не в состоянии обнаружить файл пакета %s. Это может означать, что Вам " +"придётся вручную исправить этот пакет (возможно, пропущен arch)" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Я не в состоянии обнаружить файл пакета %s. Это может означать, что Вам " +"придётся вручную исправить этот пакет." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "Некорректный перечень пакетов. Нет поля Filename: для пакета %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Не совпадает размер" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Блок поставщика %s не содержит отпечатка (fingerprint)" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"В качестве точки монтирования CD-ROM используется %s\n" +"Монтируется CD-ROM\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Идентификация.. " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Найдена метка: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Использование %s в качестве точки монтирования CD-ROM\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "Размонтирование CD-ROM\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Ожидание операции работы с диском...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Монтирование CD-ROM...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Поиск на диске индексных файлов..\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "" +"Найдено индексов: %i для пакетов, %i для пакетов c исходными текстами\n" +"и %i для сигнатур\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Это неправильное имя, попробуйте ещё раз.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Название диска: \n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Копирование списков пакетов..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Запись нового списка источников\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Записи в списке источников для этого диска:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "Размонтирование CD-ROM..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "Сохранено %i записей.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "Сохранено %i записей с %i отсутствующими файлами.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "Сохранено %i записей с %i несовпадающими файлами\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" +"Сохранено %i записей с %i отсутствующими файлами и с %i несовпадающими " +"файлами\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "Подготавливается %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "Распаковывается %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "Подготавливается для конфигурации %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "Настройка %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "Установлен %s" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "Подготавливается для удаления %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "Удаление %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "Удалён %s" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "Подготовка к полному удалению %s" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "%s полностью удалён" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Не могу открыть файл %s" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Соединение закрыто преждевременно" diff --git a/po/sk.po b/po/sk.po new file mode 100644 index 0000000..e507966 --- /dev/null +++ b/po/sk.po @@ -0,0 +1,2758 @@ +# Slovak translation of APT +# +# initial sk.po made from Czech translation (cs.po) +# thanks to Miroslav Kure +# +msgid "" +msgstr "" +"Project-Id-Version: apt\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-09-10 18:50+0200\n" +"Last-Translator: Peter Mann \n" +"Language-Team: Slovak \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Balík %s verzie %s má nesplnené závislosti:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Balík %s sa nedá nájsÅ¥" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Celkom názvov balíkov: " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Normálnych balíkov: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Čisto virtuálnych balíkov: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Jednoduchých virtuálnych balíkov: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " ZmieÅ¡aných virtuálnych balíkov: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Chýbajúcich: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Celkom rôznych verzií: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Celkom závislostí: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Celkom vzÅ¥ahov ver/súbor: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Celkom poskytnutých mapovaní: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Celkom globovaných reÅ¥azcov: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Celkom miesta závislých verzií: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Celkom jalového miesta: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Celkom priradeného miesta: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Súbor balíkov %s je neaktuálny." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Musíte zadaÅ¥ práve jeden vzor" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Neboli nájdené žiadne balíky" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Súbory balíka:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "Cache je neaktuálna, nedá sa odvolaÅ¥ na súbor balíka" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Pripevnené balíky:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(nenájdené)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " NainÅ¡talovaná verzia: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(žiadna)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Kandidát: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Pripevnený balík:" + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Tabuľka verzií:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s pre %s %s skompilovaný na %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Použitie: apt-cache [voľby] príkaz\n" +" apt-cache [voľby] add súbor1 [súbor2 ...]\n" +" apt-cache [voľby] showpkg balík1 [balík2 ...]\n" +" apt-cache [voľby] showsrc balík1 [balík2 ...]\n" +"\n" +"apt-cache je nízkoúrovňový nástroj na spravovanie binárnych\n" +"súborov vo vyrovnávacej pamäti APT a na ich prehľadávanie\n" +"\n" +"Príkazy:\n" +" add - Pridá súbor Packages do zdrojovej vyrovnávacej pamäti\n" +" gencaches - Zostaví vyrovnávaciu pamäť balíkov a zdrojov\n" +" showpkg - Zobrazí vÅ¡eobecné údaje o balíku\n" +" showsrc - Zobrazí zdrojové záznamy\n" +" stats - Zobrazí základné Å¡tatistiky\n" +" dump - Zobrazí celý súbor v zhustenej podobe\n" +" dumpavail - Vypíše súbor dostupných balíkov na Å¡tandartný výstup\n" +" unmet - Zobrazí nesplnené závislosti\n" +" search - Prehľadá zoznam balíkov podľa regulárneho výrazu\n" +" show - Zobrazí prehľadné informácie o balíku\n" +" depends - Zobrazí základné údaje o závislostiach balíka\n" +" rdepends - Zobrazí údaje o spätných závislostiach balíka\n" +" pkgnames - Vypíše zoznam názvov vÅ¡etkých balíkov\n" +" dotty - Vytvorí diagramy balíka pre GraphVis\n" +" xvcg - Vytvorí diagramy balíka pre xvcg\n" +" policy - Zobrazí nastavenia zásad\n" +"\n" +"Voľby:\n" +" -h Táto nápoveda.\n" +" -p=? Vyrovnávacia pamäť balíkov.\n" +" -s=? Vyrovnávacia pamäť zdrojov.\n" +" -q Nezobrazí indikátor priebehu.\n" +" -i Pri príkaze unmet zobrazí iba dôležité závislosti.\n" +" -c=? Načíta tento konfiguračný súbor\n" +" -o=? Nastaví ľubovoľnú voľbu, napr. -o dir::cache=/tmp\n" +"Viac informácií nájdete v manuálových stránkach apt-cache(8) a apt.conf(5).\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "Zadajte názov tohto disku, napríklad 'Debian 2.1r1 Disk 1'" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Vložte disk do mechaniky a stlačte Enter" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Zopakujte tento proces pre vÅ¡etky CD v sade diskov." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Argumenty nie sú vo dvojiciach" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Použitie: apt-config [voľby] príkaz\n" +"\n" +"apt-config je jednoduchý nástroj na čítanie konfiguračného súboru APT\n" +"\n" +"Príkazy:\n" +" shell - Shellový režim\n" +" dump - Zobrazí nastavenie\n" +"\n" +"Voľby:\n" +" -h Táto nápoveda.\n" +" -c=? Načíta tento konfiguračný súbor\n" +" -o=? Nastaví ľubovoľnú voľbu, napr. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s nie je platný DEB balík." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Použitie: apt-extracttemplates súbor1 [súbor2 ...]\n" +"\n" +"apt-extracttemplates je nástroj na vyňatie konfiguračných skriptov\n" +"a Å¡ablón z debian balíkov\n" +"\n" +"Voľby:\n" +" -h Táto nápoveda.\n" +" -t Nastaví dočasný adresár\n" +" -c=? Načíta tento konfiguračný súbor\n" +" -o=? Nastaví ľubovoľnú voľbu, napr. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Do %s sa nedá zapisovaÅ¥" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Nedá sa určiÅ¥ verzia programu debconf. Je debconf nainÅ¡talovaný?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Zoznam rozšírení balíka je príliÅ¡ dlhý" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Chyba pri spracovávaní adresára %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Zoznam zdrojových rozšírení je príliÅ¡ dlhý" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Chyba pri zapisovaní hlavičky do súboru" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Chyba pri spracovávaní obsahu %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Použitie: apt-ftparchive [voľby] príkaz\n" +"Príkazy: packages binárna_cesta [súbor_override [prefix_cesty]]\n" +" sources zdrojová_cesta [súbor_override [prefix_cesty]]\n" +" contents cesta\n" +" release cesta\n" +" generate konfiguračný_súbor [skupiny]\n" +" clean konfiguračný_súbor\n" +"\n" +"apt-ftparchive generuje indexové súbory archívov Debianu. Podporuje\n" +"niekoľko režimov vytvárania - od plne automatického až po funkčnú\n" +"náhradu príkazov dpkg-scanpackages a dpkg-scansources.\n" +"\n" +"apt-ftparchive zo stromu .deb súborov vygeneruje súbory Packages. Súbor\n" +"Packages okrem vÅ¡etkých riadiacich polí každého balíka obsahuje tiež jeho\n" +"veľkosÅ¥ a MD5 súčet. Podporovaný je tiež súbor 'override', pomocou ktorého\n" +"môžete vynútiÅ¥ hodnoty polí Priority a Section.\n" +"\n" +"Podobne vie apt-ftparchive vygenerovaÅ¥ zo stromu súborov .dsc súbory\n" +"Sources. Voľbou --source-override môžete určiÅ¥ zdrojový súbor 'override'.\n" +"\n" +"Príkazy 'packages' a 'sources' by sa mali spúšťaÅ¥ v koreni stromu.\n" +"Binárna_cesta by mala ukazovaÅ¥ na začiatok rekurzívneho hľadania\n" +"a súbor 'override' by mal obsahovaÅ¥ príznaky pre nahradenie. Ak je udaný\n" +"prefix_cesty, pridá sa do polí 'filename'.\n" +"Skutočný príklad z archívu Debianu:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Voľby:\n" +" -h Táto nápoveda\n" +" --md5 Vygeneruje kontrolný MD5 súčet\n" +" -s=? Zdrojový súbor 'override'\n" +" -q Tichý režim\n" +" -d=? Zvolí voliteľnú databázu pre vyrovnávaciu pamäť\n" +" --no-delink Povolí ladiaci režim\n" +" --contents Vygeneruje súbor Contents\n" +" -c=? Načíta tento konfiguračný súbor\n" +" -o=? Nastaví ľubovoľnú voľbu" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Nevyhovel žiaden výber" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "V balíkovom súbore skupiny `%s' chýbajú niektoré súbory" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "DB je naruÅ¡ená, súbor je premenovaný na %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "DB je neaktuálna, prebieha pokus o aktualizáciu %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"Formát DB je neplatný. Ak ste aktualizovali starÅ¡iu verziu apt, musíte " +"odstrániÅ¥ a znovu vytvoriÅ¥ databázu." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Nedá sa otvoriÅ¥ DB súbor %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "%s sa nedá vyhodnotiÅ¥" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Archív nemá riadiaci záznam" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Nedá sa získaÅ¥ kurzor" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: Adresár %s sa nedá čítaÅ¥\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "W: %s sa nedá vyhodnotiÅ¥\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E: Chyby sa týkajú súboru " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Chyba pri zisÅ¥ovaní %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Priechod stromom zlyhal" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "%s sa nedá otvoriÅ¥" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr "Odlinkovanie %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Linka %s sa nedá čítaÅ¥" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "%s sa nedá odlinkovaÅ¥" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Nepodarilo sa zlinkovaÅ¥ %s s %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " Bol dosiahnutý odlinkovací limit %sB.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Archív neobsahuje pole package" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s nemá žiadnu položku pre override\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " správcom %s je %s, nie %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s nemá žiadnu source položku pre override\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s nemá žiadnu binary položku pre override\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Vnútorná chyba, nedá sa nájsÅ¥ časÅ¥ %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Zlyhal pokus o pridelenie pamäti" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "%s sa nedá otvoriÅ¥" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Skomolený súbor %s, riadok %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Skomolený súbor %s, riadok %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Skomolený súbor %s, riadok %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Nepodarilo sa prečítaÅ¥ override súbor %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Neznámy kompresný algoritmus '%s'" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Komprimovaný výstup %s potrebuje kompresnú sadu" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Zlyhalo vytvorenie medziprocesovej rúry k podprocesu" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Zlyhalo vytvorenie FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Volanie fork() zlyhalo" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "KomprimovaÅ¥ potomka" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Interná chyba, nepodarilo sa vytvoriÅ¥ %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Nedá sa vytvoriÅ¥ podproces IPC" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Nepodarilo sa spustiÅ¥ kompresor " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "dekompresor" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "V/V operácia s podprocesom/súborom zlyhala" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Chyba čítania pri výpočte MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Problém s odlinkovaním %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Premenovanie %s na %s zlyhalo" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "Y" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Chyba pri preklade regulárneho výrazu - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Nasledovné balíky majú nesplnené závislosti:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "ale nainÅ¡talovaný je %s" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "ale inÅ¡talovaÅ¥ sa bude %s" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "ale sa nedá nainÅ¡talovaÅ¥" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "ale je to virtuálny balík" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "ale nie je nainÅ¡talovaný" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "ale sa nebude inÅ¡talovaÅ¥" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " alebo" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "NainÅ¡talujú sa nasledovné NOVÉ balíky:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Nasledovné balíky sa ODSTRÁNIA:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Nasledovné balíky sa ponechajú v súčasnej verzii:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Nasledovné balíky sa aktualizujú:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Nasledovné balíky sa DEGRADUJÚ:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Nasledovné pridržané balíky sa zmenia:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (kvôli %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"UPOZORNENIE: Nasledovné dôležité balíky sa odstránia.\n" +"Ak presne neviete, čo robíte, tak to NEROBTE!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu aktualizovaných, %lu nových inÅ¡talovaných, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu reinÅ¡talovaných, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu degradovaných, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu na odstránenie a %lu neaktualizovaných.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu iba čiastočne nainÅ¡talovaných alebo odstránených.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Opravujú sa závislosti..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " zlyhalo." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Závislosti sa nedajú opraviÅ¥" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Sada pre aktualizáciu sa nedá minimalizovaÅ¥" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Hotovo" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "Na opravu môžete spustiÅ¥ `apt-get -f install'." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Nesplnené závislosti. Skúste použiÅ¥ -f." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "UPOZORNENIE: Pri nasledovných balíkoch sa nedá overiÅ¥ vierohodnosÅ¥!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Upozornenie o vierohodnosti bolo potlačené.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "NainÅ¡talovaÅ¥ tieto nekontrolované balíky [y/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Nedala sa zistiÅ¥ vierohodnosÅ¥ niektorých balíkov" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Nastali problémy a -y bolo použité bez --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "Vnútorná chyba, InstallPackages bolo volané s poÅ¡kodenými balíkmi!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Je potrebné odstránenie balíka, ale funkcia OdstrániÅ¥ je vypnutá." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Vnútorná chyba, Triedenie sa neukončilo" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Adresár pre sÅ¥ahovanie sa nedá zamknúť" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "Nedá sa načítaÅ¥ zoznam zdrojov." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"Nezvyčajná udalosÅ¥... Veľkosti nesúhlasia, poÅ¡lite e-mail na apt@packages." +"debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Je potrebné stiahnuÅ¥ %sB/%sB archívov.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Je potrebné stiahnuÅ¥ %sB archívov.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "Po rozbalení sa na disku použije ďalších %sB.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Po rozbalení sa na disku uvoľní %sB.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Na %s sa nedá zistiÅ¥ veľkosÅ¥ voľného miesta" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Na %s nemáte dostatok voľného miesta." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "Zadané 'iba triviálne', ale toto nie je triviálna operácia." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Áno, urob to, čo vravím!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Možno sa chystáte vykonaÅ¥ niečo Å¡kodlivé.\n" +"Pre pokračovanie opíšte frázu '%s'\n" +" ?]" + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "PreruÅ¡ené." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Chcete pokračovaÅ¥ [Y/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Zlyhalo stiahnutie %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Niektoré súbory sa nedajú stiahnuÅ¥" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "SÅ¥ahovanie ukončené v režime \"iba stiahnuÅ¥\"" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Niektoré archívy sa nedajú stiahnuÅ¥. Skúste spustiÅ¥ apt-get update alebo --" +"fix-missing" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing a výmena média nie sú momentálne podporované" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Chýbajúce balíky sa nedajú opraviÅ¥." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "InÅ¡talácia sa preruÅ¡uje." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Poznámka: %s sa vyberá namiesto %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "Preskakuje sa %s, pretože je už nainÅ¡talovaný.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "Balík %s nie je nainÅ¡talovaný, nedá sa teda odstrániÅ¥\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Balík %s je virtuálny balík poskytovaný:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr "[InÅ¡talovaný]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Mali by ste explicitne vybraÅ¥ jeden na inÅ¡taláciu." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Balík %s nie je dostupný, ale odkazuje naň iný balík. Možno to znamená,\n" +"že balík chýba, bol zruÅ¡ený, alebo je dostupný iba z iného zdroja\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "AvÅ¡ak nahrádzajú ho nasledovné balíky:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Balík %s nemá kandidáta na inÅ¡taláciu" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "Nie je možná reinÅ¡talácia %s, pretože sa nedá stiahnuÅ¥.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s je už najnovÅ¡ej verzie.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Nebolo nájdené vydanie '%s' pre '%s'" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Nebola nájdená verzia '%s' pre '%s'" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Zvolená verzia %s (%s) pre %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "Príkaz update neprijíma žiadne argumenty" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Adresár zoznamov sa nedá zamknúť" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Niektoré indexové súbory sa nepodarilo stiahnuÅ¥, boli ignorované, alebo sa " +"použili starÅ¡ie verzie." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Vnútorná chyba, AllUpgrade pokazil veci" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Balík %s sa nedá nájsÅ¥" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Poznámka: vyberá sa %s pre regulárny výraz '%s'\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "Na opravu nasledovných môžete spustiÅ¥ `apt-get -f install':" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Nesplnené závislosti. Skúste spustiÅ¥ 'apt-get -f install' bez balíkov (alebo " +"navrhnite rieÅ¡enie)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Niektoré balíky sa nedajú nainÅ¡talovaÅ¥. To môže znamenaÅ¥, že požadujete\n" +"nemožnú situáciu, alebo ak používate nestabilnú distribúciu, že\n" +"požadované balíky eÅ¡te neboli vytvorené alebo presunuté z fronty\n" +"Novoprichádzajúcich (Incoming) balíkov." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Pretože ste požiadali iba o jednoduchú operáciu, je takmer isté, že\n" +"balík nie je inÅ¡talovateľný a mali by ste zaslaÅ¥ hlásenie o chybe\n" +"(bug report) pre daný balík." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "Nasledovné informácie vám možno pomôžu vyrieÅ¡iÅ¥ túto situáciu:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "PoÅ¡kodené balíky" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "NainÅ¡talujú sa nasledovné extra balíky:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Navrhované balíky:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Odporúčané balíky:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Prepočítava sa aktualizácia... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Chyba" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Hotovo" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "Vnútorná chyba, problem resolver pokazil veci" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "Musíte zadaÅ¥ aspoň jeden balík, pre ktorý sa stiahnu zdrojové texty" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Nedá sa nájsÅ¥ zdrojový balík pre %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Preskakuje sa už stiahnutý súbor '%s'\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Na %s nemáte dostatok voľného miesta" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Je potrebné stiahnuÅ¥ %sB/%sB zdrojových archívov.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Je potrebné stiahnuÅ¥ %sB zdrojových archívov.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "StiahnuÅ¥ zdroj %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Zlyhalo stiahnutie niektorých archívov." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Preskakuje sa rozbalenie už rozbaleného zdroja v %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Príkaz pre rozbalenie '%s' zlyhal.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Skontrolujte, či je nainÅ¡talovaný balík 'dpkg-dev'.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Príkaz pre zostavenie '%s' zlyhal.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Proces potomka zlyhal" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"Musíte zadaÅ¥ aspoň jeden balík, pre ktorý sa budú overovaÅ¥ závislosti na " +"zostavenie" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Nedajú sa získaÅ¥ závislosti pre zostavenie %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s nemá žiadne závislosti pre zostavenie.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "%s závislosÅ¥ pre %s sa nemôže splniÅ¥, pretože sa nedá nájsÅ¥ balík %s" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"%s závislosÅ¥ pre %s sa nedá splniÅ¥, protože sa nedá nájsÅ¥ verzia balíku %s, " +"ktorá zodpovedá požiadavke na verziu" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Zlyhalo splnenie %s závislosti pre %s: InÅ¡talovaný balík %s je príliÅ¡ nový" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Zlyhalo splnenie %s závislosti pre %s: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Závislosti pre zostavenie %s sa nedajú splniÅ¥." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Spracovanie závislostí pre zostavenie zlyhalo" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Podporované moduly:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Použitie: apt-get [voľby] príkaz\n" +" apt-get [voľby] install|remove balík1 [balík2 ...]\n" +" apt-get [voľby] source balík1 [balík2 ...]\n" +"\n" +"apt-get je jednoduché rozhranie v príkazovom riadku pre sÅ¥ahovanie\n" +"a inÅ¡taláciu balíkov. Najpoužívanejšími príkazmi sú update a install.\n" +"\n" +"Príkazy:\n" +" update - Získa zoznam nových balíkov\n" +" upgrade - Vykoná aktualizáciu\n" +" install - NainÅ¡taluje nové balíky (balík je libc6, nie libc6." +"deb)\n" +" remove - Odstráni balíky\n" +" source - Stiahne zdrojové archívy\n" +" build-dep - Nastaví závislosti pre zostavenie pre zdrojové balíky\n" +" dist-upgrade - Aktualizácia distribúcie, viď apt-get(8)\n" +" dselect-upgrade - Riadi sa podľa výberu v dselect-e\n" +" clean - Zmaže stiahnuté archívy\n" +" autoclean - Zmaže staré stiahnuté archívy\n" +" check - Overí, či nejestvujú poÅ¡kodené závislosti\n" +"\n" +"Voľby:\n" +" -h Táto nápoveda\n" +" -q Nezobrazí indikátor priebehu - pre záznam\n" +" -qq Zobrazí iba chyby\n" +" -d Iba stiahne - neinÅ¡taluje ani nerozbaľuje archívy\n" +" -s Iba napodobňuje prevádzané akcie\n" +" -y Na vÅ¡etky otázky odpovedá Áno\n" +" -f Skúsi pokračovaÅ¥, aj keď zlyhá kontrola integrity\n" +" -m Skúsi pokračovaÅ¥, aj keď sa nepodarí nájsÅ¥ archívy\n" +" -u Zobrazí tiež zoznam aktualizovaných balíkov\n" +" -b Po stiahnutí zdrojového balíka ho aj skompiluje\n" +" -V Zobrazí čísla verzií\n" +" -c=? Načíta tento konfiguračný súbor\n" +" -o=? Nastaví ľubovoľnú voľbu, napr. -o dir::cache=/tmp\n" +"Viac volieb nájdete v manuálových stránkách apt-get(8), sources.list(5)\n" +"a apt.conf(5).\n" +" Toto APT má schopnosti posvätnej kravy.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Už existuje " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Získava sa:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ign " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Chyba " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "%sB sa stiahlo za %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Spracúva sa]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Výmena média: Vložte disk nazvaný\n" +" '%s'\n" +"do mechaniky '%s' a stlačte Enter\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Neznámy záznam o balíku!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Použitie: apt-sortpkgs [voľby] súbor1 [súbor2 ...]\n" +"\n" +"apt-sortpkgs je jednoduchý nástroj na zotriedenie súborov Packages.\n" +"Voľbou -s si zvolíte typ súboru.\n" +"\n" +"Voľby:\n" +" -h Táto nápoveda\n" +" -s Zotriedi zdrojový súbor\n" +" -c=? Načíta tento konfiguračný súbor\n" +" -o=? Nastaví ľubovoľnú voľbu, napr. -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Chybné predvolené nastavenie!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Stlačte Enter, ak chcete pokračovaÅ¥." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Pri rozbaľovaní doÅ¡lo k nejakým chybám. Teraz sa nastavia" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "balíky, ktoré sa nainÅ¡talovali. Môže to spôsobiÅ¥ chybové správy" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "o nesplnených závislostiach. Je to v poriadku, dôležité sú iba" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"chyby nad touto správou. Opravte ich a potom znovu spusÅ¥te [I]nÅ¡talovaÅ¥" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Zlučujú sa dostupné informácie" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Vytvorenie rúry zlyhalo" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Spustenie gzip zlyhalo " + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "PoruÅ¡ený archív" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Kontrolný súčet pre tar zlyhal, archív je poÅ¡kodený" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Neznáma hlavička TARu typ %u, člen %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Neplatný podpis archívu" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Chyba pri čítaní záhlavia prvku archívu" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Neplatné záhlavie prvku archívu" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Archív je príliÅ¡ krátky" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Chyba pri čítaní hlavičiek archívu" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "Pokus o uvoľnenie uzla (DropNode) na stále prepojenom uzle" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Hashovací prvok sa nedá nájsÅ¥!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Nedá sa alokovaÅ¥ diverzia" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Vnútorná chyba pri AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Pokus o prepísanie diverzie, %s -> %s a %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Dvojité pridanie diverzie %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Duplicitný konfiguračný súbor %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Zápis súboru %s zlyhal" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Zatvorenie súboru %s zlyhalo" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "Cesta %s je príliÅ¡ dlhá" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "%s sa rozbaľuje viackrát" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "Adresár %s je divertovaný" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "Balík sa pokúša zapisovaÅ¥ do diverzného cieľa %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Diverzná cesta je príliÅ¡ dlhá" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "Adresár %s sa nahradí neadresárom" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Nedá sa nájsÅ¥ uzol v jeho hashovacej oblasti" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Cesta je príliÅ¡ dlhá" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "PrepísaÅ¥ zodpovedajúci balík bez udania verzie pre %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Súbor %s/%s prepisuje ten z balíka %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "%s sa nedá čítaÅ¥" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "%s sa nedá vyhodnotiÅ¥" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Odstránenie %s zlyhalo" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "%s sa nedá vytvoriÅ¥" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Vyhodnotenie %sinfo zlyhalo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "Adresáre info a temp musia byÅ¥ na tom istom súborovom systéme" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Načítavajú sa zoznamy balíkov" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Nedá sa zmeniÅ¥ na admin adresár %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Vnútorná chyba pri získavaní názvu balíka" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Načítavam výpis súborov" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Otvorenie súboru zoznamov '%sinfo/%s' zlyhalo. Ak nemôžete obnoviÅ¥ tento " +"súbor, vytvorte ho nový prázdny a ihneď znovu nainÅ¡talujte tú istú verziu " +"balíka!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Chyba pri čítaní súboru so zoznamami %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Vnútorná chyba pri získavaní uzla" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Zlyhalo otvorenie súboru s diverziami %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Diverzný súbor je poruÅ¡ený" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Neplatný riadok v diverznom súbore: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Vnútorná chyba pri pridávaní diverzie" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "Vyrovnávacia pamäť balíkov sa musí najprv inicializovaÅ¥" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Chyba pri hľadaní Balíka: Hlavička, offset %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Zlá sekcia ConfFile v stavovom súbore na pozícii %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Chyba pri spracovaní MD5. Offset %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Toto nie je platný DEB archív, chýba časÅ¥ '%s'" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "Toto nie je platný DEB archív, chýba časÅ¥ '%s' alebo '%s'" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Nedá sa prejsÅ¥ do %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Vnútorná chyba, nedá sa nájsÅ¥ člen" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Nedá sa nájsÅ¥ platný riadiaci súbor" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Nespracovateľný riadiaci súbor" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Nedá sa čítaÅ¥ databáza na cdrom %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Pre pridanie CD do APT použijte apt-cdrom. apt-get update sa nedá využiÅ¥ na " +"pridávanie nových CD." + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "Chybné CD" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "Nedá sa odpojiÅ¥ CD-ROM v %s - možno sa eÅ¡te používa." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Disk sa nenaÅ¡iel." + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Súbor sa nenaÅ¡iel" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Vyhodnotenie zlyhalo" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Zlyhalo nastavenie času zmeny" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "Neplatné URI, lokálne URI nesmie začínaÅ¥ s //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Prihlasovanie" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Nedá sa zistiÅ¥ názov druhej strany" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Nedá sa zistiÅ¥ lokálny názov" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Server zamietol naÅ¡e spojenie s chybou: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "USER zlyhal, server odpovedal: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "PASS zlyhal, server odpovedal: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Bol zadaný proxy server, ale nie prihlasovací skript. Acquire::ftp::" +"ProxyLogin je prázdny." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Príkaz '%s' prihlasovacieho skriptu zlyhal, server odpovedal: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "TYPE zlyhal, server odpovedal: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Uplynul čas spojenia" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Server ukončil spojenie" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Chyba pri čítaní" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Odpoveď preplnila zásobník." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "NaruÅ¡enie protokolu" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Chyba pri zápise" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Nedá sa vytvoriÅ¥ socket" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "Nedá sa pripojiÅ¥ dátový socket, uplynul čas spojenia" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Nedá sa pripojiÅ¥ pasívny socket." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo nezískal počúvajúci socket" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Nedá sa nadviazaÅ¥ socket" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Na sockete sa nedá počúvaÅ¥" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Názov socketu sa nedá zistiÅ¥" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Príkaz PORT sa nedá odoslaÅ¥" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Neznáma rodina adries %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT zlyhal, server odpovedal: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Uplynulo spojenie dátového socketu" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Spojenie sa nedá prijaÅ¥" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Problém s hashovaním súboru" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Súbor sa nedá stiahnuÅ¥, server odpovedal '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Uplynula doba dátového socketu" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Prenos dát zlyhal, server odpovedal '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Dotaz" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Nedá sa vyvolaÅ¥ " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Pripája sa k %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Nedá sa vytvoriÅ¥ socket pre %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Nedá sa nadviazaÅ¥ spojenie na %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Nedá sa pripojiÅ¥ k %s:%s (%s), uplynul čas spojenia" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Nedá sa pripojiÅ¥ k %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Pripája sa k %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Nedá sa zistiÅ¥ '%s'" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Dočasné zlyhanie pri zisÅ¥ovaní '%s'" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Niečo veľmi zlé sa prihodilo pri zisÅ¥ovaní '%s:%s' (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Nedá sa pripojiÅ¥ k %s %s:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Zväzok kľúčov '%s' je nedostupný." + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" +"CHYBA: zoznam argumentov z Acquire::gpgv::Options je príliÅ¡ dlhý. Ukončuje " +"sa." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "Vnútorná chyba: Správna signatúra, ale sa nedá zistiÅ¥ odtlačok kľúča?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Bola zistená aspoň jedna nesprávna signatúra." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "Nedá sa spustiÅ¥ '%s' na kontrolu signatúry (je nainÅ¡talované gnupg?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Neznáma chyba pri spustení gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "Nasledovné signatúry sú neplatné:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"Nasledovné signatúry sa nedajú overiÅ¥, pretože nie je dostupný verejný " +"kľúč:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Nedá sa otvoriÅ¥ rúra pre %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Chyba pri čítaní z procesu %s" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Čaká sa na hlavičky" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Získal sa jeden riadok hlavičky cez %u znakov" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Chybná hlavička" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "HTTP server poslal neplatnú hlavičku odpovede" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "HTTP server poslal neplatnú hlavičku Content-Length" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "HTTP server poslal neplatnú hlavičku Content-Range" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "Tento HTTP server má poÅ¡kodenú podporu rozsahov" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Neznámy formát dátumu" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Výber zlyhal" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Uplynul čas spojenia" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Chyba zápisu do výstupného súboru" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Chyba zápisu do súboru" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Chyba zápisu do súboru" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "Chyba pri čítaní zo servera. Druhá strana ukončila spojenie" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Chyba pri čítaní zo servera" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Zlé dátové záhlavie" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Spojenie zlyhalo" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Vnútorná chyba" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Nedá sa vykonaÅ¥ mmap prázdneho súboru" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Nedá sa urobiÅ¥ mmap %lu bajtov" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Voľba %s nenájdená" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Nerozpoznaná skratka typu: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Otvára sa konfiguračný súbor %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Riadok %d je príliÅ¡ dlhý (nanajvýš %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Syntaktická chyba %s:%u: Blok začína bez názvu." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Syntaktická chyba %s:%u: Skomolená značka" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Syntaktická chyba %s:%u: Za hodnotou nasledujú chybné údaje" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" +"Syntaktická chyba %s:%u: Direktívy sa dajú vykonaÅ¥ len na najvyÅ¡Å¡ej úrovni" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Syntaktická chyba %s:%u: PríliÅ¡ mnoho vnorených prepojení (include)" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Syntaktická chyba %s:%u: Zahrnuté odtiaľ" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Syntaktická chyba %s:%u: Nepodporovaná direktíva '%s'" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Syntaktická chyba %s:%u: Na konci súboru sú chybné údaje" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Chyba!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Hotovo" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Parameter príkazového riadku '%c' [z %s] je neznámy" + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Nezrozumiteľný parameter %s v príkazovom riadku" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Parameter príkazového riadku %s nie je pravdivostná hodnota" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "Voľba %s vyžaduje argument." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "Parameter %s: Zadanie konfiguračnej položky musí obsahovaÅ¥ =." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "Voľba %s vyžaduje ako argument celé číslo (integer), nie '%s'" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Voľba '%s' je príliÅ¡ dlhá" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "Nezrozumiteľný význam %s, skúste true alebo false. " + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Neplatná operácia %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Prípojný bod %s sa nedá vyhodnotiÅ¥" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Nedá sa prejsÅ¥ do %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Nedá sa vyhodnotiÅ¥ cdrom" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "Zamykanie pre zámkový súbor %s, ktorý je iba na čítanie, sa nepoužíva" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Zámkový súbor %s sa nedá otvoriÅ¥" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "Zamykanie pre zámkový súbor %s pripojený cez nfs sa nepoužíva" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Zámok %s sa nedá získaÅ¥" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Čakalo sa na %s, ale nebolo to tam" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Podproces %s obdržal chybu segmentácie." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Podproces %s vrátil chybový kód (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Podproces %s neočakávane skončil" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Súbor %s sa nedá otvoriÅ¥ súbor" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "čítanie, stále treba prečítaÅ¥ %lu, ale už nič neostáva" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "zápis, stále treba zapísaÅ¥ %lu, no nedá sa to" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Problém pri zatváraní súboru" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Problém pri odstraňovaní súboru" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Problém pri synchronizovaní súboru" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Vyrovnávacia pamäť balíkov je prázdna" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Súbor vyrovnávacej pamäti balíkov je poÅ¡kodený" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Súbor vyrovnávacej pamäti balíkov je nezlučiteľnej verzie" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Tento APT nepodporuje systém pre správu verzií '%s'" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "Súbor vyrovnávacej pamäti balíkov bol vytvorený pre inú architektúru" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Závisí na" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Predzávisí na" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Navrhuje" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Odporúča" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Koliduje s" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Nahrádza" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Zneplatňuje" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "dôležitý" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "požadovaný" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "Å¡tandartný" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "voliteľný" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "extra" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Vytvára sa strom závislostí" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Kandidátske verzie" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Generovanie závislostí" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Súbor %s sa nedá spracovaÅ¥ (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Súbor %s sa nedá spracovaÅ¥ (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Skomolený riadok %lu v zozname zdrojov %s (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Skomolený riadok %lu v zozname zdrojov %s (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Skomolený riadok %lu v zozname zdrojov %s (spracovanie URI)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Skomolený riadok %lu v zozname zdrojov %s (Absolútny dist)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Skomolený riadok %lu v zozname zdrojov %s (spracovanie dist)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Otvára sa %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Riadok %u v zozname zdrojov %s je príliÅ¡ dlhý." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Skomolený riadok %u v zozname zdrojov %s (typ)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Typ '%s' je neznámy na riadku %u v zozname zdrojov %s" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Skomolený riadok %u v zozname zdrojov %s (id výrobcu)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Tento beh inÅ¡talácie si vyžiada dočasné odstránenie kľúčového balíka %s " +"kvôli slučke v Conflicts/Pre-Depends. Často je to nevhodné, ale ak to chcete " +"naozaj urobiÅ¥, aktivujte možnosÅ¥ APT::Force-LoopBreak." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Indexový typ súboru '%s' nie je podporovaný" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "Je nutné preinÅ¡talovaÅ¥ balík %s, ale nemôžem pre neho nájsÅ¥ archív." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Chyba, pkgProblemResolver::Resolve vytvára poruchy, čo môže být spôsobené " +"pridržanými balíkmi." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "Problémy sa nedajú opraviÅ¥, niektoré balíky držíte v poÅ¡kodenom stave." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Adresár zoznamov %spartial chýba." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Archívny adresár %spartial chýba." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "SÅ¥ahuje sa %li. súbor z %li (zostáva %s)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "SÅ¥ahuje sa %li. súbor z %li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Nedá sa nájsÅ¥ ovládač spôsobu %s." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Spôsob %s nebol správne spustený" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "Vložte disk nazvaný '%s' do mechaniky '%s' a stlačte Enter." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Balíčkovací systém '%s' nie je podporovaný" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Nedá sa určiÅ¥ vhodný typ balíčkovacieho systému" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Nedá sa vyhodnotiÅ¥ %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "Do sources.list musíte zadaÅ¥ nejaké 'zdrojové' URI" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "Zoznamy balíkov alebo stavový súbor sa nedajú spracovaÅ¥ alebo otvoriÅ¥." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "Na opravu týchto problémov môžete skúsiÅ¥ spustiÅ¥ apt-get update" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Neplatný záznam v súbore preferencií, žiadne záhlavie balíka" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Nezrozumiteľné pripevnenie typu %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Pre pripevnenie nebola zadaná žiadna (alebo nulová) priorita" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Vyrovnávacia pamäť má nezlučiteľný systém na správu verzií" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Chyba pri spracovávaní %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Chyba pri spracovávaní %s (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Chyba pri spracovávaní %s (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Chyba pri spracovávaní %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Chyba pri spracovávaní %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Chyba pri spracovávaní %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Chyba pri spracovávaní %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" +"Fíha, prekročili ste počet názvov balíkov, ktoré toto APT zvládne spracovaÅ¥." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "Fíha, prekročili ste počet verzií, ktoré toto APT zvládne spracovaÅ¥." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" +"Fíha, prekročili ste počet závislostí, ktoré toto APT zvládne spracovaÅ¥." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Chyba pri spracovávaní %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Chyba pri spracovávaní %s (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "Pri spracovaní závislostí nebol nájdený balík %s %s" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Nedá sa vyhodnotiÅ¥ zoznam zdrojových balíkov %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Collecting File poskytuje" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "V/V chyba pri ukladaní zdrojovej vyrovnávacej pamäte" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "premenovanie zlyhalo, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "Nezhoda MD5 súčtov" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "Nie sú dostupné žiadne verejné kľúče ku kľúčom s nasledovnými ID:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Nedá sa nájsÅ¥ súbor s balíkom %s. To by mohlo znamenaÅ¥, že tento balík je " +"potrebné opraviÅ¥ manuálne (kvôli chýbajúcej architektúre)." + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Nedá sa nájsÅ¥ súbor s balíkom %s. Asi budete musieÅ¥ opraviÅ¥ tento balík " +"manuálne." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "Indexové súbory balíka sú naruÅ¡ené. Chýba pole Filename: pre balík %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Veľkosti sa nezhodujú" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Blok výrobcu %s neobsahuje otlačok (fingerprint)" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Použije sa CD-ROM prípojný bod %s\n" +"Pripája sa CD-ROM\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Identifikuje sa.." + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Uložená menovka: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Použije sa CD-ROM prípojný bod %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "CD-ROM sa odpája\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Čaká sa na disk...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Pripája sa CD-ROM...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Na disku sa hľadajú indexové súbory..\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "" +"Nájdených %i indexov balíkov, %i indexov zdrojových balíkov a %i signatúr\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Neplatný názov, skúste znova.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Názov tohto disku je: \n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Kopírujú sa zoznamy balíkov..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Zapisuje sa nový zoznam zdrojov\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Položky zoznamu zdrojov pre tento disk sú:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "CD-ROM sa odpája..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "Zapísaných %i záznamov.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "Zapísaných %i záznamov s %i chýbajúcimi súbormi.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "Zapísaných %i záznamov s %i chybnými súbormi\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "Zapísaných %i záznamov s %i chýbajúcimi a %i chybnými súbormi\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "Pripravuje sa %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "Rozbaľuje sa %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "Pripravuje sa nastavenie %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "Nastavuje sa %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "NainÅ¡talovaný balík %s" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "Pripravuje sa odstránenie %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "Odstraňuje sa %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "Odstránený balík %s" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "Pripravuje sa úplné odstránenie %s" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "Balík '%s' je úplne odstránený" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Súbor %s sa nedá otvoriÅ¥ súbor" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Spojenie bolo predčasne ukončené" + +#~ msgid "File date has changed %s" +#~ msgstr "Dátum súboru sa zmenil %s" diff --git a/po/sl.po b/po/sl.po new file mode 100644 index 0000000..99b7e4b --- /dev/null +++ b/po/sl.po @@ -0,0 +1,2773 @@ +# translation of apt.po to Slovenian +# Matjaz Horvat , 2004. +msgid "" +msgstr "" +"Project-Id-Version: apt 0.5.5\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2005-02-16 22:18+0100\n" +"Last-Translator: Jure Cuhalev \n" +"Language-Team: Slovenian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Paket %s razlièica %s ima nere¹ene odvisnosti:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Ne najdem paketa %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Vseh imen paketov:" + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Navadni paketi:" + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Èisti navidezni paketi:" + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Posamezni navidezni paketi:" + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Me¹ani navidezni paketi:" + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Manjka: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Vseh razlièic:" + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Vseh odvisnosti:" + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Vseh povezava Raz/Dat:" + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Vseh dobljenih preslikav: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Vseh raz¹irjenih nizov: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Celotna velikost z odvisnostmi: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Celotna ohlapna velikost: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Celotna velikost, izraèunana za: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Paketna datoteka %s ni usklajena." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Podati morate natanèno en vzorec" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Nobena datoteka ni bila najdena" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Paketne datoteke:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "Predpomnilnik ni usklajen, x-ref paketne datotek ni mogoè" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Pripeti paketi:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(ni najden)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Name¹èen: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(brez)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Kandidat:" + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Zaponka paketa:" + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Tabela razlièic:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s za %s %s preveden na %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Uporaba: apt-cache [mo¾nosti] ukaz\n" +" apt-cache [mo¾nosti] add dat1 [dat2 ...]\n" +" apt-cache [mo¾nosti] showpkg pak1 [pak2 ...]\n" +" apt-cache [mo¾nosti] showsrc pak1 [pak2 ...]\n" +"\n" +"apt-cache je orodje za upravljanje binarnih datotek v APT-jevem\n" +"pomnilniku in za pridobivanje informacij o njih\n" +"\n" +"Ukazi:\n" +" add - Doda paketno datoteko v izvorni pomnilnik\n" +" gencaches - Zgradi paket in izvorni pomnilnik\n" +" showpkg - Prika¾e osnovne informacije o paketu\n" +" showsrc - Prika¾e izvorne zapise\n" +" stats - Prika¾e osnovno statistiko\n" +" dump - Prika¾e celotno datoteko v jedrnati obliki\n" +" dumpavail - Razpolo¾ljivo datoteko izpi¹e v stdout\n" +" unmet - Prika¾e nere¹ene odvisnosti\n" +" search - Poi¹èe vzorec v seznamu paketov\n" +" show - Prika¾e berljiv zapis o paketu\n" +" depends - Prika¾e grobe informacije o odvisnostih paketa\n" +" rdepends - Prika¾e informacije o odvisnostih paketa za nazaj\n" +" pkgnames - Prika¾e seznam vsem paketov\n" +" dotty - Ustvari grafe paketov za GraphVis\n" +" xvcg - Ustvari grafe paketov za xvcg\n" +" policy - Prika¾e politiko nastavitev\n" +"\n" +"Mo¾nosti:\n" +" -h To besedilo.\n" +" -p=? Pomnilnik paketov.\n" +" -s=? Pomnilnik virov.\n" +" -q Onemogoèi kazalec napredka.\n" +" -i Prika¾e samo pomembne odvisnosti za nere¹en ukaz.\n" +" -c=? Prebere podano datoteko z nastavitvami\n" +" -o=? Nastavi poljubno nastavitveno mo¾nost, npr. -o dir::cache=/tmp\n" +"Za veè informacij si oglejte strani man apt-cache(8) in apt.conf(5).\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "" + +#: cmdline/apt-cdrom.cc:93 +#, fuzzy +msgid "Please insert a Disc in the drive and press enter" +msgstr "" +"Sprememba medija: vstavite disk z oznako\n" +" '%s'\n" +"v enoto '%s' in pritisnite enter\n" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "" + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Argumenti niso v parih" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Uporaba: apt-config [mo¾nosti] ukaz\n" +"\n" +"apt-config je preprosto orodje za branje nastavitvene datoteke APT\n" +"\n" +"Ukazi:\n" +" shell - Lupinski naèin\n" +" dump - Prika¾e nastavitve\n" +"\n" +"Mo¾nosti:\n" +" -h To besedilo.\n" +" -c=? Prebere podano datoteko z nastavitvami\n" +" -o=? Nastavi poljubno nastavitveno mo¾nost, npr. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s ni veljaven paket DEB." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Uporaba: apt-extracttemplates dat1 [dat2 ...]\n" +"\n" +"apt-extracttemplates je orodje za pridobivanje informacij o\n" +"nastavitvah in predlogah debianovih paketov\n" +"\n" +"Mo¾nosti:\n" +" -h To besedilo\n" +" -t Nastavi zaèasni imenik\n" +" -c=? Prebere podano datoteko z nastavitvami\n" +" -o=? Nastavi poljubno nastavitveno mo¾nost, npr. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Ni mogoèe pisati na %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Ni mogoèe ugotoviti razlièice debconfa. Je sploh name¹èen?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Seznam raz¹iritev paketov je predolg" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Napaka pri obdelavi imenika %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Seznam raz¹iritev virov je predolg" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Napaka pri pisanju glave v vsebinsko datoteko" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Napaka pri obdelavi vsebine %s" + +#: ftparchive/apt-ftparchive.cc:556 +#, fuzzy +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Uporaba: apt-ftparchive [mo¾nosti] ukaz\n" +"Ukazi: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive ustvari kazalo Debianovih arhivov. Podpira ¹tevilne\n" +"sloge ustvarjanja, od popolnoma samodejnih do enakovrednih zamenjav\n" +"za dpkg-scanpackages in dpkg-scansources\n" +"\n" +"apt-ftparchive ustvari paketne datoteke z drevesa .deb-ov. Paketna\n" +"datoteka hrani vsebino vseh nadzornih polj vsakega paketa in tudi\n" +"razpr¹eno kodo MD5 ter velikost datoteke. Prekrivna datoteka\n" +"lahko vsili vrednost Prioriteta in Odsek.\n" +"\n" +"Podobno apt-ftparchive ustvari tudi izvorne datoteke iz .dsc-jev.\n" +"Mo¾nost --source-override lahko nastavi prekrivno datoteko.\n" +"\n" +"Ukaz 'paketi' in 'izvorne datoteke' se uporablja v korenu drevesa.\n" +"BinarnaPot mora kazati na osnovo rekurzivnega iskanja, prekrivna\n" +"datoteka pa naj vsebuje prekrivne zastavice. Predponapoti se\n" +"doda poljem z imeni datotek, èe je podana. Primer uporabe iz\n" +"Debianovega arhiva:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Mo¾nosti:\n" +" -h To besedilo\n" +" --md5 Nadzoruje ustvarjanje MD5\n" +" -s=? Prekrivna datoteka izvorne datoteke\n" +" -q Tiho\n" +" -d=? Izbere poljubno pomnilni¹ko zbirko\n" +" --no-delink Omogoèi razhro¹èevalni naèin z razvezovanjem\n" +" --contents Nadzoruje ustvarjanje vsebinskih datotek\n" +" -c=? Prebere podano datoteko z nastavitvami\n" +" -o=? Nastavi poljubno nastavitveno mo¾nost" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Nobena izbira se ne ujema" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Nekatere datoteke manjkajo v skupini paketnih datotek '%s'" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "ZP je pokvarjena, datoteka je preimenovana v %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "ZP je stara, posku¹am nadgraditi %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Ni mogoèe odprti datoteke ZP %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Napaka pri postavitvi %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Arhiv nima nadzornega zapisa" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Ni mogoèe najti kazalca" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "O: ni mogoèe brati imenika %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "O: Ni mogoèe nastaviti %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "O: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "N: Napake se sklicujejo na datoteko" + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Ni mogoèe razre¹iti %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Hoja drevesa ni uspela" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Ni mogoèe odprti %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " RazVe¾i %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Napaka pri branju povezave %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Napaka pri odvezovanju %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Napaka pri povezovanju %s z %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " Dose¾ena meja RazVezovanja %sB.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Arhiv ni imel polja s paketom" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s nima prekrivnega vnosa\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " Vzdr¾evalec %s je %s in ne %s\n" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s nima prekrivnega vnosa\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s nima prekrivnega vnosa\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Notranja napaka. Ni mogoèe najti èlana %s." + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Napaka pri dodeljevanju prostora" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Ne morem odpreti %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Napaèno prekrivanje %s vrstica %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Napaèno prekrivanje %s vrstica %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Napaèno prekrivanje %s vrstica %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Napaka pri branju prekrite datoteke %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Neznan algoritem stiskanja '%s'" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Stisnjen izhod %s potrebuje niz stiskanja" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Ustvarjanje pipe IPC podprocesa ni uspelo" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Ustvarjanje DATOTEKE* ni uspelo" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Vejitev ni uspela" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Otrok stiskanja" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Notranja napaka. Ni mogoèe ustvariti %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Ni mogoèe ustvariti podprocesa IPD" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Ni mogoèe izvesti stiskanja" + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "program za dekompresijo" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "IO podprocesa/datoteke je spodletel" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Med raèunanjem MD5 ni mogoèe brati" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Napaka pri odvezovanju %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Ni mogoèe preimenovati %s v %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "Y" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Napaka pri prevajanju regex - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Naslednji paketi imajo nere¹ene odvisnosti:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "vendar je paket %s name¹èen" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "vendar bo paket %s name¹èen" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "vendar se ga ne da namestiti" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "vendar je navidezen paket" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "vendar ni name¹èen" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "vendar ne bo name¹èen" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " ali" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Naslednji NOVI paketi bodo name¹èeni:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Naslednji novi paketi bodo ODSTRANJENI:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Naslednji paketi so bili zadr¾ani:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Naslednji paketi bodo nadgrajeni:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Naslednji paketi bodo POSTARANI:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Naslednji zadr¾ani paketi bodo spremenjeni:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (zaradi %s) " + +#: cmdline/apt-get.cc:546 +#, fuzzy +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"OPOZORILO: Naslednji kljuèni paketi bodo odstranjeni.\n" +"To NI priporoèljivo, razen èe natanèno veste, kaj poènete." + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu nadgrajenih, %lu na novo name¹èenih, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu posodobljenih, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu postaranih, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu bo odstranjenih in %lu ne nadgrajenih.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu ne popolnoma name¹èenih ali odstranjenih.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Popravljanje odvisnosti ..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " spodletelo." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Ni mogoèe popraviti odvisnosti" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Ni mogoèe pomanj¹ati zbirke za nadgradnjo" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Opravljeno" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "Èe ¾elite popraviti napake, poskusite pognati 'apt-get -f install'." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Nere¹ene odvisnosti. Poskusite uporabiti -f." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "POZORO: Naslednjih paketov ni bilo mogoèe avtenticirati!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Namestim te pakete brez prevejanje [y/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Nisem uspel avtenticirati nekaterih paketkov" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Pri¹lo je do te¾av in -y je bil uporabljen brez --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Odstraniti je potrebno pakete, a je Odstranjevanje onemogoèeno." + +#: cmdline/apt-get.cc:775 +#, fuzzy +msgid "Internal error, Ordering didn't finish" +msgstr "Notranja napaka pri dodajanju odklona" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Ni mogoèe zakleniti imenika za prenose" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "Seznama virov ni mogoèe brati." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Potrebno je dobiti %sB/%sB arhivov.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Potrebno je dobiti %sB arhivov.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "Po odpakiranju bo uporabljenega %sB dodatnega prostora na disku.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Po odpakiranju bo spro¹èenega %sB prostora na disku.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, fuzzy, c-format +msgid "Couldn't determine free space in %s" +msgstr "Nimate dovolj prostora na %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "V %s je premalo prostora." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "Izbrana je mo¾nost Samo preprosto, a to opravilo ni preprosto." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Da, naredi tako kot pravim!" + +#: cmdline/apt-get.cc:868 +#, fuzzy, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Obstaja mo¾nost, da po¹kodujete va¹ sistem.\n" +"Za nadaljevanje vnesite frazo '%s'\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Prekini." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Ali ¾elite nadaljevati [Y/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Ni mogoèe dobiti %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Prenos nekaterih datotek ni uspel" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Prenos dokonèan in uporabljen naèin samo prenos" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Nekaterih arhivov ni mogoèe dobiti. Poskusite uporabiti apt-get update ali --" +"fix-missing." + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing in izmenjava medija trenutno nista podprta" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Ni mogoèe popraviti manjkajoèih paketov." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Prekinjanje namestitve." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Opomba: izbran %s namesto %s \n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "%s preskoèen, ker je ¾e name¹èen in ne potrebuje nadgradnje.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "Paket %s ni name¹èen, zato ni odstranjen\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Paket %s je navidezen in ga je priskrbel:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Name¹èeno]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Sami izberite paket, ki ga ¾elite namestiti." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Paket %s nima navedene razlièice, vendar se nek drug paket nana¹a nanj.\n" +"To ponavadi pomeni, da paket manjka, je zastaran ali\n" +"pa je na voljo samo iz drugega vira.\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Kakorkoli, naslednji paketi ga nadomestijo:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Paket %s nima kandidata za namestitev" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "Ponovna namestitev %s ni mo¾na, ker ni mo¾en prenos.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "Najnovej¹a razlièica %s je ¾e name¹èena.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Izdaje '%s' za '%s' ni mogoèe najti" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Razlièice '%s' za '%s' ni mogoèe najti" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Izbrana razlièica %s (%s) za %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "Ukaz update ne potrebuje argumentov" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Imenika seznamov ni mogoèe zakleniti" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Nekaterih kazal ni mogoèe prenesti, zato so preklicana, ali pa so " +"uporabljena starej¹a." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Notranja napaka zaradi AllUpgrade." + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Ni mogoèe najti paketa %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Opomba: izbran %s namesto regex '%s'\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "Poskusite zagnati 'apt-get -f install', èe ¾elite popraviti:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Nere¹ene odvisnosti. Poskusite 'apt-get -f install' brez paketov (ali " +"podajte re¹itev)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Nekaterih paketov ni mogoèe namestiti. To lahko pomeni, da ste zahtevali\n" +"nemogoè polo¾aj, èe uporabljate nestabilno izdajo pa, da nekateri zahtevani " +"paketi ¹e niso ustvarjeni ali prene¹eni iz Prihajajoèe." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Ker ste zahtevali samo eno opravilo, je zelo verjetno, da se paketa\n" +"preprosto ne da namestiti in je potrebno vlo¾iti poroèilo o hro¹èu\n" +"o tem paketu." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "Naslednji podatki vam bodo morda pomagali re¹iti te¾avo:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Pokvarjeni paketi" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Naslednji dodatni paketi bodo name¹èeni:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Predlagani paketi:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Priporoèeni paketi:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Preraèunavanje nadgradnje ... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Spodletelo" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Opravljeno" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +#, fuzzy +msgid "Internal error, problem resolver broke stuff" +msgstr "Notranja napaka zaradi AllUpgrade." + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "" +"Potrebno je navesti vsaj en paket, za katerega ¾elite dobiti izorno kodo" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Izvornega paketa za %s ni mogoèe najti" + +#: cmdline/apt-get.cc:1968 +#, fuzzy, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Odpakiranje ¾e odpakiranih izvornih paketov v %s preskoèeno\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Nimate dovolj prostora na %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Potrebno je dobiti %sB/%sB izvornih arhivov.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Potrebno je dobiti %sB izvornih arhivov.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Dobi vir %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Nekaterih arhivov ni mogoèe dobiti." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Odpakiranje ¾e odpakiranih izvornih paketov v %s preskoèeno\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Ukaz odpakiranja '%s' ni uspel.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Ukaz gradnje '%s' ni uspel.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Otro¹ki proces ni uspel" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"Potrebno je navesti vsaj en paket, za katerega ¾elite preveriti odvisnosti " +"za gradnjo" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Ni mogoèe dobiti informacij o odvisnostih za gradnjo za %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s nima odvisnosti za gradnjo.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "%s odvisnosti za %s ni mogoèe zadostiti, ker ni mogoèe najti paketa %s" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"%s odvisnosti za %s ni mogoèe zadostiti, ker nobena razlièica paketa %s ne " +"more zadostiti zahtevi po razlièici" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Ni mogoèe zadostiti %s odvisnosti za %s. Name¹èen paket %s je preveè nov" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Ni mogoèe zadostiti %s odvisnosti za %s. %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Odvisnostim za gradnjo %s ni mogoèe zadostiti." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Obdelava odvisnosti za gradnjo ni uspela" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Podprti moduli:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Uporaba: apt-get [mo¾nosti] ukaz\n" +" apt-get [mo¾nosti] install|remove pak1 [pak2 ...]\n" +" apt-get [mo¾nosti] source pak1 [pak2 ...]\n" +"\n" +"apt-get je preprost vmesnik ukazne vrstice za prena¹anje in\n" +"name¹èanje paketov. Najpogosteje uporabljena ukaza sta update\n" +"in install.\n" +"\n" +"Ukazi:\n" +" update - Posodobi seznam paketov\n" +" upgrade - Izvedi nadgradnjo\n" +" install - Namesti nove pakete (pak je libc6 in ne libc6.deb)\n" +" remove - Odstrani pakete\n" +" source - Prenesi izvorne arhive\n" +" build-dep - Nastavi odvisnosti za gradnjo za izvorne pakete\n" +" dist-upgrade - Nadgradnja distribucije, glejte apt-get(8)\n" +" dselect-upgrade - Sledi izbiram dselecta\n" +" clean - Odstrani prene¹ene datoteke z arhivi\n" +" autoclean - Odstrani stare prene¹ene datoteke z arhivi\n" +" check - Preveri, da ni nobene pokvarjene odvisnosti\n" +"\n" +"Mo¾nosti:\n" +" -h To besedilo.\n" +" -q Dnevni¹ki izpis - brez kazalca napredka\n" +" -qq Brez izpisa, razen napak\n" +" -d Samo prenos - NE namesti in odpakira arhivov\n" +" -s Brez dejanj. Izvede simulacijo urejanja\n" +" -y Privzame Da za vse poizvedbe in ne spra¹uje\n" +" -f Poskusi nadaljevati, èe preskus celovitosti spodleti\n" +" -m Poskusi nadaljevati, èe ni mogoèe najti arhivov\n" +" -u Prika¾e tudi seznam nadgrajenih paketov\n" +" -b Ko dobi izvoren paket, ga zgradi\n" +" -V Prika¾e podrobne ¹tevilke razlièic\n" +" -c=? Prebere podano datoteko z nastavitvami\n" +" -o=? Nastavi poljubno nastavitveno mo¾nost, npr. -o dir::cache=/tmp\n" +"Za veè informacij in mo¾nosti si oglejte strani man apt-get(8),\n" +"sources.list(5) in apt.conf(5).\n" +" APT ima moè Super Krave.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Zadetek " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Dobi:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Prz " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Nap " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Dobljenih %sB v %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Delam]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Sprememba medija: vstavite disk z oznako\n" +" '%s'\n" +"v enoto '%s' in pritisnite enter\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Neznan zapis paketa!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Uporaba: apt-sortpkgs [mo¾nosti] dat1 [dat2 ...]\n" +"\n" +"apt-sortpkgs je preprosto orodje za razvr¹èanje paketnih datotek. Mo¾nost -" +"s\n" +"doloèa vrsto datoteke.\n" +"\n" +"Mo¾nosti:\n" +" -h To besedilo\n" +" -s Uporabi razvr¹èanje izvornih datotek\n" +" -c=? Prebere podano datoteko z nastavitvami\n" +" -o=? Nastavi poljubno nastavitveno mo¾nost, npr. -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Napaèna privzeta nastavitev!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Za nadaljevanje pritisnite enter." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Med odpakiranjem je pri¹lo do napak. Nastavil bom" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "pakete, ki so bili name¹èeni. To lahko privede do dvojnih napak" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" +"ali do napak zaradi manjkajoèih odvisnosti. To je v redu, pomembne so samo " +"napake" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "nad tem sporoèilom. Popravite jih in po¾enite Namest[I]tev ¹e enkrat" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Spajanje informacij na voljo" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Ni mogoèe ustvariti pip" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Ni mogoèe izvesti gzip" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Pokvarjen arhiv" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Kontrolna vsota tar ni uspela, arhiv je pokvarjen" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Neznan tip glave TAR %u, èlan %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Napaèen podpis arhiva" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Napaka pri branju glave èlana arhiva" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Napaèna glava èlana arhiva" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Arhiv je prekratek" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Glav arhiva ni mogoèe brati" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "DropNode je poklical stabilno povezano vozli¹èe" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Ni mogoèe najti razpr¹enega elementa!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Ni mogoèe dodeliti odklona" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Notranja napaka v AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Posku¹am prepisati odklon, %s -> %s in %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Dvojni se¹tevek odklona %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Dvojnik datoteke z nastavitvami %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, fuzzy, c-format +msgid "Failed to write file %s" +msgstr "Napaka pri pisanju datoteke %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Napaka pri zapiranju datoteke %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "Pot %s je predolga" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Odpakiranje %s veè kot enkrat" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "Imenik %s je odklonjen" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "Paket posku¹a pisati v tarèo odklona %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Pot odklona je predloga" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "Imenik %s je bil zamenjan z ne-imenikom" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Iskanje vozli¹èa v njegovem razpr¹enem vedru ni uspelo" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Pot je predolga" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Prepi¹i zadetek paketa brez vnosa razlièice za %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Datoteka %s/%s prepisuje datoteko v paketu %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Ni mogoèe brati %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Ni mogoèe doloèiti %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Odstranitev %s ni uspela" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Ni mogoèe ustvariti %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Doloèitev %sinfo ni uspela" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "Podatki in zaèasni imeniki morajo biti v istem datoteènem sistemu" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Branje seznama paketov" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Premik v skrbnikov imenik %sinfo ni uspel" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Notranja napaka pri sprejemanju imena paketa" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Branje seznama datotek" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Odpiranje datoteke s seznamom '%sinfo/%s' ni uspelo. Èe ne morete povrniti " +"datoteke, jo izpraznite in takoj ponovno namestite enako razlièico paketa!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Branje datoteke s seznamom %sinfo/%s ni uspelo" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Notranja napaka pri sprejemanju vozli¹èa" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Odpiranje datoteke z odklonom %sdiversions ni uspelo" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Datoteka z odklonom je pokvarjena" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Napaèna vrstica v datoteki z odklonom: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Notranja napaka pri dodajanju odklona" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "Najprej se mora izvesti predpomnilnik paketov" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Napaka pri iskanju paketa: glava, odmik %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Napaèna izbira ConfFile v datoteki stanja. Odmik %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Napaka pri razèlenjevanju MD5. Odmik %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "To ni veljaven arhiv DEB. Manjka èlan '%s'." + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "To ni veljaven arhiv DEB. Manjka èlan '%s' ali '%s'." + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Ni mogoèe spremeniti v %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Notranja napaka. Ni mogoèe najti èlana." + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Ni mogoèe najti veljavne nadzorne datoteka" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Nadzorne datoteke ni mogoèe razèleniti" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Ni mogoèe brati zbirke %s na CD-ROM-u" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Uporabite apt-cdrom, èe ¾elite, da APT prepozna CD. apt-get update ne more " +"sam dodati novih CD-jev" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "Napaèen C" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "Ni mogoèe odklopiti CD-ROM-a v %s, ker je morda ¹e v uporabi." + +#: methods/cdrom.cc:169 +#, fuzzy +msgid "Disk not found." +msgstr "Datoteke ni mogoèe najti" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Datoteke ni mogoèe najti" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Doloèitev ni uspela" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Nastavitev èasa spremembe ni uspela" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "Napaèen URI. Lokalni URI-ji se morajo zaèeti z /" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Prijavljam se" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Ni mogoèe ugotoviti imena gostitelja" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Ni mogoèe ugotoviti lokalnega imena" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Stre¾nik je zavrnil na¹o povezavo in sporoèil: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "USER ni uspel, stre¾nik je odgovoril: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "PASS ni uspel, stre¾nik je odgovoril: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Naveden je bil proxy-stre¾nik, ne pa tudi prijavna skripta. Acquire::ftp::" +"ProxyLogin je prazen." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Ukaz prijavne skripte '%s' ni uspel, stre¾nik je odgovoril: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "TYPE ni uspel, stre¾nik je odgovoril: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Povezava potekla" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Stre¾nik je zaprl povezavo" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Napaka pri branju" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Odgovor je prekoraèil vmesnik." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Okvara protokola" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Napaka pri pisanju" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Ni mogoèe ustvariti vtiènice" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "Ni mogoèe priklopiti podatkovne vtiènice. Povezava potekla." + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Ni mogoèe priklopiti pasivne vtiènice." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo ni mogel dobiti poslu¹ajoèe vtiènice" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Ni mogoèe povezati vtiènice" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Ni mogoèe poslu¹ati na vtiènici" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Ni mogoèe ugotoviti imena vtiènice" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Ni mogoèe poslati ukaza PORT" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Neznan naslov dru¾ine %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT ni uspel, stre¾nik je odgovoril: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Povezava podatkovne vtiènice potekla" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Ni mogoèe sprejeti povezave" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Te¾ava pri razpr¹evanju datoteke" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Ni mogoèe dobiti datoteke, stre¾nik je odgovoril '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Podatkovna vtiènica je potekla" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Prenos podatkov ni uspel, stre¾nik je odgovoril '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Poizvedba" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Ni mogoèe zagnati " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Povezovanje z %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Ni mogoèe ustvariti vtiènice za %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Ni mogoèe zaèeti povezave z %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Ni se mogoèe povezati z %s:%s (%s). Povezava potekla." + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Ni se mogoèe povezati z %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Povezujem se z %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Ni mogoèe razre¹iti '%s'" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Zaèasna napaka pri razre¹evanju '%s'" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Pri¹lo je do napake pri razre¹evanju '%s:%s' (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Ni se mogoèe povezati z %s %s:" + +#: methods/gpgv.cc:65 +#, fuzzy, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Ni mogoèe razre¹iti '%s'" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "" + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "" + +#: methods/gpgv.cc:249 +#, fuzzy +msgid "The following signatures were invalid:\n" +msgstr "Naslednji dodatni paketi bodo name¹èeni:" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Ni mogoèe odprti %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Napaka pri branju iz procesa %s" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Èakanje na glave" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Dobljena je ena vrstica glave preko %u znakov" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Napaèna vrstica glave" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "Stre¾nik HTTP je poslal napaèno glavo odgovora" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "Stre¾nik HTTP je poslal glavo z napaèno dol¾ino vsebine" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "Stre¾nik HTTP je poslal glavo z napaènim obsegom vsebine" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "Ta stre¾nik HTTP ima pokvarjen obseg podpore" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Neznana oblika datuma" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Izbira ni uspela" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Èas za povezavo se je iztekel" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Napaka pri pisanju v izhodno datoteko" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Napaka pri pisanju v datoteko" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Napaka pri pisanju v datoteko" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "Napaka pri branju oddaljene in zaprte povezave s stre¾nika " + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Napaka pri branju s stre¾nika" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Napaèni podatki glave" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Povezava ni uspela" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Notranja napaka" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "mmap prazne datoteke ni mogoè" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Ni mogoèe narediti mmap %lu bajtov" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Izbira %s ni mogoèe najti" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Ne-prepoznan tip okraj¹ave: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Odpiranje nastavitvene datoteke %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Vrstica %d je predolga (najveè %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Skladenjska napaka %s:%u: Blok se zaène brez imena." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Skladenjska napaka %s:%u: Nepravilna znaèka." + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Skladenjska napaka %s:%u: Dodatno smetje za vrednostjo." + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" +"Skladenjska napaka %s:%u: Napotki se lahko izvedejo le na vrhnjem nivoju." + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Skladenjska napaka %s:%u: Preveè ugnezdenih vkljuèitev." + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Skladenjska napaka %s:%u: Vkljuèen od tu." + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Skladenjska napaka %s:%u: Nepodprt napotek '%s'" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Skladenjska napaka %s:%u: Dodatno smetje na koncu datoteke" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s ... Napaka!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Narejeno" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Mo¾nost ukazne vrstice '%c' [iz %s] ni poznana." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Ne razumem mo¾nosti ukazne vrstice %s" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Mo¾nost ukazne vrstice %s ni boolean" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "Mo¾nost %s zahteva argument." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "Mo¾nost %s: Podrobnosti predmeta za nastavitve potrebujejo =." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "Mo¾nost %s zahteva celo¹tevilski argument, ne '%s'" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Mo¾nost '%s' je predolga" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "Pomena %s ni mogoèe razumeti, poskusite pravilno ali napaèno." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Napaèna operacija %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Ni mogoèe doloèiti priklopne toèke %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Ni mogoèe spremeniti v %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Ni mogoèe doloèiti CD-ROM-a" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "Brez uporabe zaklepanja za zaklenjeno datoteko samo za branje %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Ni mogoèe odprti zaklenjene datoteke %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "Brez uporabe zaklepanja za datoteko %s, priklopljeno z NTFS" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Ni mogoèe dobiti zaklenjene datoteke %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Èakal, a %s ni bil tam" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Napaka pri razèlenjenosti podprocesa %s." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Podproces %s je vrnil kodo napake (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Podproces %s se je neprièakovano zakljuèil" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Ne morem odpreti datoteke %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "berem, ¹e vedno %lu za branje, a nobeden ostal" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "pi¹em, ¹e vedno %lu za pisanje, a ni mogoèe" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Te¾ava pri zapiranju datoteke" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Te¾ava pri odvezovanju datoteke" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Te¾ava pri usklajevanju datoteke" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Prazen predpomnilnik paketov" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Datoteka s predpomnilnikom paketov je pokvarjena" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Razlièica datoteke s predpomnilnikom paketov ni ustrezna" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Ta APT ne podpira sistema razlièic '%s'" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "Predpomnilnik paketov je bil zgrajen za drugaèno arhitekturo" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Odvisen od" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Predodvisnost" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Priporoèa" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Priporoèa" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "V sporu z" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Zamenja" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Zastarani" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "pomembno" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "obvezno" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "standardno" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "izbirno" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "dodatno" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Gradnja drevesa odvisnosti" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Razlièice kandidatov" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Ustvarjanje odvisnosti" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Ni mogoèe razèleniti paketne datoteke %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Ni mogoèe razèleniti paketne datoteke %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Napaèna vrstica %lu v seznamu virov %s (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Napaèna vrstica %lu v seznamu virov %s (distribucija)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Napaèna vrstica %lu v seznamu virov %s (razèlenitev URI)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Napaèna vrstica %lu v seznamu virov %s (absolutna distribucija)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Napaèna vrstica %lu v seznamu virov %s (razèlenitev distribucije)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Odpiram %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Vrstica %u v seznamu virov %s je predolga." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Napaèna vrstica %u v seznamu virov %s (vrsta)" + +#: apt-pkg/sourcelist.cc:244 +#, fuzzy, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Vrsta '%s' v vrstici %u v seznamu virov %s ni znana" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Napaèna vrstica %u v seznamu virov %s (ID ponudnika)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Ta krog namestitve zahteva zaèasno odstranitev kljuènega paketa %s zaradi " +"zanke spora/predodvisnosti. To je ponavadi slabo, toda èe zares ¾elite " +"odstranitev, vkljuèite mo¾nost APT::Force-LoopBreak." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Vrsta datoteke s kazalom '%s' ni podprta" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"Paket %s mora biti ponovno name¹èen, vendar ne morem najti arhiva zanj." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Napaka. pkgProblemResolver::Napake pri razre¹itvi, ki so jih morda " +"povzroèili zadr¾ani paketi." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "Ni mogoèe popraviti te¾av. Imate zadr¾ane pakete." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Manjka imenik s seznami %spartial." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Manjka imenik z arhivi %spartial." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "" + +#: apt-pkg/acquire.cc:825 +#, fuzzy, c-format +msgid "Retrieving file %li of %li" +msgstr "Branje seznama datotek" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Ni mogoèe najti gonilnika metod %s." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Metoda %s se ni zaèela pravilno" + +#: apt-pkg/acquire-worker.cc:377 +#, fuzzy, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "" +"Sprememba medija: vstavite disk z oznako\n" +" '%s'\n" +"v enoto '%s' in pritisnite enter\n" + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Paketni sistem '%s' ni podprt" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Ni mogoèe ugotoviti ustrezne vrste paketnega sistema" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Ni mogoèe doloèiti %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "V sources.list morate vstaviti URI-je z viri" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "Ni mogoèe odprti ali razèleniti seznama paketov ali datoteke stanja." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "Èe ¾elite odpraviti te¾ave, poskusite zagnati apt-get update." + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Napaèen zapis v datoteki z nastavitvami. Ni glave paketa" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Ni mogoèe razumeti vrste zaponke %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Prioriteta zaponke ni doloèena ali pa je niè." + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Predpomnilnik ima neustrezen sistem razlièic" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Pri¹lo je do napake pri obdelavi %s (Nov paket)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Pri¹lo je do napake pri obdelavi %s (Uporabi paket 1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Pri¹lo je do napake pri obdelavi %s (Uporabi paket 2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Pri¹lo je do napake pri obdelavi %s (Nova razlièica datoteke 1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Pri¹lo je do napake pri obdelavi %s (Nova razlièica 1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Pri¹lo je do napake pri obdelavi %s (Uporabi paket 3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Pri¹lo je do napake pri obdelavi %s (Nova razlièica 2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "Uau, presegli ste ¹tevilo imen paketov, ki jih zmore APT." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "Uau, presegli ste ¹tevilo razlièic, ki jih zmore APT." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "Uau, presegli ste ¹tevilo odvisnosti, ki jih zmore APT." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Pri¹lo je do napake pri obdelavi %s (Najdi paket)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Pri¹lo je do napake pri obdelavi %s (Zberi dobavitelje datotek)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "Paketa %s %s ni bilo mogoèe najti med obdelavo odvisnosti" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Ni mogoèe doloèiti seznama izvornih paketov %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Zbiranje dobaviteljev datotek" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "Napaka IO pri shranjevanju predpomnilnika virov" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "preimenovanje spodletelo, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "Neujemanje vsote MD5" + +#: apt-pkg/acquire-item.cc:1070 +msgid "There is no public key available for the following key IDs:\n" +msgstr "" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Ni bilo mogoèe najti datoteke za paket %s. Morda boste morali roèno " +"popraviti ta paket (zaradi manjkajoèega arhiva)." + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Ni bilo mogoèe najti datoteke za paket %s. Morda boste morali roèno " +"popraviti ta paket." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"Datoteke s kazali paketov so pokvarjene. Brez imena datotek: polje alu paket " +"%s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Neujemanje velikosti" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Ponudnikov blok %s ne vsebuje podpisa" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Uporabljam CD-ROM priklopno toèko %s\n" +"Priklapljam CD-ROM\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Identificiram.." + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Shranjena oznaka: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Uporabljam CD-ROM priklopno toèko %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "Odklapljam CD-ROM\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Èakam na medij...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Priklapljam CD-ROM...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Preverjam medij za datoteke s kazalom..\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "Na¹el sem %i kazal paketov, %i kazal izvornih paketov in %i podpisov\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "To ni veljavno ime, poskusite ¹e enkrat.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Ta medij se imenuje: \n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Kopiranje seznama paketov..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Pi¹em nov seznam virov\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Izvorni vnosi za ta medij so:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "Odklapljam CD-ROM..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "Zapisal %i zapisov.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "Zapisal %i zapisov z %i manjkajoèimi datotekami.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "Zapisal %i zapisov z %i neujemajoèimi datotekami.\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" +"Zapisal %i zapisov z %i manjkajoèimi datotekami in %i neujemajoèimi " +"datotekami.\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, fuzzy, c-format +msgid "Preparing %s" +msgstr "Odpiram %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, fuzzy, c-format +msgid "Unpacking %s" +msgstr "Odpiram %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, fuzzy, c-format +msgid "Preparing to configure %s" +msgstr "Odpiranje nastavitvene datoteke %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, fuzzy, c-format +msgid "Configuring %s" +msgstr "Povezujem se z %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, fuzzy, c-format +msgid "Installed %s" +msgstr " Name¹èen: " + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, fuzzy, c-format +msgid "Removing %s" +msgstr "Odpiram %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, fuzzy, c-format +msgid "Removed %s" +msgstr "Priporoèa" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, fuzzy, c-format +msgid "Preparing to completely remove %s" +msgstr "Odpiranje nastavitvene datoteke %s" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, fuzzy, c-format +msgid "Completely removed %s" +msgstr "Odstranitev %s ni uspela" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Ne morem odpreti datoteke %s" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Povezava se je prezgodaj zaprla" + +#~ msgid "File date has changed %s" +#~ msgstr "Datum datoteke se je spremenil %s" + +#~ msgid "Reading file list" +#~ msgstr "Branje seznama datotek" + +#, fuzzy +#~ msgid "Could not execute " +#~ msgstr "Ni mogoèe dobiti zaklenjene datoteke %s" + +#~ msgid "Unknown vendor ID '%s' in line %u of source list %s" +#~ msgstr "Neznan ID ponudnika '%s' v vrstici %u v seznamu virov %s" diff --git a/po/sv.po b/po/sv.po new file mode 100644 index 0000000..17f3fe1 --- /dev/null +++ b/po/sv.po @@ -0,0 +1,2819 @@ +# Advanced Package Tool - APT message translation catalog +# Swedish messages +# Peter Karlsson , 2002-2005. +# Daniel Nylander , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: apt\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-08-18 15:45+0100\n" +"Last-Translator: Daniel Nylander \n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Paket %s version %s har ett beroende som inte kan tillfredsställas:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Kunde inte lokalisera paket %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Totalt antal paketnamn: " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Normala paket: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Rent virtuella paket: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Enkelt virtuella paket: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Blandat virtuella paket: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Saknade: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Totalt antal olika versioner: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Totalt antal beroenden: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Totalt antal version/filrelationer: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Totalt antal tillhandahållningsmarkeringar: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Totalt antal sökmönstersträngar: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Totalt utrymme för versionsberoenden: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Totalt bortkastat utrymme: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Totalt utrymme som kan redogöras för: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Paketfilen %s är inte synkroniserad." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Du måste ange exakt ett mönster" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Inga paket hittades" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "\"Package\"-filer:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "Cachen är ur synk, kan inte korsreferera en paketfil" + +# Prioritet följt av URI +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Fastnålade paket:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(ej funnen)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Installerad: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(ingen)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Kandidat: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Paketnålning: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Versionstabell:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s för %s %s kompilerad den %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Användning: apt-cache [flaggor] kommando\n" +" apt-cache [flaggor] add fil1 [fil2 ...]\n" +" apt-cache [flaggor] showpkg paket1 [paket2 ...]\n" +" apt-cache [flaggor] showsrc paket1 [paket2 ...]\n" +"\n" +"apt-cache är ett lågnivåverktyg för att hantera APTs binära cachefiler\n" +"samt hämta upplysningar från dem.\n" +"\n" +"Kommandon:\n" +" add - Lägg till en paketfil till källcachen\n" +" gencaches - Bygg både paket- och källcache\n" +" showpkg - Visa viss allmän information om ett enskilt paket\n" +" showsrc - Visa källkodsposter\n" +" stats - Visa viss grundläggande statistik\n" +" dump - Visa hela filen i koncis form\n" +" dumpavail - Skriv en \"available\"-fil på standard ut\n" +" unmet - Visa otillfredsställbara beroenden\n" +" search - Sök i paketlistan med ett reguljärt uttryck\n" +" show - Visa en läsbar post för paketet\n" +" depends - Visa rå information om beroenden för ett paket\n" +" rdepends - Visa information om omvända beroenden för ett paket\n" +" pkgnames - Visa namnen på alla paket\n" +" dotty - Generera paketgrafer för GraphVis\n" +" xvcg - Generera paketgrafer för xvcg\n" +" policy - Visa policyinställningar\n" +"\n" +"Flaggor:\n" +" -h Denna hjälptext.\n" +" -p=? Paketcachen.\n" +" -s=? Källcachen.\n" +" -q Inaktivera förloppsindikatorn.\n" +" -i Visa endast viktiga beroendeen för \"unmet\"-kommandot.\n" +" -c=? Läs denna inställningsfil.\n" +" -o=? Ange valfri inställningsflagga. T.ex -o dir::cache=/tmp\n" +"Se manualsidorna för apt-cache(8) och apt.conf(5) för mer information.\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "Ange ett namn för denna skiva, såsom \"Debian 2.1r1 Disk 1\"" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Mata in skivan i enheten och tryck Enter" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Repetera denna process för resten av CD-skivorna i din uppsättning." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Flaggorna gavs inte parvis" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Användning: apt-config [flaggor] kommando\n" +"\n" +"apt-config är ett enkelt verktyg för att läsa APTs inställningsfil\n" +"\n" +"Kommandon:\n" +" shell - Skalläge.\n" +" dump - Visa inställningen.\n" +"\n" +"Flaggor:\n" +" -h Denna hjälptext.\n" +" -c=? Läs denna inställningsfil.\n" +" -o=? Ange valfri inställningsflagga. T.ex -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s är inte ett giltigt DEB-paket." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Användning: apt-extracttemplates fil1 [fil2 ...]\n" +"\n" +"apt-extracttemplates är ett verktyg för att hämta ut konfigurations- \n" +"och mallinformation från paket\n" +"\n" +"Flaggor:\n" +" -h Denna hjälptext.\n" +" -t Ställ in temporärkatalogen.\n" +" -c=? Läs denna inställningsfil.\n" +" -o=? Ange valfri inställningsflagga. T.ex -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Kunde inte skriva till %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Kan inte ta reda på debconfs version. Är debconf installerat?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Listan över filtillägg för Packages är för lång" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Fel vid behandling av katalogen %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Listan över filtillägg för Sources är för lång" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Fel vid skrivning av huvud till innehållsfil" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Fel vid behaldning av innehållet %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Användning: apt-ftparchive [flaggor] kommando\n" +"Kommandon: packages binärsökväg [åsidosättningsfil [sökvägsprefix]]\n" +" sources källsökväg [åsidosättningsfil [sökvägsprefix]]\n" +" contents sökväg\n" +" release sökväg\n" +" generate konfiguration [grupper]\n" +" clean konfiguration\n" +"\n" +"apt-ftparchive genererar indexfiler för Debianarkiv. Det stöder många\n" +"former av generering, allt från helautomatiserat till funktionella\n" +"ersättningar till dpkg-scanpackages och dpkg-scansources\n" +"\n" +"apt-ftparchive skapar Package-filer från ett träd med .deb-filer.\n" +"Packagefilen innehåller alla styrfälten från paketen samt MD5-hashvärdet\n" +"och filstorlek. En overrride-fil stöds för att tvinga värden på Priority\n" +"och Section.\n" +"\n" +"På samma sätt skapar apt-ftparchive Sources-filer från ett träd med\n" +".dsc-filer. Flaggan --source-override kan användas för att ange en\n" +"override-fil för källkoden.\n" +"\n" +"Kommandona \"packages\" och \"sources\" bör köras från rotet på trädet.\n" +"Binärsökvägen bör peka på basen på den rekursiva sökningen och\n" +"override-filen bör innehålla override-flaggorna de framtvingade flaggorna.\n" +"Sökvägsprefixet läggs till i filnamnsfälten om det anges. Ett exempel på\n" +"hur programmet kan användas från Debianarkivet:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Flaggor:\n" +" -h Denna hjälptext\n" +" --md5 Kontrollera generering av MD5\n" +" -s=? Källkods-override-fil\n" +" -q Tyst\n" +" -d=? Väljer den valfria cachedatabasen\n" +" --no-delink Aktivera \"delinkning\"-felspårningsläget\n" +" --contents Styr skapande av contents-fil\n" +" -c=? Läs denna konfigurationsfil\n" +" -o=? Ange valfri inställningsflagga" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Inga val träffades" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Några filer saknas i paketfilsgruppen \"%s\"" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "DB var skadad, filen omdöpt till %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "DB är för gammal, försöker uppgradera %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"DB-formatet är ogiltigt. Ta bort och återskapa databasen om du uppgraderar " +"från en äldre version av apt." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Kunde inte öppna DB-filen %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Misslyckades med att ta status på %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Arkivet har ingen styrpost" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Kunde inte få tag i någon markör" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "V: Kunde inte läsa katalogen %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "V: Kunde inte ta status på %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "F: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "V: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "F: Felen gäller filen " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Misslyckades med att slå upp %s" + +# ??? +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Trädvandring misslyckades" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Misslyckades med att öppna %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " Avlänka %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Misslyckades med att läsa länk %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Misslyckades med att länka ut %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Misslyckades med att länka %s till %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " Avlänkningsgräns på %sB nådd.\n" + +# Fält vid namn "Package" +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Arkivet har inget package-fält" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s har ingen post i override-filen\n" + +# parametrar: paket, ny, gammal +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " ansvarig för %s är %s ej %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s har ingen källåsidosättningspost\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s har heller ingen binär åsidosättningspost\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Internt fel, kunde inta hitta delen %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Misslyckades med att allokera minne" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Kunde inte öppna %s" + +# parametrar: filnamn, radnummer +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Felaktig override %s rad %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Felaktig override %s rad %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Felaktig override %s rad %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Misslyckades med att läsa åsidosättningsfilen %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Okänd komprimeringsalgoritm \"%s\"" + +# ??? +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Komprimerad utdata %s behöver en komprimeringsuppsättning" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Misslyckades med att skapa IPC-rör till underprocess" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Misslyckades med att skapa FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Misslyckades med att grena process" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Barnprocess för komprimering" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Internt fel, misslyckades med att skapa %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Misslyckades med att skapa underprocess-IPC" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Misslyckades med att starta packare " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "uppackare" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "Barnprocessen misslyckades" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Misslyckades med att läsa vid beräkning av MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Problem med att länka ut %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Misslyckades med att byta namn på %s till %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "J" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Fel vid tolkning av reguljärt uttryck - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Följande paket har beroenden som inte kan tillfredsställas:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "men %s är installerat" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "men %s kommer att installeras" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "men det kan inte installeras" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "men det är ett virtuellt paket" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "men det är inte installerat" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "men det kommer inte att installeras" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " eller" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Följande NYA paket kommer att installeras:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Följande paket kommer att TAS BORT:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Följande paket har hållits tillbaka:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Följande paket kommer att uppgraderas:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Följande paket kommer att NEDGRADERAS:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Följande hållna paket kommer att ändras:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (på grund av %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"VARNING: Följande systemkritiska paket kommer att tas bort\n" +"Detta bör INTE göras såvida du inte vet exakt vad du gör!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu uppgraderade, %lu nyinstallerade, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu ominstallerade, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu nedgraderade, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu att ta bort och %lu ej uppgraderade.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu ej helt installerade eller borttagna.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Rättar till beroenden...." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " misslyckades." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Kunde inte rätta till beroenden" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Kunde inte minimera uppgraderingsuppsättningen" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Färdig" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "" +"Du kan möjligen rätta till dessa genom att köra \"apt-get -f install\"." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Otillfredsställda beroenden. Försök med -f." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "VARNING: Följande paket kunde inte autentiseras!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Autentiseringsvarning åsidosatt.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Installera dessa paket utan verifiering [j/N]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Några av paketen kunde inte autentiseras" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Problem har uppstått och -y användes utan --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "Internt fel. InstallPackages kallades upp med brutna paket!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Paket måste tas bort men \"Remove\" är inaktiverat." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Internt fel. Sorteringen färdigställdes inte" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Kunde inte låsa hämtningskatalogen." + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "Listan över källor kunde inte läsas." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"Konstigt.. storlekarna stämde inte överens, skicka e-post till apt@packages." +"debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Behöver hämta %sB/%sB arkiv.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Behöver hämta %sB arkiv.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "Efter uppackning kommer %sB ytterligare diskutrymme att användas.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Efter uppackning kommer %sB frigöras på disken.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Kunde inte läsa av ledigt utrymme i %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Du har inte tillräckligt ledigt utrymme i %s" + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "\"Trivial Only\" angavs, men detta är inte en trivial handling." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Ja, gör som jag säger!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Du är på väg att göra något som kan vara skadligt\n" +"Skriv frasen \"%s\" för att fortsätta\n" +" ?] " + +# Visas då man svarar nej +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Avbryter." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Vill du fortsätta [J/n]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Misslyckades med att hämta %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Misslyckades med att hämta vissa filer" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Hämtningen färdig i \"endast-hämta\"-läge" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Vissa arkiv kunte inte hämtas. Pröva eventuellt \"apt-get update\" eller med " +"--fix-missing." + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing och mediabyte stöds inte ännu" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Kunde inte rätta till saknade paket." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Avbryter installationen." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Observera, väljer %s istället för %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" +"Hoppar över %s, det är redan installerat och uppgradering har inte valts.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "Paketet %s är inte installerat, så tas inte bort\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Paketet %s är ett virtuellt paket som tillhandahålls av:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Installerat]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Du bör explicit ange ett att installera." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Paketet %s är inte tillgängligt, men ett annat paket hänvisar till det.\n" +"Detta betyder vanligen att paketet saknas, har blivit föråldrat eller\n" +"bara är tillgängligt från andra källor\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Dock kan följande paket ersätta det:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Paketet %s har ingen installationskandidat" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "Ominstallation av %s är inte möjlig, det kan inte hämtas.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s är redan den senaste versionen.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Utgåvan \"%s\" för \"%s\" hittades inte" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Version \"%s\" för \"%s\" hittades inte" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Vald version %s (%s) för %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "Uppdateringskommandot tar inga argument" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Kunde inte låsa listkatalogen" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Vissa indexfiler kunde inte hämtas, de har ignorerats eller så har de gamla " +"använts istället." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Internt fel, AllUpgrade förstörde något" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Kunde inte hitta paketet %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Observera, väljer %s för regex \"%s\"\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "" +"Du kan möjligen rätta till detta genom att köra \"apt-get -f install\":" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Otillfredsställda beroenden. Försök med \"apt-get -f install\" utan paket " +"(eller ange en lösning)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Några paket kunde inte installeras. Detta kan betyde att du har\n" +"bett om en omöjlig situation eller, om du använder den instabila\n" +"distributionen, att några krävda paket ännu inte har skapats eller\n" +"lagts in från \"Incoming\"." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Eftersom du bad om en enda handling är det mycket troligt att paketet\n" +"helt enkelt inte kan installeras och att en felrapport om detta bör\n" +"skrivas." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "Följande information kan vara till hjälp för att lösa situationen:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Trasiga paket" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Följande ytterligare paket kommer att installeras:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Föreslagna paket:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Rekommenderade paket:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Beräknar uppgradering... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Misslyckades" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Färdig" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "Internt fel, problemlösaren bröt sönder saker" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "Du måste ange åtminstone ett paket att hämta källkod för" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Kunde inte hitta något källkodspaket för %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Hoppar över redan hämtad fil \"%s\"\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Du har inte tillräckligt ledigt utrymme i %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Behöver hämta %sB/%sB källkodsarkiv.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Behöver hämta %sB källkodsarkiv.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Hämtar källkod %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Misslyckades med att hämta vissa arkiv." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Packar inte upp redan redan uppackad källkod i %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Uppackningskommandot \"%s\" misslyckades.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Kontrollera att paketet \"dpkg-dev\" är installerat.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Byggkommandot \"%s\" misslyckades.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Barnprocessen misslyckades" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "Du måste ange åtminstone ett paket att inhämta byggberoenden för" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Kunde inte hämta byggberoendeinformation för %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s har inga byggberoenden.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"%s-beroendet på %s kan inte tillfredsställas eftersom paketet %s inte hittas" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"%s-beroendet på %s kan inte tillfredsställas eftersom inga tillgängliga " +"versioner av paketet %s uppfyller versionskraven" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Misslyckades med att uppfylla %s-beroendet för %s: Det installerade paketet %" +"s är för nytt" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Misslyckades med att uppfylla %s-beroendet för %s: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Byggberoenden för %s kunde inte uppfyllas." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Kunde inte hantera byggberoenden" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Moduler som stöds:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Användning: apt-get [flaggor] kommando\n" +" apt-get [flaggor] install|remove paket1 [paket2 ...]\n" +" apt-get [flaggor] source paket1 [paket2 ...]\n" +"\n" +"apt-get är ett enkelt kommandoradsgränssnitt för att hämta och installera\n" +"paket. De mest använda kommandona är \"update\" och \"install\".\n" +"\n" +"Kommandon:\n" +" update - Hämta nya paketlistor\n" +" upgrade - Utför en uppgradering\n" +" install - Installera nya paket (paket är libc6, inte libc6.deb)\n" +" remove - Ta bort paket\n" +" source - Hämta källkodsarkiv\n" +" build-dep - Tillfredsställ byggberoenden för källkodspaket\n" +" dist-upgrade - Uppgradering av distributionen, se apt-get(8)\n" +" dselect-upgrade - Följ valen från dselect\n" +" clean - Ta bort hämtade arkivfiler\n" +" autoclean - Ta bort gamla hämtade arkivfiler\n" +" check - Kontrollera att det inte finns några trasiga beroenden\n" +"\n" +"Flaggor:\n" +" -h Denna hjälptext.\n" +" -q Utdata lämplig för loggar - ingen förloppsindikator.\n" +" -qq Ingen utdata förutom vid fel.\n" +" -d Bara hämta - VARKEN installera eller packa upp arkiven.\n" +" -s Gör ingenting, simulera vad som skulle hända.\n" +" -y Antag ja på alla frågor utan att fråga.\n" +" -f Försök fortsätta även om integritetskontroll misslyckas.\n" +" -m Försök fortsätta även om arkiven inte kan hittas.\n" +" -u Visa även en lista över uppgraderade paket.\n" +" -b Bygg källkodspaketet när det hämtats.\n" +" -V Visa pratsamma versionsnummer.\n" +" -c=? Läs denna inställningsfil.\n" +" -o=? Ange valfri inställningsflagga. T.ex -o dir::cache=/tmp\n" +"Se manualsidorna för apt-get(8), sources.list(5) och apt.conf(5)\n" +"för mer information och flaggor.\n" +" Denna APT har Speciella Ko-Krafter.\n" + +# Måste vara tre bokstäver(?) +# "Hit" = aktuell version är fortfarande giltig +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Bra " + +# "Get:" = hämtar ny version +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Läs:" + +# "Ign" = hoppar över +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ign " + +# "Err" = fel vid hämtning +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Fel " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Hämtade %sB på %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Arbetar]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Mediabyte: Sätt i disken med etiketten\n" +" \"%s\"\n" +"i enhet \"%s\" och tryck Enter\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Okänd paketpost!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Användning: apt-sortpkgs [flaggor] fil1 [fil2 ...]\n" +"\n" +"apt-sortpkgs är ett enkelt verktyg för att sortera paketfiler. Flaggan\n" +"-s anges för att ange filens typ.\n" +"\n" +"Flaggor:\n" +" -h Denna hjälptext.\n" +" -s Använd källkodsfilssortering.\n" +" -c=? Läs denna inställningsfil.\n" +" -o=? Ange valfri inställningsflagga. T.ex -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Ogiltig standardinställning!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Tryck Enter för att fortsätta." + +# Note to translators: The following four messages belong together. It doesn't +# matter where sentences start, but it has to fit in just these four lines, and +# at only 80 characters per line, if possible. +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Fel uppstod vid uppackning. Jag kommer ställa in de paket som" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "installerades. Detta kan ge dubbla fel eller fel orsakade av" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "saknade beroenden. Detta är okej, bara felen ovanför detta" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "meddelande är viktiga. Försök rätta till dem och [I]nstallera igen" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Lägger in tillgänglighetsinformation" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Misslyckades med att skapa rör" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Misslyckades med att köra gzip" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Fördärvat arkiv" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Tar-kontrollsumma misslyckades, arkiv trasigt" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Okänd TAR-huvudtyp %u, del %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Ogiltig arkivsignatur" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Misslyckades med att läsa huvud för arkivdel" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Ogiltigt arkivdelshuvud" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Arkivet är för kort" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Misslyckades med att läsa arkivhuvuden" + +# noden har inte någon länk till nästa paket +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "DropNode anropat på olänkad nod" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Misslyckades med att hitta hash-element!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Misslyckades med att allokera omdirigering" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Internt fel i AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Försöker skriva över en omdirigering, %s -> %s och %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Omdirigering %s -> %s inlagd två gånger" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Duplicerad konfigurationsfil %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Misslyckades med att skriva filen %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Misslyckades med att stänga filen %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "Sökvägen %s är för lång" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Packar upp %s flera gånger" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "Katalogen %s är omdirigerad" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "Paketet försöker skriva till omdirigeringsmålet %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Omdirigeringssökvägen är för lång" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "Katalogen %s ersätts av en icke-katalog" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Misslyckades med att hitta noden i sin hashkorg" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Sökvägen är för lång" + +# ??? +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Skriver över paketträff utan version för %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Filen %s/%s skriver över den i paketet %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Kunde inte läsa %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Kunde inte ta status på %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Misslyckades med att ta bort %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Kunde inte skapa %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Kunde inte ta status på %sinfo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "Katalogerna info och temp måste ligga på samma filsystem" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Läser paketlistor" + +# Felmeddelande för misslyckad chdir +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Kunde inte gå till adminkatalogen %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Internt fel när namn på Package-fil skulle hämtas" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Läser fillista" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Misslyckades med att öppna listfilen \"%sinfo/%s\". Om du inte kan återskapa " +"filen, skapa en tom och installera omedelbart om samma version av paketet!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Misslyckades med att läsa listfilen %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Internt fel när en nod skulle hämtas" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Misslyckades med att öppna omdirigeringsfilen %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Omdirigeringsfilen är trasig" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Felaktig rad i omdirigeringsfilen: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Internt fel när en omdirigering skulle läggas till" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "Paketcachen måste ha initierats först" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Misslyckades med att hitta Package:-huvud, position %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Felaktig ConfFile-sektion i statusfilen. Position %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Fel vid tolkning av MD5. Offset %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Detta är inte ett giltigt DEB-arkiv, delen \"%s\" saknas" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "Detta är inte ett giltigt DEB-arkiv, både \"%s\" och \"%s\" saknas" + +# chdir +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Kunde inte gå till %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Internt fel, kunde inte hitta del" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Misslyckades med att hitta en giltig control-fil" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Kunde inte tolka control-filen" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Kunde inte läsa cd-rom-databasen %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Använd apt-cdrom för att APT ska känna igen denna cd. apt-get update kan " +"inte användas för att lägga till skivor" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "Fel cd" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "Kunde inte avmontera cd-rom:en i %s, den kanske fortfarande används." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Disk ej funnen." + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Filen ej funnen" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Kunde inte ta status" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Misslyckades sätta modifieringstid" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "Ogiltig URI, lokala URI:er får inte starta med //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Loggar in" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Kunde inte ta reda på namn på partner" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Kunde inte ta reda på eget namn" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Servern nekade anslutningen och sade: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "USER misslyckades, servern sade: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "PASS misslyckades, servern sade: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"En mellanserver (proxy) angavs men inget inloggningsskript, Acquire::ftp::" +"ProxyLogin är tom." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Inloggningsskriptskommandot \"%s\" misslyckades, servern sade: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "TYPE misslyckades, servern sade: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Inget svar på förbindelsen inom tidsgränsen" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Servern stängde anslutningen" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Läsfel" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Ett svar spillde bufferten." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Protokollet fördärvat" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Skrivfel" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Kunde inte skapa uttag (socket)" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "Kunde inte ansluta datauttag (socket), inget svar inom tidsgräns" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Kunde inte ansluta passivt uttag (socket)." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo kunde inte få tag i ett lyssnande uttag (socket)" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Kunde inte binda uttag (socket)" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Kunde inte lyssna på uttaget (socket)" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Kunde inte avgöra uttagets namn (socket)" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Kunde inte sända PORT-kommando" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Okänd adressfamilj %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT misslyckades, servern sade: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Anslutet datauttag (socket) fick inte svar inom tidsgräns" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Kunde inte ta emot anslutning" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Problem med att lägga filen till hashtabellen" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Kunde inte hämta filen, servern sade \"%s\"" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Datauttag (socket) fick inte svar inom tidsgräns" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Dataöverföring misslyckades, servern sade \"%s\"" + +# Statusmeddelande, byter från substantiv till verb +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Frågar" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Kunde inte starta " + +# Felmeddelande för misslyckad chdir +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Ansluter till %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +# [f]amilj, [t]yp, [p]rotokoll +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Kunde inte skapa uttag (socket) för %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Kunde inte påbörja anslutning till %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Kunde inte ansluta till %s:%s (%s), tog för lång tid" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Kunde inte ansluta till %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Ansluter till %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Kunde inte slå upp \"%s\"" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Temporärt fel vid uppslagning av \"%s\"" + +# Okänd felkod; %i = koden +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Något otäckt hände när \"%s:%s\" slogs upp (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Kunde inte ansluta till %s %s:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Kunde inte komma åt nyckelring: \"%s\"" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "E: Argumentslistan från Acquire::gpgv::Options för lång. Avslutar." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" +"Internt fel: Korrekt signatur men kunde inte hitta nyckelns fingeravtryck?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Åtminstone en giltig signatur träffades på." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" +"Kunde inte starta \"%s\" för att verifiera signatur (är gnupg installerad?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Okänt fel vid exekvering av gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "Följande signaturer är ogiltiga:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"Följande signaturer kunde inte verifieras för att den publika nyckeln inte " +"är tillgänglig:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Kunde inte öppna rör för %s" + +# %s = programnamn +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Läsfel på %s-processen" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Väntar på huvuden" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Fick en ensam huvudrad på %u tecken" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Trasig huvudrad" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "Http-servern sände ett ogiltigt svarshuvud" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "Http-servern sände ett ogiltigt Content-Length-huvud" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "Http-servern sände ett ogiltigt Content-Range-huvud" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "Denna http-servers stöd för delvis hämtning fungerar inte" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Okänt datumformat" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "\"Select\" misslyckades" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Tidsgränsen för anslutningen nåddes" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Fel vid skrivning till utdatafil" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Fel vid skrivning till fil" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Fel vid skrivning till filen" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "Fel vid läsning från server: Andra änden stängde förbindelsen" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Fel vid läsning från server" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Trasigt data i huvud" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Anslutning misslyckades" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Internt fel" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Kan inte utföra mmap på en tom fil" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Kunde inte utföra mmap på %lu byte" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Valet %s ej funnet" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Okänd typförkortning: \"%c\"" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Öppnar konfigurationsfil %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Rad %d för lång (max %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Syntaxfel %s:%u: Block börjar utan namn." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Syntaxfel %s:%u: Felformat märke" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Syntaxfel %s:%u: Överflödigt skräp efter värde" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "Syntaxfel %s:%u: Direktiv kan endast utföras på toppnivån" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Syntaxfel %s:%u: För många nästlade inkluderingar" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Syntaxfel %s:%u: Inkluderad härifrån" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Syntaxfel %s:%u: Direktivet \"%s\" stöds ej" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Syntaxfel %s:%u: Överflödigt skräp vid filens slut" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Fel!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Färdig" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Kommandoradsflagga \"%c\" [från %s] är ej känd." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Förstår inte kommandoradsflaggan %s" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Kommandoradsflaggan %s är inte boolsk" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "Flaggan %s kräver ett värde." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "Flagga %s: Den angivna konfigurationsposten måste innehålla =." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "Flaggan %s kräver ett heltalsvärde, inte \"%s\"" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Flaggan \"%s\" är för lång" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "Förstår ej %s, försök med \"true\" eller \"false\"." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Felaktig operation %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Kunde inte ta status på monteringspunkt %s." + +# Felmeddelande för misslyckad chdir +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Kunde inte gå till %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Kunde inte ta status på cd-romen." + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "Använder inte låsning för skrivskyddad låsfil %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Kunde inte öppna låsfilen %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "Använder inte låsning för nfs-monterad låsfil %s" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Kunde inte erhålla låset %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Väntade, på %s men den fanns inte där" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Underprocessen %s råkade ut för ett segmenteringsfel." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Underprocessen %s returnerade en felkod (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Underprocessen %s avslutade oväntat" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Kunde inte öppna filen %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "läsning, har fortfarande %lu att läsa men inget är kvar" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "skrivning, har fortfarande %lu att skriva men kunde ej" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Problem med att stänga filens" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Problem med att länka ut filen" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Problem med att synka filen" + +# Felmeddelande +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Paketcachen är tom" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Paketcachefilen är trasig" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Paketcachefilens version är inkompatibel" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Denna APT stöder inte versionssystemet \"%s\"" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "Paketcachen byggdes för en annan arkitektur" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Beror" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Beror i förväg" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Föreslår" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Rekommenderar" + +# "Konfliktar"? +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "I konflikt med" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Ersätter" + +# "Föråldrar"? +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Gör föråldrad" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "viktigt" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "krävt" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "normalt" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "valfri" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "extra" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Bygger beroendeträd" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Kandiderande versioner" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Beroendegenerering" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Kunde inte tolka paketfilen %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Kunde inte tolka paketfilen %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Rad %lu i källistan %s har fel format (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Rad %lu i källistan %s har fel format (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Rad %lu i källistan %s har fel format (URI-tolkning)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Rad %lu i källistan %s har fel format (Absolut dist)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Rad %lu i källistan %s har fel format (dist-tolkning)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Öppnar %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Rad %u för lång i källistan %s." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Rad %u i källistan %s har fel format (typ)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Typ \"%s\" är okänd på rad %u i listan över källor %s" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Rad %u i källistan %s har fel format (leverantörs-id)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"För att genomföra denna installation måste det systemkritiska paketet %s " +"tillfälligt tas bort på grund av en beroendespiral i Conflicts/Pre-Depends. " +"Detta är oftast en dålig idé, men om du verkligen vill göra det kan du " +"aktivera flaggan \"APT::Force-LoopBreak\"." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Indexfiler av typ \"%s\" stöds inte" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"Paketet %s måste installeras om, men jag kan inte hitta något arkiv för det." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Fel, pkgProblemResolver::Resolve genererade avbrott; detta kan bero på " +"hållna paket." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "Kunde inte korrigera problemen, du har hållt trasiga paket." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Listkatalogen %spartial saknas." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Arkivkatalogen %spartial saknas." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "Hämtar fil %li av %li (%s återstår)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "Hämtar fil %li av %li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Metoddrivrutinen %s kunde inte hittas." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Metoden %s startade inte korrekt" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "Mata in skivan med etiketten \"%s\" i enheten \"%s\" och tryck Enter." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Paketsystemet \"%s\" stöds inte" + +# +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Kunde inte avgöra en lämpligt paketsystemstyp" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Kunde inte ta status på %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "Du måste lägga till några \"source\"-URI:er i din sources.list" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "Paketlistan eller statusfilen kunde inte tolkas eller öppnas." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "Du kan möjligen rätta till problemet genom att köra \"apt-get update\"" + +# "Package" är en sträng i inställningsfilen +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Ogiltig post i inställningsfilen, \"Package\"-huvud saknas" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Förstod inte nåltypen %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Prioritet ej angiven (eller noll) för nål" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Cachen har ett inkompatibelt versionssystem" + +# NewPackage etc. är funktionsnamn +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Fel uppstod vid hantering av %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Fel uppstod vid hantering av %s (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Fel uppstod vid hantering av %s (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Fel uppstod vid hantering av %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Fel uppstod vid hantering av %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Fel uppstod vid hantering av %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Fel uppstod vid hantering av %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "Grattis, du överskred antalet paketnamn denna APT kan hantera." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "Grattis, du överskred antalet versioner denna APT kan hantera." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "Grattis, du överskred antalet beroenden denna APT kan hantera." + +# NewPackage etc. är funktionsnamn +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Fel uppstod vid hantering av %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Fel uppstod vid hantering av %s (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "Paketet %s %s hittades inte när filberoenden hanterades" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Kunde inte ta status på källkodspaketlistan %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Samlar filberoenden" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "In-/utfel vid lagring av källcache" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "namnbyte misslyckades, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "MD5-kontrollsumma stämmer inte" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "Det finns ingen publik nyckel tillgänglig för följande nyckel-id:n:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Jag kunde inte lokalisera någon fil för paketet %s. Detta kan betyda att du " +"manuellt måste reparera detta paket (på grund av saknad arkitektur)." + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Jag kunde inte lokalisera någon fil för paketet %s. Detta kan betyda att du " +"manuellt måste reparera detta paket." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "Paketindexfilerna är trasiga. Inget \"Filename:\"-fält för paketet %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Storleken stämmer inte" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Leverantörsblock %s saknar fingeravtryck" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Använder cd-rom-monteringspunkt %s\n" +"Monterar cd-rom\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Identifierar.. " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Etikett: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Använder cd-rom-monteringspunkt %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "Avmonterar cd-rom\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Väntar på skiva...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Monterar cd-rom...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Söker efter indexfiler på disken...\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "Hittade %i paketindex, %i källkodsindex och %i signaturer\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Namnet är ogiltigt, försök igen.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Denna skiva heter: \n" +"\"%s\"\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Kopierar paketlistor..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Skriver ny källista\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Poster i källistan för denna skiva:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "Avmonterar cd-rom..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "Skrev %i poster.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "Skrev %i poster med %i saknade filer.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "Skrev %i poster med %i filer som inte stämmer\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "Skrev %i poster med %i saknade filer och %i filer som inte stämmer\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "Förbereder %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "Packar upp %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "Förbereder konfigurering av %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "Konfigurerar %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "Installerade %s" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "Förbereder för borttagning av %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "Tar bort %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "Tog bort %s" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "Förbereder att ta bort hela %s" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "Tog bort hela %s" + +#: methods/rred.cc:219 +msgid "Could not patch file" +msgstr "Kunde inte lägga på programfix på filen" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Förbindelsen stängdes i förtid" + +# Felmeddelande för misslyckad chdir +#~ msgid "File date has changed %s" +#~ msgstr "Fildatumet har ändrats %s" + +#~ msgid "Reading file list" +#~ msgstr "Läser fillista" + +#~ msgid "Could not execute " +#~ msgstr "Kunde inte exekvera " + +#~ msgid "Preparing for remove with config %s" +#~ msgstr "Förbereder för borttagning med konfiguration %s" + +#~ msgid "Removed with config %s" +#~ msgstr "Borttagen med konfiguration %s" + +#~ msgid "Unknown vendor ID '%s' in line %u of source list %s" +#~ msgstr "Okänt leverantörs-id \"%s\" pÃ¥ rad %u i källistan %s" + +#~ msgid "" +#~ "Some broken packages were found while trying to process build-" +#~ "dependencies.\n" +#~ "You might want to run `apt-get -f install' to correct these." +#~ msgstr "" +#~ "Trasiga paket hittades när byggberoenden behandlades. Du kan " +#~ "möjligen\n" +#~ "rätta detta genom att köra \"apt-get -f install\"." + +#~ msgid "Sorry, you don't have enough free space in %s to hold all the .debs." +#~ msgstr "" +#~ "Beklagar, men du har inte tillräckligt ledigt utrymme pÃ¥ %s för att " +#~ "lagra alla .deb-filerna." diff --git a/po/tl.po b/po/tl.po new file mode 100644 index 0000000..ae23c5d --- /dev/null +++ b/po/tl.po @@ -0,0 +1,2817 @@ +# Tagalog messages for apt debconf. +# Copyright (C) 2005 Software in the Public Interest, Inc. +# This file is distributed under the same license as apt. +# Itong talaksan ay ipinapamahagi sa parehong lisensya ng apt. +# Eric Pareja , 2005 +# This file is maintained by Eric Pareja +# Itong talaksan ay inaalagaan ni Eric Pareja +# +msgid "" +msgstr "" +"Project-Id-Version: apt\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-03-16 15:53+0800\n" +"Last-Translator: Eric Pareja \n" +"Language-Team: Tagalog \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n>1;\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Paketeng %s bersyon %s ay may kulang na dep:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Hindi mahanap ang paketeng %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Kabuuan ng mga Pakete : " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Normal na Pakete: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Purong Birtwual na Pakete: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Nag-iisang Birtwal na Pakete: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Halong Birtwal na Pakete: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Kulang/Nawawala: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Kabuuan ng Natatanging mga Bersyon: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Kabuuan ng mga Dependensiya: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Kabuuan ng ugnayang Ber/Talaksan: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Kabuuan ng Mapping ng Provides: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Kabuuan ng Globbed String: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Kabuuan ng gamit na puwang ng Dependensiyang Bersyon: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Kabuuan ng Hindi Nagamit na puwang: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Kabuuan ng puwang na napag-tuosan: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Wala sa sync ang talaksan ng paketeng %s." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Kailangan niyong magbigay ng isa lamang na pattern" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Walang nahanap na mga pakete" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Talaksang Pakete:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "Wala sa sync ang cache, hindi ma-x-ref ang talaksang pakete" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Mga naka-Pin na Pakete:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(hindi nahanap)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Nakaluklok: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(wala)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Kandidato: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Naka-Pin na Pakete: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Talaang Bersyon:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s para sa %s %s kinompile noong %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Pag-gamit: apt-cache [mga option] utos\n" +" apt-cache [mga option] add talaksan1 [talaksan2 ...]\n" +" apt-cache [mga option] showpkg pkt1 [pkt2 ...]\n" +" apt-cache [mga option] showsrc pkt1 [pkt2 ...]\n" +"\n" +"apt-cache ay isang kagamitang low-level para sa pag-manipula\n" +"ng mga talaksan sa binary cache ng APT, at upang makakuha ng\n" +"impormasyon mula sa kanila\n" +"\n" +"Mga utos:\n" +" add - Magdagdag ng talaksang pakete sa source cache\n" +" gencaches - Buuin pareho ang cache ng pakete at source\n" +" showpkg - Ipakita ang impormasyon tungkol sa isang pakete\n" +" showsrc - Ipakita ang mga record ng source\n" +" stats - Ipakita ang ilang mga estadistika\n" +" dump - Ipakita ang buong talaksan sa anyong maikli\n" +" dumpavail - Ipakita ang talaksang available sa stdout\n" +" unmet - Ipakita ang mga kulang na mga dependensiya\n" +" search - Maghanap sa listahan ng mga pakete ng regex pattern\n" +" show - Ipakita ang nababasang record ng pakete\n" +" depends - Ipakita ang impormasyon tungkol sa ganap na dependensiya\n" +" ng pakete\n" +" rdepends - Ipakita ang impormasyong kabaliktarang dependensiya ng pakete\n" +" pkgnames - Ipakita ang listahan ng pangalan ng lahat ng mga pakete\n" +" dotty - Bumuo ng graph ng mga pakete para sa GraphVis\n" +" xvcg - Bumuo ng graph ng mga pakete para sa xvcg\n" +" policy - Ipakita ang pagkaayos ng mga policy\n" +"\n" +"Mga option:\n" +" -h Itong tulong na ito.\n" +" -p=? Ang cache ng mga pakete.\n" +" -s=? Ang cache ng mga source.\n" +" -q Huwag ipakita ang hudyat ng progreso.\n" +" -i Ipakita lamang ang importanteng mga dep para sa utos na unmet\n" +" -c=? Basahin ang talaksang pagkaayos na ito\n" +" -o=? Magtakda ng isang option ng pagkaayos, hal. -o dir::cache=/tmp\n" +"Basahin ang pahina ng manwal ng apt-cache(8) at apt.conf(5) para sa \n" +"karagdagang impormasyon\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "Bigyan ng pangalan ang Disk na ito, tulad ng 'Debian 2.1r1 Disk 1'" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Paki-pasok ang isang Disk sa drive at pindutin ang enter" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Ulitin ang prosesong ito para sa lahat ng mga CD sa inyong set." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Mga argumento ay hindi naka-pares" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Pag-gamit: apt-config [mga option] utos\n" +"\n" +"Ang apt-config ay simpleng kagamitan sa pagbasa ng talaksang pagkaayos\n" +"ng APT\n" +"\n" +"Mga utos:\n" +" shell - modong shell\n" +" dump - ipakita ang pagkaayos\n" +"Mga option:\n" +" -h Itong tulong na ito.\n" +" -c=? Basahin itong talaksang pagkaayos\n" +" -o=? Itakda ang isang option sa pagkaayos, hal. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s ay hindi balido na paketeng DEB." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Pag-gamit: apt-extracttemplates talaksan1 [talaksan2 ...]\n" +"\n" +"Ang apt-extracttemplates ay kagamitan sa pagkuha ng info tungkol\n" +"sa pagkaayos at template mula sa mga paketeng debian\n" +"\n" +"Mga opsyon:\n" +" -h Itong tulong na ito\n" +" -t Itakda ang dir na pansamantala\n" +" -c=? Basahin ang talaksang pagkaayos na ito\n" +" -o=? Itakda ang isang optiong pagkaayos, hal. -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Hindi makapagsulat sa %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Hindi makuha ang bersyon ng debconf. Nakaluklok ba ang debconf?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Mahaba masyado ang talaan ng extensyon ng mga pakete" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Error sa pagproseso ng directory %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Mahaba masyado ang talaan ng extensyon ng pagkukunan (source)" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Error sa pagsulat ng panimula sa talaksang nilalaman (contents)" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Error sa pagproseso ng Contents %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Pag-gamit: apt-ftparchive [mga option] utos\n" +"Mga utos: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [mga grupo]\n" +" clean config\n" +"\n" +"Ang apt-ftparchive ay gumagawa ng talaksang index para sa arkibong Debian.\n" +"Suportado nito ang maraming estilo ng pagbuo mula sa awtomatikong buo\n" +"at kapalit ng dpkg-scanpackages at dpkg-scansources\n" +"\n" +"Bumubuo ang apt-ftparchive ng mga talaksang Package mula sa puno ng mga\n" +".deb. Ang talaksang Package ay naglalaman ng laman ng lahat ng control " +"field\n" +"mula sa bawat pakete pati na rin ang MD5 hash at laki ng talaksan. " +"Suportado\n" +"ang pag-gamit ng talaksang override upang pilitin ang halaga ng Priority at " +"Section.\n" +"\n" +"Bumubuo din ang apt-ftparchive ng talaksang Sources mula sa puno ng mga\n" +".dsc. Ang option na --source-override ay maaaring gamitin upang itakda\n" +"ang talaksang override ng src\n" +"\n" +"Ang mga utos na 'packages' at 'sources' ay dapat patakbuhin sa ugat ng\n" +"puno. Kailangan nakaturo ang BinaryPath sa ugat ng paghahanap na recursive\n" +"at ang talaksang override ay dapat naglalaman ng mga flag na override. Ang\n" +"pathprefix ay dinudugtong sa harap ng mga pangalan ng talaksan kung " +"mayroon.\n" +"Halimbawa ng pag-gamit mula sa arkibong Debian:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Mga option:\n" +" -h Itong tulong na ito\n" +" --md5 Pagbuo ng MD5\n" +" -s=? Talaksang override ng source\n" +" -q Tahimik\n" +" -d=? Piliin ang optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Pagbuo ng talaksang contents\n" +" -c=? Basahin itong talaksang pagkaayos\n" +" -o=? Itakda ang isang option na pagkaayos" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Walang mga pinili na tugma" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "May mga talaksang kulang sa grupo ng talaksang pakete `%s'" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "Nasira ang DB, pinalitan ng pangalan ang talaksan sa %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "Luma ang DB, sinusubukang maupgrade ang %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Hindi mabuksan ang talaksang DB %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Bigo ang pag-stat ng %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Walang kontrol rekord ang arkibo" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Hindi makakuha ng cursor" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: Hindi mabasa ang directory %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "W: Hindi ma-stat %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E: Mga error ay tumutukoy sa talaksang " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Bigo sa pag-resolba ng %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Bigo ang paglakad sa puno" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Bigo ang pagbukas ng %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " DeLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Bigo ang pagbasa ng link %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Bigo ang pag-unlink ng %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Bigo ang pag-link ng %s sa %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " DeLink limit na %sB tinamaan.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Walang field ng pakete ang arkibo" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s ay walang override entry\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " Tagapangalaga ng %s ay %s hindi %s\n" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s ay walang override entry\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s ay walang override entry\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Internal error, hindi mahanap ang miyembrong %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - Bigo ang pagreserba ng memory" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Hindi mabuksan %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Maling anyo ng override %s linya %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Maling anyo ng override %s linya %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Maling anyo ng override %s linya %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Bigo ang pagbasa ng talaksang override %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Hindi kilalang algorithmong compression '%s'" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Kailangan ng compression set ang compressed output %s" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Bigo sa paglikha ng IPC pipe sa subprocess" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Bigo ang paglikha ng FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Bigo ang pag-fork" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Anak para sa pag-Compress" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Error na internal, bigo ang paglikha ng %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Bigo ang paglikha ng subprocess IPC" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Bigo ang pag-exec ng taga-compress" + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "taga-decompress" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "Bigo ang IO sa subprocess/talaksan" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Bigo ang pagbasa habang tinutuos ang MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Problema sa pag-unlink ng %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Bigo ang pagpangalan muli ng %s tungong %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "O" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Error sa pag-compile ng regex - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Ang sumusunod na mga pakete ay may kulang na dependensiya:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "ngunit ang %s ay nakaluklok" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "ngunit ang %s ay iluluklok" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "ngunit hindi ito maaaring iluklok" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "ngunit ito ay birtwal na pakete" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "ngunit ito ay hindi nakaluklok" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "ngunit ito ay hindi iluluklok" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " o" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Ang sumusunod na mga paketeng BAGO ay iluluklok:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Ang sumusunod na mga pakete ay TATANGGALIN:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Ang sumusunod na mga pakete ay hinayaang maiwanan:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Ang susunod na mga pakete ay iu-upgrade:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Ang susunod na mga pakete ay ida-DOWNGRADE:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Ang susunod na mga hinawakang mga pakete ay babaguhin:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (dahil sa %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"BABALA: Ang susunod na mga paketeng esensyal ay tatanggalin.\n" +"HINDI ito dapat gawin kung hindi niyo alam ng husto ang inyong ginagawa!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu na nai-upgrade, %lu na bagong luklok, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu iniluklok muli, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu nai-downgrade, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu na tatanggalin at %lu na hindi inupgrade\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu na hindi lubos na nailuklok o tinanggal.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Inaayos ang mga dependensiya..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " ay bigo." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Hindi maayos ang mga dependensiya" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Hindi mai-minimize ang upgrade set" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Tapos" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "Maaari ninyong patakbuhin ang `apt-get -f install' upang ayusin ito." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "May mga kulang na dependensiya. Subukan niyong gamitin ang -f." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "" +"BABALA: Ang susunod na mga pakete ay hindi matiyak ang pagka-awtentiko!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "" +"Ipina-walang-bisa ang babala tungkol sa pagka-awtentiko ng mga pakete.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Iluklok ang mga paketeng ito na walang beripikasyon [o/H]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "May mga paketeng hindi matiyak ang pagka-awtentiko" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "May mga problema at -y ay ginamit na walang --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "" +"Error na internal, tinawagan ang InstallPackages na may sirang mga pakete!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "" +"May mga paketeng kailangang tanggalin ngunit naka-disable ang Tanggal/Remove." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Error na internal, hindi natapos ang pagsaayos na pagkasunud-sunod" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Hindi maaldaba ang directory ng download" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "Hindi mabasa ang talaan ng pagkukunan (sources)." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"Nakapagtataka.. Hindi magkatugma ang laki, mag-email sa apt@packages.debian." +"org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Kailangang kumuha ng %sB/%sB ng arkibo.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Kailangang kumuha ng %sB ng arkibo.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "" +"Matapos magbuklat ay %sB na karagdagang puwang sa disk ang magagamit.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Matapos magbuklat ay %sB na puwang sa disk ang mapapalaya.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Hindi matantsa ang libreng puwang sa %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Kulang kayo ng libreng puwang sa %s." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "Tinakdang Trivial Only ngunit hindi ito operasyong trivial." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Oo, gawin ang sinasabi ko!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Kayo ay gagawa ng bagay na maaaring makasama sa inyong sistema.\n" +"Upang magpatuloy, ibigay ang pariralang '%s'\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Abort." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Nais niyo bang magpatuloy [O/h]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Bigo sa pagkuha ng %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "May mga talaksang hindi nakuha" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Kumpleto ang pagkakuha ng mga talaksan sa modong pagkuha lamang" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Hindi nakuha ang ilang mga arkibo, maaaring patakbuhin ang apt-get update o " +"subukang may --fix-missing?" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing at pagpalit ng media ay kasalukuyang hindi suportado" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Hindi maayos ang mga kulang na pakete." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Ina-abort ang pag-instol." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Paunawa, pinili ang %s imbes na %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" +"Linaktawan ang %s, ito'y nakaluklok na at hindi nakatakda ang upgrade.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "Hindi nakaluklok ang paketeng %s, kaya't hindi ito tinanggal\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Ang paketeng %s ay paketeng birtwal na bigay ng:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Nakaluklok]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Dapat kayong mamili ng isa na iluluklok." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Hindi magamit ang %s, ngunit ito'y tinutukoy ng ibang pakete.\n" +"Maaaring nawawala ang pakete, ito'y laos na, o ito'y makukuha lamang\n" +"sa ibang pinagmulan.\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Gayunpaman, ang sumusunod na mga pakete ay humahalili sa kanya:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Ang paketeng %s ay walang kandidatong maaaring instolahin" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "Ang pagluklok muli ng %s ay hindi maaari, hindi ito makuha.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s ay pinakabagong bersyon na.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Release '%s' para sa '%s' ay hindi nahanap" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Bersyon '%s' para sa '%s' ay hindi nahanap" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Ang napiling bersyon %s (%s) para sa %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "Ang utos na update ay hindi tumatanggap ng mga argumento" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Hindi maaldaba ang directory ng talaan" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"May mga talaksang index na hindi nakuha, sila'y di pinansin, o ginamit ang " +"mga luma na lamang." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Internal error, nakasira ng bagay-bagay ang AllUpgrade" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Hindi mahanap ang paketeng %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Paunawa, pinili ang %s para sa regex '%s'\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "" +"Maaaring patakbuhin niyo ang `apt-get -f install' upang ayusin ang mga ito:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"May mga dependensiyang kulang. Subukan ang 'apt-get -f install' na walang " +"mga pakete (o magtakda ng solusyon)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"May mga paketeng hindi ma-instol. Maaring may hiniling kayong imposible\n" +"o kung kayo'y gumagamit ng pamudmod na unstable ay may ilang mga paketeng\n" +"kailangan na hindi pa nalikha o linipat mula sa Incoming." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Dahil ang hiniling niyo ay mag-isang operasyon, malamang ay ang pakete ay\n" +"hindi talaga mailuklok at kailangang magpadala ng bug report tungkol sa\n" +"pakete na ito." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "" +"Ang sumusunod na impormasyon ay maaaring makatulong sa pag-ayos ng problema:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Sirang mga pakete" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Ang mga sumusunod na extra na pakete ay luluklokin:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Mga paketeng mungkahi:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Mga paketeng rekomendado:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Sinusuri ang pag-upgrade... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Bigo" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Tapos" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "Error na internal, may nasira ang problem resolver" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "Kailangang magtakda ng kahit isang pakete na kunan ng source" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Hindi mahanap ang paketeng source para sa %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Linaktawan ang nakuha na na talaksan '%s'\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Kulang kayo ng libreng puwang sa %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Kailangang kumuha ng %sB/%sB ng arkibong source.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Kailangang kumuha ng %sB ng arkibong source.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Kunin ang Source %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Bigo sa pagkuha ng ilang mga arkibo." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Linaktawan ang pagbuklat ng nabuklat na na source sa %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Bigo ang utos ng pagbuklat '%s'.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Paki-siguro na nakaluklok ang paketeng 'dpkg-dev'.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Utos na build '%s' ay bigo.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Bigo ang prosesong anak" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "Kailangang magtakda ng kahit isang pakete na susuriin ang builddeps" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Hindi makuha ang impormasyong build-dependency para sa %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "Walang build depends ang %s.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"Dependensiyang %s para sa %s ay hindi mabuo dahil ang paketeng %s ay hindi " +"mahanap" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"Dependensiyang %s para sa %s ay hindi mabuo dahil walang magamit na bersyon " +"ng paketeng %s na tumutugon sa kinakailangang bersyon" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Bigo sa pagbuo ng dependensiyang %s para sa %s: Ang naka-instol na paketeng %" +"s ay bagong-bago pa lamang." + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Bigo sa pagbuo ng dependensiyang %s para sa %s: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Hindi mabuo ang build-dependencies para sa %s." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Bigo sa pagproseso ng build dependencies" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Suportadong mga Module:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Pag-gamit: apt-get [mga option] utos\n" +" apt-get [mga option] install|remove pkt1 [pkt2 ...]\n" +" apt-get [mga option] source pkt1 [pkt2 ...]\n" +"\n" +"Ang apt-get ay payak na command line interface para sa pagkuha at\n" +"pag-instol ng mga pakete. Ang pinakamadalas na gamiting utos ay update\n" +"at install.\n" +"\n" +"Mga utos:\n" +" update - Kunin ang bagong listahan ng mga pakete\n" +" upgrade - Gumawa ng upgrade\n" +" install - Mag-instol ng bagong mga pakete (pkt ay libc6 hindi libc6.deb)\n" +" remove - Mag-tanggal ng mga pakete\n" +" source - Kumuha ng arkibong source\n" +" build-dep - Magsaayos ng build-dependencies para sa mga paketeng source\n" +" dist-upgrade - Mag-upgrade ng pamudmod, basahin ang apt-get(8)\n" +" dselect-upgrade - Sundan ang mga pinili sa dselect\n" +" clean - Burahin ang mga nakuhang mga talaksang naka-arkibo\n" +" autoclean - Burahin ang mga lumang naka-arkibo na nakuhang mga talaksan\n" +" check - Tiyakin na walang mga sirang dependensiya\n" +"\n" +"Mga option:\n" +" -h Itong tulong na ito.\n" +" -q Output na maaaring itala - walang indikator ng progreso\n" +" -qq Walang output maliban sa mga error\n" +" -d Kunin lamang - HINDI mag-instol o mag-buklat ng mga arkibo\n" +" -s Walang gagawin. Mag-simulate lamang ang pagkasunod-sunod.\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Subukang magpatuloy kung bigo ang pagsuri ng integridad\n" +" -m Subukang magpatuloy kung hindi mahanap ang mga arkibo\n" +" -u Ipakita rin ang listahan ng mga paketeng i-upgrade\n" +" -b Ibuo ang paketeng source matapos kunin ito\n" +" -V Ipakita ng buo ang bilang ng bersyon\n" +" -c=? Basahin itong talaksang pagkaayos\n" +" -o=? Itakda ang isang option ng pagkaayos, hal. -o dir::cache=/tmp\n" +"Basahin ang pahinang manwal ng apt-get(8), sources.list(5) at apt.conf(5)\n" +"para sa karagdagang impormasyon at mga option.\n" +" Ang APT na ito ay may Kapangyarihan Super Kalabaw.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Tumama " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Kunin: " + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "DiPansin " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Err " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Nakakuha ng %sB ng %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [May ginagawa]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Pagpalit ng Media: Ikasa ang disk na may pangalang\n" +" '%s'\n" +"sa drive '%s' at pindutin ang enter\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Di kilalang record ng pakete!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Pag-gamit: apt-sortpkgs [mga option] talaksan1 [talaksan2 ...]\n" +"\n" +"Ang apt-sortpkgs ay payak na kagamitan upang makapag-sort ng talaksang " +"pakete.\n" +"Ang option -s ay ginagamit upang ipaalam kung anong klaseng talaksan ito.\n" +"\n" +"Mga option:\n" +" -h Itong tulong na ito\n" +" -s Gamitin ang pag-sort ng talaksang source\n" +" -c=? Basahin ang talaksang pagkaayos na ito\n" +" -o=? Itakda ang isang option ng pagkaayos, hal. -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Maling nakatakda na default!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Pindutin ang enter upang magpatuloy." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "May mga error na naganap habang nagbubuklat. Isasaayos ko ang" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "mga paketeng naluklok. Maaaring dumulot ito ng mga error na doble" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" +"o mga error na dulot ng kulang na dependensiya. Ito ay ayos lamang, yun lang" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"sa taas nitong kalatas ang importante. Paki-ayusin ang mga ito at patakbuhin " +"muli ang [I]luklok/Instol." + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Pinagsasama ang magagamit na impormasyon" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Bigo sa paglikha ng mga pipe" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Bigo sa pagtakbo ng gzip " + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Sirang arkibo" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Bigo ang checksum ng tar, sira ang arkibo" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Hindi kilalang uri ng TAR header %u, miyembrong %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Hindi tanggap na signature ng arkibo" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Error sa pagbasa ng header ng miyembro ng arkibo" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Hindi tanggap na header ng miyembro ng arkibo" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Bitin ang arkibo. Sobrang iksi." + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Bigo ang pagbasa ng header ng arkibo" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "Tinawagan ang DropNode sa naka-link pa na node" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Bigo sa paghanap ng elemento ng hash!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Bigo ang pagreserba ng diversion" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Internal error sa AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Sinusubukang patungan ang diversion, %s -> %s at %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Dobleng pagdagdag ng diversion %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Nadobleng talaksang conf %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Bigo sa pagsulat ng talaksang %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Bigo sa pagsara ng talaksang %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "Sobrang haba ang path na %s" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Binubuklat ang %s ng labis sa isang beses" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "Ang directory %s ay divertado" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "Ang pakete ay sumusubok na magsulat sa target na diversion %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Sobrang haba ng path na diversion" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "Ang directory %s ay papalitan ng hindi-directory" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Bigo ang paghanap ng node sa kanyang hash bucket" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Sobrang haba ng path" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Patungan ng paketeng nag-match na walang bersion para sa %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Ang talaksang %s/%s ay pumapatong sa isang talaksan sa paketeng %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Hindi mabasa ang %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Hindi ma-stat ang %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Bigo sa pagtanggal ng %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Hindi malikha ang %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Bigo sa pag-stat ng %sinfo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "Ang info at temp directory ay kailangang nasa parehong filesystem" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Binabasa ang Listahan ng mga Pakete" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Bigo sa paglipat sa admin dir %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Internal error sa pagkuha ng pangalan ng pakete" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Binabasa ang Talaksang Listahan" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Bigo sa pagbukas ng talaksang listahan '%sinfo/%s'. Kung hindi niyo maibalik " +"ang talaksang ito, gawin itong walang laman at muling instolahin kaagad ang " +"parehong bersyon ng pakete!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Bigo sa pagbasa ng talaksang listahan %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Internal error sa pagkuha ng Node" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Bigo sa pagbukas ng talaksang diversions %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Ang talaksang diversion ay sira" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Di tanggap na linya sa talaksang diversion: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Internal error sa pagdagdag ng diversion" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "Ang cache ng pkg ay dapat ma-initialize muna" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Bigo sa paghanap ng Pakete: Header, offset %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Maling ConfFile section sa talaksang status. Offset %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Error sa pag-parse ng MD5. Offset %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Hindi ito tanggap na arkibong DEB, may kulang na miyembrong '%s'" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "" +"Hindi ito tanggap na arkibong DEB, may kulang na miyembrong '%s' o '%s'" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Hindi makalipat sa %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Internal error, hindi mahanap ang miyembro" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Bigo sa paghanap ng tanggap na talaksang control" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Di maintindihang talaksang control" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Hindi mabasa ang database ng cdrom %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Paki-gamit ang apt-cdrom upang makilala ng APT itong CD na ito. Hindi " +"maaaring gamitin ang apt-get update upang magdagdag ng bagong mga CD" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "Maling CD" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "Hindi mai-unmount ang CD-ROM sa %s, maaaring ginagamit pa ito." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Hindi nahanap ang Disk." + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Hindi Nahanap ang Talaksan" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Bigo ang pag-stat" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Bigo ang pagtakda ng oras ng pagbago" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "Di tanggap na URI, mga lokal na URI ay di dapat mag-umpisa ng //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Pumapasok" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Hindi malaman ang pangalan ng peer" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Hindi malaman ang pangalang lokal" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Inayawan ng server ang ating koneksyon at ang sabi ay: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "Bigo ang USER/GUMAGAMIT, sabi ng server ay: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "Bigo ang PASS, sabi ng server ay: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"May tinakdang katuwang na server ngunit walang login script, walang laman " +"ang Acquire::ftp::ProxyLogin." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Bigo ang utos sa login script '%s', sabi ng server ay: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "Bigo ang TYPE, sabi ng server ay: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Lumipas ang koneksyon" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Sinarhan ng server ang koneksyon" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Error sa pagbasa" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "May sagot na bumubo sa buffer." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Sira ang protocol" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Error sa pagsulat" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Hindi maka-likha ng socket" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "Hindi maka-konek sa socket ng datos, nag-time-out ang koneksyon" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Hindi maka-konek sa socket na passive." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "di makakuha ang getaddrinfo ng socket na nakikinig" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Hindi maka-bind ng socket" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Hindi makarinig sa socket" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Hindi malaman ang pangalan ng socket" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Hindi makapagpadala ng utos na PORT" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Di kilalang pamilya ng address %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "Bigo ang EPRT, sabi ng server ay: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Nag-timeout ang socket ng datos" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Hindi makatanggap ng koneksyon" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Problema sa pag-hash ng talaksan" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Hindi makakuha ng talaksan, sabi ng server ay '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Nag-timeout ang socket ng datos" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Bigo ang paglipat ng datos, sabi ng server ay '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Tanong" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Hindi ma-invoke " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Kumokonek sa %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Hindi makalikha ng socket para sa %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Hindi maumpisahan ang koneksyon sa %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Hindi maka-konek sa %s:%s (%s), nag-timeout ang koneksyon" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Hindi maka-konek sa %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Kumokonek sa %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Hindi maresolba ang '%s'" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Pansamantalang kabiguan sa pagresolba ng '%s'" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "May naganap na kababalaghan sa pagresolba ng '%s:%s' (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Hindi maka-konek sa %s %s:" + +#: methods/gpgv.cc:65 +#, fuzzy, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Hindi maresolba ang '%s'" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" +"E: Sobrang haba ng talaan ng argumento mula sa Acquire::gpgv::Options. " +"Lalabas." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" +"Error na internal: Tanggap na lagda, ngunit hindi malaman ang key " +"fingerprint?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Hindi kukulang sa isang hindi tanggap na lagda ang na-enkwentro." + +#: methods/gpgv.cc:213 +#, fuzzy, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr " upang maberipika ang lagda (nakaluklok ba ang gnupg?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Hindi kilalang error sa pag-execute ng gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "Ang sumusunod na mga lagda ay imbalido:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"Ang sumusunod na mga lagda ay hindi maberipika dahil ang public key ay hindi " +"available:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Hindi makapag-bukas ng pipe para sa %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Error sa pagbasa mula sa prosesong %s" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Naghihintay ng panimula" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Nakatanggap ng isang linyang panimula mula %u na mga karakter" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Maling linyang panimula" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "Nagpadala ang HTTP server ng di tanggap na reply header" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "Nagpadala ang HTTP server ng di tanggap na Content-Length header" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "Nagpadala ang HTTP server ng di tanggap na Content-Range header" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "Sira ang range support ng HTTP server na ito" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Di kilalang anyo ng petsa" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Bigo ang pagpili" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Nag-timeout ang koneksyon" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Error sa pagsulat ng talaksang output" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Error sa pagsulat sa talaksan" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Error sa pagsusulat sa talaksan" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "Error sa pagbasa mula sa server, sinarhan ng remote ang koneksyon" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Error sa pagbasa mula sa server" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Maling datos sa panimula" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Bigo ang koneksyon" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Internal na error" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Hindi mai-mmap ang talaksang walang laman" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Hindi makagawa ng mmap ng %lu na byte" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Piniling %s ay hindi nahanap" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Hindi kilalang katagang uri: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Binubuksan ang talaksang pagsasaayos %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Labis ang haba ng linyang %d (max %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Syntax error %s:%u: Nag-umpisa ang block na walang pangalan." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Syntax error %s:%u: Maling anyo ng Tag" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Syntax error %s:%u: May basura matapos ng halaga" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" +"Syntax error %s:%u: Maaari lamang gawin ang mga direktiba sa tuktok na antas" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Syntax error %s:%u: Labis ang pagkaka-nest ng mga include" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Syntax error %s:%u: Sinama mula dito" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Syntax error %s:%u: Di suportadong direktiba '%s'" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Syntax error %s:%u: May basura sa dulo ng talaksan" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Error!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Tapos" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Opsyon sa command line '%c' [mula %s] ay di kilala." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Opsyon sa command line %s ay di naintindihan." + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Opsyon sa command line %s ay hindi boolean" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "Opsyon %s ay nangangailangan ng argumento" + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "" +"Opsyon %s: Ang pagtakda ng aytem sa pagkaayos ay nangangailangan ng " +"=." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "Opsyon %s ay nangangailangan ng argumentong integer, hindi '%s'" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Opsyon '%s' ay labis ang haba" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "Hindi naintindihan ang %s, subukan ang true o false." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Di tanggap na operasyon %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Di mai-stat ang mount point %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Di makalipat sa %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Bigo sa pag-stat ng cdrom" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "" +"Hindi ginagamit ang pagaldaba para sa basa-lamang na talaksang aldaba %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Hindi mabuksan ang talaksang aldaba %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "" +"Hindi gumagamit ng pag-aldaba para sa talaksang aldaba %s na naka-mount sa " +"nfs" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "hindi makuha ang aldaba %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Naghintay, para sa %s ngunit wala nito doon" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Nakatanggap ang sub-process %s ng segmentation fault." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Naghudyat ang sub-process %s ng error code (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Ang sub-process %s ay lumabas ng di inaasahan" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Hindi mabuksan ang talaksang %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "pagbasa, mayroong %lu na babasahin ngunit walang natira" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "pagsulat, mayroon pang %lu na isusulat ngunit hindi makasulat" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Problema sa pagsara ng talaksan" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Problema sa pag-unlink ng talaksan" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Problema sa pag-sync ng talaksan" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Walang laman ang cache ng pakete" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Sira ang talaksan ng cache ng pakete" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Ang talaksan ng cache ng pakete ay hindi magamit na bersyon" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Ang APT na ito ay hindi nagsusuporta ng versioning system '%s'" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "Ang cache ng pakete ay binuo para sa ibang arkitektura" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Dependensiya" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "PreDepends" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Mungkahi" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Rekomendado" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Tunggali" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Pumapalit" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Linalaos" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "importante" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "kailangan" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "standard" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "optional" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "extra" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Ginagawa ang puno ng mga dependensiya" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Bersyong Kandidato" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Pagbuo ng Dependensiya" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Hindi ma-parse ang talaksang pakete %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Hindi ma-parse ang talaksang pakete %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Maling anyo ng linyang %lu sa talaan ng pagkukunan %s (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Maling anyo ng linyang %lu sa talaan ng pagkukunan %s (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Maling anyo ng linyang %lu sa talaan ng pagkukunan %s (URI parse)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Maling anyo ng linyang %lu sa talaan ng pagkukunan %s (absolute dist)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Maling anyo ng linyang %lu sa talaan ng pagkukunan %s (dist parse)<" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Binubuksan %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Labis ang haba ng linyang %u sa talaksang pagkukunan %s." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Maling anyo ng linyang %u sa talaksang pagkukunan %s (uri)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Hindi kilalang uri '%s' sa linyang %u sa talaksan ng pagkukunan %s" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Maling anyo ng linyang %u sa talaksang pagkukunan %s (vendor id)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Ang takbo ng pag-instol na ito ay nangangailangan ng pansamantalang " +"pagtanggal ng paketeng esensyal na %s dahil sa isang Conflicts/Pre-Depends " +"loop. Madalas ay masama ito, ngunit kung nais niyo talagang gawin ito, i-" +"activate ang APT::Force-LoopBreak na option." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Hindi suportado ang uri ng talaksang index na '%s'" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"Kailangan ma-instol muli ang paketeng %s, ngunit hindi ko mahanap ang arkibo " +"para dito." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Error, pkgProblemResolver::Resolve ay naghudyat ng mga break, maaaring dulot " +"ito ng mga paketeng naka-hold." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "" +"Hindi maayos ang mga problema, mayroon kayong sirang mga pakete na naka-hold." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Nawawala ang directory ng talaan %spartial." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Nawawala ang directory ng arkibo %spartial." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, fuzzy, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "Kinukuha ang talaksang %li ng %li (%s ang natitira)" + +#: apt-pkg/acquire.cc:825 +#, fuzzy, c-format +msgid "Retrieving file %li of %li" +msgstr "Binabasa ang Talaksang Listahan" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Ang driver ng paraang %s ay hindi mahanap." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Hindi umandar ng tama ang paraang %s" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "" +"Ikasa ang disk na may pangalang: '%s' sa drive '%s' at pindutin ang enter." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Hindi suportado ang sistema ng paketeng '%s'" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Hindi matuklasan ang akmang uri ng sistema ng pakete " + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Hindi ma-stat ang %s" + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "Kailangan niyong maglagay ng 'source' URIs sa inyong sources.list" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" +"Hindi ma-parse o mabuksan ang talaan ng mga pakete o ng talaksang estado." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "" +"Maaaring patakbuhin niyo ang apt-get update upang ayusin ang mga problemang " +"ito" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Di tanggap na record sa talaksang pagtatangi, walang Package header" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Hindi naintindihan ang uri ng pin %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Walang prioridad (o sero) na nakatakda para sa pin" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Hindi akma ang versioning system ng cache" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "May naganap na error habang prinoseso ang %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "May naganap na error habang prinoseso ang %s (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "May naganap na error habang prinoseso ang %s (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "May naganap na error habang prinoseso ang %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "May naganap na error habang prinoseso ang %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "May naganap na error habang prinoseso ang %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "May naganap na error habang prinoseso ang %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" +"Wow, nalagpasan niyo ang bilang ng pangalan ng pakete na kaya ng APT na ito." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "Wow, nalagpasan niyo ang bilang ng bersyon na kaya ng APT na ito." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "Wow, nalagpasan niyo ang bilang ng dependensiya na kaya ng APT na ito." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "May naganap na error habang prinoseso ang %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "May naganap na Error habang prinoseso ang %s (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "" +"Hindi nahanap ang paketeng %s %s habang prinoseso ang mga dependensiya." + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Hindi ma-stat ang talaan ng pagkukunan ng pakete %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Kinukuha ang Talaksang Provides" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "IO Error sa pag-imbak ng source cache" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "pagpalit ng pangalan ay bigo, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "Di tugmang MD5Sum" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "Walang public key na magagamit para sa sumusunod na key ID:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Hindi ko mahanap ang talaksan para sa paketeng %s. Maaaring kailanganin " +"niyong ayusin ng de kamay ang paketeng ito. (dahil sa walang arch)" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Hindi ko mahanap ang talaksan para sa paketeng %s. Maaaring kailanganin " +"niyong ayusin ng de kamay ang paketeng ito." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"Sira ang talaksang index ng mga pakete. Walang Filename: field para sa " +"paketeng %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Di tugmang laki" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Block ng nagbebenta %s ay walang fingerprint" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Ginagamit ang %s bilang mount point ng CD-ROM\n" +"Sinasalang ang CD-ROM\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Kinikilala..." + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Naka-imbak na Label: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Ginagamit ang %s bilang mount point ng CD-ROM\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "Ina-unmount ang CD-ROM\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Hinihintay ang disc...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Sinasalang ang CD-ROM...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Sinisiyasat ang Disc para sa talaksang index...\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "" +"Nakahanap ng %i na index ng mga pakete, %i na index ng source at %i na " +"signature\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Hindi yan tanggap na pangalan, subukan muli.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Ang Disc na ito ay nagngangalang: \n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Kinokopya ang Listahan ng mga Pakete" + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Sinusulat ang bagong listahan ng pagkukunan\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Mga nakatala sa Listahan ng Source para sa Disc na ito ay:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "Ina-unmount ang CD-ROM..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "Nagsulat ng %i na record.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "Nagsulat ng %i na record na may %i na talaksang kulang.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "Nagsulat ng %i na record na may %i na talaksang mismatch\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" +"Nagsulat ng %i na record na may %i na talaksang kulang at %i na talaksang " +"mismatch\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "Hinahanda ang %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "Binubuklat ang %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "Hinahanda ang %s upang isaayos" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "Isasaayos ang %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "Iniluklok ang %s" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "Naghahanda para sa pagtanggal ng %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "Tinatanggal ang %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "Tinanggal ang %s" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, fuzzy, c-format +msgid "Preparing to completely remove %s" +msgstr "Hinahanda ang %s upang isaayos" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, fuzzy, c-format +msgid "Completely removed %s" +msgstr "Bigo sa pagtanggal ng %s" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Hindi mabuksan ang talaksang %s" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Nagsara ng maaga ang koneksyon" + +#~ msgid "File date has changed %s" +#~ msgstr "Nagbago ang petsa ng talaksang %s" + +#~ msgid "Reading file list" +#~ msgstr "Binabasa ang Talaksang Listahan" + +#~ msgid "Could not execute " +#~ msgstr "Hindi ma-execute ang " + +#~ msgid "Preparing for remove with config %s" +#~ msgstr "Naghahanda upang tanggalin ang %s kasama ang pagkasaayos nito" + +#~ msgid "Removed with config %s" +#~ msgstr "Tinanggal ang %s kasama ang pagkasaayos nito" + +#~ msgid "Unknown vendor ID '%s' in line %u of source list %s" +#~ msgstr "" +#~ "Hindi kilalang vendor ID '%s' sa linya %u ng talaksang pagkukunan %s" diff --git a/po/uk.po b/po/uk.po new file mode 100644 index 0000000..a2848d0 --- /dev/null +++ b/po/uk.po @@ -0,0 +1,2803 @@ +# translation of apt-all.po to Українська +# This file is put in the public domain. +# +# Artem Bondarenko , 2006. +msgid "" +msgstr "" +"Project-Id-Version: apt-all\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-10-11 20:34+0200\n" +"PO-Revision-Date: 2006-07-29 15:57+0300\n" +"Last-Translator: Artem Bondarenko \n" +"Language-Team: Українська \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.1\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Пакунок %s версії %s має незадоволену залежність:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Не можу знайти пакунок %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Всього імен пакунків : " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Нормальних пакунків: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Чисто віртуальних пакунків: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Окремих віртуальних пакунків: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Змішаних віртуальних пакунків: " + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Пропущено: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Всього унікальних версій: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Всього залежностей: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Всього відносин Версія/Файл: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Всього відносин Provides: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Всього розгорнутих рядків: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Всього інформації про залежності: " + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Порожнього місця в кеші: " + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Загальний простір полічений для: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Перелік пакунків %s розсинхронізований." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Ви повинні задати рівно один шаблон" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Не знайдено жодного пакунка" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Переліки пакунків:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "Кеш не синхронізований, неможливо знайти посилання на перелік пакунків" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Зафіксовані пакунки:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(не знайдено)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Встановлено: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(відсутній)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Кандидат: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Фіксатор(pin) пакунка: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Таблиця версій:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s для %s %s скомпільовано %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Використання: apt-cache [options] command\n" +" або: apt-cache [options] add file1 [file1 ...]\n" +" або: apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" або: apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache - низькорівневий інструмент, що використається для керування\n" +"двійковими кеш-файлами APT'а, а також для добування інформації з них\n" +"Команди:\n" +" add - додати файл пакунка в кеш джерел\n" +" gencaches - побудувати обидва кеша пакунків - бінарних і з вихідними " +"текстами\n" +" showpkg - загальна інформація про конкретний пакунок\n" +" stats - основна статистика\n" +" dump - показати весь файл у стислій формі\n" +" dumpavail - видати на stdout список доступних пакунків\n" +" unmet - показати незадоволені залежності\n" +" search - знайти пакунки, назва яких задовольняє регулярний вираз\n" +" show - показати інформацію про пакунок в зрозумілій формі\n" +" depends - показати інформацію про залежності пакунка построково\n" +" rdepends - показати інформацію про зворотні залежності пакунка\n" +" pkgnames - показати імена всіх пакунків\n" +" dotty - генерувати граф залежностей пакунків у форматі GraphVis\n" +" xvcg - генерувати граф залежностей пакунків у форматі xvcg\n" +" policy - показати поточну політику вибору пакунків\n" +"\n" +"Опції:\n" +" -h Цей текст.\n" +" -p=? Кеш пакунків.\n" +" -s=? Кеш джерел.\n" +" -q Не показувати індикатор прогресу.\n" +" -i Показувати тільки важливі залежності для команди unmet.\n" +" -c=? Читати зазначений файл конфігурації.\n" +" -o=? Встановити довільну опцію конфігурації, наприклад, -o dir::cache=/" +"tmp\n" +"Подробиці в сторінках керівництва apt-cache(8) і apt.conf(5).\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "Задайте назву для цього диска, наприклад 'Debian 2.1r1 Disk 1'" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Вставте диск у пристрій і натисніть Ввід" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Повторіть цей процес для інших наявних CD." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Непарні аргументи" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Використання: apt-config [options] command\n" +"\n" +"apt-config - простий інструмент для читання конфігураційного файлу APT\n" +"\n" +"Команди:\n" +" shell - режим shell\n" +" dump - показати конфігурацію\n" +"\n" +"Опції:\n" +" -h Цей текст.\n" +" -с=? Читати зазначений конфігураційний файл.\n" +" -o=? Встановити довільну опцію, наприклад, -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s не є правильним DEB-пакунком." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Використання: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates витягує з пакунків Debian конфігураційні скрипти\n" +"і файли-шаблони\n" +"\n" +"Опції:\n" +" -h Цей текст\n" +" -t Встановити теку для тимчасових файлів\n" +" -c=? Читати зазначений конфігураційний файл\n" +" -o=? Вказати довільну опцію, наприклад, -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Неможливо записати в %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Неможливо визначити версію debconf. Він встановлений?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Список розширень, припустимих для пакунків, занадто довгий" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Помилка обробки течи %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "" +"Список розширень, припустимих для пакунків з вихідними текстами, занадто " +"довгий" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Помилка запису заголовка в повний перелік вмісту пакунків (Contents)" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "помилка обробки повного переліку вмісту пакунків (Contents) %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Використання: apt-ftparchive [параметри] команда\n" +"Команди: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive генерує індексні файли архівів Debian. Він підтримує\n" +"безліч стилів генерації: від повністю автоматичного до функціональної " +"заміни\n" +"програм dpkg-scanpackages і dpkg-scansources\n" +"\n" +"apt-ftparchive генерує файли Package (переліки пакунків) для дерева\n" +"тек, що містять файли .deb. Файл Package містить у собі керуючі\n" +"поля кожного пакунка, а також хеш MD5 і розмір файлу. Значення керуючих\n" +"полів \"пріоритет\" (Priority) і \"секція\" (Section) можуть бути змінені з\n" +"допомогою файлу override.\n" +"\n" +"Крім того, apt-ftparchive може генерувати файли Sources з дерева\n" +"тек, що містять файли .dsc. Для вказівки файлу override у цьому \n" +"режимі можна використати параметр --source-override.\n" +"\n" +"Команди 'packages' і 'sources' треба виконувати, перебуваючи в кореневій " +"теці\n" +"дерева, що ви хочете обробити. BinaryPath повинен вказувати на місце,\n" +"з якого починається рекурсивний обхід, а файл перепризначень (override)\n" +"повинен містити запис про перепризначення керуючих полів. Якщо був " +"зазначений\n" +"Pathprefix, то його значення додається до керуючих полів, що містять\n" +"імена файлів. Приклад використання для архіву Debian:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Параметри:\n" +" -h Цей текст\n" +" --md5 Керування генерацією MD5-хешів\n" +" -s=? Вказати файл перепризначень (override) для пакунків з вихідними " +"текстами\n" +" -q Не виводити повідомлення в процесі роботи\n" +" -d=? Вказати кешуючу базу даних (не обов'язково)\n" +" --no-delink Включити режим налагодження процесу видалення файлів\n" +" --contents Керування генерацією повного переліку вмісту пакунків\n" +" (файлу Contents)\n" +" -c=? Використати зазначений конфігураційний файл\n" +" -o=? Вказати довільний параметр конфігурації" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Збігів не виявлено" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "У групі пакунків '%s' відсутні деякі файли" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "БД була пошкоджена, файл перейменований в %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "DB застаріла, намагаюсь оновити %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"Формати DB не є правильним. Якщо ви оновилися зі старої версії apt, будь-" +"ласка видаліть і наново створіть базу." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Не вдалося відкрити DB файл %s: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Не вдалося одержати атрибути %s" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "В архіві немає поля control" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Неможливо одержати курсор" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: Не вдалося прочитати теку %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "W: Неможливо прочитати атрибути %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E: Помилки відносяться до файлу" + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Не вдалося піти по посиланню %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Не вдалося зробити обхід дерева" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Не вдалося відкрити %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr "DeLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Не вдалося прочитати посилання %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Не вдалося видалити %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Не вдалося створити посилання %s на %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr "Перевищено ліміт в %s в DeLink.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "В архіві немає поля package" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " Відсутній запис про перепризначення для %s\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " пакунок %s супроводжує %s, а не %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr "" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr "" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Внутрішня помилка, не можу знайти складову частину %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - не вдалося виділити пам'ять" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Не вдалося відкрити %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Спотворений запис про перепризначення (override) %s на рядку %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Спотворений запис про перепризначення (override) %s на рядку %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Спотворений запис про перепризначення (override) %s на рядку %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Не вдалося прочитати файл перепризначень (override)%s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Невідомий алгоритм стиснення '%s'" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Для отримання стиснутого виводу %s необхідно ввімкнути пакування" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Не вдалося створити IPC-канал для породженого процесу" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Не вдалося створити FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Не вдалося виконати породжений процес" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Процес-нащадок, що виконує пакування" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Внутрішня помилка, не вдалося створити %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Не вдалося створити IPC з породженим процесом" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Не вдалося виконати компресор " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "декомпресор" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "Помилка уведення/виводу в підпроцес/файл" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Помилка читання під час обчислення MD5" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Не вдалося видалити %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Не вдалося перейменувати %s в %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "Т" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Помилка компіляції регулярного виразу - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Пакунки, що мають незадоволені залежності:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "але %s вже встановлений" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "але %s буде встановлений" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "але він не може бути встановлений" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "але це віртуальний пакунок" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "але він не встановлений" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "але він не буде встановлений" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " чи" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "НОВІ пакунки, які будуть встановлені:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Пакунки, які будуть ВИДАЛЕНІ:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Пакунки, які будуть залишені в незмінному вигляді:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Пакунки, які будуть ОНОВЛЕНІ:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Пакунки, будуть замінені на більш СТАРІ версії:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Пакунки, які повинні були б залишитися без змін, але будуть замінені:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (внаслідок %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"УВАГА: Ці істотно важливі пакунки будуть вилучені.\n" +"НЕ РОБІТЬ цього, якщо ви НЕ уявляєте собі всі можливі наслідки!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "оновлено %lu, встановлено %lu нових пакунків, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr " %lu перевстановлено, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu пакунків замінено на старі версії, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "для видалення відмічено %lu пакунків, і %lu пакунків не оновлено.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "не встановлено до кінця чи видалено %lu пакунків.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Виправлення залежностей..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " невдача." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Неможливо скоригувати залежності" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Неможливо мінімізувати набір оновлень" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Виконано" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "" +"Можливо, для виправлення цих помилок ви захочете скористатися 'apt-get -f " +"install'." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "Незадоволені залежності. Спробуйте використати -f." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "УВАГА: Наступні пакунки неможливо автентифікувати!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Автентифікаційне попередження не прийнято до уваги.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Встановити ці пакунки без перевірки [т/Н]? " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Деякі пакунки неможливо автентифікувати" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Існують проблеми, а опція -y використана без --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "" +"Внутрішня помилка, InstallPackages була викликана з непрацездатними " +"пакунками!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Пакунки необхідно видалити, але видалення заборонене." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Внутрішня помилка, Ordering не завершилася" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Неможливо заблокувати теку для завантаження" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "Неможливо прочитати перелік джерел." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "Дивно.. Розбіжність розмірів, напишіть на apt@packages.debian.org" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Необхідно завантажити %sB/%sB архівів.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Необхідно завантажити %sB архівів.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "Після розпакування об'єм зайнятого дискового простору зросте на %sB.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "" +"Після розпакування об'єм зайнятого дискового простору зменшиться на %sB.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Не вдалося визначити кількість вільного місця в %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Недостатньо вільного місця в %s." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "" +"Запитане виконання тільки тривіальних операцій, але це не тривіальна " +"операція." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Так, робити, як я скажу!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Те, що ви хочете зробити, може мати небажані наслідки.\n" +"Щоб продовжити, введіть фразу: '%s'\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Перервано." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Бажаєте продовжити [Т/н]? " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Не вдалося завантажити %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Деякі файли не вдалося завантажити" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Вказано режим \"тільки завантаження\", і завантаження завершено" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Неможливо завантажити деякі архіви, імовірно треба виконати apt-get update " +"або спробувати повторити запуск з ключем --fix-missing?" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "--fix-missing і зміна носія в даний момент не підтримується" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Неможливо виправити втрачені пакунки." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Переривається встановлення." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Помітьте, замість %2$s вибирається %1$s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" +"Пропускається %s - пакунок вже встановлений, і опція upgrade не " +"встановлена.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "Пакунок %s не встановлений, тому не може бути видалений\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Пакунок %s - віртуальний, його функції надаються пакунками:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Встановлено]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Ви повинні явно вказати, який саме ви хочете встановити." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Пакунок %s недоступний, але згадується у переліку залежностей іншого " +"пакунка.\n" +"Це може означати, що пакунок відсутній, застарів, або доступний з джерел, не " +"згаданих в sources.list\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Однак наступні пакунки можуть його замінити:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Для пакунка %s не знайдені кандидати на встановлення" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "Перевстановлення %s неможливе, бо він не може бути завантаженим.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "Вже встановлена найновіша версія %s.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Реліз '%s' для '%s' не знайдений" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Версія '%s' для '%s' не знайдена" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Обрана версія %s (%s) для %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "Команді update не потрібні аргументи" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Неможливо заблокувати теку з переліками пакунків" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Деякі індексні файли не завантажилися, вони були зігноровані або замість них " +"були використані старі версії." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Внутрішня помилка, AllUpgrade все поламав" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Не можу знайти пакунок %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Помітьте, регулярний вираз %2$s призводить до вибору %1$s\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "" +"Можливо, для виправлення цих помилок Ви захочете скористатися 'apt-get -f " +"install':" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Незадоволені залежності. Спробуйте виконати 'apt-get -f install', не " +"вказуючи імені пакунка (або знайдіть інше рішення)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Деякі пакунки неможливо встановити. Можливо, Ви просите неможливого,\n" +"або ж використаєте нестабільний дистрибутив, і запитані Вами пакунки\n" +"ще не створені або були вилучені з Incoming." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Так як Ви просили виконати тільки одну операцію, те найімовірніше, що\n" +"пакунок просто не може бути встановлений через помилки в самому пакунку.\n" +"Необхідно відіслати звіт про цю помилку." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "Наступна інформація можливо допоможе Вам:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Зламані пакунки" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Будуть встановлені наступні додаткові пакунки:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Пропоновані пакунки:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Рекомендовані пакунки:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Обчислення оновлень... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Невдача" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Виконано" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "Внутрішня помилка, вирішувач проблем все поламав" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "" +"Вкажіть як мінімум один пакунок, для якого необхідно завантажити вихідні " +"тексти" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Неможливо знайти пакунок з вихідними текстами для %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Пропускаємо вже завантажений файл '%s'\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Недостатньо місця в %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Необхідно завантажити %sB/%sB з архівів вихідних текстів.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Потрібно завантажити %sB архівів з вихідними текстами.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Завантаження вихідних текстів %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Деякі архіви не вдалося завантажити." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "" +"Розпакування вихідних текстів пропущено, тому що в %s вже перебувають " +"розпаковані вихідні тексти\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Команда розпакування '%s' завершилася невдало.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Перевірте, чи встановлений пакунок 'dpkg-dev'.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Команда побудови '%s' закінчилася невдало.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Породжений процес завершився невдало" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"Для перевірки залежностей для побудови необхідно вказати як мінімум один " +"пакунок" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Неможливо одержати інформацію про залежності для побудови %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s не має залежностей для побудови.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" +"Залежність типу %s для %s не може бути задоволена, бо пакунок %s не знайдено" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"Залежність типу %s для %s не може бути задоволена, бо ні одна з версій " +"пакунка %s не задовольняє умови" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Не вдалося задовольнити залежність типу %s для пакунка %s: Встановлений " +"пакунок %s новіше, аніж треба" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Неможливо задовольнити залежність типу %s для пакунка %s: %s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Залежності для побудови %s не можуть бути задоволені." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Обробка залежностей для побудови закінчилася невдало" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Підтримувані модулі:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Використання: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get - простий інтерфейс командного рядка для завантаження й\n" +"встановлення пакунків. Найбільш часто використовувані команди - update \n" +"і install.\n" +"\n" +"Команди:\n" +" update - завантажити нові переліки пакунків\n" +" upgrade - виконати оновлення пакунків\n" +" install - встановити нові пакунки (назва пакунка вказується\n" +" як libc6, а не libc6.deb)\n" +" remove - видалити пакунок\n" +" source - завантажити архіви з вихідними текстами\n" +" build-dep - завантажити все необхідне для побудови зазначеного\n" +" пакунку з вихідних текстів\n" +" dist-upgrade - оновити всю систему, докладніше - в apt-get(8)\n" +" dselect-upgrade - керуватися вибором, зробленим в dselect'і\n" +" clean - видалити завантажені архіви\n" +" autoclean - видалити старі завантажені архіви\n" +" check - перевірити наявність порушених залежностей\n" +"\n" +"Опції:\n" +" -h Цей текст.\n" +" -q Виводити повідомлення, придатні для запису у файл журналу.\n" +" Не виводити індикатор прогресу\n" +" -qq Виводити тільки повідомлення про помилки\n" +" -d Тільки завантажити - не встановлювати й не розпаковувати архіви\n" +" -s Не виконувати дії насправді. Імітація роботи\n" +" -y Відповідати \"Так\" на всі питання. Самі питання при цьому не " +"виводяться\n" +" -f Продовжувати, навіть якщо перевірка цілісності не пройшла\n" +" -m Продовжувати, навіть якщо місце розташування архівів невідомо\n" +" -u Показувати список оновлюваних пакунків\n" +" -b Компілювати пакунок з вихідних текстів після їхнього завантаження\n" +" -V Показувати версії пакунків\n" +" -c=? Читати зазначений файл конфігурації\n" +" -o=? Встановити довільну опцію, наприклад, -o dir::cache=/tmp\n" +"Сторінки керівництва apt-get(8), sources.list(5) і apt.conf(5)\n" +"містять більше інформації.\n" +" This APT has Super Cow Powers.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "В кеші " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Отр:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Ігн " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Пом " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Отримано %sB за %sB (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Йде робота]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Зміна носія: вставте диск з міткою '%s' у пристрій '%s' і натисніть Ввід\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Запис про невідомий пакунок!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Використання: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs - простий інструмент для сортування переліків пакунків. Опція -" +"s\n" +"використається, щоб вказати тип списку.\n" +"\n" +"Опції:\n" +" -h цей текст\n" +" -s сортувати список файлів з вихідними текстами\n" +" -c=? читати зазначений файл конфігурації\n" +" -o=? встановити довільну опцію, наприклад, -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Неправильне значення по замовчуванню!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Для продовження натисніть Ввід." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "" +"Під час розпакування виникли помилки. Буде продовжено процес налаштування" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "встановлених пакунків. Це може призвести до повторення помилок або" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "виникненню нових через незадоволені залежності. Це нормально," + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"важливі тільки помилки, зазначені вище. Виправте їх і виконаєте установку ще " +"раз" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Об'єднання інформації про доступні пакунки" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Не вдалося створити канали (pipes)" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Не вдалося виконати компресор gzip" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Пошкоджений архів" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Контрольна сума tar архіва невірна, архів пошкоджений" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Невідомий тип заголовку TAR %u, член %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Невірний підпис архіву" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Неможливо прочитати заголовок \"member\" архіву" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Невірний заголовок \"member\" архіву" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Архів занадто малий" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Не вдалося прочитати заголовки архіву" + +#: apt-inst/filelist.cc:384 +#, fuzzy +msgid "DropNode called on still linked node" +msgstr "DropNode викликаний для вузла, який ще використовується" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Не вдалося знайти елемент хешу!" + +#: apt-inst/filelist.cc:463 +#, fuzzy +msgid "Failed to allocate diversion" +msgstr "Не вдалося створити diversion" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Внутрішня помилка в AddDiversion" + +#: apt-inst/filelist.cc:481 +#, fuzzy, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Спроба зміни diversion, %s -> %s і %s/%s" + +#: apt-inst/filelist.cc:510 +#, fuzzy, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Подвійне додавання diversion %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Копія конфігураційного файлу %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Не вдалося записати файл %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Не вдалося закрити файл %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "Шлях %s занадто довгий" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Розпакування %s більш ніж один раз" + +#: apt-inst/extract.cc:137 +#, fuzzy, c-format +msgid "The directory %s is diverted" +msgstr "Тека %s входить до переліку diverted" + +#: apt-inst/extract.cc:147 +#, fuzzy, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "Пакет пробує писати у diversion %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +#, fuzzy +msgid "The diversion path is too long" +msgstr "Шлях diversion занадто довгий" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "Тека %s замінюється не текою" + +#: apt-inst/extract.cc:283 +#, fuzzy +msgid "Failed to locate node in its hash bucket" +msgstr "Не вдалося розмістити вузол у хеші" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Шлях занадто довгий" + +#: apt-inst/extract.cc:417 +#, fuzzy, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Файли заміняються вмістом пакета %s без версії" + +#: apt-inst/extract.cc:434 +#, fuzzy, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Файл %s/%s перезаписує інший з пакету %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Неможливо прочитати %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Неможливо прочитати атрибути %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Невдача видалення %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Неможливо створити %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Не вдалося прочитати атрибути %sinfo" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "Теки info і temp повинні бути на тій самій файловій системі" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Читання переліків пакетів" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Невдача зміни до адмінової теки %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Внутрішня помилка отримання назви пакунку" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Читання переліку файлів" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Не вдалося відкрити list файл '%sinfo/%s'. Якщо Ви не можете відновити цей " +"файл, тоді зробіть його пустим і негайно реінсталюйте ту ж саму версію " +"пакунка!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Невдача читання list файла %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +#, fuzzy +msgid "Internal error getting a node" +msgstr "Внутрішня помилка при отриманні Node" + +#: apt-inst/deb/dpkgdb.cc:309 +#, fuzzy, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Не вдалося відкрити файл diversions %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +#, fuzzy +msgid "The diversion file is corrupted" +msgstr "Файл diversions пошкоджений" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, fuzzy, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Невірна лінія в файлі diversions: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +#, fuzzy +msgid "Internal error adding a diversion" +msgstr "Внутрішня помилка при додаванні diversion" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "Кеш пакунків повинен бути ініціалізованим першим" + +#: apt-inst/deb/dpkgdb.cc:443 +#, fuzzy, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Не вдалося знайти пакунок: заголовок, зсув %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, fuzzy, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "Погана секція ConfFile у статусному файлі. Зсув %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, fuzzy, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Помилка обробки MD5. Зсув %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Невірний DEB архів, відсутній член '%s'" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "Невірний DEB архів, відсутній член '%s' чи '%s'" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Неможливо змінити %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Внутрішня помилка, не можу знайти member" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Не вдалося знайти правильний контрольний (control) файл" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Контрольний файл не можливо обробити" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Неможливо прочитати базу %s з cdrom'у" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Будь-ласка використовуйте apt-cdrom, щоб APT розпізнав цей CD-ROM, apt-get " +"update не може бути використаним для додання нових CD" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "Невірний CD-ROM" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "Неможливо демонтувати CDROM в %s, можливо він все ще використовується." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Диск не знайдено." + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Файл не знайдено" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 +msgid "Failed to stat" +msgstr "Не вдалося одержати атрибути" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +msgid "Failed to set modification time" +msgstr "Не вдалося встановити час модифікації" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "Невірне посилання, локальні посилання повинні починатися з //" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Логінюсь в" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Неможливо визначити назву вузла" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Неможливо визначити локальну назву" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Сервер розірвав з'єднання і мовив: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "USER невдало, сервер мовив: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "PASS невдало, сервер мовив: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Вказано проксі-сервер, але відсутній скрипт логіну, Acquire::ftp::ProxyLogin " +"пустий." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Команда '%s'скрипту логіна не вдалася, сервер мовив: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "TYPE невдало, сервер мовив: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Час з'єднання вичерпався" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Сервер закрив з'єднання" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Помилка читання" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Відповідь переповнила буфер." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Спотворений протокол" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Помилка запису" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Неможливо створити сокет (socket)" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "Неможливо під'єднати сокет (socket) з даними, час з'єднання вичерпався" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Неможливо під'єднати пасивний сокет (passive socket)." + +#: methods/ftp.cc:722 +#, fuzzy +msgid "getaddrinfo was unable to get a listening socket" +msgstr "Виклик getaddrinfo не зміг отримати сокет" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Неможливо приєднатися до сокета" + +#: methods/ftp.cc:740 +#, fuzzy +msgid "Could not listen on the socket" +msgstr "Не можливо утримувати з'єднання на сокеті" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Не вдалося визначити назву сокета" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Неможливо відіслати команду PORT" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Невідоме адресове сімейство %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT невдало, сервер мовив: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Час з'єднання з сокетом даних вичерпався" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Неможливо прийняти з'єднання" + +#: methods/ftp.cc:864 methods/http.cc:958 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Проблема хешування файла" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Неможливо завантажити файл, сервер мовив: '%s'" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Час з'єднання з сокетом (socket) з даними вичерпався" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Передача даних обірвалася, сервер мовив '%s'" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Черга" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Неможливо викликати " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "З'єднання з %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Неможливо створити сокет для %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Неможливо ініціалізувати з'єднання з %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Неможливо з'єднатися з %s:%s (%s), час з'єднання вичерпався" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Не можливо під'єднатися до %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "З'єднання з %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Не можу знайти IP адрес для %s" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Тимчасова помилка при отриманні IP адреси '%s'" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Сталося щось дивне при спробі отримати IP адрес для '%s:%s' (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Не можливо під'єднатися до %s %s:" + +#: methods/gpgv.cc:65 +#, fuzzy, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Неможливо отримати доступ до keyring: '%s'" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" +"E: Перелік аргументів з Acquire::gpgv::Options занадто довгий. Відміна." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" +"Внутрішня помилка: Вірний підпис (signature), але не можливо визначити його " +"відбиток?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Знайдено як мінімум один невірний підпис." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "Неможливо виконати '%s' для перевірки підпису, gnupg встановлено?" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Невідома помилка виконання gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "Слідуючі підписи були невірними:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"Слідуючі підписи не можуть бути перевірені, тому що, публічний ключ " +"відсутній:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Неможливо відкрити канал (pipe) для %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Помилка читання з процесу %s" + +#: methods/http.cc:376 +msgid "Waiting for headers" +msgstr "Очікування на заголовки" + +#: methods/http.cc:522 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Отримано одну заголовкову лінію понад %u символів" + +#: methods/http.cc:530 +msgid "Bad header line" +msgstr "Невірна лінія заголовку" + +#: methods/http.cc:549 methods/http.cc:556 +msgid "The HTTP server sent an invalid reply header" +msgstr "HTTP сервер відіслав невірний заголовок 'reply'" + +#: methods/http.cc:585 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "HTTP сервер відіслав невірний заголовок 'Content-Length'" + +#: methods/http.cc:600 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "HTTP сервер відіслав невірний заголовок 'Content-Length'" + +#: methods/http.cc:602 +msgid "This HTTP server has broken range support" +msgstr "Цей HTTP сервер має поламану підтримку 'range'" + +#: methods/http.cc:626 +msgid "Unknown date format" +msgstr "Невідомий формат дати" + +#: methods/http.cc:773 +msgid "Select failed" +msgstr "Вибір не вдався" + +#: methods/http.cc:778 +msgid "Connection timed out" +msgstr "Час очікування з'єднання вийшов" + +#: methods/http.cc:801 +msgid "Error writing to output file" +msgstr "Помилка запису в вихідний файл" + +#: methods/http.cc:832 +#, fuzzy +msgid "Error writing to file" +msgstr "Помилка запису в файл" + +#: methods/http.cc:860 +#, fuzzy +msgid "Error writing to the file" +msgstr "Помилка запису в файл" + +#: methods/http.cc:874 +msgid "Error reading from server. Remote end closed connection" +msgstr "Помилка читання з сервера. Віддалена сторона закрила з'єднання" + +#: methods/http.cc:876 +msgid "Error reading from server" +msgstr "Помилка читання з сервера" + +#: methods/http.cc:1107 +msgid "Bad header data" +msgstr "Погана заголовкова інформація" + +#: methods/http.cc:1124 +msgid "Connection failed" +msgstr "З'єднання не вдалося" + +#: methods/http.cc:1215 +msgid "Internal error" +msgstr "Внутрішня помилка" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Неможливо відобразити в пам'яті пустий файл" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Неможливо відобразити в пам'яті %lu байт" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Вибір %s не знайдено" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Нерозпізнаваний тип абревіатури: '%c'" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Відкривається конфігураційний файл %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Лінія %d занадто довга (максимум %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Синтаксова помилка %s:%u: Блок починається без назви." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Синтаксова помилка %s:%u: спотворений тег" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Синтаксова помилка %s:%u: зайві символи після величини" + +#: apt-pkg/contrib/configuration.cc:684 +#, fuzzy, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" +"Синтаксова помилка %s:%u: Директиви можуть бути виконані тільки на " +"найвищому рівні" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Синтаксова помилка %s:%u: Забагато вмонтованих включень" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Синтаксова помилка %s:%u: Включена звідси" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Синтаксова помилка %s:%u: Директива '%s' не підтримується" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Синтаксова помилка %s:%u: зайві символи в кінці файла" + +#: apt-pkg/contrib/progress.cc:154 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Помилка!" + +#: apt-pkg/contrib/progress.cc:156 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Виконано" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Невідомий параметр '%c' [з %s] командного рядка." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Незрозумілий параметр %s командного рядка" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Не логічний параметр %s командного рядка" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "Параметр %s потребує аргумента." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "Параметр %s потребує integer аргумент, але не '%s'" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Параметр '%s' занадто довгий" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "Незрозумілий вираз %s , спробуйте true чи false." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Невірна дія %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Неможливо прочитати атрибути точки монтування %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Неможливо зробити зміни у %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Не вдалося прочитати атрибути cdrom" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "" +"Блокування не використовується, так як файл блокування %s доступний тільки " +"для читання" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Не можливо відкрити lock файл %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "" +"Блокування не використовується, так як файл блокування %s знаходиться на " +"файловій системі nfs" + +#: apt-pkg/contrib/fileutl.cc:109 +#, fuzzy, c-format +msgid "Could not get lock %s" +msgstr "Не можливо отримати lock %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Очікується на %s але його тут немає" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Підпроцес %s отримав segmentation fault." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Підпроцес %s повернув код помилки (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Підпроцес %s раптово завершився" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Не можливо відкрити файл %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "" +"помилка при читанні. мали прочитати ще %lu байт, але нічого більше нема" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "помилка при записі, мали прочитати ще %lu байт, але не змогли" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Проблема з закриттям файла" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Проблема з роз'єднанням файла" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Проблема з синхронізацією файла" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Кеш пакунків пустий" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Файл кешу пакунків пошкоджений" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Файл кешу пакунків має несумісну версію" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "APT не підтримує систему призначення версій '%s'" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "Кеш пакунків був побудований для іншої архітектури" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Залежності (Depends)" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Пре-Залежності (PreDepends)" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Пропонує (Suggests)" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Рекомендує" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Конфлікти" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Заміняє (Replaces)" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Застарілі (Obsoletes)" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "Важливі (Important)" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "Необхідні (Required)" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "Стандартні (Standard)" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "Необов'язкові (Optional)" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "Додаткові (Extra)" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Побудова дерева залежностей" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Версії кандидатів" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Ґенерація залежностей" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Неможливо обробити файл %s пакунку (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Неможливо обробити файл %s пакунку (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Спотворена лінія %lu у переліку джерел %s (проблема в URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "" +"Спотворена лінія %lu у переліку джерел %s (проблема в назві дистрибутиву)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "Спотворена лінія %lu у переліку джерел %s (обробка URI)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "Спотворена лінія %lu у переліку джерел %s (absolute dist)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "Спотворена лінія %lu у переліку джерел %s (dist parse)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Відкриття %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Лінія %u занадто довга в переліку джерел %s." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Спотворена лінія %u у переліку джерел %s (тип)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Невідомий тип '%s' в лінії %u в переліку джерел %s" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Спотворена лінія %u у переліку джерел %s (vendor id)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Для виконання даного встановлення потрібне тимчасове видалення важливого " +"пакету %s через конфлікти/петлеві пре-залежності (Pre-Depends loop). Це " +"погано, але якщо Ви дійсно бажаєте зробити це, активуйте параметр APT::Force-" +"LoopBreak." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Тип '%s' індексного файлу не підтримується" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" +"Пакунок %s повинен бути перевстановленим, але я не можу знайти архіву для " +"нього." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Помилка, pkgProblemResolver::Resolve згенерував зупинку, це може бути " +"пов'язано з зафіксованими пакунками." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "Неможливо усунути проблеми, Ви маєте поламані зафіксовані пакунки." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Lists тека %spartial відсутня." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Архівна тека %spartial відсутня." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, fuzzy, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "Завантажується файл %li з %li (%s залишилось)" + +#: apt-pkg/acquire.cc:825 +#, fuzzy, c-format +msgid "Retrieving file %li of %li" +msgstr "Завантажується файл %li з %li" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Драйвер для метода %s не знайдено." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "Метод %s не стартував коректно" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "" +"Будь-ласка, вставте диск з поміткою: '%s' в CD привід '%s' і натисніть Enter." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Система пакування '%s' не підтримується" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Неможливо визначити тип необхідної системи пакування " + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Неможливо прочитати атрибути %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "Ви повинні записати певні 'source' посилання в твій sources.list" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "Не можу обробити чи відкрити перелік пакунків чи status файл." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "Можливо, для виправлення цих помилок Ви захочете запустити apt-get" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "Невірний запис в preferences файлі, відсутній заголовок Package" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Не зрозумів тип %s для pin" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "Не встановлено пріоритету (або встановлено 0) для pin" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Кеш має несумісну систему призначення версій" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Помилка, яка була викликана внаслідок обробки %s (NewPackage)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Помилка, яка була викликана внаслідок обробки %s (UsePackage1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Помилка, яка була викликана внаслідок обробки %s (UsePackage2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Помилка, яка була викликана внаслідок обробки %s (NewFileVer1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Помилка, яка була викликана внаслідок обробки %s (NewVersion1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Помилка, яка була викликана внаслідок обробки %s (UsePackage3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Помилка, яка була викликана внаслідок обробки %s (NewVersion2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "Ви перевищили кількість імен пакунків, які APT може обробити." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "Ви перевищили кількість версій, які APT може обробити." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "Ви перевищили кількість залежностей які APT може обробити." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Помилка, яка була викликана внаслідок обробки %s (FindPkg)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "Помилка, яка була викликана внаслідок обробки %s (CollectFileProvides)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "Пакунок %s %s не був знайдений під час обробки залежностей файла" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Не вдалося прочитати атрибути переліку вихідних текстів%s" + +#: apt-pkg/pkgcachegen.cc:658 +#, fuzzy +msgid "Collecting File Provides" +msgstr "Збирання інформації про файлів " + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "Помилка IO під час збереження джерельного кешу" + +#: apt-pkg/acquire-item.cc:126 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "Не вдалося перейменувати, %s (%s -> %s)." + +#: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:945 +msgid "MD5Sum mismatch" +msgstr "Невідповідність MD5Sum" + +#: apt-pkg/acquire-item.cc:640 +msgid "There is no public key available for the following key IDs:\n" +msgstr "Відсутній публічний ключ для заданих ID ключа:\n" + +#: apt-pkg/acquire-item.cc:753 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Я не можу знайти файл для пакунку %s. Можливо, Ви захочете власноруч " +"виправити цей пакунок. (due to missing arch)" + +#: apt-pkg/acquire-item.cc:812 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Я не можу знайти файл для пакунку %s. Можливо, Ви захочете власноруч " +"виправити цей пакунок." + +#: apt-pkg/acquire-item.cc:848 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"Індексні файли пакунків пошкоджені. Немає поля Filename для пакунку %s." + +#: apt-pkg/acquire-item.cc:935 +msgid "Size mismatch" +msgstr "Невідповідність розміру" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Блок постачальника %s не містить відбитку (fingerprint)" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Використовується точка монтування CDROM: %s\n" +"Монтування CD-ROM\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Ідентифікація.. " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Записано мітку: %s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Використовується точка монтування CDROM: %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "Демонтується CD-ROM\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Чекаю на диск...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Монтується CD-ROM...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Диск сканується на індексні файли..\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "Знайдено %i індексів пакунків, %i індексів джерел і %i підписів\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Не є вірною назвою, спробуйте ще.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Цей диск зветься: \n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Копіюються переліки пакунків..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Записується новий перелік джерел\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Перелік джерел для цього диску:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "Демонтується CD-ROM..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "Записано %i записів.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "Записано %i записів з %i відсутніми файлами.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "Записано %i записів з %i невідповідними файлам\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "Записано %i записів з %i відсутніми і %i невідповідними файлами\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "Підготовка %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "Розпакування %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "Підготовка до конфігурації %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "Конфігурація %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "Встановлено %s" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "Підготовка до видалення %s" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "Видаляється %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "Видалено %s" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "Підготовка до повного видалення %s" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "Повністю видалено %s" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "З'єднання завершено передчасно" + +#~ msgid "Could not patch file" +#~ msgstr "Неможливо накласти латку на файл" diff --git a/po/vi.po b/po/vi.po new file mode 100644 index 0000000..268858e --- /dev/null +++ b/po/vi.po @@ -0,0 +1,2819 @@ +# Vietnamese Translation for Apt. +# This file is put in the public domain. +# Clytie Siddall , 2005, 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: apt\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-09-21 17:16+0930\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: LocFactoryEditor 1.6fc1\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "Gói %s phiên bản %s phụ thuộc vào phần mềm chÆ°a có :\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Không thể định vị gói %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Tổng số tên gói: " + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Gói chuẩn: " + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Gói ảo nguyên chất: " + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Gói ảo đơn: " + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Gói ảo hỗn hợp:" + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Thiếu : " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Tổng số phiên bản riêng: " + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Tổng số phụ thuộc: " + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "Tổng số liên quan phiên bản và tập tin: " + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "Tổng số ảnh xạ Miễn là: " + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Tổng số chuỗi mở rộng mẫu tìm kiếm: " + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "Tổng chỗ phiên bản phụ thuộc:" + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Tổng chỗ nghỉ:" + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Tổng chỗ đã tính: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Tập tin gói %s không đồng bộ được." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Bạn phải đưa ra đúng một mẫu" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Không tìm thấy gói" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Tập tin gói:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "" +"Bộ nhớ tạm không đồng bộ được nên không thể tham chiếu chéo tập tin gói" + +# Variable: do not translate/ biến: đừng dịch +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "Các gói đã ghim:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(không tìm thấy)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Đã cài đặt: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(không có)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Ứng cá»­: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Ghim gói: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Bảng phiên bản:" + +# Variable: do not translate/ biến: đừng dịch +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s cho %s %s được biên dịch vào %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"Cách sá»­ dụng: apt-cache [tùy_chọn...] lệnh\n" +" apt-cache [tùy_chọn...] add tập_tin1 [tập_tin2 ...]\n" +" apt-cache [tùy_chọn...] showpkg gói1 [gói2 ...]\n" +" apt-cache [tùy_chọn...] showsrc gói1 [gói2 ...]\n" +"(cache: \tbộ nhớ tạm;\n" +"add: \tthêm;\n" +"showpkg: hiển thị gói;\n" +"showsrc: \thiển thị nguồn)\n" +"\n" +"apt-cache là một công cụ mức thấp dùng để thao tác\n" +"những tập tin bộ nhớ tạm nhị phân của APT,\n" +"và cÅ©ng để truy vấn thông tin từ những tập tin đó.\n" +"\n" +"Lệnh:\n" +" add\t\t_Thêm_ gói vào bộ nhớ tạm nguồn\n" +" gencaches\tXây dung (_tạo ra_) cả gói lẫn _bộ nhớ tạm_ nguồn đều\n" +" showpkg\t_Hiện_ một phần thông tin chung về một _gói_ riêng lẻ\n" +" showsrc\t_Hiện_ các mục ghi _nguồn_\n" +" stats\t\tHiện một phần _thống kê_ cÆ¡ bản\n" +" dump\t\tHiện toàn bộ tập tin dạng ngắn (_đổ_)\n" +" dumpavail\tIn ra một tập tin _sẵn sàng_ vào thiết bị xuất chuẩn (_đổ_)\n" +" unmet\t\tHiện các cách phụ thuộc _chÆ°a thá»±c hiện_\n" +" search\t\t_Tìm kiếm_ mẫu biểu thức chính quy trong danh sách gói\n" +" show\t\t_Hiệnị_ mục ghi có thể đọc, cho những gói đó\n" +" depends\tHiện thông tin cách _phụ thuộc_ thô cho gói\n" +" rdepends\tHiện thông tin cách _phụ thuộc ngược lại_, cho gói\n" +" pkgnames\tHiện danh sách _tên_ mọi _gói_\n" +" dotty\t\tTạo ra đồ thị gói cho GraphVis (_nhiều chấm_)\n" +" xvcg\t\tTạo ra đồ thị gói cho _xvcg_\n" +" policy\t\tHiển thị các thiết lập _chính thức_\n" +"\n" +"Tùy chọn:\n" +" -h \t\t_Trợ giúp_ này\n" +" -p=? \t\tBộ nhớ tạm _gói_.\n" +" -s=? \t\tBộ nhớ tạm _nguồn_.\n" +" -q \t\tTắt cái chỉ tiến trình (_im_).\n" +" -i \t\tHiện chỉ những cách phụ thuộc _quan trọng_\n" +"\t\t\tcho lệnh chÆ°a thá»±c hiện.\n" +" -c=? \t\tĐọc tập tin _cấu hình_ này\n" +" -o=? \t\tLập một tùy chọn cấu hình nhiệm ý, v.d. « -o dir::cache=/tmp »\n" +"Để tìm thông tin thêm thì bạn hãy xem hai trang « man » (hướng dẫn)\n" +"\t\t\tapt-cache(8) và apt.conf(5).\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "Hãy cung cấp tên cho Đĩa này, nhÆ° « Debian 2.1r1 Đĩa 1 »" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Hãy nạp đĩa vào ổ và bấm nút Enter" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "Hãy lặp lại tiến trình này cho các Đĩa còn lại trong bộ đĩa của bạn." + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "Không có các đối số dạng cặp" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Cách sá»­ dụng: apt-config [tùy_chọn...] lệnh\n" +"\n" +"[config: viết tắt cho từ configuration: cấu hình]\n" +"\n" +"apt-config là một công cụ đơn giản để đọc tập tin cấu hình APT.\n" +"\n" +"Lệnh:\n" +" shell\t\tChế độ _hệ vỏ_\n" +" dump\t\tHiển thị cấu hình (_đổ_)\n" +"\n" +"Tùy chọn:\n" +" -h \t\t_Trợ giúp_ này\n" +" -c=? \t\tĐọc tập tin cấu hình này\n" +" -o=? \t\tLập một tùy chọn cấu hình nhiệm ý, v.d. « -o dir::cache=/tmp »\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s không phải là một gói DEB hợp lệ." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Cách sá»­ dụng: apt-extracttemplates tập_tin1 [tập_tin2 ...]\n" +"\n" +"[extract: \t\trút;\n" +"templates: \tnhững biểu mẫu]\n" +"\n" +"apt-extracttemplates là một công cụ rút thông tin kiểu cấu hình\n" +"\tvà biểu mẫu đều từ gói Debian\n" +"\n" +"Tùy chọn:\n" +" -h \t\t_Trợ giúp_ này\n" +" -t \t\tLập thÆ° muc tạm thời\n" +"\t\t[temp, tmp: viết tắt cho từ « temporary »: tạm thời]\n" +" -c=? \t\tĐọc tập tin cấu hình này\n" +" -o=? \t\tLập một tùy chọn cấu hình nhiệm ý, v.d. « -o dir::cache=/tmp »\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Không thể ghi vào %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Không thể lấy phiên bản debconf. Debconf có được cài đặt chÆ°a?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Danh sách mở rộng gói quá dài" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Gặp lỗi khi xá»­ lý thÆ° mục %s" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Danh sách mở rộng nguồn quá dài" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Gặp lỗi khi ghi phần đầu vào tập tin nộị dung" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Gặp lỗi khi xá»­ lý nội dung %s" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"Cách sá»­ dụng: apt-ftparchive [tùy_chọn...] lệnh\n" +"\n" +"[ftparchive: FTP archive: kho FTP]\n" +"\n" +"Lệnh: \tpackages binarypath [tập_tin_đè [tiền_tố_đường_dẫn]]\n" +" \tsources srcpath [tập_tin_đè[tiền_tố_đường_dẫn]]\n" +" \tcontents path\n" +" \trelease path\n" +" \tgenerate config [groups]\n" +" \tclean config\n" +"\n" +"[packages: \tnhững gói;\n" +"binarypath: \tđường dẫn nhị phân;\n" +"sources: \t\tnhững nguồn;\n" +"srcpath: \t\tđường dẫn nguồn;\n" +"contents path: đường dẫn nội dụng;\n" +"release path: \tđường dẫn bản đã phát hành;\n" +"generate config [groups]: tạo ra cấu hình [nhóm];\n" +"clean config: \tcấu hình toàn mới)\n" +"\n" +"apt-ftparchive (kho ftp) thì tạo ra tập tin chỉ mục cho kho Debian.\n" +"Nó hỗ trợ nhiều cách tạo ra, từ cách tá»± động toàn bộ\n" +"đến cách thay thế điều hoặt động cho dpkg-scanpackages (dpkg-quét_gói)\n" +"và dpkg-scansources (dpkg-quét_nguồn).\n" +"\n" +"apt-ftparchive tạo ra tập tin Gói ra cây các .deb.\n" +"Tập tin gói chứa nội dung các trường điều khiển từ mỗi gói,\n" +"cùng với băm MD5 và kích cỡ tập tin.\n" +"Hỗ trợ tập tin đè để buộc giá trị Ưu tiên và Phần\n" +"\n" +"TÆ°Æ¡ng tá»±, apt-ftparchive tạo ra tập tin Nguồn ra cây các .dsc\n" +"Có thể sá»­ dụng tùy chọn « --source-override » (đè nguồn)\n" +"để ghi rõ tập tin đè nguồn\n" +"\n" +"Lnh « packages » (gói) và « sources » (nguồn) nên chạy tại gốc cây.\n" +"BinaryPath (đường dẫn nhị phân) nên chỉ tới cÆ¡ bản của việc tìm kiếm đệ " +"quy,\n" +"và tập tin đè nên chứa những cờ đè.\n" +"Pathprefix (tiền tố đường dẫn) được phụ thêm vào\n" +"những trường tên tập tin nếu có.\n" +"Cách sá»­ dụng thí dụ từ kho Debian:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Tùy chọn:\n" +" -h \t\t_Trợ giúp_ này\n" +" --md5 \t\tĐiều khiển cách tạo ra MD5\n" +" -s=? \t\tTập tin đè nguồn\n" +" -q \t\t_Im_ (không xuất chi tiết)\n" +" -d=? \t\tChọn _cÆ¡ sở dữ liệu_ nhớ tạm tùy chọn\n" +" --no-delink \tMở chế độ gỡ lỗi _bỏ liên kết_\n" +" --contents \tĐiều khiển cách tạo ra tập tin _nội dung_\n" +" -c=? \t\tĐọc tập tin cấu hình này\n" +" -o=? \t\tLập một tùy chọn cấu hình nhiệm ý, v.d. « -o dir::cache=/tmp »" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "Không có điều đã chọn khớp được" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Thiếu một số tập tin trong nhóm tập tin gói « %s »." + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "CÆ¡ sở dữ liệu bị hỏng nên đã đổi tên tâp tin thành %s.old (old: cÅ©)." + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "CÆ¡ sở dữ liệu cÅ© nên đang cố nâng cấp lên %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"Dạng thức co sở dữ liệu không hợp lệ. Nếu bạn đã nâng cấp từ một phiên bản " +"apt cÅ©, hãy gỡ bỏ rồi tạo lại co sở dữ liệu này." + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Không thể mở tập tin cÆ¡ sở dữ liệu %s: %s." + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "Việc lấy thông tin toàn bộ cho %s bị lỗi" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Kho không có mục ghi điều khiển" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "Không thể lấy con chạy" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: Không thể đọc thÆ° mục %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "W: Không thể lấy thông tin toàn bộ cho %s\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E: có lỗi áp dụng vào tập tin " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "Việc quyết định %s bị lỗi" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "Việc di chuyển qua cây bị lỗi" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "Việc mở %s bị lỗi" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " Bỏ liên kết %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "Việc tạo liên kết lại %s bị lỗi" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "Việc bỏ liên kết %s bị lỗi" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** Việc liên kết %s đến %s bị lỗi" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " Hết hạn bỏ liên kết của %sB.\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Kho không có trường gói" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s không có mục ghi đè\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " người bảo quản %s là %s không phải %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s không có mục ghi đè nguồn\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s cÅ©ng không có mục ghi đè nhị phân\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "Gặp lỗi nội bộ, không thể định vị bộ phạn %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc (cấp phát lại) - việc cấp phát bộ nhớ bị lỗi" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "Không thể mở %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "Điều đè dạng sai %s dòng %lu #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "Điều đè dạng sai %s dòng %lu #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "Điều đè dạng sai %s dòng %lu #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "Việc đọc tập tin đè %s bị lỗi" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "Không biết thuật toán nén « %s »" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "Dữ liệu xuất đã nén %s cần một bộ nén" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "Việc tạo ống IPC đến tiến trình con bị lỗi" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "Việc tạo TẬP_TIN* bị lỗi" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "Việc tạo tiến trình con bị lỗi" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "Nén điều con" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "Lỗi nội bộ, việc tạo %s bị lỗi" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "Việc tạo tiến trình con IPC bị lỗi" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "Việc thá»±c hiện bô nén bị lỗi " + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "bộ giải nén" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "việc nhập/xuất vào tiến trình con/tập tin bị lỗi" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "Việc đọc khi tính MD5 bị lỗi" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "Gặp lỗi khi bỏ liên kết %s" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "Việc đổi tên %s thành %s bị lỗi" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "C" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "Lỗi biên dich biểu thức chính quy - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "Những gói theo đây phụ thuộc vào phần mềm chÆ°a có :" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "nhÆ°ng mà %s đã được cài đặt" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "nhÆ°ng mà %s sẽ được cài đặt" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "nhÆ°ng mà nó không có khả năng cài đặt" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "nhÆ°ng mà nó là gói ảo" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "nhÆ°ng mà nó chÆ°a được cài đặt" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "nhÆ°ng mà nó sẽ không được cài đặt" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " hay" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Theo đây có những gói MỚI sẽ được cài đặt:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Theo đây có những gói sẽ bị Gá»  BỎ :" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "Theo đây có những gói đã được giữ lại:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Theo đây có những gói sẽ được nâng cấp:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "Theo đây có những gói sẽ được HẠ CẤP:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "Theo đây có những gói sẽ được thay đổi:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (do %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"CẢNH BÁO : theo đây có những gói chủ yếu sẽ bị gỡ bỏ.\n" +"ĐỪNG làm nhÆ° thế trừ khi bạn biết làm gì ở đây nó một cách chính xác." + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "%lu đã nâng cấp, %lu mới được cài đặt, " + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu được cài đặt lại, " + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "%lu được hạ cấp, " + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "%lu cần gỡ bỏ, và %lu chÆ°a được nâng cấp.\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu chÆ°a được cài đặt toàn bộ hay được gỡ bỏ.\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Đang sá»­a cách phụ thuộc..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " đã thất bại." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "Không thể sá»­a cách phụ thuộc" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "Không thể cá»±c tiểu hóa bộ nâng cấp" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Đã xong" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "Có lẽ bạn hãy chay lệnh « apt-get -f install » để sá»­a hết." + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "" +"Còn có cách phụ thuộc vào phần mềm chÆ°a có. NhÆ° thế thì bạn hãy cố dùng tùy " +"chọn « -f »." + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "CẢNH BÁO : không thể xác thá»±c những gói theo đây." + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "Cảnh báo xác thá»±c bị đè.\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "Cài đặt những gói này mà không kiểm chứng không? [y/N] [c/K] " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "Một số gói không thể được xác thá»±c" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "Gập lỗi và đã dùng tùy chọn « -y » mà không có « --force-yes »" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "Lỗi nội bộ: InstallPackages (cài đặt gói) được gọi với gói bị hỏng." + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "Cần phải gỡ bỏ một số gói, nhÆ°ng mà khả năng Gỡ bỏ (Remove) đã bị tắt." + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "Gặp lỗi nội bộ: tiến trình Sắp xếp chÆ°a xong" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "Không thể khóa thÆ° mục tải về" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "Không thể đọc danh sách nguồn." + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" +"Lạ... Hai kích cỡ không khớp được. Hãy gởi thÆ° cho " + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "Cần phải lấy %sB/%sB kho.\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "Cần phải lấy %sB kho.\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "Sau khi đã giải nén, sẻ chiếm %sB sức chứa đĩa thêm.\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "Sau khi đã giải nén, sẽ giải phóng %sB sức chữa đĩa thêm.\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "Không thể quyết định chỗ rảnh trong %s" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "Bạn chÆ°a có đủ sức chức còn rảnh trong %s." + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "" +"Xác đinh « Chỉ không đáng kể » (Trivial Only) nhÆ°ng mà thao tác này đáng kể." + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Có, làm đi." + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"Bạn sắp làm gì có thể có hai.\n" +"Để tiếp tục thì hãy gõ cụm từ « %s »\n" +"?]" + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "Hủy bỏ." + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "Bạn có muốn tiếp tục không? [Y/n] [C/k] " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "Việc gói %s bị lỗi %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "Một số tập tin không tải về được" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "Mới tải về xong và trong chế độ chỉ tải về" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"Không thể lấy một số kho, có lẽ hãy chạy lệnh « apt-get update » (apt lấy " +"cập nhật) hay cố với « --fix-missing » (sá»­a các điều còn thiếu) không?" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "" +"ChÆ°a hô trợ tùy chọn « --fix-missing » (sá»­a khi thiếu điều) và trao đổi " +"phÆ°Æ¡ng tiện." + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "Không thể sá»­a những gói còn thiếu." + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "Đang hủy bỏ cài đặt." + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "Ghi chú : đang chọn %s thay vì %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "Đang bỏ qua %s vì nó đã được cài đặt và chÆ°a lập tùy chọn Nâng cấp.\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "ChÆ°a cài đặt gói %s nên không thể gỡ bỏ nó\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "Gói %s là gói ảo được cung cấp do :\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Đã cài đặt]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "Bạn nên chọn một cách dứt khoát gói cần cài." + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"Gói %s không phải sẵn sàng, nhÆ°ng mà một gói khác\n" +"đã tham chiếu đến nó. Có lẽ có nghÄ©a là gói còn thiếu,\n" +"đã trở thành cÅ©, hay chỉ sẵn sàng từ nguồn khác.\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "Tuy nhiên, những gói theo đây thay thế nó :" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "Gói %s không có ứng cá»­ cài đặt" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "Không thể cài đặt lại %s vì không thể tải về nó.\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s là phiên bản mÆ¡i nhất.\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "Không tìm thấy bản phát hành « %s » cho « %s »" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "Không tìm thấy phiên bản « %s » cho « %s »" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "Đã chọn phiên bản %s (%s) cho %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "Lệnh cập nhật không chấp nhật đối số" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "Không thể khóa thÆ° mục danh sách" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"Một số tập tin chỉ mục không tải về được, đã bỏ qua chúng, hoặc điều cÅ© được " +"dùng thay thế." + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "Lỗi nội bộ: AllUpgrade (toàn bộ nâng cấp) đã ngắt gì" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "Không tìm thấy gói %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "Ghi chú : đang chọn %s cho biểu thức chính quy « %s »\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "Có lẽ bạn hãy chạy lênh « apt-get -f install » để sá»­a hết:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"Gói còn phụ thuộc vào phần mềm chÆ°a có. Hãy cố chạy lệnh « apt-get -f " +"install » mà không có gói nào (hoặc ghi rõ cách quyết định)." + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"Không thể cài đặt một số gói. Có lẽ có nghÄ©a là bạn đa yêu cầu\n" +"một trường hợp không thể, hoặc nếu bạn sá»­ dụng bản phân phối\n" +"bất định, có lẽ chÆ°a tạo một số gói cần thiết,\n" +"hoặc chÆ°a di chuyển chúng ra phần Incoming (Đến)." + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"Vì bạn đã yêu cầu chỉ một thao tác riêng lẻ, rât có thể là\n" +"gói này đơn giản không có khả năng cài đặt, thì bạn hay\n" +"thông báo lỗi về gói này." + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "Có lẽ thông tin theo đây sẽ giúp đỡ quyết định trường hợp:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Gói bị ngắt" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "Những gói thêm theo đây sẽ được cài đặt:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "Gói được đệ nghị:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "Gói được khuyên:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "Đang tính nâng cấp... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Bị lỗi" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "Xong" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "Lỗi nội bộ: bộ tháo gỡ vấn đề đã ngắt gì" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "Phải ghi rõ ít nhất một gói cần lấy nguồn cho nó" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "Không tìm thấy gói nguồn cho %s" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "Đang bỏ qua tập tin đã được tải về « %s »\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "Không đủ sức chứa còn rảnh trong %s" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "Cần phải lấy %sB/%sB kho nguồn.\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "Cần phải lấy %sB kho nguồn.\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "Lấy nguồn %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "Việc lấy một số kho bị lỗi." + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "Đang bỏ qua giải nén nguồn đã giải nén trong %s\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "Lệnh giải nén « %s » bị lỗi.\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "Hãy kiểm tra xem gói « dpkg-dev » có được cài đặt chÆ°a.\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "Lệnh xây dụng « %s » bị lỗi.\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "Tiến trình con bị lỗi" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "" +"Phải ghi rõ ít nhất một gói cần kiểm tra cách phụ thuộc khi xây dụng cho nó" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "Không thể lấy thông tin về cách phụ thuộc khi xây dụng cho %s" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s không phụ thuộc vào gì khi xây dụng.\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "cách phụ thuộc %s cho %s không thể được thỏa vì không tìm thấy gọi %s" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"cách phụ thuộc %s cho %s không thể được thỏa vì không có phiên bản sẵn sàng " +"của gói %s có thể thỏa điều kiện phiên bản." + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" +"Việc cố thỏa cách phụ thuộc %s cho %s bị lỗi vì gói đã cài đặt %s quá mới" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "Việc cố thỏa cách phụ thuộc %s cho %s bị lỗi: %s." + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "Không thể thỏa cách phụ thuộc khi xây dụng cho %s." + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "Việc xá»­ lý cách phụ thuộc khi xây dụng bị lỗi" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "Mô-đun đã hỗ trợ :" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"Cách sá»­ dụng: apt-get [tùy_chọn...] lệnh\n" +" apt-get [tùy_chọn...] install|remove gói1 [gói2 ...]\n" +" apt-get [tùy_chọn...] source gói1 [gói2 ...]\n" +"\n" +"[get: \tlấy\n" +"install: \tcài đặt\n" +"remove: \tgỡ bỏ\n" +"source: \tnguồn]\n" +"\n" +"apt-get là một giao diện dòng lệnh đơn giản để tải về và cài đặt gói.\n" +"Những lệnh đã dùng thường nhất là update (cập nhật) và install (cài đặt).\n" +"\n" +"Lệnh:\n" +" update\t\tLấy danh sách gói mới (_cập nhật_)\n" +" upgrade \t_Nâng cập_ \n" +" install \t\t_Cài đặt_ gói mới (gói là libc6 không phải libc6.deb)\n" +" remove \t_Gỡ bỏ_ gói\n" +" source \t\tTải về kho _nguồn_\n" +" build-dep \tĐịnh cấu hình _cách phụ thuộc khi xây dụng_, cho gói nguồn\n" +" dist-upgrade \t_Nâng cấp bản phân phối_,\n" +"\t\t\t\t\thãy xem trang hướng dẫn (man) apt-get(8)\n" +" dselect-upgrade \t\tTheo cách chọn dselect (_nâng cấp_)\n" +" clean \t\tXóa bỏ các tập tin kho đã tải về (_làm sạch_)\n" +" autoclean \tXóa bỏ các tập tin kho cÅ© đã tải về (_tá»± động làm sạch_)\n" +" check \t\t_Kiểm chứng_ không có cách phụ thuộc bị ngắt\n" +"\n" +"Tùy chọn:\n" +" -h \t_Trợ giúp_ này.\n" +" -q \tDữ liệu xuất có thể ghi lÆ°u - không có cái chỉ tiến trình (_im_)\n" +" -qq \tKhông xuất thông tin nào, trừ lỗi (_im im_)\n" +" -d \tChỉ _tải về_, ĐỪNG cài đặt hay giải nén kho\n" +" -s \tKhông hoạt đông. _Mô phỏng_ sắp xếp\n" +" -y \tGiả sá»­ trả lời _Có_ (yes) mọi khi gặp câu hỏi;\n" +"\t\t\t\t\tđừng nhắc người dùng gõ gì\n" +" -f \t\tCố tiếp tục lại nếu việc kiểm tra tính nguyên vẹn _thất bại_\n" +" -m \tCố tiếp tục lại nếu không thể định vị kho\n" +" -u \tCÅ©ng hiện danh sách các gói đã _nâng cấp_\n" +" -b \t_Xây dụng_ gói nguồn sau khi lấy nó\n" +" -V \tHiện số thứ tá»± _phiên bản chi tiết_\n" +" -c=? \tĐọc tập tin cấu hình ấy\n" +" -o=? \tLập tùy chọn nhiệm ý, v.d. -o dir::cache=/tmp\n" +"Để tim thông tin và tùy chọn thêm thì hãy xem trang hướng dẫn apt-get(8), " +"sources.list(5) và apt.conf(5).\n" +" Trình APT này có năng lá»±c của bò siêu.\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "Lần tìm " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "Lấy:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "Bỏq " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "Lỗi " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "Mới lấy %sB trong %s (%sB/g).\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Hoạt động]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"Chuyển đổi vật chứa: hãy nạp đĩa có nhãn\n" +" « %s »\n" +"vào ổ « %s » và bấm nút Enter\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "Không biết mục ghi gói." + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Cách sá»­ dụng: apt-sortpkgs [tùy_chọn...] tập_tin1 [tập_tin2 ...]\n" +"\n" +"[sortpkgs: sort packages: sắp xếp các gói]\n" +"\n" +"apt-sortpkgs là một công cụ đơn giản để sắp xếp tập tin gói.\n" +"Tùy chon « -s » dùng để ngụ ý kiểu tập tin.\n" +"\n" +"Tùy chọn:\n" +" -h \t_Trợ giúp_ này\n" +" -s \tSắp xếp những tập tin _nguồn_\n" +" -c=? \tĐọc tập tin cấu hình này\n" +" -o=? \tLập tùy chọn cấu hình nhiệm ý, v.d. « -o dir::cache=/tmp »\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "Thiết lập mặc định sai." + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "Hãy bấm phím Enter để tiếp tục lại." + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "Gập một số lỗi khi giải nén. Sẽ cấu hình" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "những gói đã đươc cài đặt. Có lẽ sẽ gây ra lỗi trùng" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" +"hoặc lỗi khi không có phần mềm mà gói khác phụ thuộc vào nó. Không có sao, " +"chỉ những lỗi" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" +"ở trên thông điệp này là quan trọng. Hãy sá»­a chúng và chạy lại [I]nstall " +"(cài đặt)" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "Đang hợp nhất các thông tin sẵn sàng..." + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "Việc tạo những ống bị lỗi" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "Việc thá»±c hiện gzip bị lỗi " + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "Kho bị hỏng." + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Tiến trình tar (kiểm tổng tar) thât bại: kho bị hỏng." + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "Không biết kiểu phần đầu tar %u, bộ phạn %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "Chữ ký kho không hợp lệ" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "Gặp lỗi khi đọc phần đầu bộ phạn kho" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "Phần đầu bộ phạn kho không hợp lê" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "Kho quá ngắn" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "Việc đọc phần đầu kho bị lỗi" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "DropNode (thả điểm nút) được gọi với điểm nút còn liên kết" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "Việc định vi phần tá»­ băm bị lỗi" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "Việc cấp phát sá»± trệch đi bị lỗi" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "Lỗi nội bộ trong AddDiversion (thêm sá»± trệch đi)" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "Đang cố ghi đè một sá»± trệch đi, %s → %s và %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "Sá»± trệch đi được thêm hai lần %s → %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "Tập tin cấu hình trùng %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "Việc ghi tập tin %s bị lỗi" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "Việc đóng tập tin %s bị lỗi" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "Đường dẫn %s quá dài" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "Đang giải nén %s nhiều lần" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "ThÆ° mục %s bị trệch hướng" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "Gói này đang cố ghi vào đích trệch đi %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "Đường dẫn trệch đi quá dài." + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "ThÆ° mục %s đang được thay thế do điều không phải là thÆ° mục" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "Việc định vị điểm nút trong hộp băm nó bị lỗi" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "Đường dẫn quá dài" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "Ghi đè lên gói đã khớp mà không có phiên bản cho %s" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "Tập tin %s/%s ghi đè lên điều trong gói %s" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "Không thể đọc %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "Không thể lấy các thông tin về %s" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "Việc gỡ bỏ %s bị lỗi" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "Không thể tạo %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "Việc lấy các thông tin về %sinfo bị lỗi" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "" +"Những thÆ° mục info (thông tin) và temp (tạm thời) cần phải trong cùng một hệ " +"thống tập tin" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "Đang đọc các danh sách gói..." + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "Việc chuyển đổi sang thÆ° mục quản lý %sinfo bị lỗi" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "Gặp lỗi nội bộ khi lấy tên gói" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "Đang đọc danh sách tập tin..." + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"Việc mở tập tin danh sách « %sinfo/%s » bị lỗi. Nếu bạn không thể phục hồi " +"tập tin này, bạn hãy làm cho nó rỗng và ngay cài đặt lại cùng phiên bản gói." + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "Việc đọc tập tin danh sách %sinfo/%s bị lỗi" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "Gặp lỗi nội bộ khi lấy nút điểm..." + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "Việc mở tập tin trệch đi %sdiversions bị lỗi" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "Tập tin trệch đi bị hỏng" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "Gặp dòng không hợp lệ trong tập tin trệch đi: %s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "Gặp lỗi nội bộ khi thêm một sá»± trệch đi" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "Phải khởi động bộ nhớ tạm gói trước hết" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "Lỗi tìm thấy Gói: phần đầu, hiệu số %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "" +"Có phần cấu hình tập tin (ConfFile) sai trong tập tin trạng thái. Hiệu số %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "Gặp lỗi khi phân tách MD5. Hiệu số %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "Đây không phải là môt kho DEB hợp lệ vì còn thiếu bộ phạn « %s »" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "" +"Đây không phải là môt kho DEB hợp lệ vì không có bộ phạn « %s » hay « %s »" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "Không thể chuyển đổi sang %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "Gặp lỗi nội bộ, không thể định vị bộ phạn" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "Việc định vị tập tin điều khiển hợp lệ bị lỗi" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "Tập tin điều khiển không có khả năng phân tách" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Không thể đọc cÆ¡ sở dữ liệu đĩa CD-ROM %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"Hãy sá»­ dụng lệnh « apt-cdrom » để làm cho APT chấp nhận đĩa CD này. Không " +"thể sá»­ dụng lệnh « apt-get update » (lấy cập nhật) để thêm đĩa CD mới." + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "CD không đúng" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "Không thể tháo gắn kết đĩa CD-ROM trong %s. Có lẽ nó còn dùng." + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "Không tìm thấy đĩa" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "Không tìm thấy tập tin" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "Việc lấy các thông tin bị lỗi" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "Việc lập giờ sá»­a đổi bị lỗi" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "Địa chỉ Mạng (URI) không hợp lệ: URI không thể bắt đầu với « // »" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "Đang đăng nhập..." + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "Không thể quyết định tên ngang hàng" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "Không thể quyết định tên cục bộ" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "Máy phục vụ đã từ chối kết nối, và nói: %s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "Lệnh USER (người dùng) đã thất bại: máy phục vụ nói: %s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "Lệnh PASS (mật khẩu) đã thất bại: máy phục vụ nói: %s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"Đã ghi rõ máy phục vụ ủy nhiệm, nhÆ°ng mà chÆ°a ghi rõ tập lệnh đăng nhập. « " +"Acquire::ftp::ProxyLogin » là rỗng." + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "Lệnh tập lệnh đăng nhập « %s » đã thất bại: máy phục vụ nói: %s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "Lệnh TYPE (kiểu) đã thất bại: máy phục vụ nói: %s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "Thời hạn kết nối" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "Máy phục vụ đã đóng kết nối" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "Lỗi đọc" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "Một trả lời đã tràn bộ đệm." + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "Giao thức bị hỏng" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "Lỗi ghi" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "Không thể tạo ổ cắm" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "Không thể kết nối ổ cắm dữ liệu, kết nối đã quá giờ" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "Không thể kết nối ổ cắm bị động." + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo (lấy thông tin địa chỉ) không thể lấy ổ cắm lắng nghe" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "Không thể đóng kết ổ cắm" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "Không thể lắng nghe trên ổ cắm đó" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "Không thể quyết định tên ổ cắm đó" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "Không thể gởi lệnh PORT (cổng)" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "Không biết nhóm địa chỉ %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "Lệnh EPRT (thông báo lỗi) đã thất bại: máy phục vụ nói: %s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Kết nối ổ cắm dữ liệu đã quá giờ" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "Không thể chấp nhận kết nối" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "Gặp khó khăn băm tập tin" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Không thể lấy tập tin: máy phục vụ nói « %s »" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Ổ cắm dữ liệu đã quá giờ" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "Việc truyền dữ liệu bị lỗi: máy phục vụ nói « %s »" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "Truy vấn" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "Không thể gọi " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "Đang kết nối đến %s (%s)..." + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[Địa chỉ IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "Không thể tạo ổ cắm cho %s (f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "Không thể sở khởi kết nối đến %s:%s (%s)." + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "Không thể kết nối đến %s:%s (%s), kết nối đã quá giờ" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "Không thể kết nối đến %s:%s (%s)." + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "Đang kết nối đến %s..." + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "Không thể tháo gỡ « %s »" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "Việc tháo gỡ « %s » bị lỗi tạm thời" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "Gặp lỗi nghiệm trọng khi tháo gỡ « %s:%s » (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "Không thể kết nối đến %s %s:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "Không thể truy cập vòng khoá « %s »" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "E: Danh sách lệnh từ « Acquire::gpgv::Options » quá dài nên thoát." + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "Lỗi nội bộ: chữ ký đúng, nhÆ°ng không thể quyết định vân tay khóa ?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "Gặp ít nhất một chữ ký không hợp lệ." + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" +"Không thể thá»±c hiện « %s » để kiểm chứng chữ ký (gnupg có được cài đặt chÆ°a?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "Gặp lỗi lạ khi thá»±c hiện gpgv" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "Những chữ ký theo đây là không hợp lệ:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" +"Không thể kiểm chứng những chữ ký theo đây, vì khóa công không sẵn sàng:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "Không thể mở ống dẫn cho %s" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "Gặp lỗi đọc từ tiến trình %s" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "Đang đợi những phần đầu..." + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "Đã lấy một dòng đầu riêng lẻ chứa hÆ¡n %u ky tá»±" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "Dòng đầu sai" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "Máy phục vụ HTTP đã gởi một dòng đầu trả lời không hợp lệ" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "" +"Máy phục vụ HTTP đã gởi một dòng đầu Content-Length (độ dài nội dụng) không " +"hợp lệ" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "" +"Máy phục vụ HTTP đã gởi một dòng đầu Content-Range (phạm vị nội dụng) không " +"hợp lệ" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "Máy phục vụ HTTP đã ngắt cách hỗ trợ phạm vị" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "Không biết dạng ngày" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Việc chọn bị lỗi" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "Kết nối đã quá giờ" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "Gặp lỗi khi ghi vào tập tin xuất" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "Gặp lỗi khi ghi vào tập tin" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "Gặp lỗi khi ghi vào tập tin đó" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "Gặp lỗi khi đọc từ máy phục vụ : cuối ở xa đã đóng kết nối" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "Gặp lỗi khi đọc từ máy phục vụ" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "Dữ liệu dòng đầu sai" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "Kết nối bị ngắt" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "Gặp lỗi nội bộ" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "Không thể mmap (ảnh xạ bộ nhớ) tâp tin rỗng" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "Không thể tạo mmap (ảnh xạ bộ nhớ) kích cỡ %lu byte" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "Không tìm thấy vùng chọn %s" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "Không nhận biết viết tắt kiểu: « %c »" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "Đang mở tập tin cấu hình %s..." + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "Dòng %d quá dài (tối đa %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "Gặp lỗi cú pháp %s:%u: khối bắt đầu không có tên." + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "Gặp lỗi cú pháp %s:%u: thẻ dạng sai" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "Gặp lỗi cú pháp %s:%u: có rác thêm sau giá trị" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "Gặp lỗi cú pháp %s:%u: có thể thá»±c hiện chỉ thị chỉ tại mức đầu" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "Gặp lỗi cú pháp %s:%u: quá nhiều điều bao gồm lồng nhau" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "Gặp lỗi cú pháp %s:%u: đã bao gồm từ đây" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "Gặp lỗi cú pháp %s:%u: chÆ°a hỗ trợ chỉ thị « %s »" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "Gặp lỗi cú pháp %s:%u: rác thêm tại kết thúc tập tin" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... Lỗi." + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... Xong" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "Không biết tùy chọn dòng lệnh « %c » [từ %s]." + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "Không hiểu tùy chọn dòng lệnh %s" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "Tùy chọn dòng lệnh %s không phải bun (đúng/không đúng)" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "Tùy chọn %s cần đến một đối số." + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "Tùy chọn %s: đặc tả mục cấu hình phải có một « = »." + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "Tùy chọn %s cần đến một đối số số nguyên, không phải « %s »" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "Tùy chọn « %s » quá dài" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "Không hiểu %s: hãy cố dùng true (đúng) hay false (không đúng)." + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "Thao tác không hợp lệ %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "Không thể lấy các thông tin cho điểm gắn kết %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "Không thể chuyển đổi sang %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "Việc lấy cac thông tin cho đĩa CD-ROM bị lỗi" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "Không dùng khả năng khóa cho tập tin khóa chỉ đọc %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "Không thể mở tập tin khóa %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "Không dùng khả năng khóa cho tập tin khóa đã lắp kiểu NFS %s" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "Không thể lấy khóa %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "Đã đợi %s nhÆ°ng mà chÆ°a gặp nó" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "Tiến trình con %s đã nhận một lỗi chia ra từng đoạn." + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "Tiến trình con %s đã trả lời mã lỗi (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "Tiến trình con %s đã thoát bất ngờ" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "Không thể mở tập tin %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "đọc, còn cần đọc %lu nhÆ°ng mà không có điều còn lại" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "ghi, còn cần ghi %lu nhÆ°ng mà không thể" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "Gặp lỗi khi đóng tập tin đó" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "Gặp lỗi khi bỏ liên kết tập tin đó" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "Gặp lỗi khi đồng bộ hóa tập tin đó" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "Bộ nhớ tạm gói rỗng" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "Tập tin bộ nhớ tạm gói bị hỏng" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "Tập tin bộ nhớ tạm gói là một phiên bản không tÆ°Æ¡ng thích" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "Trình APT này không hỗ trợ hệ thống điều khiển phiên bản « %s »" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "Bộ nhớ tạm gói được xây dụng cho kiến trức khác" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "Phụ thuộc" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "Phụ thuộc trước" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "Đệ nghị" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "Khuyên" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "Xung đột" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "Thay thế" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "Làm cÅ©" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "quan trọng" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "cần" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "chuẩn" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "tùy chọn" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "thêm" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "Đang xây dụng cây cách phụ thuộc..." + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "Phiên bản ứng cá»­" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "Tạo ra cách phụ thuộc" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Không thể phân tách tập tin gói %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Không thể phân tách tập tin gói %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "Gặp dòng dạng sai %lu trong danh sách nguồn %s (địa chỉ Mạng)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "Gặp dòng dạng sai %lu trong danh sách nguồn %s (bản phân phối)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "" +"Gặp dòng dạng sai %lu trong danh sách nguồn %s (phân tách địa chỉ Mạng)." + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "" +"Gặp dòng dạng sai %lu trong danh sách nguồn %s (bản phân phối tuyệt đối)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "" +"Gặp dòng dạng sai %lu trong danh sách nguồn %s (phân tách bản phân phối)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "Đang mở %s..." + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "Dòng %u quá dài trong danh sách nguồn %s." + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "Gặp dòng dạng sai %u trong danh sách nguồn %s (kiểu)." + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "Không biết kiểu « %s » trên dòng %u trong danh sách nguồn %s." + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "Gặp dòng dạng sai %u trong danh sách nguồn %s (mã nhận biết nhà bán)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"Việc chạy tiến trình cài đặt này sẽ cần thiết gỡ bỏ tạm gói chủ yếu %s, do " +"vong lăp Xung đột/Phụ thuộc trước. Trường hợp này thường xấu, nhÆ°ng mà nếu " +"bạn thật sá»± muốn tiếp tục, có thể hoạt hóa tuy chọn « APT::Force-LoopBreak " +"» (buộc ngắt vòng lặp)." + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "Không hỗ trợ kiểu tập tin chỉ mục « %s »" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "Cần phải cài đặt lại gói %s, nhÆ°ng mà không thể tìm kho cho nó." + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"Lỗi: « pkgProblemResolver::Resolve » (bộ tháo gỡ vấn đề gọi::tháo gỡ) đã tạo " +"ra nhiều chỗ ngắt, có lẽ một số gói đã giữ lại đã gây ra trường hợp này." + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "Không thể sá»­a vấn đề, bạn đã giữ lại một số gói bị ngắt." + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "Thiếu thÆ° mục danh sách « %spartial »." + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "Thiếu thÆ° mục kho « %spartial »." + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "Đang lấy tập tin %li trên %li (%s còn lại)..." + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "Đang lấy tập tin %li trên %li..." + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "Không tìm thấy trình điều khiển phÆ°Æ¡ng pháp %s." + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "PhÆ°Æ¡ng pháp %s đã không bắt đầu cho đúng." + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "Hãy nạp đĩa có nhãn « %s » vào ổ « %s » và bấm nút Enter." + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "Không hỗ trợ hệ thống đóng gói « %s »" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "Không thể quyết định kiểu hệ thống đóng gói thích hợp" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "Không thể lấy các thông tin về %s." + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "" +"Bạn phải để một số địa chỉ Mạng « nguồn » vào « sources.list » (danh sách " +"nguồn)" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "Không thể phân tách hay mở danh sách gói hay tâp tin trạng thái." + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "" +"Có lẽ bạn muốn chạy « apt-get update » (lấy cập nhật) để sá»­a các vấn đề này" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "" +"Gặp mục ghi không hợp lệ trong tập tin tùy thích: không có phần đầu Package " +"(Gói)." + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "Không hiểu kiểu ghim %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "ChÆ°a ghi rõ Æ°u tiên (hay số không) cho ghim" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "Bộ nhớ tạm có hệ thống điêu khiển phiên bản không tÆ°Æ¡ng thích" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "Gặp lỗi khi xá»­ lý %s (NewPackage - gói mới)" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "Gặp lỗi khi xá»­ lý %s (UsePackage1 - dùng gói 1)" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "Gặp lỗi khi xá»­ lý %s (UsePackage2 - dùng gói 2)" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "Gặp lỗi khi xá»­ lý %s (NewFileVer1 - tập tin mới, phiên bản 1)" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "Gặp lỗi khi xá»­ lý %s (NewVersion1 - phiên bản mới 1)" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "Gặp lỗi khi xá»­ lý %s (UsePackage3 - dùng gói 3)" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "Gặp lỗi khi xá»­ lý %s (NewVersion2 - phiên ban mới 2)" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "Ồ, bạn đã vượt quá số tên gói mà trình APT này có thể quản lý." + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "Ồ, bạn đã vượt quá số phiên bản mà trình APT này có thể quản lý." + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "Ồ, bạn đã vượt quá số cách phụ thuộc mà trình APT này có thể quản lý." + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "Gặp lỗi khi xá»­ lý %s (FindPkg - tìm gói)" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "" +"Gặp lỗi khi xá»­ lý %s (CollectFileProvides - tập hợp các trường hợp miễn là " +"một tập tin)" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "Không tìm thấy gói %s %s khi xá»­ lý cách phụ thuộc của/vào tập tin" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "Không thể lấy các thông tin về danh sách gói nguồn %s" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "Đang tập hợp các trường hợp « tập tin miễn là »" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "Lỗi nhập/xuất khi lÆ°u bộ nhớ tạm nguồn" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "việc thay đổi tên bị lỗi, %s (%s → %s)." + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "MD5Sum (tổng kiểm) không khớp được" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "Không có khóa công sẵn sàng cho những ID khóa theo đây:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"Không tìm thấy tập tin liên quan đến gói %s. Có lẽ bạn cần phải tá»± sá»­a gói " +"này, do thiếu kiến trúc." + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"Không tìm thấy tập tin liên quan đến gói %s. Có lẽ bạn cần phải tá»± sá»­a gói " +"này." + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" +"Các tập tin chỉ mục của gói này bị hỏng. Không có trường Filename: (Tên tập " +"tin:) cho gói %s." + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "Kích cỡ không khớp được" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "Khối nhà bán %s không chứa vân tay" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"Đang dùng điểm lắp đĩa CD-ROM %s\n" +"Đang lắp đĩa CD-ROM...\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "Đang nhận diện... " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "Nhãn đã lÆ°u : %s\n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "Đang dùng điểm lắp đĩa CD-ROM %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "Đang tháo lắp đĩa CD-ROM...\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "Đang đợi đĩa...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "Đang lắp đĩa CD-ROM...\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "Đang quét đĩa tìm tập tin chỉ mục...\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "Mới tìm %i chỉ mục gói, %i chỉ mục nguồn và %i chữ ký\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "Nó không phải là một tên hợp lệ: hãy thá»­ lại.\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"Tên đĩa này:\n" +"%s\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "Đang sao chép các danh sách gói..." + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "Đang ghi danh sách nguồn mới...\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "Các mục nhập danh sách nguồn cho đĩa này:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "Đang tháo lắp đĩa CD-ROM..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "Mới ghi %i mục ghi.\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "Mới ghi %i mục ghi với %i tập tin còn thiếu.\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "Mới ghi %i mục ghi với %i tập tin không khớp với nhau\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" +"Mới ghi %i mục ghi với %i tập tin còn thiếu và %i tập tin không khớp với " +"nhau\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "Đang chuẩn bị %s..." + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "Đang mở gói %s..." + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "Đang chuẩn bị cấu hình %s..." + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "Đang cấu hình %s..." + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "Đã cài đặt %s" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "Đang chuẩn bị gỡ bỏ %s..." + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "Đang gỡ bỏ %s..." + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "Đã gỡ bỏ %s" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "Đang chuẩn bị gỡ bỏ hoàn toàn %s..." + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "Mới gỡ bỏ hoàn toàn %s" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Không thể mở tập tin %s" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "Kết nối bị đóng quá sớm." diff --git a/po/zh_CN.po b/po/zh_CN.po new file mode 100644 index 0000000..46e3ebd --- /dev/null +++ b/po/zh_CN.po @@ -0,0 +1,2754 @@ +# Chinese/Simplified translation of apt. +# This file is put in the public domain. +# Tchaikov , 2005. +# Carlos Z.F. Liu , 2004,2006 +# +msgid "" +msgstr "" +"Project-Id-Version: apt 0.5.23\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-02-22 14:20+1300\n" +"Last-Translator: Carlos Z.F. Liu \n" +"Language-Team: Debian Chinese [GB] \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "版本为 %2$s 的软件包 %1$s 有未满足的依赖关系:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "未发现软件包 %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "软件包总数(按名称计):" + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " 普通软件包:" + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " 完全虚拟软件包:" + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " 单虚拟软件包:" + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " 混合虚拟软件包:" + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " 缺漏的:" + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "按版本共计:" + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "按依赖关系共计:" + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "按版本/文件关系共计:" + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "提供映射共计:" + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Glob 字串共计:" + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "依赖关系版本名所占空间共计:" + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Slack 空间共计:" + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "总占用空间:" + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "软件包文件 %s 尚未同步(sync)。" + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "您必须明确地给出一个表达式" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "没有发现吻合的软件包" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "软件包文件:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "缓存尚未同步(sync),无法交差引证(x-ref)一个软件包文件" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "被锁定(pinned)的软件包:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(没有找到)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " 已安装:" + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(无)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " 候选的软件包:" + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " 软件包锁(Pin):" + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " 版本列表:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s for %s %s ,编译于 %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"用法: apt-cache [选项] 命令\n" +" apt-cache [选项] add 文件甲 [文件乙 ...]\n" +" apt-cache [选项] showpkg 软件包甲 [软件包乙 ...]\n" +" apt-cache [选项] showsrc 软件包甲 [软件包乙 ...]\n" +"\n" +"apt-cache 是一个底层的工具,我们用它来操纵 APT 的二进制\n" +"缓存文件,也用来在那些文件中查询相关信息\n" +"\n" +"命令:\n" +" add - 往源缓存加入一个软件包文件\n" +" gencaches - 一并生成软件包和源代码包的缓存\n" +" showpkg - 显示某个软件包的全面信息\n" +" showsrc - 显示源文件的各项记录\n" +" stats - 显示一些基本的统计信息\n" +" dump - 简要显示整个缓存文件的内容\n" +" dumpavail - 把所有有效的包文件列表打印到标准输出\n" +" unmet - 显示所有未满足的依赖关系\n" +" search - 根据正则表达式搜索软件包列表\n" +" show - 以便于阅读的格式介绍该软件包\n" +" depends - 原原本本地显示该软件包的依赖信息\n" +" rdepends - 显示所有依赖于该软件包的软件包名字\n" +" pkgnames - 列出所有软件包的名字\n" +" dotty - 生成可用 GraphVis 处理的软件包关系图\n" +" xvcg - 生成可用 xvcg 处理的软件包的关系图\n" +" policy - 显示软件包的安装设置状态\n" +"\n" +"选项:\n" +" -h 本帮助文档。\n" +" -p=? 软件包的缓存。\n" +" -s=? 源代码包的缓存。\n" +" -q 关闭进度显示。\n" +" -i 仅为 unmet 命令显示重要的依赖关系。\n" +" -c=? 读取指定配置文件\n" +" -o=? 设置任意指定的配置选项,例如 -o dir::cache=/tmp\n" +"若要深入了解,您还可以查阅 apt-cache(8) 和 apt.conf(5) 参考手册。\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "请给这张光盘起个名字,比如说“Debian 2.1r1 Disk 1”" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "请把光盘碟片插入驱动器再按回车键" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "请对您的光盘套件中的其它光盘重复相同的操作。" + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "参数没有成对" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"用法:apt-config [选项] 命令\n" +"\n" +"apt-config 是一个用于读取 APT 配置文件的简单工具\n" +"\n" +"命令:\n" +" shell - Shell 模式\n" +" dump - 显示配置文件\n" +"\n" +"选项:\n" +" -h 本帮助文本。\n" +" -c=? 读取指定的配置文件\n" +" -o=? 设置任意指定的配置选项,例如:-o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s 不是一个有效的 DEB 软件包。" + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"用法: apt-extracttemplates 文件甲 [文件乙 ...]\n" +"\n" +"apt-extracttemplates 是用来从 debian 软件包中解压出配置文件和模板\n" +"信息的工具\n" +"\n" +"选项:\n" +" -h 本帮助文本\n" +" -t 设置 temp 目录\n" +" -c=? 读指定的配置文件\n" +" -o=? 设置任意指定的配置选项,例如 -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "无法写入 %s" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "无法获得 debconf 的版本。您安装了 debconf 吗?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "软件包的扩展列表超长" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "处理目录 %s 时出错" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "源扩展列表超长" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "将 header 写到 contents 文件时出错" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "处理 Contents %s 时出错" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"用法: apt-ftparchive [选项] 命令\n" +"命令: packages 二进制软件包搜索路径 [overridefile [路径前缀]]\n" +" sources 源代码包搜索路径 [overridefile [路径前缀]]\n" +" contents 搜索路径\n" +" release 搜索路径\n" +" generate 配置文件 [groups]\n" +" clean 配置文件\n" +"\n" +"apt-ftparchive 被用来为 Debian 软件包生成索引文件。它能支持\n" +"多种生成索引的方式,从全自动的索引生成到在功能上取代 dpkg-scanpackages \n" +"和 dpkg-scansources,都能游刃有余\n" +"\n" +"apt-ftparchive 能依据一个由 .deb 文件构成的文件树生成 Package 文件。\n" +"Package 文件里不仅注有每个软件包的 MD5 校验码和文件大小,\n" +"还有软件包的所有控制字段的内容。该软件同时支持 override 文件,\n" +"通过它可以强制指定软件包的优先级及其所属的软件类别。\n" +"\n" +"与上面类似,apt-ftparchive 也能由 .dsc 的文件树生成 Source 文件。\n" +"可以通过使用 --source-override 选项来指定一个 override 文件\n" +"\n" +"使用“packages”和“source”命令时,必须在文件树的根部执行本程序。\n" +"二进制包的搜索路径一定要是递归搜索的底层,而且 override 文件里\n" +"应该注明 override 的标志。若指定了路径前缀,那么它会被加到文件名前面。\n" +"下面有个来自 Debian 文档的例子:\n" +" apt-ftparchive packages dists/potato/main/binary-i386 > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"选项:\n" +" -h 本帮助文档\n" +" --md5 使之生成 MD5 校验和\n" +" -s=? 源代码包 override 文件\n" +" -q 输出精简信息\n" +" -d=? 指定可选的缓存数据库\n" +" -d=? 使用另一个可选的缓存数据库\n" +" --no-delink 开启delink的调试模式\n" +" --contents 使之生成控制内容文件\n" +" -c=? 读取指定配置文件\n" +" -o=? 设置任意指定的配置选项" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "没有任何选定项是匹配的" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "软件包文件组“%s”中缺少一些文件" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "缓存数据库被损坏了,该数据库文件的文件名已改成 %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "DB 已过时,现试图进行升级 %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "无法打开 DB 文件 %s:%s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "无法读取 %s 的状态" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "存档没有包含控制字段" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "无法获得游标(cursor)" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "警告:无法读取目录 %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "警告:无法对 %s 进行统计\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "错误:" + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "警告:" + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "错误:处理文件时出错 " + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "无法解析路径 %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "无法遍历目录树" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "无法打开 %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " DeLink %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "无法读取符号链接 %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "无法 unlink %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** 无法将 %s 链接到 %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " 达到了 DeLink 的上限 %sB。\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "存档没有包含软件包(package)字段" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s 中没有 override 项\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " %s 的维护者 %s 并非 %s\n" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s 中没有 override 项\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s 中没有 override 项\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "内部错误,无法定位包内文件 %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - 无法再分配内存" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "无法打开 %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "override 文件 %s 第 %lu 行的格式有误 #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "override 文件 %s 第 %lu 行的格式有误 #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "override 文件 %s 第 %lu 行的格式有误 #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "无法读取 override 文件 %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "未知的压缩算法“%s”" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "压缩后的输出文件 %s 要求有一个压缩文件集合" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "无法为子进程创建 IPC 管道" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "无法创建 FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "无法 fork" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "压缩子进程" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "内部错误,无法建立 %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "无法建立子进程的 IPC 管道" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "无法执行压缩程序" + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "解压程序" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "无法对子进程或文件进行读写" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "在计算 MD5 校验和时,无法读取数据" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "在 unlink %s 时出错" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "无法将 %s 重命名为 %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "Y" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "编译正则表达式时出错 - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "下列的软件包有不能满足的依赖关系:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "但是 %s 已经安装了" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "但是 %s 正要被安装" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "但却无法安装它" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "但是它只是个虚拟软件包" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "但是它还没有被安装" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "但是它将不会被安装" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " 或" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "下列【新】软件包将被安装:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "下列软件包将被【卸载】:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "下列的软件包的版本将保持不变:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "下列的软件包将被升级:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "下列软件包将被【降级】:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "下列被要求保持版本不变的软件包将被改变:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (是由于 %s) " + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"【警告】:下列的重要软件包将被卸载 \n" +"请勿尝试,除非您确实知道您在做什么!" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "共升级了 %lu 个软件包,新安装了 %lu 个软件包," + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "共重新安装了 %lu 个软件包," + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "降级了 %lu 个软件包," + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "要卸载 %lu 个软件包,有 %lu 个软件未被升级。\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "有 %lu 个软件包没有被完全安装或卸载。\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "正在更正依赖关系..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " 失败。" + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "无法更正依赖关系" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "无法最小化要升级的软件包集合" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " 完成" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "您也许需要运行“apt-get -f install”来纠正上面的错误。" + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "不能满足依赖关系。不妨试一下 -f 选项。" + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "【警告】:下列的软件包不能通过验证!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "忽略了认证警告。\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "不经验证就安装这些软件包么?[y/N] " + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "有些软件包不能通过验证" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "碰到了一些问题,您使用了 -y 选项,但是没有用 --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "内部错误,InstallPackages 被用在了无法安装的软件包上!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "有软件包需要被卸载,但是卸载动作被程序设置所禁止。" + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "内部错误,Ordering 没有完成" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "无法对下载目录加锁" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "无法读取安装源列表。" + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "怪了……文件大小不符,发信给 apt@packages.debian.org 吧" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "需要下载 %sB/%sB 的软件包。\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "需要下载 %sB 的软件包。\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "解压缩后会消耗掉 %sB 的额外空间。\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "解压缩后将会空出 %sB 的空间。\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "无法获知您在 %s 上的空余空间" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "您在 %s 中没有足够的空余空间。" + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "虽然您指定了 Trivial Only,但这不是个日常(trivial)操作。" + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "Yes, do as I say!" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"您的操作会导致潜在的危害。\n" +"若还想继续的话,就输入下面的短句“%s”\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "中止执行。" + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "您希望继续执行吗?[Y/n]" + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "无法下载 %s %s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "有一些文件下载失败" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "下载完毕,目前是“仅下载”模式" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"有几个软件包无法下载,您可以运行 apt-get update 或者加上 --fix-missing 的选项" +"再试试?" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "目前还不支持 --fix-missing 和介质交换(media swapping)" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "无法更正缺少的软件包。" + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "放弃安装。" + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "注意,我选了 %s 而非 %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "忽略了 %s,它已经被安装而且没有指定要升级。\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "软件包 %s 还未安装,因而不会被卸载\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "软件包 %s 是一个由下面的软件包提供的虚拟软件包:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [已安装]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "请您明确地选择一个来进行安装。" + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"现在没有可用的软件包 %s,但是它被其它的软件包引用了。\n" +"这可能意味着这个缺失的软件包可能已被废弃,\n" +"或者只能在其他发布源中找到\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "可是下列的软件包取代了它:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "软件包 %s 还没有可供安装的候选者" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "不能重新安装 %s,因为无法下载它。\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "%s 已经是最新的版本了。\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "未找到“%2$s”的“%1$s”发布版本" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "未找到“%2$s”的“%1$s”版本" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "选定了版本为 %s (%s) 的 %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr " update 命令是不需任何参数的" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "无法对状态列表目录加锁" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" +"有一些索引文件不能下载,它们可能被忽略了,也可能转而使用了旧的索引文件。" + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "内部错误,AllUpgrade 坏事了" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "无法找到软件包 %s" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "注意,根据正则表达式“%2$s”选中了 %1$s\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "您可能需要运行“apt-get -f install”来纠正下列错误:" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt-get -f install”(也可" +"以指定一个解决办法)。" + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"有一些软件包无法被安装。如果您用的是不稳定(unstable)发行版,这也许是\n" +"因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件\n" +"包尚未被创建或是它们还在新到(incoming)目录中。" + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"您仅要求对单一软件包进行操作,这极有可能是因为该软件包安装不上,同时,\n" +"您最好提交一个针对这个软件包的故障报告。" + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "下列的信息可能会对解决问题有所帮助:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "无法安装的软件包" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "将会安装下列额外的软件包:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "建议安装的软件包:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "推荐安装的软件包:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "正在筹划升级... " + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "失败" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "完成" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "内部错误,problem resolver 坏事了" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "要下载源代码,必须指定至少一个对应的软件包" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "无法找到与 %s 对应的源代码包" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "忽略已下载过的文件“%s”\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "您在 %s 上没有足够的空余空间" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "需要下载 %sB/%sB 的源代码包。\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "需要下载 %sB 的源代码包。\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "下载源代码 %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "有一些包文件无法下载。" + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "对于已经被解包到 %s 目录的源代码包就不再解开了\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "运行解包的命令“%s”出错。\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "请检查是否安装了“dpkg-dev”软件包。\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "执行构造软件包命令“%s”失败。\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "子进程出错" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "要检查生成软件包的构建依赖关系(builddeps),必须指定至少一个软件包" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "无法获得 %s 的构建依赖关系(build-dependency)信息" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr " %s 没有构建依赖关系信息。\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "由于无法找到软件包 %3$s ,因此不能满足 %2$s 所要求的 %1$s 依赖关系" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"由于无法找到符合要求的软件包 %3$s 的可用版本,因此不能满足 %2$s 所要求的 %1" +"$s 依赖关系" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "无法满足 %2$s 所要求 %1$s 依赖关系:已安装的软件包 %3$s 太新了" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "无法满足 %2$s 所要求 %1$s 依赖关系:%3$s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "不能满足软件包 %s 所要求的构建依赖关系。" + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "无法处理构建依赖关系" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "被支持模块:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"用法: apt-get [选项] 命令\n" +" apt-get [选项] install|remove 包甲 [包乙 ...]\n" +" apt-get [选项] source 包甲 [包乙 ...]\n" +"\n" +"apt-get 提供了一个用于下载和安装软件包的简易命令行界面。\n" +"最常用命令是 update 和 install。\n" +"\n" +"命令:\n" +" update - 下载更新软件包列表信息\n" +" upgrade - 进行一次升级\n" +" install - 安装新的软件包(注:包名是 libc6 而非 libc6.deb)\n" +" remove - 卸载软件包\n" +" source - 下载源码包文件\n" +" build-dep - 为源码包配置所需的构建依赖关系\n" +" dist-upgrade - 发布版升级,见 apt-get(8)\n" +" dselect-upgrade - 根据 dselect的选择来进行升级\n" +" clean - 删除所有已下载的包文件\n" +" autoclean - 删除老版本的已下载的包文件\n" +" check - 核对以确认系统的依赖关系的完整性\n" +"选项:\n" +" -h 本帮助文档。\n" +" -q 让输出可作为日志 - 不显示进度\n" +" -qq 除了错误外,什么都不输出\n" +" -d 仅仅下载 - 【不】安装或解开包文件\n" +" -s 不作实际操作。只是依次模拟执行命令\n" +" -y 对所有询问都作肯定的回答,同时不作任何提示\n" +" -f 当没有通过完整性测试时,程序仍试图继续执行\n" +" -m 当有包文件无法找到时,程序仍试图继续执行\n" +" -u 显示已升级的软件包列表\n" +" -b 在下载完源码包后,编译生成相应的软件包\n" +" -V 显示详尽的版本号\n" +" -c=? 读取指定配置文件\n" +" -o=? 设置任意指定的配置选项,例如 -o dir::cache=/tmp\n" +"请查阅 apt-get(8)、sources.list(5) 和 apt.conf(5)的参考手册\n" +"以获取更多信息和选项。\n" +" 本 APT 有着超级牛力。\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "命中 " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "获取:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "忽略 " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "错误 " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "下载 %sB,耗时 %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [执行中]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"更换介质:请把标有\n" +"“%s”\n" +"的碟片插入驱动器“%s”再按回车键\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "未知的软件包记录!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"用法: apt-sortpkgs [选项] 文件甲 [文件乙 ...]\n" +"\n" +"apt-sortpkgs 是对软件包索引文件内容进行排序的简单工具。-s 选项\n" +"是用来指出后面参数所示文件是哪种文件。\n" +"\n" +"选项:\n" +" -h 本帮助文档\n" +" -s 根据源文件排序\n" +" -c=? 读取指定配置文件\n" +" -o=? 设置任意指定的配置选项,例如 -o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "错误的默认设置!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "按回车键继续。" + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "在解包时发生了一些错误。我正准备配置" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "已经安装的软件包。这个操作可能会导致出现重复的错误" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "或一些由于依赖关系不能满足所产生的错误。这个问题不大,只有" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "这个提示之前的错误消息才值得您注意。请更正它们,然后再次执行 [I]nstall" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "正在合并现有信息" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "无法创建管道" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "无法执行 gzip" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "包文件已被损坏" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "tar 的校验码不符,包文件已被损坏" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "未知的 TAR 数据头类型 %u,成员 %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "无效的打包文件特征号(signature)" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "读取打包文件中的成员文件头出错" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "打包文件中成员文件头无效" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "存档太短了" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "无法读取打包文件的数据头" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "把 DropNode 用在了仍在链表中的节点上" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "无法分配散列表项!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "无法分配转移项(diversion)" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "内部错误,出现在 AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "试图覆盖一个转移项(diversion),%s -> %s 即 %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "添加了两个转移项(diversion) %s-> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "重复的配置文件 %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "无法写入文件 %s" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "无法关闭文件 %s" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "路径名 %s 过长" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "%s 被解包了不只一次" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "目录 %s 已被转移(diverted)" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "该软件包正尝试写入转移对象(diversion target) %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "该转移路径(diversion path)过长" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "目录 %s 要被一个非目录的文件替换" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "无法在其散列桶(hash bucket)中分配节点" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "路径名过长" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "用来覆盖的软件包不属于 %s 的任何版本" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "文件 %s/%s 会覆盖属于软件包 %s 中的同名文件" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "无法读取 %s" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "无法读取 %s 的状态" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "无法删除 %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "无法创建 %s " + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "无法读取 %sinfo 的状态" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "info 和 temp 目录要求处于同一文件系统之下" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "正在读取软件包列表" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "无法切换工作目录到 admin 目录 %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "在获取软件包名字时出现内部错误" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "正在读取文件列表" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"无法打开列表文件“%sinfo/%s”。如果您不能恢复这个文件,那么就清空该文件,再马上" +"重新安装相同版本的这个软件包!" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "无法读取列表文件 %sinfo/%s" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "获得一个节点时出现内部错误" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "无法打开转移配置文件(diversions file) %sdiversions" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "该转移配置文件(diversion file)被损坏了" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "转移配置文件中有一行是无效的:%s" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "添加 diversion 时出现内部错误" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "必须首先初始化软件包缓存" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "无法找到某个软件包:包头,于偏移位置 %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "状态文件中有错误的 ConfFile 段。位于偏移位置 %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "无法解析 MD5 码。文件内偏移量为 %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "这不是一个有效的 DEB 包文件,其包内遗漏了“%s”" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "这不是一个有效的 DEB 包文件,其包内遗漏了“%s”或者“%s”" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "无法切换工作目录到 %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "内部错误,无法定位包内文件" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "无法在打包文件中找到有效的主控文件" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "不能解析的主控文件" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "无法读取光盘数据库 %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"请使用 apt-cdrom,通过它就可以让 APT 能识别该光盘。apt-get upgdate 不能被用来" +"加入新的光盘。" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "错误的光盘" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "无法卸载现在挂载于 %s 的 CD-ROM,它可能正在使用中。" + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "找不到光盘。" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "无法找到该文件" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "无法读取状态" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "无法设置文件的修改日期" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "无效的 URI,本地的 URI 不能以 // 开头" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "正在登录" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "无法获知对方主机名" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "无法获知本地主机名" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "服务器拒绝了我们的连接,它响应道:%s" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "USER 指令出错,服务器响应道:%s" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "PASS 指令出错,服务器响应道:%s" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" +"您指定了代理服务器,但是没有登陆脚本,Acquire::ftp::ProxyLogin 设置为空。" + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "登录脚本命令“%s”出错,服务器响应道:%s" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "TYPE 指令出错,服务器响应道:%s" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "连接超时" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "服务器关闭了连接" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "读错误" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "回应超出了缓存区大小。" + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "协议有误" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "写文件出错" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "不能创建套接字" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "无法连接上数据套接字,连接超时" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "无法连接被动模式的套接字。" + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo 无法得到侦听套接字" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "无法绑定套接字" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "无法在套接字上侦听" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "无法确定套接字的名字" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "无法发出 PORT 指令" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "无法识别的地址族 %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT 指令出错,服务器响应道:%s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "数据套接字连接超时" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "无法接受连接" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "把文件加入散列表时出错" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "无法获取文件,服务器响应道“%s”" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "数据套接字超时" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "数据传送出错,服务器响应道“%s”" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "查询" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "无法调用 " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "正在连接 %s (%s)" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "无法为 %s 创建套接字(f=%u t=%u p=%u)" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "无法发起与 %s:%s (%s) 的连接" + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "无法连接上 %s:%s (%s),连接超时" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "无法连接上 %s:%s (%s)。" + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "正在连接 %s" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "无法解析域名“%s”" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "暂时不能解析域名“%s”" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "解析“%s:%s”时,出现了某些故障 (%i)" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "不能连接上 %s %s:" + +#: methods/gpgv.cc:65 +#, fuzzy, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "无法解析域名“%s”" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "错误:Acquire::gpgv::Options 的参数列表超长。结束运行。" + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "内部错误:签名正确无误,但是无法确认密钥的指纹(key fingerprint)?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "至少发现一个无效的签名。" + +#: methods/gpgv.cc:213 +#, fuzzy, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "用于验证签名(您安装了 gnupg 么?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "运行 gpgv 时发生未知错误" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "下列签名无效:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "由于没有公钥,下列签名无法进行验证:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "无法为 %s 开启管道" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "从 %s 进程读取数据出错" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "正在等待报头" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "受到了一行报头条目,它的长度超过了 %u 个字符" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "错误的报头条目" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "该 http 服务器发送了一个无效的应答报头" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "该 http 服务器发送了一个无效的 Content-Length 报头" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "该 http 服务器发送了一个无效的 Content-Range 报头" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "该 http 服务器的 range 支持不正常" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "无法识别的日期格式" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "select 调用出错" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "连接服务器超时" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "写输出文件时出错" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "写文件时出错" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "写文件时出错" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "从服务器读取数据时出错,对方关闭了连接" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "从服务器读取数据出错" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "错误的报头数据" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "连接失败" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "内部错误" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "无法 mmap 一个空文件" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "无法 mmap %lu 字节的数据" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "没有发现您的所选 %s" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "无法识别的类型缩写:“%c”" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "正在打开配置文件 %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "软件包来源档的第 %d 行超长了(长度限制为 %d)。" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "语法错误 %s:%u:配置小节没有以名字开头" + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "语法错误 %s:%u:标签格式有误" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "语法错误 %s:%u: 配置值后有多余的无意义数据" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "语法错误 %s:%u: 只能在顶层配置文件中使用指示" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "语法错误 %s:%u:太多的嵌套 include 命令" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "语法错误 %s:%u: Included from here" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "语法错误 %s:%u: 不支持的指令“%s”" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "语法错误 %s:%u: 文件尾部有多余的无意义的数据" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... 有错误!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... 完成" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "未知的命令行选项“%c”[来自 %s]" + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "无法识别命令行选项 %s" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "命令行选项 %s 不是个布尔值" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "选项 %s 要求有一个参数" + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "选项 %s:配置项后必须包含有形如“=<变量>”的具体指定" + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "选项 %s 要求有一个整数作为参数,而不是“%s”" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "选项“%s”超长" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "不能识别参数 %s,请用 true 或 false" + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "无效的操作 %s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "无法读取文件系统挂载点 %s 的状态" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "无法切换工作目录到 %s" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "无法读取光盘的状态" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "由于文件系统为只读,因而无法使用文件锁%s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "无法打开锁文件 %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "无法在 nfs 文件系统上使用文件锁 %s" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "无法获得锁 %s" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "等待子进程 %s 的退出,但是它并不存在" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "子进程 %s 发生了段错误" + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "子进程 %s 返回了一个错误号 (%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "子进程 %s 异常退出了" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "无法打开文件 %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "读文件时出错,还剩 %lu 字节没有读出" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "写文件时出错,还剩 %lu 字节没有保存" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "关闭文件时出错" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "用 unlink 删除文件时出错" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "同步文件时出错" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "软件包缓存区是空的" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "软件包缓存区文件损坏了" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "软件包缓存区文件的版本不兼容" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "本程序目前不支持“%s”这个版本控制系统" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "软件包缓存区是为其它架构的主机构造的" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "依赖" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "预依赖" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "建议" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "推荐" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "冲突" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "替换" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "废弃" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "重要" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "必要" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "标准" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "可选" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "额外" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "正在分析软件包的依赖关系树" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "候选版本" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "生成依赖关系" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "无法解析软件包文件 %s (1)" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "无法解析软件包文件 %s (2)" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "安装源配置文件“%2$s”第 %1$lu 行的格式有误 (URI)" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "安装源配置文件“%2$s”第 %1$lu 行有错误 (dist)" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "安装源配置文件“%2$s”第 %1$lu 行有错误 (URI parse)" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "安装源配置文件“%2$s”第 %1$lu 行有错误 (Ablolute dist)" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "安装源配置文件“%2$s”第 %1$lu 行有错误 (dist parse)" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "正在打开 %s" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "软件包来源档 %2$s 的第 %1$u 行超长了。" + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "在安装源列表中 %2$s 中第 %1$u 行的格式有误 (type)" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "无法识别在安装源列表 %3$s 里,第 %2$u 行中的软件包类别“%1$s”" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "在安装源列表中 %2$s 中第 %1$u 行的格式有误 (vendor id)" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"由于这次安装存在着一个 Conflicts/Pre-Depends 循环,因而需要暂时删除一个必不可" +"少的软件包 %s。通常并不建议这样做,但是如果您确实希望如此,可以打开 APT::" +"Force-LoopBreak 选项。" + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "不支持索引文件类型“%s”" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "软件包 %s 需要重新安装,但是我无法找到相应的安装文件。" + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"错误,pkgProblemResolver::Resolve 发生故障,这可能是有软件包被要求保持现状的" +"缘故。" + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "" +"无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关" +"系。" + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "软件包列表的目录 %spartial 不见了。" + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "找不到“%spartial”这个目录。" + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, fuzzy, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "正在下载第 %li 个文件(共 %li 个,尚需 %s)" + +#: apt-pkg/acquire.cc:825 +#, fuzzy, c-format +msgid "Retrieving file %li of %li" +msgstr "正在读取文件列表" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "无法找到获取软件包的渠道 %s 所需的驱动程序。" + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "获取软件包的渠道 %s 所需的驱动程序没有正常启动。" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "请把标有 “%s” 的碟片插入驱动器“%s”再按回车键。" + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "不支持“%s”打包系统" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "无法确定适合的打包系统类型" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "无法读取 %s 的状态。" + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "您必须在您的 sources.list 写入一些“软件包源”的 URI" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "无法解析或打开软件包的列表或是状态文件。" + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "您可能需要运行 apt-get update 来解决这些问题" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "偏好设定(preferences)文件中发现有无效的记录,无 Package 字段头" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "无法识别锁定的类型(pin type) %s" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "没有为版本锁定指定优先级(或为零)" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "软件包暂存区使用的是不兼容的版本控制系统" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "处理 %s (NewPackage)时出错" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "处理 %s (UsePackage1)时出错" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "处理 %s (UsePackage2)时出错" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "处理 %s (NewFileVer1)时出错" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "处理 %s (NewVersion1)时出错" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "处理 %s (UsePackage3)时出错" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "处理 %s (NewVersion2)时出错" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "糟了,软件包的数量了超出本程序的处理能力。" + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "糟了,软件包版本的数量了超出本程序的处理能力。" + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "糟了,依赖关系的数量超出了本程序的处理能力。" + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "处理 %s (FindPkg)时出错" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "处理 %s (CollectFileProvides)时出错" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "当处理文件依赖关系时,无法找到软件包 %s %s" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "无法获取源软件包列表 %s 的状态" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "正在收集文件所提供的软件包" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "无法写入来源缓存文件" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "无法重命名文件,%s (%s -> %s)。" + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "MD5 校验和不符" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "以下 key ID 没有可用的公钥:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "" +"我无法找到一个对应 %s 软件包的文件。在这种情况下可能需要您手动修正这个软件" +"包。(缘于架构缺失)" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" +"我无法找到对应 %s 软件包的文件。在这种情况下您可能需要手动修正这个软件包。" + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "软件包的索引文件已损坏。找不到对应软件包 %s 的 Filename: 字段。" + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "大小不符" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "软件提供者数据块内 %s 没有包含指纹信息" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"现把 %s 作为了 CD-ROM 的挂载点\n" +"正在挂载 CD-ROM\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "正在鉴别.. " + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "存档标签:%s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "现把 %s 作为了 CD-ROM 的挂载点\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "正在卸载 CD-ROM 文件系统\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "等待插入盘片……\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "正在挂载 CD-ROM 文件系统……\n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "正在光盘中查找索引文件..\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "找到了 %i 个软件包索引、%i 个源代码包索引,和 %i 个数字签名\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "这不是一个有效的名字,请再次命名。\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"这张光盘现在的名字是:\n" +"“%s”\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "正在复制软件包列表……" + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "正在写入新的软件包源列表\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "对应于该光盘的软件包源设置项是:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "正在卸载 CD-ROM 文件系统……" + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "已写入 %i 条记录。\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "已写入 %i 条记录,并有 %i 个文件缺失。\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "已写入 %i 条记录,并有 %i 个文件不吻合\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "已写入 %i 条记录,并有 %i 个缺失,以及 %i 个文件不吻合\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "正在准备 %s" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "正在解压缩 %s" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "正在准备配置 %s" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "正在配置 %s" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "已安装 %s" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "正在准备 %s 的删除操作" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "正在删除 %s" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "已删除 %s" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, fuzzy, c-format +msgid "Preparing to completely remove %s" +msgstr "正在准备配置 %s" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, fuzzy, c-format +msgid "Completely removed %s" +msgstr "无法删除 %s" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "无法打开文件 %s" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "连接被永久关闭" + +#~ msgid "File date has changed %s" +#~ msgstr "文件 %s 的时间已被改动" + +#~ msgid "Reading file list" +#~ msgstr "正在读取文件列表" + +#~ msgid "Could not execute " +#~ msgstr "未能执行 " + +#~ msgid "Preparing for remove with config %s" +#~ msgstr "正在准备连同配置文件的删除 %s" + +#~ msgid "Removed with config %s" +#~ msgstr "连同配置文件一同删除 %s " + +#~ msgid "Unknown vendor ID '%s' in line %u of source list %s" +#~ msgstr "" +#~ "在安装源列表 %3$s 的第 %2$u 行发现了无法识别的软件提供商 ID (vendor ID) “%" +#~ "1$s”" diff --git a/po/zh_TW.po b/po/zh_TW.po new file mode 100644 index 0000000..b7af225 --- /dev/null +++ b/po/zh_TW.po @@ -0,0 +1,2738 @@ +# 先進包裝工具 (apt) 繁體中文訊息 +# Translators: 黃思文 +# Asho Yeh +# Kanru Chen +# +# $Id: zh_TW.po,v 1.11 2004/04/30 04:50:38 mdz Exp $ +msgid "" +msgstr "" +"Project-Id-Version: 0.5.4\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-26 16:17-0500\n" +"PO-Revision-Date: 2006-10-21 16:58+0800\n" +"Last-Translator: Asho Yeh \n" +"Language-Team: Chinese/Traditional \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "套件 %s 版本 %s 有未解決的相依問題:\n" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "無法找出套件 %s 的位置" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "所有套件的名稱" + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " 普通套件:" + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " 虛擬套件:" + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " 單虛擬套件:" + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " 混合虛擬套件:" + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " 失蹤:" + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "所有不同版本" + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "所有依存關係:" + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "所有版本/檔案關聯:" + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "所有提供套件對應:" + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "Glob 字串共計:" + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "所有相依版本空間:" + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Slack 空間共計:" + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "所有統計後的空間:" + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "套件檔案 %s 已失去同步。" + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "您必須給定一完整的樣式" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "未找到套件" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "套件檔案:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "快取資料同步過時,無法 x-ref 套件檔案" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "鎖定的套件:" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(未找到)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr "已安裝:" + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(沒有)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " 候選:" + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " 套件鎖定: " + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " 版本表格:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s 是針對於 %s %s 並編譯在 %s %s\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" +"用法: apt-cache [選項] 命令\n" +" apt-cache [選項] add file1 [file2 ...]\n" +" apt-cache [選項] showpkg 套件1 [套件2 ...]\n" +" apt-cache [選項] showsrc 套件1 [套件2 ...]\n" +"\n" +"apt-cache 是一個底層的工具,我們用它來操縱 APT 的二進制\n" +"快取檔案,也用來查詢那些檔案中的相關訊息\n" +"\n" +"命令:\n" +" add - 往源碼快取中加入一個套件檔案\n" +" gencaches - 產生套件和源碼的快取\n" +" showpkg - 顯示套件的全面訊息\n" +" showsrc - 顯示源碼檔案的各項記錄\n" +" stats - 顯示一些基本的統計訊息\n" +" dump - 簡要顯示整個緩存文件的內容\n" +" dumpavail - 印出可取得的檔案到標準輸出(stdout)\n" +" unmet - 顯示所有未滿足的相依關係\n" +" search - 根據正規表示法搜索套件列表\n" +" show - 顯示關於該套件的易於閱讀的報告\n" +" depends - 原原本本的顯示該套件的相依關係的訊息\n" +" rdepends - 顯示所有相依於該套件的套件名字\n" +" pkgnames - 列出所有套件的名稱\n" +" dotty - 產生 GraphVis 處理的套件關係圖\n" +" xvcg - 產生 xvcg 處理的套件的關係圖\n" +" policy - 顯示套件的安裝設定狀態\n" +"\n" +"選項:\n" +" -h 本幫助訊息。\n" +" -p=? 套件的快取。\n" +" -s=? 源碼的快取。\n" +" -q 關閉進度顯示。\n" +" -i 僅為 unmet 命令顯示重要的相依關係。\n" +" -c=? 讀取指定的設定檔\n" +" -o=? 設定任意指定的設定選項,例如 -o dir::cache=/tmp\n" +"若要深入了解,您還可以查閱 apt-cache(8) 和 apt.conf(5) 參考手冊。\n" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "請給這張光碟取個名字,比如說“Debian 2.1r1 Disk 1”" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "請放入光碟至光碟機,然後按 [Enter] 鍵。" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "請對您的光碟套件中的其它光碟重復相同的操作。" + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "參數並非一對" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"用法:apt-config [選項] 命令\n" +"\n" +"apt-config 是一個用於讀取 APT 設定檔案的簡單工具\n" +"\n" +"命令:\n" +" shell - Shell 模式\n" +" dump - 顯示設定檔案\n" +"\n" +"選項:\n" +" -h 本幫助訊息。\n" +" -c=? 讀取指定的設定檔案\n" +" -o=? 設定任意指定的設定選項,例如:-o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s 不是合法的 DEB 套件" + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"用法: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates 是用來從 debian 套件中解壓出設定檔和模板\n" +"信息的工具\n" +"\n" +"選項:\n" +" -h 本幫助訊息。\n" +" -t 設定 temp 目錄\n" +" -c=? 讀取指定的設定檔案\n" +" -o=? 設定任意指定的設定選項,例如:-o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "無法寫入『%s』。" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "無法取得 debconf 版本。debconf 是否安裝?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "套件延伸列表過長" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "處理目錄 %s 時錯誤" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "原碼的延伸列表太長" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "寫入標頭資訊到目錄檔案時出錯" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "處理目錄 %s 時出錯" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" +"用法: apt-ftparchive [選項] 命令\n" +"命令: packages 二進制套件搜索路徑 [overridefile [pathprefix]]\n" +" sources 源碼搜索路徑 [overridefile [pathprefix]]\n" +" contents 搜索路徑\n" +" release 搜索路徑\n" +" generate 設定檔 [groups]\n" +" clean 設定檔\n" +"\n" +"apt-ftparchive 用來為 Debian 套件產生索引檔案。它支援\n" +"多種生成索引的方式,從自動化和功能性來說,是一套取代\n" +"dpkg-scanpackages 和 dpkg-scansources 的工具\n" +"\n" +"apt-ftparchive 能依據一個由 .deb 檔案構成的檔案樹產生 Package 檔案。\n" +"Package 檔案不僅包含每個套件的 MD5 校驗碼和檔案大小,\n" +"還有套件的所有控制字段的內容。同時支援 override 檔案,\n" +"它可以強制指套件的優先等級及其所屬的套件類別。\n" +"\n" +"與上頭類似,apt-ftparchive 也能由 .dsc 的檔案樹生成 Source 檔案。\n" +"使用 --source-override 選項來指定一個 override 檔案\n" +"\n" +"使用 'packages' 和 'source' 命令時,必須在檔案樹的根執行該程式。\n" +"二進制檔案的搜索路徑一定要是遞迴搜索的底層,\n" +"而且 override 檔案必須包含 override 旗標。如果 Pathprefix\n" +"存在則加到 filename 字段。\n" +"以 Debian 檔案庫舉例說明:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"選項:\n" +" -h 本幫助說明\n" +" --md5 產生 MD5 校驗控制碼\n" +" -s=? 源碼的 override 檔案\n" +" -q 輸出精簡信息\n" +" -d=? 指定選擇的快取資料庫\n" +" --no-delink 開啟delink的偵錯模式\n" +" --contents 產生控制內容檔案\n" +" -c=? 讀取指定的設定檔\n" +" -o=? 設定任意指定的設定選項" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "找不到符合的選項" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "套件檔案組 `%s' 缺少部份檔案" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "DB 已損毀,檔案被更名成 %s.old" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "DB 過舊,嘗試更新 %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "資料庫格式錯誤。如果您升級舊版的 apt,請移除並重建資料庫。" + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "無法開啟 DB 檔案 %s:%s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "無法取得 %s 的狀態" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "檔案沒有 control 記錄" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "無法取得游標" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W:無法讀取目錄 %s\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "W:無法取得 %s 狀態\n" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "錯誤:" + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "警告:" + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "E:套用到檔案時出錯" + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "無法解析路徑 %s" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "無法走訪目錄樹" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "無法開啟 %s" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr " 移除連結 %s [%s]\n" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "無法讀取符號鏈接 %s" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "無法 unlink %s" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "*** 無法將 %s 鏈接到 %s" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr " 達到了 DeLink 的上限 %sB。\n" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "檔案無套件字符" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr " %s 無 override 項目\n" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr " %s 套件維護者是 %s 非 %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s 無原始碼 override 項目\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s 無二元碼 override 項目\n" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "內部錯誤:無法找到成員 %s" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "realloc - 無法配置記憶體空間" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "無法開啟 %s" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "override 文件 %s 第 %lu 行的格式有誤 #1" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "override 文件 %s 第 %lu 行的格式有誤 #2" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "override 文件 %s 第 %lu 行的格式有誤 #3" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "無法讀取 override 檔案 %s" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "未知的壓縮演算法 '%s'" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "壓縮輸出 %s 需要一壓縮檔案集合" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "無法建立 IPC 管線到子程序" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "無法建立 FILE*" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "fork 時失敗" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "壓縮子程序" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "內部錯誤,無法建立 %s" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "無法建立子程序 IPC" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "無法執行壓縮程序" + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "解壓縮程序" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "IO 到子程序/檔案失效" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "在計算 MD5 時無法讀取資料" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "在 unlink %s 時出錯" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "無法將 %s 更名為 %s" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "Y" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "編譯正規表示法出錯 - %s" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "下列的套件有無法滿足的依存關係:" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "但是『%s』卻已經安裝好了。" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "但是『%s』卻將被安裝。" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "但是它卻無法安裝。" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "但是它只是虛擬的套件" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "但是『』卻還沒有安裝。" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "但是它卻不會被安裝。" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr "或" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "下列的【新】套件都將被安裝:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "下列的套件都將被【刪除】:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "下列的套件都將維持舊版本:" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "下列的套件都將更新:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "下列的套件都將被「降級」:" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "下列押後的套件都將被更改:" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s(因為 %s)" + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" +"警告:下列的基本套件都將被移除。\n" +"除非您很清楚在做什麼,請勿輕易嘗試。" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "更新 %lu 個套件,新安裝 %lu 個套件," + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "重新安裝 %lu 個套件," + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "降 %lu 個套件的版," + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "刪除 %lu 個套件,另不更新 %lu 個套件。\n" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "%lu 個套件沒有完全安裝或刪除完畢。\n" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "更正依存關係中..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr "失敗" + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "無法更正依存關係。" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "無法最小化升級的套件集合" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " 完成" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "用『apt-get -f install』指令或許能修正這些問題。" + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "無法滿足相依關係。試試看 -f 選項。" + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "警告:下列的套件驗證失敗!" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "忽略了認證警告。\n" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "不驗證這些套件就直接安裝?[y/N]" + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "部份套件無法驗證" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "出現一些問題,您使用了 -y 選項但是沒有用 --force-yes" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "內部錯誤,InstallPackages 被用在了無法安裝的套上!" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "有套件需要被移除,但移除動作被禁止。" + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "內部錯誤,Ordering didn't finish" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 +msgid "Unable to lock the download directory" +msgstr "無法鎖定下載的目錄" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "無法讀取來源單。" + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "怪了……檔案大小不符,發信給 apt@packages.debian.org 吧" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "需要下載 %2$sB 中 %1$sB 的檔案。\n" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "需要下載 %sB 的檔案。\n" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "解壓縮後將消耗 %sB 的空間。\n" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "解壓縮後將空出 %sB 的空間。\n" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "%s 無法足夠的空間。" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "『%s』內沒有足夠的空間。" + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "雖然您指定了 Trivial Only,但這不是個顯而易懂的(trivial)操作。" + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "是的,請執行我所指定的" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" +"您的操作會導致潛在的危險\n" +"若要繼續的話,就輸入下面的句子“%s”\n" +" ?] " + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "放棄執行。" + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "繼續執行嗎? 是按 [Y] 鍵,否按 [n] 鍵 " + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "無法下載『%s』檔案。%s\n" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "部份檔案無法下載" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 +msgid "Download complete and in download only mode" +msgstr "下載完畢,目前是“僅下載”模式" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" +"有幾個檔案無法下載,您可以執行 apt-get update 或者嘗試加上--fix-missing \n" +"選項?" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "目前還不支援 --fix-missing 和媒體置換(media swapping)" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "無法更正遺失的套件。" + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "放棄安裝。" + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "注意,選擇了 %s 而非 %s\n" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "忽略 %s,它已經被安裝而且沒有指定要升級。\n" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "套件『%s』沒有安裝,所以無法刪除。\n" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "虛擬套件『%s』的提供者是:\n" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr "【已安裝】" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "請您明確地選擇一個來進行安裝。" + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" +"現在沒有可用的套件 %s,但是它被其它的套件引用了。\n" +"這可能意味著這個套件已經消失或捨棄,\n" +"或者只能在其他原碼中找到\n" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "但是下列的套件將取代它:" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "套件 %s 還沒有可供安裝的候選版本" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "不能重新安裝 %s,因為無法下載它。\n" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "『%s』已經是最新版本了。\n" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "未找到“%2$s”的“%1$s”發布版本" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "未找到“%2$s”的“%1$s”版本" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "選定的版本為 %s (%s) 的 %s\n" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "update 指令不需任何參數" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "無法鎖定列表目錄" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "有一些索引檔案不能下載,它們可能被忽略了,也可能轉而使用了舊的索引檔案。" + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "內部錯誤,AllUpgrade 造成錯誤" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "無法找到 %s 套件。" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "注意,根據正規表示法“%2$s”選擇了 %1$s\n" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "用『apt-get -f install』指令或許能修正這些問題。" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" +"無法滿足的相依關係。請嘗試不指定套件明成來執行“apt-get -f install”(或指>\n" +"定一個解決辦法)。" + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" +"有一些套件無法被安裝。這也許是系統無法實現您要求的狀態\n" +"或是您使用不穩定(unstable)發行版而這些需要的套件尚未完成\n" +"或從 Incoming 目錄移除。" + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" +"您僅要求對單一套件進行操作,這極有可能是因為\n" +"該套件無法安裝,您最好提交一個針對這個套件\n" +"的臭蟲報告。" + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "底下的資訊有助於解決現在的情況:" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "損毀的套件" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "下列的【新】套件都將被安裝:" + +#: cmdline/apt-get.cc:1692 +msgid "Suggested packages:" +msgstr "建議(Suggested)的套件:" + +#: cmdline/apt-get.cc:1693 +msgid "Recommended packages:" +msgstr "推薦(Recommended)的套件:" + +#: cmdline/apt-get.cc:1713 +msgid "Calculating upgrade... " +msgstr "籌畫升級套件中..." + +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "失敗" + +#: cmdline/apt-get.cc:1721 +msgid "Done" +msgstr "完成" + +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 +msgid "Internal error, problem resolver broke stuff" +msgstr "內部錯誤,problem resolver 處理失敗" + +#: cmdline/apt-get.cc:1894 +msgid "Must specify at least one package to fetch source for" +msgstr "必須指定至少一個對應的套件才能下載源碼" + +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "無法找到 %s 套件的源碼" + +#: cmdline/apt-get.cc:1968 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "略過已被下載的檔案“%s”\n" + +#: cmdline/apt-get.cc:1992 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "『%s』內沒有足夠的空間。" + +#: cmdline/apt-get.cc:1997 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "需要下載 %2$sB 中 %1$sB 的原始檔案。\n" + +#: cmdline/apt-get.cc:2000 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "需要下載 %sB 的原始檔案。\n" + +#: cmdline/apt-get.cc:2006 +#, c-format +msgid "Fetch source %s\n" +msgstr "下載源碼 %s\n" + +#: cmdline/apt-get.cc:2037 +msgid "Failed to fetch some archives." +msgstr "無法下載某些檔案。" + +#: cmdline/apt-get.cc:2065 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "略過已經被解開到 %s 目錄的源碼檔案\n" + +#: cmdline/apt-get.cc:2077 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "執行解開套件指令 '%s' 時失敗。\n" + +#: cmdline/apt-get.cc:2078 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "請檢查是否安裝了“dpkg-dev”套件。\n" + +#: cmdline/apt-get.cc:2095 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "執行建立套件指令 '%s' 時失敗。\n" + +#: cmdline/apt-get.cc:2114 +msgid "Child process failed" +msgstr "子程序失敗" + +#: cmdline/apt-get.cc:2130 +msgid "Must specify at least one package to check builddeps for" +msgstr "必須指定至少一個套件才能檢查其建立相依關係(builddeps)" + +#: cmdline/apt-get.cc:2158 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "無法取得 %s 的建構相依關係。" + +#: cmdline/apt-get.cc:2178 +#, c-format +msgid "%s has no build depends.\n" +msgstr "%s 無建立相依關係訊息。\n" + +#: cmdline/apt-get.cc:2230 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "由於無法找到套件 %3$s ,因此不能滿足 %2$s 所要求的 %1$s 相依關係" + +#: cmdline/apt-get.cc:2282 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" +"由於無法找到符合要求的套件 %3$s 的可用版本,因此不能滿足 %2$s 所要求的 %1$s 的" +"相依關係" + +#: cmdline/apt-get.cc:2317 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "無法滿足 %2$s 所要求 %1$s 相依關係:已安裝的套件 %3$s 太新了" + +#: cmdline/apt-get.cc:2342 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "無法滿足 %2$s 所要求 %1$s 相依關係:%3$s" + +#: cmdline/apt-get.cc:2356 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "無法滿足套件 %s 所要求的建構相依關係。" + +#: cmdline/apt-get.cc:2360 +msgid "Failed to process build dependencies" +msgstr "無法處理建構相依關係" + +#: cmdline/apt-get.cc:2392 +msgid "Supported modules:" +msgstr "支援模組:" + +#: cmdline/apt-get.cc:2433 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" +"用法: apt-get [選項] 命令\n" +" apt-get [選項] install|remove pkg1 [pkg2 ...]\n" +" apt-get [選項] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get 提供了一個用於下載和安裝套件的簡易命令界面。\n" +"最常用命令是 update 和 install。\n" +"\n" +"命令:\n" +" update - 下載更新套件列表訊息\n" +" upgrade - 進行一次升級\n" +" install - 安裝新的套件(注:套件名稱是 libc6 而非 libc6.deb)\n" +" remove - 移除套件\n" +" source - 下載源碼檔案\n" +" build-dep - 為源碼配置所需的建構相依關係\n" +" dist-upgrade - 發布版本升級,見 apt-get(8) dselect-upgrade - 根據 " +"dselect \n" +"的選擇來進行升級\n" +" clean - 刪除所有已下載的套件檔案\n" +" auto-clean - 刪除已下載的套件檔案較舊的版本\n" +" check - 核對以確認系統的相依關係的完整性\n" +"\n" +"選項:\n" +" -h 本幫助訊息。\n" +" -q 讓輸出作為記錄檔 - 不顯示進度\n" +" -qq 除了錯誤外,什麼都不輸出\n" +" -d 僅下載 - 『不』安裝或解開套件檔案\n" +" -s 不作實際操作。只是模擬執行命令\n" +" -y 對所有詢問都作肯定的回答,同時不作任何提示\n" +" -f 當沒有通過完整性測試時,仍嘗試繼續執行\n" +" -m 當有套件檔案無法找到時,仍嘗試繼續執行\n" +" -u 顯示已升級的套件列表\n" +" -b 在下載完源碼後,編譯生成相應的套件\n" +" -V 顯示詳盡的版本號\n" +" -c=? 讀取指定的設定檔案\n" +" -o=? 設定任意指定的設定選項,例如:-o dir::cache=/tmp\n" +"請查閱 apt-get(8)、sources.list(5) 和 apt.conf(5)的參考手冊\n" +"以取得更多訊息和選項。\n" +" 本 APT 有著超級牛力。\n" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "已有 " + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "下載:" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "略過 " + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "錯誤 " + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "讀取 %sB 用了 %s (%sB/s)\n" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [工作中]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" +"更換媒體:請把名為\n" +" '%s' 的光碟\n" +"插入 '%s' 碟機,然後按 [Enter] 鍵。\n" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "未知的套件記錄!" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"用法: apt-sortpkgs [選項] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs 是對套件索引檔案內容進行排序的簡單工具。-s 選項\n" +"是用來指出該檔的檔案類型。\n" +"\n" +"選項:\n" +" -h 本幫助訊息。\n" +" -s 根據源碼檔案排序\n" +" -c=? 讀取指定的設定檔案\n" +" -o=? 設定任意指定的設定選項,例如:-o dir::cache=/tmp\n" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "錯誤的預設設定!" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "請按 [Enter] 鍵繼續。" + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "解開套件時發生錯誤。我要準備設定" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "套件已安裝過。這將造成重複性的錯誤" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "或因為失去相依關係所造成的錯誤。只有該錯誤可被容忍" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "以上的訊息相當重要。請修正它們並重新執行安裝[I]" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "結合現有資料中" + +#: apt-inst/contrib/extracttar.cc:117 +msgid "Failed to create pipes" +msgstr "無法建立管線" + +#: apt-inst/contrib/extracttar.cc:144 +msgid "Failed to exec gzip " +msgstr "無法執行 gzip" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "損毀的檔案" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "Tar checksum 失敗,檔案已損毀" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "未知的 TAR 標頭型別 %u, member 訊息 %s" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "無效的檔案籤章" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "讀取檔案 member 標頭訊息時出錯" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "無效的檔案 member 標頭" + +#: apt-inst/contrib/arfile.cc:131 +msgid "Archive is too short" +msgstr "檔案過短" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "讀取檔案標頭失敗" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "DropNode 在還有 linked node 時被呼叫" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "尋找雜湊元件失敗!" + +#: apt-inst/filelist.cc:463 +msgid "Failed to allocate diversion" +msgstr "分配轉移(diversion)失敗" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "內部錯誤於 AddDiversion" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "試圖改寫一個轉移(diversion),%s -> %s 和 %s/%s" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "重複加入轉移(diversion) %s -> %s" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "重複的設定檔 %s/%s" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, c-format +msgid "Failed to write file %s" +msgstr "寫入檔案 %s 失敗" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, c-format +msgid "Failed to close file %s" +msgstr "關閉檔案 %s 失敗" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, c-format +msgid "The path %s is too long" +msgstr "路徑 %s 過長" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "解開 %s 超過一次" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "路徑 %s 已被轉向(diverted)" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "此套件試圖寫入改變過的目標 %s/%s" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +msgid "The diversion path is too long" +msgstr "轉移(diversion)路徑過長" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "目錄 %s 已經被非目錄檔案取代" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "在雜湊表中找不到節點" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "路徑過長" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "複寫套件 %s 無符合版本" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "檔案 %s/%s 複寫套件 %s 中的相同檔案" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, c-format +msgid "Unable to read %s" +msgstr "無法讀取『%s』。" + +#: apt-inst/extract.cc:494 +#, c-format +msgid "Unable to stat %s" +msgstr "無法讀取 %s 的資料" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, c-format +msgid "Failed to remove %s" +msgstr "無法移除 %s" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, c-format +msgid "Unable to create %s" +msgstr "無法創造 %s" + +#: apt-inst/deb/dpkgdb.cc:118 +#, c-format +msgid "Failed to stat %sinfo" +msgstr "無法讀取 %s 的資料" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "資料目錄與暫存目錄需在同一檔案系統" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +msgid "Reading package lists" +msgstr "讀取套件清單中" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "無法變換 admin 目錄至 %sinfo" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "內部錯誤,無法取得套件名稱" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "讀取軟件表中" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" +"讀取清單檔案「%sinfo/%s」失敗。如果您無法還原此檔案\n" +"請使檔案空白並馬上重新安裝相同版本的套件。" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "讀取清單檔案「%sinfo/%s」失敗" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "內部錯誤,無法取得節點" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "讀取轉移檔案 %sdiversions 失敗" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "套件轉移檔損壞" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "無效的行於轉移檔案 %s 中" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "內部錯誤:新增轉移(diversion)失敗" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "套件快取必須先初始化" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "開啟套件失敗:檔案標頭,位移(offset) %lu" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "壞的 ConfFile 區段於 status 檔案。位移(offset) %lu" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "解析 MD5 錯誤。位移(offset) %lu" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "無效的 DEB 檔案,遺失 %s 成員" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "無效的 DEB 檔案,遺失 '%s' 或 '%s' 成員" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "無法變換目錄至 %s" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "內部錯誤:無法找到成員" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "找不到有效的 control 檔案" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "無法分析的 control 檔案" + +#: methods/cdrom.cc:114 +#, c-format +msgid "Unable to read the cdrom database %s" +msgstr "無法讀取碟片資料庫『%s』。" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" +"要讓本程式辨認此碟片,請用『apt-cdrom』工具。『apt-get update』不能用來製造新" +"的碟片。" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "碟片不正確。" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "無法下駕『%s』內的碟片,或許它仍在使用中。" + +#: methods/cdrom.cc:169 +msgid "Disk not found." +msgstr "找不到磁碟" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +msgid "File not found" +msgstr "找不到檔案" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 +msgid "Failed to stat" +msgstr "無法讀取資料" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 +#: methods/rred.cc:240 +msgid "Failed to set modification time" +msgstr "日期更新失敗" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "通用資源識別號錯誤。本機資源識別號不應以『//』起頭。" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "登入中" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "無法解析對方主機名稱。" + +#: methods/ftp.cc:173 +msgid "Unable to determine the local name" +msgstr "無法解析本機名稱。" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "伺服器因『%s』不受理。" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "『USER』指令因『%s』失敗。" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "『PASS』指令因『%s』失敗。" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "媒介伺服器設定應包括登入稿。" + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "登入稿『%s』因『%s』失敗。" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "『TYPE』指令因『%s』失敗。" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "連線逾時" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "伺服器關閉聯線。" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "讀取失敗。" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "答覆超過緩衝區長度。" + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "協定失敗。" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "寫入失敗。" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "無法建立 Socket" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "無法連接到 data socket,連線逾時" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "無法連接到 passive socket" + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "getaddrinfo 無法取得監聽的 socket" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "無法連接(bind) socket" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "無法在 socket 上接收資料" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "無法解析 socket 名稱" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "無法送出「PORT」命令" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "未知的地址成員 %u (AF_*)" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "EPRT 失敗,伺服器回應:%s" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "Data socket 連線逾時" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "無法允許連線" + +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "問題雜湊表" + +#: methods/ftp.cc:877 +#, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "無法取得檔案,伺服器回應:%s" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "Data socket 連線逾時" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "資料傳輸失敗,伺服器回應 %s" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "查詢" + +#: methods/ftp.cc:1109 +msgid "Unable to invoke " +msgstr "無法讀取 " + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "連絡『%s (%s)』中" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "[IP: %s %s]" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "無法建立到『%s』的 socket (族=%u 型=%u 協定=%u)。" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "無法聯絡到主機『%s:%s (%s)』。" + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "無法聯絡到主機『%s:%s (%s)』。" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "無法聯絡到主機『%s:%s (%s)』。" + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "聯絡主機『%s』中" + +#: methods/connect.cc:167 +#, c-format +msgid "Could not resolve '%s'" +msgstr "無法解析位置 %s" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "解析『%s』暫時失敗" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "無法解析『%s:%s (%i)』。" + +#: methods/connect.cc:223 +#, c-format +msgid "Unable to connect to %s %s:" +msgstr "無法聯絡到主機『%s %s』:" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "無法存取keyring:%s" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "錯誤:Acquire::gpgv::Options 的參數列表超長。結束執行。" + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "內部錯誤:簽名正確無誤,但是無法確認密鑰的指紋(key fingerprint)?!" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "至少發現一個無效的簽名。" + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "無法執行“%s”來驗證簽名(您安裝了 gnupg 嗎?)" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "執行 gpgv 時發生未知錯誤" + +#: methods/gpgv.cc:249 +msgid "The following signatures were invalid:\n" +msgstr "下列的簽名皆不合法:\n" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "由於沒有公鑰,下列簽名無法進行驗證:\n" + +#: methods/gzip.cc:64 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "無法開啟管線給 %s 使用" + +#: methods/gzip.cc:109 +#, c-format +msgid "Read error from %s process" +msgstr "從 %s 進程讀取錯誤" + +#: methods/http.cc:375 +msgid "Waiting for headers" +msgstr "等待標頭" + +#: methods/http.cc:521 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "取得一個單行超過 %u 字元的標頭" + +#: methods/http.cc:529 +msgid "Bad header line" +msgstr "壞的標頭" + +#: methods/http.cc:548 methods/http.cc:555 +msgid "The HTTP server sent an invalid reply header" +msgstr "http 伺服器傳送一個無效的回覆標頭" + +#: methods/http.cc:584 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "http 伺服器傳送一個無效的 Content-Length 標頭" + +#: methods/http.cc:599 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "http 伺服器傳送一個無效的 Content-Range 標頭" + +#: methods/http.cc:601 +msgid "This HTTP server has broken range support" +msgstr "http 伺服器有損毀的範圍支援" + +#: methods/http.cc:625 +msgid "Unknown date format" +msgstr "未知的資料格式" + +#: methods/http.cc:772 +msgid "Select failed" +msgstr "Select 失敗" + +#: methods/http.cc:777 +msgid "Connection timed out" +msgstr "連線逾時" + +#: methods/http.cc:800 +msgid "Error writing to output file" +msgstr "寫入輸出檔時發生錯誤" + +#: methods/http.cc:831 +msgid "Error writing to file" +msgstr "寫入檔案時發生錯誤" + +#: methods/http.cc:859 +msgid "Error writing to the file" +msgstr "寫入檔案時發生錯誤" + +#: methods/http.cc:873 +msgid "Error reading from server. Remote end closed connection" +msgstr "從遠端主機讀取錯誤,關閉連線" + +#: methods/http.cc:875 +msgid "Error reading from server" +msgstr "從伺服器讀取發生錯誤" + +#: methods/http.cc:1106 +msgid "Bad header data" +msgstr "壞的標頭資料" + +#: methods/http.cc:1123 +msgid "Connection failed" +msgstr "連線失敗" + +#: methods/http.cc:1214 +msgid "Internal error" +msgstr "內部錯誤" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "不能將空白檔案讀入記憶體" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "無法讀入檔案 %lu 位元組至記憶體" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "選項『%s』找不到。" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "不認識的簡寫類型:%c" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "開啟組態檔 %s" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "第 %d 行太長(最長 %d)" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "語法錯誤 %s:%u: 區塊沒有名稱" + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "語法錯誤 %s:%u: 無效的標籤" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "語法錯誤 %s:%u: 值後有多餘的垃圾" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "語法錯誤: %s:%u: 指令只能於最高層級執行" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "語法錯誤 %s:%u: 太多重複引入檔案" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "語法錯誤 %s:%u: 從此引入" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "語法錯誤 %s:%u: 不支援的指令 '%s'" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "語法錯誤 %s:%u: 檔案後有多餘的垃圾" + +#: apt-pkg/contrib/progress.cc:155 +#, c-format +msgid "%c%s... Error!" +msgstr "%c%s... 錯誤!" + +#: apt-pkg/contrib/progress.cc:157 +#, c-format +msgid "%c%s... Done" +msgstr "%c%s... 完成" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "未知的命令列選項「%c」從 %s" + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "無法理解的命令列選項 %s" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "命令列選項 %s 不是布林(boolean)變數" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "選項 %s 需要更多的參數" + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =." +msgstr "選項 %s: 組態元件描述應該有 =" + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "選項 %s 需要整數參數,不是 %s" + +#: apt-pkg/contrib/cmndline.cc:268 +#, c-format +msgid "Option '%s' is too long" +msgstr "選項 %s 太長" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "偵測器 %s 無法理解,試試 true 或 false" + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "無效的操作:%s" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, c-format +msgid "Unable to stat the mount point %s" +msgstr "無法讀取掛載點 %s" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, c-format +msgid "Unable to change to %s" +msgstr "無法進入『%s』目錄。" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "CD-ROM 狀況讀取失敗" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "不使用檔案鎖定於唯獨檔案 %s" + +#: apt-pkg/contrib/fileutl.cc:87 +#, c-format +msgid "Could not open lock file %s" +msgstr "無法開啟『%s』鎖定檔。" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "不使用檔案鎖定於 nfs 掛載點上得檔案 %s" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "無法取得『%s』鎖。" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "等待 %s 但是它不存在" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "子程序 %s 收到一個記憶體錯誤" + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "子程序 %s 回傳錯誤碼(%u)" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "子程序 %s 不預期的結束" + +#: apt-pkg/contrib/fileutl.cc:436 +#, c-format +msgid "Could not open file %s" +msgstr "無法開啟『%s』檔案。" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "讀取,仍有 %lu 未讀" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "寫入,仍有 %lu 待寫入但無法寫入" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "程式關閉檔案" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "程式刪除檔案" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "程式同步檔案" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "套件暫存檔是空的。" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "套件暫存檔損壞。" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "套件暫存檔版本不符合。" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "本軟體不支持『%s』版本系統。" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "套件暫存檔是在另一種系統上產生的。" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "依存關係" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "特別依存關係" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "建議" + +#: apt-pkg/pkgcache.cc:219 +msgid "Recommends" +msgstr "推薦" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "衝突" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "取代" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "淘汰" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "重要" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "必要" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "標準" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "次要" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "添加" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "了解套件依存關係中" + +#: apt-pkg/depcache.cc:62 +msgid "Candidate versions" +msgstr "候選版本" + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "產生套件依存關係" + +#: apt-pkg/tagfile.cc:106 +#, c-format +msgid "Unable to parse package file %s (1)" +msgstr "無法辨識套件『%s』(1)。" + +#: apt-pkg/tagfile.cc:193 +#, c-format +msgid "Unable to parse package file %s (2)" +msgstr "無法辨識套件『%s』(1)。" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "來源檔『%2$s』第 %1$lu 行有錯誤 (通用資源識別號)。" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "來源檔『%2$s』第 %1$lu 行有錯誤 (版本)。" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "來源檔『%2$s』第 %1$lu 行有錯誤 (通用資源識別號分辨)。" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "來源檔『%2$s』第 %1$lu 行有錯誤 (特定版本)。" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "來源檔『%2$s』第 %1$lu 行有錯誤 (版本分辨)。" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "開啟『%s』中" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "來源檔『%2$s』第 %1$u 行太長。" + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "來源檔『%2$s』第 %1$u 行有錯誤 (類別)。" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "未知的類別 %1$s 於來源檔 %3$s 第 %2$u 行" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "來源檔『%2$s』第 %1$u 行有錯誤 (商家名稱)。" + +#: apt-pkg/packagemanager.cc:402 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"此安裝因衝突或特別依存關係,需暫時刪除『%s』這個重要套件。這種情形通常有問" +"題,但您確定的話請啟動『APT::Force-LoopBreak』選項。" + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "本軟體不支持『%s』型的索引檔。" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "套件『%s』需要重新安裝,但找不到軟件檔案。" + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "無法解決依存關係。可能原因是某些套件被押後。" + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "無法解決問題,因為某些損毀的套件被押後。" + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "找不到『%spartial』清單目錄。" + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "找不到『%spartial』檔案目錄。" + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "正在下載第 %li 個文件(共 %li 個,尚需 %s)" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "正在下載第%li個檔案(共有%li)" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "找不到安裝方式『%s』的驅動程式。" + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "安裝方式『%s』沒有正確啟動。" + +#: apt-pkg/acquire-worker.cc:377 +#, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "更換媒體:請把名為 '%s' 的光碟置入 '%s' 碟機,然後按 [Enter] 鍵。" + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "本軟體不支持『%s』包裝法。" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "無法明白系統類別。" + +#: apt-pkg/clean.cc:61 +#, c-format +msgid "Unable to stat %s." +msgstr "無法讀取『%s』的目錄資料。" + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "『sources.list』檔中必須有一些『source』指令。" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "無法讀取套件清單或狀況檔。" + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "用『apt-get -f install』指令或許能修正這些問題。" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "喜好檔有錯誤—缺少套件前置檔。" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "本軟體不支持『%s』型的版本釘子。" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "對於釘住的檔案無優先順序" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "套件暫存檔使用的是不相容的版本系統。" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "處理『%s』時發生錯誤 (NewPackage)。" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "處理『%s』時發生錯誤 (UsePackage1)。" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "處理『%s』時發生錯誤 (UsePackage2)。" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "處理『%s』時發生錯誤 (NewFileVer1)。" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "處理『%s』時發生錯誤 (NewVersion1)。" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "處理『%s』時發生錯誤 (UsePackage3)。" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "處理『%s』時發生錯誤 (NewVersion2)。" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "套件數量超過本程式的能力。" + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "套件版本數量超過本程式的能力。" + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "依存關係數量超過本程式的能力。" + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "處理『%s』時發生錯誤 (FindPkg)。" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "處理『%s』時發生錯誤 (CollectFileProvides)。" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "當計算相依性時找不到套件 %s %s " + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "無法讀取來源檔『%s』的目錄資料。" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "收集檔案供應" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "無法寫入來源暫存檔。" + +#: apt-pkg/acquire-item.cc:130 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "檔名因『%s』更換失敗 (%s → %s)。" + +#: apt-pkg/acquire-item.cc:410 apt-pkg/acquire-item.cc:660 +#: apt-pkg/acquire-item.cc:1375 +msgid "MD5Sum mismatch" +msgstr "MD5 檢查碼不符合。" + +#: apt-pkg/acquire-item.cc:1070 +#, fuzzy +msgid "There is no public key available for the following key IDs:\n" +msgstr "以下 key ID 沒有可用的公鑰:\n" + +#: apt-pkg/acquire-item.cc:1183 +#, c-format +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "找不到套件『%s』需要的某檔案。請您修理這個套件再試試。" + +#: apt-pkg/acquire-item.cc:1242 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "找不到套件『%s』需要的某檔案。請您修理這個套件再試試。" + +#: apt-pkg/acquire-item.cc:1278 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "套件『%s』索引檔損壞—缺少『Filename:』欄。" + +#: apt-pkg/acquire-item.cc:1365 +msgid "Size mismatch" +msgstr "檔案大小不符合。" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "廠商區段%s有錯誤。" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" +"使用光碟機掛載點 %s\n" +"掛載光碟機中\n" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "標識中.." + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "保存標誌:%s \n" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "使用光碟機掛載點 %s\n" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "卸載光碟機中\n" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "等待磁碟中...\n" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "掛載光碟機中... \n" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "掃描碟片中的索引檔案..\n" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "找到 %i 個套件索引,%i 源碼索引和 %i 簽名\n" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "這不是合法名稱,重試一下。\n" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"這個碟片名為:\n" +"'%s'\n" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "複製套件清單中" + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "寫入新的來源列表中\n" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "該碟片的來源列表項目為:\n" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "卸載光碟機中..." + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "寫入 %i 筆紀錄。\n" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "寫入 %i 筆遺失 %i 個檔案的紀錄。\n" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "寫入 %i 筆 %i 個不匹配檔案的紀錄。\n" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "寫入 %i 筆遺失 %i 個檔案和 %i 個不匹配檔案的紀錄。\n" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "準備配置%s中" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "解開%s中" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "準備設定%s檔" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "設定%s中" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, c-format +msgid "Installed %s" +msgstr "已安裝%s" + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "正在準備 %s 的刪除操作" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "移除%s中" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "已移除%s" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "準備完整移除 %s" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "已完整移除%s" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "無法開啟『%s』檔案。" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "連線不預期的結束" + +#~ msgid "File date has changed %s" +#~ msgstr "檔案資料已更改 %s" + +#~ msgid "Reading file list" +#~ msgstr "讀取軟件表中" + +#, fuzzy +#~ msgid "Could not execute " +#~ msgstr "無法取得『%s』鎖。" diff --git a/share/debian-archive.gpg b/share/debian-archive.gpg new file mode 100644 index 0000000..da1aa5e Binary files /dev/null and b/share/debian-archive.gpg differ diff --git a/share/ubuntu-archive.gpg b/share/ubuntu-archive.gpg new file mode 100644 index 0000000..2ce60d4 Binary files /dev/null and b/share/ubuntu-archive.gpg differ diff --git a/test/conf.cc b/test/conf.cc new file mode 100644 index 0000000..340647b --- /dev/null +++ b/test/conf.cc @@ -0,0 +1,37 @@ +#include +#include + +using namespace std; + +int main(int argc,const char *argv[]) +{ + Configuration Cnf; + + ReadConfigFile(Cnf,argv[1],true); + + // Process 'simple-key' type sections + const Configuration::Item *Top = Cnf.Tree("simple-key"); + for (Top = (Top == 0?0:Top->Child); Top != 0; Top = Top->Next) + { + Configuration Block(Top); + + string VendorID = Top->Tag; + string FingerPrint = Block.Find("Fingerprint"); + string Name = Block.Find("Name"); // Description? + + if (FingerPrint.empty() == true || Name.empty() == true) + _error->Error("Block %s is invalid",VendorID.c_str()); + + cout << VendorID << ' ' << FingerPrint << ' ' << Name << endl; + } + + // Print any errors or warnings found during parsing + if (_error->empty() == false) + { + bool Errors = _error->PendingError(); + _error->DumpErrors(); + return Errors == true?100:0; + } + + return 0; +} diff --git a/test/conf_clear.cc b/test/conf_clear.cc new file mode 100644 index 0000000..259aa0f --- /dev/null +++ b/test/conf_clear.cc @@ -0,0 +1,23 @@ +#include +#include + +using namespace std; + +int main(int argc,const char *argv[]) +{ + Configuration Cnf; + + cout << "adding elements" << endl; + Cnf.Set("APT::Keep-Fds::",28); + Cnf.Set("APT::Keep-Fds::",17); + Cnf.Set("APT::Keep-Fds::",47); + Cnf.Dump(); + + cout << "Removing elements" << endl; + Cnf.Clear("APT::Keep-Fds",17); + Cnf.Clear("APT::Keep-Fds",28); + Cnf.Clear("APT::Keep-Fds",47); + Cnf.Dump(); + + return 0; +} diff --git a/test/extract-control.cc b/test/extract-control.cc new file mode 100644 index 0000000..29dcbf3 --- /dev/null +++ b/test/extract-control.cc @@ -0,0 +1,42 @@ +#include +#include + +#include +#include + +using namespace std; + +bool ExtractMember(const char *File,const char *Member) +{ + FileFd Fd(File,FileFd::ReadOnly); + debDebFile Deb(Fd); + if(_error->PendingError() == true) + return false; + + debDebFile::MemControlExtract Extract(Member); + if (Extract.Read(Deb) == false) + return false; + + if (Extract.Control == 0) + return true; + + write(STDOUT_FILENO,Extract.Control,Extract.Length); + return true; +} + +int main(int argc, const char *argv[]) +{ + if (argc < 2) + { + cerr << "Need two arguments, a .deb and the control member" << endl; + return 100; + } + + if (ExtractMember(argv[1],argv[2]) == false) + { + _error->DumpErrors(); + return 100; + } + + return 0; +} diff --git a/test/hash.cc b/test/hash.cc new file mode 100644 index 0000000..cfdb4ea --- /dev/null +++ b/test/hash.cc @@ -0,0 +1,70 @@ +#include +#include +#include +#include +#include + +using namespace std; + +template void Test(const char *In,const char *Out) +{ + T Sum; + Sum.Add(In); + cout << Sum.Result().Value() << endl; + if (stringcasecmp(Sum.Result().Value(),Out) != 0) + abort(); +} + +template void TestMill(const char *Out) +{ + T Sum; + + const unsigned char As[] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; + unsigned Count = 1000000; + for (; Count != 0;) + { + if (Count >= 64) + { + Sum.Add(As,64); + Count -= 64; + } + else + { + Sum.Add(As,Count); + Count = 0; + } + } + + cout << Sum.Result().Value() << endl; + if (stringcasecmp(Sum.Result().Value(),Out) != 0) + abort(); +} + +int main() +{ + // From FIPS PUB 180-1 + Test("abc","A9993E364706816ABA3E25717850C26C9CD0D89D"); + Test("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", + "84983E441C3BD26EBAAE4AA1F95129E5E54670F1"); + TestMill("34AA973CD4C4DAA4F61EEB2BDBAD27316534016F"); + + // MD5 tests from RFC 1321 + Test("","d41d8cd98f00b204e9800998ecf8427e"); + Test("a","0cc175b9c0f1b6a831c399e269772661"); + Test("abc","900150983cd24fb0d6963f7d28e17f72"); + Test("message digest","f96b697d7cb7938d525a2f31aaf161d0"); + Test("abcdefghijklmnopqrstuvwxyz","c3fcd3d76192e4007dfb496cca67e13b"); + Test("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", + "d174ab98d277d9f5a5611c2c9f419d9f"); + Test("12345678901234567890123456789012345678901234567890123456789012345678901234567890", + "57edf4a22be3c955ac49da2e2107b67a"); + + // SHA-256, From FIPS 180-2 + Test("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", + "248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1"); + + + return 0; +} + + diff --git a/test/makefile b/test/makefile new file mode 100644 index 0000000..a9dbdc3 --- /dev/null +++ b/test/makefile @@ -0,0 +1,75 @@ +# -*- make -*- +BASE=.. +SUBDIR=test + +# Bring in the default rules +include ../buildlib/defaults.mak + +# Program for testing methods +PROGRAM=mthdcat +SLIBS = +SOURCE = mthdcat.cc +include $(PROGRAM_H) + +# Program for testing methods +PROGRAM=uritest +SLIBS = -lapt-pkg +SOURCE = uri.cc +include $(PROGRAM_H) + +# Scratch program to test incomplete code fragments in +PROGRAM=scratch-test +SLIBS = -lapt-inst -lapt-pkg +LIB_MAKES = apt-pkg/makefile apt-inst/makefile +SOURCE = scratch.cc +include $(PROGRAM_H) + +# Version compare tester +PROGRAM=versiontest +SLIBS = -lapt-pkg +LIB_MAKES = apt-pkg/makefile +SOURCE = versiontest.cc +include $(PROGRAM_H) + +# Version compare tester +PROGRAM=testextract +SLIBS = -lapt-pkg -lapt-inst +LIB_MAKES = apt-pkg/makefile apt-inst/makefile +SOURCE = testextract.cc +include $(PROGRAM_H) + +# Program for testing the config file parser +PROGRAM=conftest_clear +SLIBS = -lapt-pkg +SOURCE = conf_clear.cc +include $(PROGRAM_H) + +# Program for testing the config file parser +PROGRAM=conftest +SLIBS = -lapt-pkg +SOURCE = conf.cc +include $(PROGRAM_H) + +# Program for testing the tar/deb extractor +PROGRAM=testdeb +SLIBS = -lapt-pkg -lapt-inst +SOURCE = testdeb.cc +include $(PROGRAM_H) + +# Program for testing tar extraction +PROGRAM=extract-control +SLIBS = -lapt-pkg -lapt-inst +SOURCE = extract-control.cc +include $(PROGRAM_H) + +# Program for testing hashes +PROGRAM=hash +SLIBS = -lapt-pkg +SOURCE = hash.cc +include $(PROGRAM_H) + +# Program for checking rpm versions +PROGRAM=rpmver +SLIBS = -lapt-pkg -lrpm +SOURCE = rpmver.cc +include $(PROGRAM_H) diff --git a/test/mthdcat.cc b/test/mthdcat.cc new file mode 100644 index 0000000..25d09a3 --- /dev/null +++ b/test/mthdcat.cc @@ -0,0 +1,20 @@ +/* Usage, mthdcat < cmds | methods/mthd + All this does is cat a file into the method without closing the FD when + the file ends */ + +#include + +int main() +{ + char Buffer[4096]; + + while (1) + { + int Res = read(STDIN_FILENO,Buffer,sizeof(Buffer)); + if (Res <= 0) + while (1) sleep(100); + if (write(STDOUT_FILENO,Buffer,Res) != Res) + break; + } + return 0; +} diff --git a/test/rpmver.cc b/test/rpmver.cc new file mode 100644 index 0000000..9fc807d --- /dev/null +++ b/test/rpmver.cc @@ -0,0 +1,117 @@ +#include +#include +#include +#include +#include + +#define xisdigit(x) isdigit(x) +#define xisalpha(x) isalpha(x) +#define xisalnum(x) (isdigit(x) || isalpha(x)) + +using namespace std; + +int rpmvercmp(const char * a, const char * b) +{ + char oldch1, oldch2; + char * str1, * str2; + char * one, * two; + int rc; + int isnum; + + /* easy comparison to see if versions are identical */ + if (!strcmp(a, b)) return 0; + + str1 = (char *)alloca(strlen(a) + 1); + str2 = (char *)alloca(strlen(b) + 1); + + strcpy(str1, a); + strcpy(str2, b); + + one = str1; + two = str2; + + /* loop through each version segment of str1 and str2 and compare them */ + while (*one && *two) { + while (*one && !xisalnum(*one)) one++; + while (*two && !xisalnum(*two)) two++; + + str1 = one; + str2 = two; + + /* grab first completely alpha or completely numeric segment */ + /* leave one and two pointing to the start of the alpha or numeric */ + /* segment and walk str1 and str2 to end of segment */ + if (xisdigit(*str1)) { + while (*str1 && xisdigit(*str1)) str1++; + while (*str2 && xisdigit(*str2)) str2++; + isnum = 1; + } else { + while (*str1 && xisalpha(*str1)) str1++; + while (*str2 && xisalpha(*str2)) str2++; + isnum = 0; + } + + /* save character at the end of the alpha or numeric segment */ + /* so that they can be restored after the comparison */ + oldch1 = *str1; + *str1 = '\0'; + oldch2 = *str2; + *str2 = '\0'; + + /* take care of the case where the two version segments are */ + /* different types: one numeric, the other alpha (i.e. empty) */ + if (one == str1) return -1; /* arbitrary */ + if (two == str2) return 1; + + if (isnum) { + /* this used to be done by converting the digit segments */ + /* to ints using atoi() - it's changed because long */ + /* digit segments can overflow an int - this should fix that. */ + + /* throw away any leading zeros - it's a number, right? */ + while (*one == '0') one++; + while (*two == '0') two++; + + /* whichever number has more digits wins */ + if (strlen(one) > strlen(two)) return 1; + if (strlen(two) > strlen(one)) return -1; + } + + /* strcmp will return which one is greater - even if the two */ + /* segments are alpha or if they are numeric. don't return */ + /* if they are equal because there might be more segments to */ + /* compare */ + rc = strcmp(one, two); + if (rc) return rc; + + /* restore character that was replaced by null above */ + *str1 = oldch1; + one = str1; + *str2 = oldch2; + two = str2; + } + + /* this catches the case where all numeric and alpha segments have */ + /* compared identically but the segment sepparating characters were */ + /* different */ + if ((!*one) && (!*two)) return 0; + + /* whichever version still has characters left over wins */ + if (!*one) return -1; else return 1; +} + +int main(int argc,const char *argv[]) +{ + printf("%i\n",strcmp(argv[1],argv[2])); + + printf("'%s' <> '%s': ",argv[1],argv[2]); + printf("rpm: %i deb: %i\n",rpmvercmp(argv[1],argv[2]), + debVS.CmpFragment(argv[1],argv[1]+strlen(argv[1]), + argv[2],argv[2]+strlen(argv[2]))); + + printf("'%s' <> '%s': ",argv[2],argv[1]); + printf("rpm: %i deb: %i\n",rpmvercmp(argv[2],argv[1]), + debVS.CmpFragment(argv[2],argv[2]+strlen(argv[2]), + argv[1],argv[1]+strlen(argv[1]))); + return 0; +} diff --git a/test/scratch.cc b/test/scratch.cc new file mode 100644 index 0000000..d638c70 --- /dev/null +++ b/test/scratch.cc @@ -0,0 +1,105 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + +int main(int argc,char *argv[]) +{ + pkgInitConfig(*_config); + pkgInitSystem(*_config,_system); + +// cout << flNoLink(argv[1]) << endl; + +// #if 0 +/* DynamicMMap *FileMap = new DynamicMMap(MMap::Public); + pkgFLCache *FList = new pkgFLCache(*FileMap); + + char *Name = "/tmp/test"; + pkgFLCache::PkgIterator Pkg(*FList,0); + pkgFLCache::NodeIterator Node = FList->GetNode(Name,Name+strlen(Name),Pkg.Offset(),true,false); + cout << (pkgFLCache::Node *)Node << endl; + Node = FList->GetNode(Name,Name+strlen(Name),Pkg.Offset(),true,false); + cout << (pkgFLCache::Node *)Node << endl; +*/ +// #if 0 + _config->Set("Dir::State::status","/tmp/testing/status"); + + debDpkgDB Db; + + { + OpTextProgress Prog; + + if (Db.ReadyPkgCache(Prog) == false) + cerr << "Error!" << endl; + Prog.Done(); + + if (Db.ReadyFileList(Prog) == false) + cerr << "Error!" << endl; + } + + if (_error->PendingError() == true) + { + _error->DumpErrors(); + return 0; + } + +/* Db.GetFLCache().BeginDiverLoad(); + pkgFLCache::PkgIterator Pkg(Db.GetFLCache(),0); + if (Db.GetFLCache().AddDiversion(Pkg,"/usr/include/linux/kerneld.h","/usr/bin/nslookup") == false) + cerr << "Error!" << endl; + + const char *Tmp = "/usr/include/linux/kerneld.h"; + pkgFLCache::NodeIterator Nde = Db.GetFLCache().GetNode(Tmp,Tmp+strlen(Tmp),0,false,false); + map_ptrloc Loc = Nde->File; + + for (; Nde.end() == false && Nde->File == Loc; Nde++) + cout << Nde->Flags << ',' << Nde->Pointer << ',' << Nde.File() << endl; + Db.GetFLCache().FinishDiverLoad();*/ + +/* unsigned int I = 0; + pkgFLCache &Fl = Db.GetFLCache(); + while (I < Fl.HeaderP->HashSize) + { + cout << I << endl; + pkgFLCache::NodeIterator Node(Fl,Fl.NodeP + Fl.HeaderP->FileHash + I++); + if (Node->Pointer == 0) + continue; + for (; Node.end() == false; Node++) + { + cout << Node.DirN() << '/' << Node.File(); + if (Node->Flags == pkgFLCache::Node::Diversion) + cout << " (div)"; + if (Node->Flags == pkgFLCache::Node::ConfFile) + cout << " (conf)"; + cout << endl; + } + }*/ + + for (int I = 1; I < argc; I++) + { + FileFd F(argv[I],FileFd::ReadOnly); + debDebFile Deb(F); + + if (Deb.ExtractControl(Db) == false) + cerr << "Error!" << endl; + cout << argv[I] << endl; + + pkgCache::VerIterator Ver = Deb.MergeControl(Db); + if (Ver.end() == true) + cerr << "Failed" << endl; + else + cout << Ver.ParentPkg().Name() << ' ' << Ver.VerStr() << endl; + + pkgExtract Extract(Db.GetFLCache(),Ver); + Deb.ExtractArchive(Extract); + } +// #endif +//#endif + _error->DumpErrors(); +} diff --git a/test/testdeb.cc b/test/testdeb.cc new file mode 100644 index 0000000..d28f201 --- /dev/null +++ b/test/testdeb.cc @@ -0,0 +1,39 @@ +#include +#include +#include +#include + +class NullStream : public pkgDirStream +{ + public: + virtual bool DoItem(Item &Itm,int &Fd) {return true;}; +}; + +bool Test(const char *File) +{ + FileFd Fd(File,FileFd::ReadOnly); + debDebFile Deb(Fd); + + if (_error->PendingError() == true) + return false; + + // Get the archive member and positition the file + const ARArchive::Member *Member = Deb.GotoMember("data.tar.gz"); + if (Member == 0) + return false; + + // Extract it. + ExtractTar Tar(Deb.GetFile(),Member->Size, "gzip"); + NullStream Dir; + if (Tar.Go(Dir) == false) + return false; + + return true; +} + +int main(int argc, const char *argv[]) +{ + Test(argv[1]); + _error->DumpErrors(); + return 0; +} diff --git a/test/testextract.cc b/test/testextract.cc new file mode 100644 index 0000000..1c738aa --- /dev/null +++ b/test/testextract.cc @@ -0,0 +1,98 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +using namespace std; + +bool Go(int argc,char *argv[]) +{ + // Init the database + debDpkgDB Db; + { + OpTextProgress Prog; + + if (Db.ReadyPkgCache(Prog) == false) + return false; + Prog.Done(); + + if (Db.ReadyFileList(Prog) == false) + return false; + } + + for (int I = 1; I < argc; I++) + { + const char *Fake = 0; + for (unsigned J = 0; argv[I][J] != 0; J++) + { + if (argv[I][J] != ',') + continue; + Fake = argv[I] + J + 1; + argv[I][J] = 0; + } + + FileFd F(argv[I],FileFd::ReadOnly); + debDebFile Deb(F); + + if (_error->PendingError() == true) + return false; + + if (Deb.ExtractControl(Db) == false) + return false; + cout << argv[I] << endl; + + pkgCache::VerIterator Ver = Deb.MergeControl(Db); + if (Ver.end() == true) + return false; + + cout << Ver.ParentPkg().Name() << ' ' << Ver.VerStr() << endl; + + pkgExtract Extract(Db.GetFLCache(),Ver); + + if (Fake != 0) + { + pkgExtract::Item Itm; + memset(&Itm,0,sizeof(Itm)); + FILE *F = fopen(Fake,"r"); + while (feof(F) == 0) + { + char Line[300]; + fgets(Line,sizeof(Line),F); + Itm.Name = _strstrip(Line); + Itm.Type = pkgDirStream::Item::File; + if (Line[strlen(Line)-1] == '/') + Itm.Type = pkgDirStream::Item::Directory; + + int Fd; + if (Extract.DoItem(Itm,Fd) == false) + return false; + } + } + else + if (Deb.ExtractArchive(Extract) == false) + return false; + } + return true; +} + +int main(int argc,char *argv[]) +{ + pkgInitConfig(*_config); + pkgInitSystem(*_config,_system); + _config->Set("Dir::State::status","/tmp/testing/status"); + + Go(argc,argv); + + if (_error->PendingError() == true) + { + _error->DumpErrors(); + return 0; + } +} diff --git a/test/uri.cc b/test/uri.cc new file mode 100644 index 0000000..ae9dc9d --- /dev/null +++ b/test/uri.cc @@ -0,0 +1,34 @@ +#include +#include + +void Test(const char *Foo) +{ + URI U(Foo); + + printf("%s a='%s' u='%s' p='%s' port='%u'\n h='%s' p='%s'\n", + Foo,U.Access.c_str(),U.User.c_str(),U.Password.c_str(), + U.Port,U.Host.c_str(),U.Path.c_str()); +} + +int main() +{ + // Basic stuff + Test("http://www.debian.org:90/temp/test"); + Test("http://jgg:foo@ualberta.ca/blah"); + Test("file:/usr/bin/foo"); + Test("cdrom:Moo Cow Rom:/debian"); + Test("gzip:./bar/cow"); + + // RFC 2732 stuff + Test("http://[1080::8:800:200C:417A]/foo"); + Test("http://[::FFFF:129.144.52.38]:80/index.html"); + Test("http://[::FFFF:129.144.52.38:]:80/index.html"); + Test("http://[::FFFF:129.144.52.38:]/index.html"); + + /* My Evil Corruption of RFC 2732 to handle CDROM names! Fun for + the whole family! */ + Test("cdrom:[The Debian 1.2 disk, 1/2 R1:6]/debian/"); + Test("cdrom:Foo Bar Cow/debian/"); + + Test("ftp:ftp.fr.debian.org/debian/pool/main/x/xtel/xtel_3.2.1-15_i386.deb"); +} diff --git a/test/versions.lst b/test/versions.lst new file mode 100644 index 0000000..efc19c4 --- /dev/null +++ b/test/versions.lst @@ -0,0 +1,51 @@ +# List of +# ver1 ver2 ret +# Of versions worth testing +# 1 means that ver1 > ver2 +# -1 means that ver1 < ver2 +# 0 means that ver1 = ver2 +7.6p2-4 7.6-0 1 +1.0.3-3 1.0-1 1 +1.3 1.2.2-2 1 +1.3 1.2.2 1 + +# Important attributes +- . -1 +p - -1 +a - -1 +z - -1 +a . -1 +z . -1 + +# Epochs +1:0.4 10.3 1 +1:1.25-4 1:1.25-8 -1 +0:1.18.36 1.18.36 0 + +# Funky, but allowed, characters in upstream version +9:1.18.36:5.4-20 10:0.5.1-22 -1 +9:1.18.36:5.4-20 9:1.18.36:5.5-1 -1 +9:1.18.36:5.4-20 9:1.18.37:4.3-22 -1 +1.18.36-0.17.35-18 1.18.36-19 1 + +# Junk +1:1.2.13-3 1:1.2.13-3.1 -1 +2.0.7pre1-4 2.0.7r-1 -1 + +# Test some properties of text strings +0-pre 0-pre 0 +0-pre 0-pree -1 + +1.1.6r2-2 1.1.6r-1 1 +2.6b2-1 2.6b-2 1 + +98.1p5-1 98.1-pre2-b6-2 -1 +0.4a6-2 0.4-1 1 + +1:3.0.5-2 1:3.0.5.1 -1 + +# #194327 +III-alpha9.8 III-alpha9.8-1.5 -1 + +# #205960 +3.0~rc1-1 3.0-1 -1 diff --git a/test/versiontest.cc b/test/versiontest.cc new file mode 100644 index 0000000..5438eb4 --- /dev/null +++ b/test/versiontest.cc @@ -0,0 +1,233 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: versiontest.cc,v 1.5 2003/08/18 15:55:19 mdz Exp $ +/* ###################################################################### + + Version Test - Simple program to run through a file and comare versions. + + Each version is compared and the result is checked against an expected + result in the file. The format of the file is + a b Res + Where Res is -1, 1, 0. dpkg -D=1 --compare-versions a "<" b can be + used to determine what Res should be. # at the start of the line + is a comment and blank lines are skipped + + ##################################################################### */ + /*}}}*/ +#include +#include +#include +#include +#include +#include + +using namespace std; + + static int verrevcmp(const char *val, const char *ref) +{ + int vc, rc; + long vl, rl; + const char *vp, *rp; + + if (!val) + val = ""; + if (!ref) + ref = ""; + for (;;) + { + vp = val; + while (*vp && !isdigit(*vp)) + vp++; + rp = ref; + while (*rp && !isdigit(*rp)) + rp++; + for (;;) + { + vc= val == vp ? 0 : *val++; + rc= ref == rp ? 0 : *ref++; + if (!rc && !vc) + break; + if (vc && !isalpha(vc)) + vc += 256; /* assumes ASCII character set */ + if (rc && !isalpha(rc)) + rc += 256; + if (vc != rc) + return vc - rc; + } + val = vp; + ref = rp; + vl = 0; + if (isdigit(*vp)) + vl = strtol(val,(char**)&val,10); + rl = 0; + if (isdigit(*rp)) + rl = strtol(ref,(char**)&ref,10); + if (vl != rl) + return vl - rl; + if (!*val && !*ref) + return 0; + if (!*val) + return -1; + if (!*ref) + return +1; + } +} + +#if 0 +static int verrevcmp(const char *val, const char *ref) +{ + int vc, rc; + long vl, rl; + const char *vp, *rp; + + if (!val) val= ""; + if (!ref) ref= ""; + for (;;) + { + vp= val; while (*vp && !isdigit(*vp) && *vp != '~') vp++; + rp= ref; while (*rp && !isdigit(*rp) && *rp != '~') rp++; + for (;;) + { + vc= val == vp ? 0 : *val++; + rc= ref == rp ? 0 : *ref++; + if (!rc && !vc) break; + if (vc && !isalpha(vc)) vc += 256; /* assumes ASCII character set */ + if (rc && !isalpha(rc)) rc += 256; + if (vc != rc) return vc - rc; + } + + val= vp; + ref= rp; + if (*vp == '~') val++; + if (*rp == '~') ref++; + vl=0; if (isdigit(*val)) vl= strtol(val,(char**)&val,10); + rl=0; if (isdigit(*ref)) rl= strtol(ref,(char**)&ref,10); + if (vl == 0 && rl == 0) + { + if (*vp == '~' && *rp != '~') return -1; + if (*vp != '~' && *rp == '~') return +1; + } + if (*vp == '~') + vl *= -1; + if (*rp == '~') + rl *= -1; + if (vl != rl) return vl - rl; + if (!*val && !*ref) return 0; + if (!*val) + { + if (*ref == '~') + return +1; + else + return -1; + } + + if (!*ref) + { + if (*val == '~') + return -1; + else + return +1; + } + } +} +#endif + +bool RunTest(const char *File) +{ + ifstream F(File,ios::in); + if (!F != 0) + return false; + + char Buffer[300]; + int CurLine = 0; + + while (1) + { + F.getline(Buffer,sizeof(Buffer)); + CurLine++; + if (F.eof() != 0) + return true; + if (!F != 0) + return _error->Error("Line %u in %s is too long",CurLine,File); + + // Comment + if (Buffer[0] == '#' || Buffer[0] == 0) + continue; + + // First version + char *I; + char *Start = Buffer; + for (I = Buffer; *I != 0 && *I != ' '; I++); + string A(Start, I - Start); + + if (*I == 0) + return _error->Error("Invalid line %u",CurLine); + + // Second version + I++; + Start = I; + for (I = Start; *I != 0 && *I != ' '; I++); + string B(Start,I - Start); + + if (*I == 0 || I[1] == 0) + return _error->Error("Invalid line %u",CurLine); + + // Result + I++; + int Expected = atoi(I); + int Res = debVS.CmpVersion(A.c_str(), B.c_str()); + int Res2 = verrevcmp(A.c_str(),B.c_str()); + cout << "'" << A << "' ? '" << B << "' = " << Res << " (= " << Expected << ") " << Res2 << endl; + + if (Res < 0) + Res = -1; + else if (Res > 0) + Res = 1; + + if (Res != Expected) + _error->Error("Comparison failed on line %u. '%s' ? '%s' %i != %i",CurLine,A.c_str(),B.c_str(),Res,Expected); + + // Check the reverse as well + Expected = -1*Expected; + Res = debVS.CmpVersion(B.c_str(), A.c_str()); + Res2 = verrevcmp(B.c_str(),A.c_str()); + + cout << "'" << B << "' ? '" << A << "' = " << Res << " (= " << Expected << ") " << Res2 << endl; + + if (Res < 0) + Res = -1; + else if (Res > 0) + Res = 1; + + if (Res != Expected) + _error->Error("Comparison failed on line %u. '%s' ? '%s' %i != %i",CurLine,B.c_str(),A.c_str(),Res,Expected); + } +} + +int main(int argc, char *argv[]) +{ + if (argc <= 1) + { + cerr << "You must specify a test file" << endl; + return 0; + } + + RunTest(argv[1]); + + // Print any errors or warnings found + if (_error->empty() == false) + { + string Err; + while (_error->empty() == false) + { + + bool Type = _error->PopMessage(Err); + if (Type == true) + cout << "E: " << Err << endl; + else + cout << "W: " << Err << endl; + } + + return 0; + } +}