Friday 13 October 2017

Libiconv 1 14 Binäre Optionen


Dynamic Versicherungsmakler (Pty) Ltd Dynamic Insurance Brokers (Pty).Marketing, First Sun Alliance Versicherungsmakler seit 2010 - Anzeigen Tendai Nyakaswas Profil. Deutsch: www. tab. fzk. de/de/projekt/zusammenf...ng/ab117.htm. Viadeo hilft Profis wie Tendai Nyakaswa (Gaborone) Boost. DYNAMIC VERSICHERUNG BROKERS gefunden in Gelbe Seiten Botswana. Afrikanisches Firmenverzeichnis. Request Quote AlphaDirect Versicherung Botsuana Alpha Direct bietet Versicherungspolicen für Auto, Haus und Geschäft in ganz botswana. Umschalten Navigation. Unsere Firma. Joomla Mercantile Versicherungsmakler ist eine führende Wir sind als Versicherung Broking Company unter den Bestimmungen der Botswana Insurance registriert. Botswana Ghana Mosambik Namibia Sambia Home Alle anzeigen Dynamic Insurance Brokers. Dynamische Versicherungsmakler. Kontaktieren Sie uns auf. Kontakt Nummer. 04. Aon plc (NYSE: AON), der führende globale Anbieter. Dynamic Insurance Brokers (PTY) Ltd Telefon und Karte der Adresse: Plot. Aon plc (NYSE: AON), der führende globale Anbieter. Donie gewinnt den besten Global Insurance Broker Award. Eon gewinnt für die Führung in Innovation und Kundendienst 101 Unit 8 GICP, Gaborone, Botswana, Botswana, Geschäftsberichte, Verbraucherbeschwerden und Ratings. Africa Botswana Malawi Namibia Nigeria Südafrika Uganda Sambia Simbabwe MIddle Ost Nordafrika Naher Osten Bahrain Ägypten Israel Oman Katar Saudi Arabien. Dynamische Versicherungsmakler Kontakt Wir haben uns auf die Kontaktpersonen, die Sie interessieren können. Botswana Ghana Mosambik Namibia Sambia Home Alle anzeigen Dynami Versicherungsmakler - Lusaka. Dynamic Versicherungsmakler - Lusaka Unsere Versicherung Produkt-Angebote apa itu Broker tpeg tec binäre Optionen asuransi mir Botsuana Lebensversicherung, Gaborone, Botswana 712 Likes 246 waren hier. Lokale Business. Find Versicherungsmakler in Botswana und erhalten Sie Wegbeschreibungen und Karten für lokale Unternehmen in Afrika. Liste der besten Versicherungsmakler in Botswana. Botswana Versicherungsgesellschaft Limited (BIC) wurde am 12. August 1975 gegründet, so dass es die älteste kurzfristige Versicherungsgesellschaft in Bostwana. Dynamic Insurance Services sind in der Anpassung präzise Business-Versicherung für unsere Kundenmonat von Nationen Commonwealth von erfahren Nationen Namibia Direkt zum Inhalt. Namibia Regierungsunternehmen Zivil-Dynamische Versicherungsmakler: FGI Namibia. DYNAMISCHE VERSICHERUNGS-BROKER (PTY) LTD gefunden in Gelben Seiten Botswana. African Business Directory. Dynamic Insurance Brokers (pty) Ltd befindet sich in Gaborone bietet den besten Service in Gaborone. Gefunden auf S. As beliebteste Online-Geschäft Directory. Dynamic Insurance Services wird ein gründliches Versicherungsprogramm für Ihr Unternehmen zugeschnitten. Were. Hollard arbeitet in Botsuana genauso wie in Südafrika, durch eine strategische Versicherungsmakler von Hollard kann Ihnen sagen, über alle Versicherungsrabatte Eine andere Versicherungsagentur, wo Sie Hollard Versicherung bekommen können, ist Dynamic. Shangor Versicherungsmakler in Gaborone, Botswana. Shangor Versicherungsmakler Firmenkontakte auf Botswana Verzeichnis. Senden Sie eine E-Mail an Shangor Insurance Brokers. FSA wurde 1999 in Botswana als Versicherungsmakler unter der Bereitstellung von First Sun Alliance Insurance Brokers. YNAMIC VERSICHERUNG BROKERS (PTY) LTD in Gelben Seiten Botswana gefunden. Afrikanisches Firmenverzeichnis. Essop S Bhana Versicherungsmakler Esb Center 37 Mint Road, Johannesburg, Gauteng, 118385811 Finanzdienstleistungen, Versicherungen, Versicherungsagenten, Versicherungsmakler. Get erschwingliche Versicherungsprodukte, gute Beratung und versierte Investitionsmöglichkeiten Broker sind Spezialisten in ihren Bereichen bereit und in der Lage, Beratung zu geben In allen. TelFax: - 3906490 3957594. Email: - Tembodib. co. bw. Post: - Handelspark, Grundstück 101, Einheit 8, Gaborone Botsuana. Über Dynamic Insurance Brokers. Dynamic Insurance Brokers Pty Ltd - lokale Geschäftskontaktinformationen in Westbourne Park, SA in der Adelaide Region finden Sie auf White Pages Australia. Sunshine Insurance. Lead Sponsor von Marathon Bahamas. Produkte Zitate Wir helfen Ihnen herauszufinden, einige der komplizierteren Punkte der Kfz-Versicherung. Click. Bringing zusammen Broker, Makler-Agenten und Partner der Gruppe, darunter jetzt über vierzig Jahre des Erbes der dynamischen Vermögensverwaltung in Botswana. Business Kontaktinformationen für Dynamic Insurance Brokers Pty Ltd in SA finden Sie auf White Pages Australien. Telefonnummern, Adressen und Bürostandorte. Val Interiors - Inspirierte Innenräume Interior Design Architektur, Gaborone, Botswana. Kalahari Versicherungsmakler - Kontakt, Telefonnummer, Adresse und Karte Geschäft. Finden Sie uns bei Francistown. Insurance Broker in Gaborone, Botswana Home Unsere Firma Unsere Produkte Ethik, Professionalität und Integrität sind die Gründungsprinzipien bei Mercantile Insurance Brokers. Wir sind ein zugelassener Versicherungsmakler seit 1994 und einer der führenden Dienstleister der Wahl in Botswana, Dynamic Insurance Brokers ist ein privat. Kalahari Versicherungsmakler - KIB sind Botsuana basierte Versicherungsmakler Umgang mit kommerziellen, inländischen, landwirtschaftlichen und tourismusbasierten Versicherungsdienstleistungen. DYNAMISCHE VERSICHERUNGSBROKER. Telefon: 267 686 2514 - zum Ansehen klicken. Fax: 267 686 2527 - zum Ansehen klicken. Physische Adresse Maun, Botswana Rufen Sie mich zurück. Update listing. Physical Adresse Einheit 1E, 121 Mitchell Street, George. Postanschrift P O Box 4838, George East, 6539. Vorort George. Stadt George. Land Südafrika. Für die Versicherung Drive Agent und Broker Produktivität, Microsoft Dynamics CRM unterzeichnet den Erfolg von Versicherungsgesellschaften, Makler und Agenturen weltweit. Insurance Gateway Botswana Die Leichtigkeit, mit der eine Sicherheit auf dem Markt oder eine Position verkauft werden kann, kann geschlossen werden Ohne den Markt zu beeinflussen. Hier sind die Top 24 Versicherungsmaklerprofile in Botswana auf LinkedIn. Holen Sie sich alle Artikel, Experten, Jobs und Einblicke. Regent Botswana ist einzigartig, dass es die Dienste von Life und Generalversicherung unter einem Dach bieten kann. Auf diese Weise haben wir es geschafft, alle Versicherungsbedürfnisse zu rationalisieren. Gemeinsamkeit der Nationen Botswana Skip to content. Botswana Regierungsgeschäfte Civil Sedgwick Versicherungsmakler Ltd: Sesiro Insurance.23 Jun 2011 ERWEITERUNG PROJEKTE ZUR ERHÖHUNG BOTSWANAS OPTIC FASER NETZWERK VON Dynamic Insurance Brokers BWP 1,722,120.00. 3.Dynamic Insurance Brokers (pty) Ltd befindet sich in Gaborone, Botswana. Unternehmen arbeitet in Brokers, Berater, Investmentgesellschaften, Versicherungsgesellschaften business. Brokers. Alexander Forbes Finanzdienstleistungen Botswana (Pty) Ltd Dokata Investments ta Coverlink Versicherungsmakler. Dynamische Versicherungsmakler. Ellwood. Kontaktieren Sie uns Rufen Sie uns an unter 267 3958 rufen Sie Hollard Insurance Botswana auf 267 395 8023. Finden Sie einen Versicherungsmakler in Botsuana mit Hollards Finden Sie einen Broker. Hollard Versicherung Botsuana wird durch unsere strategischen Partnerschaften mit Botswanas Top Versicherungsmakler angetrieben. Hollard Botsuana ist in der Lage. Gegründet im Jahr 1975, Botswana Life Insurance Limited Botswanas führenden Lebensversicherungsunternehmen, Botswana Life, hat seine Sponsor angekündigt. Botswana Directory. Alexander Forbes (Botswana) Ltd. Versicherungsmakler und Finanzdienstleister. Dynamic Insurance Brokers (Pty).Ich habe meine kommerziellen Motoren Mitarbeiter mit Botswana Insurance Company versichert. Finden Sie Ihren nächsten BIC Broker. Stadt. Bereich. Suche jetzt. Mein Cart. Dynamic Versicherungsmakler, für alle Ihre allgemeinen Versicherungsanforderungen. Lokaler Service und Programme, die auf Ihre Geschäftsanforderungen zugeschnitten sind. Brokers (Business Services) in Botswana. Liste der Broker Unternehmen. Finden Sie Brokers Unternehmen in Botswana. Dynamic Insurance Brokers (pty) Ltd. Plot 101 Unit. Brokers ENTITY NAME Absolute Versicherungsmakler Alexander Forbes Finanzdienstleistungen Botswana (Pty) Ltd Alon Assurance Company (Pty) Ltd Aon Botswana (Pty).Dynamic Versicherungsmakler. Account Executive - Commercial Underwriter 8. Februar 2013 bis 2014 Gaborone, Botswana. Versicherung Commercial. Brokers Dynamic Insurance Broker Dynamic Insurance Broker. Post: - Commerce Park, Plot 101, Einheit 8, Gaborone Botswana Über Dynamic Insurance Brokers.1 Besucher hat bei Dynamic Insurance Brokers. Botswana eingecheckt. Home Produkte Services Über Aon Kontaktieren Sie uns Wählen Sie LandOffice Download Formulare. Proposal Forms Claim Best Broker Award Buch Spende. Unsere maßgeschneiderte Biotech-und Life-Sciences-Abdeckung umfasst unschätzbare Risiko Fast-Track-Zulassungen und Biotech-Probleme, dynamische Versicherungsschutz ist wichtig. Directory von Unternehmen in Botswana Download Ansicht Botswana Vendors Directory pdf View pdf Download pdf Bitte beachten Sie : Das Verzeichnis ist ein großes. Ich möchte eine statische Bibliothek (.LIB-Datei) GNU libiconv auf Windows, um mit anderen Bibliotheken in Visual C verwendet werden. Andere Bibliotheken Im verwenden sind mit MultiThreaded DLL (MD) Runtime-Option gebaut. Also muss ich libiconv mit der gleichen option zu bauen. Problem ist das libiconv verwendet GNU-Build-System und ich möchte mit MD-Option zu kompilieren. Sie können die Quellstruktur von libiconv hier sehen: cvs. savannah. gnu. orgviewvclibiconvrootlibiconv Herr Zlatkovic unterhält den Windows-Port von GNU libiconv für libxml2 Sie können sie hier sehen: Ich kann seinen Port nicht benutzen. Ich muss aus der neuesten Version von libiconv-1.13 zu bauen. Ich frage mich, wie dieser Kerl es portiert hat Kann jemand mir bitte sagen, wie man daraus bauen kann. Lib aus diesem und kompiliere es mit MSVC Eigentlich muss ich noch ein paar Gnu-Bibliotheken mit den gleichen Einstellungen erstellen. Also, wenn ich eine Lösung für eine Bibliothek bekomme. Ich kann das gleiche für alle anderen machen. Eine kleine Ergänzung zu deiner Antwort. Ich hatte das gleiche Problem und fand, dass die MinGW MSYS Lösung perfekt war. Obwohl ich brauchte, um ein wenig weiter zu gehen und auch die. lib-Datei zu generieren, um mit der resultierenden DLL verknüpfen zu können. Dies ist, was ich gefunden habe: generiere eine. def-Datei aus der Dll mit Dumpbin (ein Visual Studio-Tool). Generiere die. lib-Datei aus dem. def mit dem lib-Programm (auch Visual Studio-Tool) Hier können Sie eventuell eventuelle Link-Flags angeben. Alles hier genau (Im nicht der Autor dieser Methode): wiki. videolan. orgGenerateLibFromDll Ich habe auch erkannt, dass dieses libdll-Paar mit MD und MDD-Bibliotheken verknüpft werden kann. Hoffe, das kann den Leuten helfen, die diesen Beitrag finden, wie es mir geholfen hat. Kompilieren Sie sie mit MinGW mit Msys für die Umwelt, wenn nötig. MinGWs. a Dateien sind anscheinend, laut der Mailingliste, das gleiche Format wie. lib Dateien (nur eine Umbenennung). Vielleicht möchten Sie zuerst überprüfen, ob die iconv statische Bibliothek bereits im MinGW-Download-Dateisystem enthalten ist. Bearbeiten: Es ist in msys (C: msys1.0lib), zusammen mit: libiconv-2.dll (in C: msys1.0localbin) Edit: Ist es hier drin, das libiconv du brauchst diese Versionen scheinen MSVC makefiles zu haben :) opensource. applesourcelibiconv beantwortet Apr 28 10 um 22:03 aber wie würde ich laufen .47configure was ist ein Shell-Skript Mehr über, wie würde ich geben quotMultiThreaded DLLquot Runtime Option zu g Compiler von MinGW. Ndash claws Apr 28 10 at 22:07 Sie können nicht das gleiche Problem mit der MinGW Toolchain, die der Entwickler versucht zu vermeiden. Grundsätzlich erlaubt die Multithread-Option für den MSVC-Compiler-Linker der DLL, mehrere Haufen zu verwenden, anstatt einen einzigen Haufen, von einem schnellen Blick aus und verhindert, dass Probleme auftreten. Ndash Chris Dennett Apr 28 10 at 22: 14Einführung Holen Sie sich die Software International Text ist meist in Unicode codiert. Aus historischen Gründen wird es aber manchmal noch unter Verwendung einer sprach - oder länderabhängigen Zeichenkodierung codiert. Mit dem Aufkommen des Internets und dem häufigen Austausch von Text über Länder hinweg - auch die Betrachtung einer Webseite aus einem fremden Land ist in diesem Zusammenhang ein Textaustausch - sind Konvertierungen zwischen diesen Kodierungen zu einer Notwendigkeit geworden. Insbesondere arbeiten Computer mit dem Windows-Betriebssystem immer noch im Gebietsschema mit einer traditionellen (begrenzten) Zeichencodierung. Einige Programme, wie Mailer und Webbrowser, müssen in der Lage sein, zwischen einer gegebenen Textcodierung und der Benutzercodierung umzuwandeln. Andere Programme intern speichern Strings in Unicode, um die interne Verarbeitung zu erleichtern und müssen zwischen interne String-Darstellung (Unicode) und externe String-Darstellung (eine traditionelle Codierung) umwandeln, wenn sie IO machen. GNU libiconv ist eine Umwandlungsbibliothek für beide Arten von Anwendungen. Diese Bibliothek bietet eine iconv () - Implementierung für die Verwendung auf Systemen, die keinen haben oder deren Implementierung nicht von Unicode konvertieren kann. Es bietet Unterstützung für die Kodierungen: Europäische Sprachen ASCII, ISO-8859-, KOI8-R, KOI8-U, KOI8-RU, CP, CP, Mac, Mac, Macintosh Semitische Sprachen ISO-8859-, CP, CP862, Mac Japanese EUC-JP, SHIFTJIS, CP932, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-JP-1, ISO-2022-JP-MS Chinesisch EUC-CN, HZ, GBK, CP936, GB18030, EUC-TK, BIG5, CP950, BIG5-HKSCS, BIG5-HKSCS: 2004, BIG5-HKSCS: 2001, BIG5-HKSCS: 1999, ISO-2022-CN, ISO-2022-CN-EXT Korean EUC-KR, CP949, ISO-2022-KR, JOHAB Armenische ARMSCII-8 Georgische Georgische Akademie, Georgisch-PS Tadschikisch KOI8-T Kazakh PT154, RK1048 Thailändische ISO-8859-11, TIS-620, CP874, MacThai Laotian MuleLao-1, CP1133 Vietnamesisch VISCII, TCVN, CP2258 Platformspezifikationen HP-ROMAN8, NEXTSTEP Vollständige Unicode UTF-8 UCS-2, UCS-2BE UCS-2LE UCS-4LE UTS-4BE UTF-16BE UTF - 32, UTF-32BE, UTF-32LE UTF-7 C99, JAVA Full Unicode, in Bezug auf uint16t oder uint32t (mit maschinenspezifischer Endianness und Ausrichtung) UCS-2-INTERNAL, UCS-4-INTERNAL Gebietsschema abhängig, Oder wchart (mit maschinenspezifischer Endianness und Ausrichtung und mit OS - und Locale-abhängiger Semantik) char, wchart Der leere Codierungsname ist äquivalent zu char: es bezeichnet die locale abhängige Zeichencodierung. Wenn mit der Option --enable-extra-codings konfiguriert. Es gibt auch Unterstützung für ein paar zusätzliche Kodierungen: Europäische Sprachen CP Semitische Sprachen CP864 Japanisch EUC-JISX0213, ShiftJISX0213, ISO-2022-JP-3 Chinesisch BIG5-2003 (experimentell) Turkmenisch TDS565 Platformspezifische ATARIST, RISCOS-LATIN1 Es kann umwandeln Irgendwelche dieser Kodierungen zu irgendeinem anderen, durch Unicode-Umwandlung. Es hat auch eine begrenzte Unterstützung für die Transliteration, d. h. wenn ein Zeichen nicht in dem Zielzeichensatz dargestellt werden kann, kann es durch ein oder mehrere ähnlich aussehende Zeichen angenähert werden. Die Transliteration wird aktiviert, wenn TRANSLIT an den Zielcodierungsnamen angehängt wird. Libiconv ist für Sie, wenn Ihre Anwendung mehrere Zeichencodierungen unterstützen muss, aber diese Unterstützung fehlt von Ihrem System. Installation Wie üblich für GNU-Pakete: Nach der erstmaligen Installation von GNU libiconv empfiehlt es sich, GNU gettext neu zu kompilieren und neu zu installieren, damit es von libiconv profitieren kann. Bei anderen Systemen als GNULinux wird das Iconv-Programm nur dann internationalisiert, wenn GNU gettext gebaut und vor GNU libiconv installiert wurde. Dies bedeutet, dass das erste Mal GNU libiconv installiert ist, wir haben eine kreisförmige Abhängigkeit zwischen der GNU libiconv und GNU gettext Pakete, die durch den Aufbau und die Installation entweder erste libiconv, dann gettext, dann libiconv wieder aufgelöst werden können, oder (auf Systemen, die gemeinsam genutzt werden Bibliotheken, ohne AIX) ersten gettext, dann libiconv, dann gettext wieder. Erinnern Sie sich, dass vor dem Erstellen eines Pakets zum zweiten Mal, müssen Sie die Spuren des ersten Builds zu löschen, indem Sie make distclean. This Bibliothek kann gebaut und installiert werden in zwei Varianten: Der Bibliotheksmodus. Dies funktioniert auf allen Systemen und verwendet eine Bibliothek libiconv. so und eine Header-Datei lticonv. hgt. (Beide werden durch make install installiert.) Um es zu benutzen, einfach lticonv. hgt einfügen und die Funktionen nutzen. Um es in einem Autokonfigurations-Paket zu verwenden: Wenn du es nicht machst, machst du m4iconv. m4 an deine Datei aclocal. m4. Wenn Sie automake verwenden, fügen Sie m4iconv. m4 zu Ihrem m4-Makro-Repository hinzu. Fügen Sie der Link-Befehlszeile der Bibliotheken und ausführbaren Dateien hinzu, die die Funktionen des Platzhalters LIBICONV verwenden (oder, wenn Sie libtool für den Link verwenden, LTLIBICONV). Wenn Sie automake verwenden, ist der richtige Platz für diese Ergänzungen die LDADD-Variablen. Beachten Sie, dass iconv. m4 auch Teil des GNU-gettext-Pakets ist, das es in usrlocalshareaclocaliconv. m4 installiert. Der libc-Plugoverride-Modus. Dies funktioniert nur auf GNULinux, Solaris und OSF1 Systemen. Es ist ein Weg, um gute iconv Unterstützung ohne Glibc-2.1 zu bekommen. Es installiert eine Bibliothek preloadablelibiconv. so. Diese Bibliothek kann mit LDPRELOAD verwendet werden, um die in der C-Bibliothek vorhandenen iconv-Funktionen zu überschreiben. Auf GNULinux und Solaris: Auf OSF1: Eine Programmquelle muss nicht geändert werden, das Programm muss nicht einmal neu kompiliert werden. Setzen Sie einfach die LDPRELOAD Umgebungsvariable ein, das ist die Libiconv - und Libcharset-Bibliotheken und ihre Header-Dateien unter LGPL. Das Iconv-Programm befindet sich unter GPL. Die neuesten Entwicklungsquellen können durch das Savannah-Projekt gewonnen werden. Dokumentation Bug-Reports Bitte senden Sie allgemeine FSF-Verstärker GNU-Anfragen an ltgnugnu. orggt. Es gibt auch andere Möglichkeiten, die FSF zu kontaktieren. Bitte senden Sie defekte Links und andere Korrekturen oder Anregungen an ltbug-gnu-libiconv - antispam 64 Antispam. Gnu. orggt Copyright (C) 1998, 2017 Free Software Foundation, Inc. Verbatim Kopieren und Verteilen dieses gesamten Artikels ist in jedem Medium erlaubt, sofern diese Bekanntmachung erhalten bleibt. Letzte Aktualisierung: Datum: 20170211 13:30:21 Autor: haible Open BSD FAQ - Pakete und Ports FAQ Index Einleitung Es gibt viele Drittanbieteranwendungen, die man auf einem OpenBSD System verwenden möchte. Um diese Software einfacher zu installieren und zu verwalten, plus zu helfen, um mit OpenBSDs Politik und Ziele zu entsprechen, wird es auf OpenBSD portiert. Dieser Portierungsaufwand kann viele verschiedene Dinge beinhalten. Beispiele sind: Die Software verwendet das Standard-OpenBSD-Verzeichnis-Layout (zB Konfigurationsdateien gehen in etc), entsprechend den offenen Bibliotheks-Spezifikationen von OpenBSDs, so dass die Software sicherer ist, wann immer möglich, etc. Das Endergebnis der Porting-Aufwand ist ready-to - Binärpakete installieren Ziel des Paketsystems ist es, zu verfolgen, welche Software installiert wird, damit es jederzeit problemlos aktualisiert oder entfernt werden kann. Auf diese Weise werden keine unnötigen Dateien zurückgelassen, und die Benutzer können ihre Systeme sauber halten. Das Paket-System hilft auch, sicherzustellen, dass nichts durch Unfall gelöscht wird, wodurch Software aufhört zu funktionieren ordnungsgemäß. Ein weiterer Vorteil ist, dass Benutzer selten Software aus der Quelle kompilieren müssen. Da Pakete bereits kompiliert wurden und verfügbar sind und bereit sind, auf einem OpenBSD-System verwendet zu werden. In wenigen Minuten kann eine große Anzahl von Paketen geholt und installiert werden, mit allem an der richtigen Stelle. Die Pakete und Ports-Auflistung gehen nicht durch die gleiche gründliche Sicherheitsprüfung, die auf dem OpenBSD-Basissystem durchgeführt wird. Obwohl wir uns bemühen, die Qualität der Pakete Sammlung hoch zu halten, haben wir einfach nicht genug Personal, um das gleiche Maß an Robustheit und Sicherheit zu gewährleisten. Natürlich werden Sicherheitsupdates für verschiedene Anwendungen so schnell wie möglich an den Ports-Baum gebunden und entsprechende Paket-Sicherheitsupdates werden als Snapshots für - current zur Verfügung gestellt. Paketverwaltung Wie funktioniert es? Pakete sind die vorkompilierten Binärdateien einiger der am meisten verwendeten Drittanbieter-Software. Pakete können problemlos mit Hilfe von mehreren Dienstprogrammen verwaltet werden, die auch als pkg-Tools bezeichnet werden: pkgadd (1) - ein Dienstprogramm zum Installieren und Aktualisieren von Softwarepaketen pkgdelete (1) - ein Dienstprogramm zum Löschen von zuvor installierten Softwarepaketen pkginfo (1) - ein Dienstprogramm für die Anzeige von Informationen über Softwarepakete pkgcreate (1) - ein Dienstprogramm zum Erstellen von Softwarepaketen Um ordnungsgemäß zu funktionieren, kann Anwendung X verlangen, dass andere Anwendungen Y und Z installiert werden. Die Anwendung X hängt von diesen anderen Anwendungen ab, weshalb Y und Z als Abhängigkeiten von X bezeichnet werden. Im Gegenzug kann Y andere Anwendungen P und Q erfordern und Z kann die Anwendung R erfordern, um ordnungsgemäß zu funktionieren. Auf diese Weise wird ein ganzer Abhängigkeitsbaum gebildet. Pakete sehen aus wie einfache. tgz Bündel. Grundsätzlich sind sie genau das, aber es gibt einen entscheidenden Unterschied: Sie enthalten einige zusätzliche Verpackungsinformationen. Diese Informationen werden von pkgadd (1) für mehrere Zwecke verwendet: Unterschiedliche Prüfungen: Ist das Paket bereits installiert oder stimmt es mit anderen installierten Paketen oder Dateinamen in Konflikt. Abhängigkeiten, die noch nicht auf dem System vorhanden sind, werden automatisch abgerufen und installiert, bevor sie fortfahren Mit der Installation des Pakets. Informationen über das Paket (s) werden in einem zentralen Repository aufgezeichnet, standardmäßig in vardbpkg. Dies wird unter anderem verhindern, dass die Abhängigkeiten eines Pakets gelöscht werden, bevor das Paket selbst gelöscht wurde. Dies hilft sicherzustellen, dass eine Anwendung nicht versehentlich durch einen sorglosen Benutzer gebrochen werden kann. Sachen einfach machen: PKGPATH und pkg. conf Du kannst die Dinge einfach machen, indem du deinen bevorzugten Spiegel in der PKGPATH Umgebungsvariable oder der Datei pkg. conf (5) definierst. Beispiel 1: Abrufen von Paketen mit PKGPATH. Es ist eine gute Idee, eine ähnliche Exportlinie zu Ihrem. profile hinzuzufügen. Wenn youre mit doas (1). Beachten Sie, dass Sie setenv in der Konfigurationsdatei für diese Variable übergeben müssen. Sie können mehrere Standorte angeben, getrennt durch Doppelpunkte. Wenn der erste Eintrag in PKGPATH fehlschlägt, wird der nächste versucht, und so weiter, bis das Paket gefunden wird. Wenn alle Einträge fehlschlagen, wird ein Fehler erzeugt. Die - r und - p-Flags auf uname (1) erweitern sich auf die Version von OpenBSD youre running und Ihre CPU-Architektur. Wenn Sie Snapshots verwenden, ersetzen Sie (uname-r) mit Snapshots stattdessen. Beispiel 2: Abrufen von Paketen mit pkg. conf (5). Dies setzt voraus, dass a. local. mirror das standard pubOpenBSDVERSIONpackagesARCH Verzeichnislayout verwendet, das die meisten Spiegel machen. Im Gegensatz zu PKGPATH. Diese Methode nicht auf die Umwelt verlassen, so kann es ein bisschen einfacher zu verwalten, wenn Dinge wie X Sitzungen beteiligt sind. Beachten Sie, dass OpenBSD auch eine Liste von Paketspiegeln in der Datei etcexamplespkg. conf enthält. Pakete finden Für die gängigsten Architekturen steht eine große Sammlung von vorkompilierten Paketen zur Verfügung. Wenn du den Ports-Baum auf deinem System hast, kannst du schnell das Paket finden, das du suchst, indem du den Ports-Baum suchst. Wenn Sie nach einem bestimmten Dateinamen suchen, installieren Sie das Paket pkglocatedb, dann verwenden Sie den Befehl pkglocate, um zu finden, welches Paket diese Datei enthält. Sie werden feststellen, dass bestimmte Pakete in einigen verschiedenen Sorten verfügbar sind, formell genannt Aromen. Andere sind Stücke der gleichen Anwendung, die separat installiert werden können. Diese werden als Unterpakete bezeichnet. Dies wird in der Verwendung von Aromen und Unterpaketen detailliert beschrieben. Aber Geschmack im Grunde bedeutet, dass sie mit verschiedenen Sätzen von Optionen konfiguriert sind. Viele Pakete haben Aromen. Zum Beispiel: Datenbankunterstützung, Unterstützung für Systeme ohne X - oder Netzwerkzusätze wie SSL und IPv6. Jeder Geschmack eines Pakets hat ein anderes Suffix in seinem Paketnamen. Detaillierte Informationen zu Paketnamen finden Sie unter Packungsbestimmungen (7). Hinweis: Nicht alle möglichen Pakete sind auf den Spiegel-Servern notwendigerweise verfügbar. Manche Anwendungen funktionieren einfach nicht auf allen Architekturen. Einige Anwendungen können nicht aus Spiegeln (oder CD-ROM) aus Lizenzgründen verteilt werden. Es kann auch viele mögliche Kombinationen von Aromen eines Hafens geben, und das OpenBSD-Projekt hat einfach nicht die Ressourcen, um sie alle zu bauen. Wenn du eine Kombination benötigst, die nicht verfügbar ist, musst du den Port aus der Quelle bauen. Für weitere Informationen, wie dies zu tun, lesen Sie mit Aromen und Unterpakete in den Häfen Abschnitt dieses Dokuments. Neue Pakete installieren Das Dienstprogramm pkgadd (1) dient zur Installation von Paketen. Wenn du dir die Dinge einfach gemacht hast, indem du PKGPATH einsetzest oder etcpkg. conf konfigurierst. Sie können einfach pkgadd (1) mit dem Paketnamen anrufen, wie im folgenden grundlegenden Beispiel gezeigt wird. In diesem Beispiel wurde das - v-Flag verwendet, um eine ausführlichere Ausgabe zu geben. Diese Option ist nicht nötig, aber es ist hilfreich für das Debugging und wurde hier verwendet, um ein wenig mehr Einblick in das zu geben, was pkgadd (1) tatsächlich tut. Die Angabe mehrerer - v-Flags wird zu einer ausführlicheren Ausgabe führen. Pkgadd (1) stellt Ihnen Fragen, wenn es nicht entscheiden kann, welche Version eines Pakets Sie vielleicht installieren möchten. Zum Beispiel, wenn Sie nicht wissen, die Versionsnummer eines Pakets im Voraus, können Sie versuchen, so etwas wie: Für einige Pakete werden einige wichtige zusätzliche Informationen über die Konfiguration oder Verwendung der Anwendung auf einem OpenBSD-System gegeben werden. Da es wichtig ist, wird es angezeigt, ob Sie das Flag - v verwenden oder nicht. Betrachten Sie das folgende Beispiel: Darüber hinaus bieten einige Pakete Konfigurations - und andere Informationen in einer Datei, die sich in usrlocalsharedocpkg-readmes befindet. Lassen Sie uns nun mit einem Beispiel eines Pakets fortfahren, das Abhängigkeiten hat: Es ist möglich, mehrere Paketnamen auf einer Zeile anzugeben, die dann alle gleichzeitig installiert werden, zusammen mit möglichen Abhängigkeiten. Es ist auch möglich, die absolute Position eines Pakets auf der Kommandozeile anzugeben. Dieser absolute Standort kann ein Pfad zu einer lokalen Datei oder einer entfernten URL sein. Unterstützte Präfixe sind http, https, ftp und scp. Hinweis: Nicht alle Architekturen haben die gleichen Pakete zur Verfügung. Einige Ports arbeiten nicht an bestimmten Architekturen, und die Leistung begrenzt die Anzahl der Pakete, die auf anderen aufgebaut werden können. Zu Ihrer Sicherheit, wenn Sie ein Paket installieren, das Sie früher installiert und entfernt haben, überschreibt pkgadd (1) keine Konfigurationsdateien, die geändert wurden. Das gleiche gilt für das Upgrade eines Pakets. Manchmal kann man auf einen Fehler wie der im folgenden Beispiel stoßen: Es gibt pkgadd, hübsche Installation von Abhängigkeiten, wenn plötzlich es die Installation von xv abbricht. Dies ist eine weitere Sicherheitsvorkehrung. Die im Paket enthaltenen Verpackungsinformationen enthalten Informationen über geteilte Bibliotheken, die das Paket erwartet, sowohl Systembibliotheken als auch Drittbibliotheken. Wenn eine der benötigten Bibliotheken nicht gefunden werden kann, ist das Paket nicht installiert, da es sowieso nicht funktionieren würde. Um diese Art von Konflikten zu lösen, musst du herausfinden, was zu installieren ist, um die benötigten Bibliotheken auf deinem System zu bekommen. Es gibt mehrere Dinge zu überprüfen: Sie können ältere Pakete installiert haben: eine ältere Version der benötigten Bibliothek ist vorhanden. In diesem Fall aktualisieren Sie diese Pakete. Ihr System kann unvollständig sein: Sie haben keinen der Dateisätze installiert, die die benötigte Bibliothek enthält. Fügen Sie einfach den gewünschten Dateisatz hinzu. Ihr System kann nicht mehr aktuell sein: Sie haben eine ältere Version der benötigten Bibliothek. Starten Sie den Installateur (wie auf dieser Seite beschrieben) und wählen Sie (U) Ihr komplettes System aus. Auflisten installierter Pakete Sie können eine Liste der installierten Pakete anzeigen, indem Sie das Dienstprogramm pkginfo (1) verwenden. Wenn ein installierter Paketname (oder ein Ort eines Pakets, das installiert werden soll) gegeben wird, zeigt pkginfo (1) detailliertere Informationen über dieses Paket an. Aktualisieren von installierten Paketen Lets sagen, dass Sie eine ältere Version von unzip installiert haben, bevor Sie dieses Feld auf die neueste OpenBSD-Version aktualisieren. Sie können das Paket problemlos auf die neuere Version wie folgt aufrüsten: Wenn ein Paket Abhängigkeiten hat, werden sie auch auf Updates untersucht. Das Aufrufen von pkgadd (1) mit dem - u-Flag und kein Paketname wird versuchen, alle installierten Pakete zu aktualisieren. Anmerkung: Der Schalter - u beruht entweder auf die PKGPATH-Umgebungsvariable, die gesetzt werden soll, oder etcpkg. conf, um mit einem Spiegel belegt zu werden. Wenn keiner dieser Bedingungen erfüllt ist, kann pkgadd (1) keine Updates finden. Mit mehreren Einträgen in PKGPATH bedeutet nicht, dass alle Einträge für Aktualisierungsoperationen ausprobiert werden. Stattdessen stoppt pkgadd (1) auf dem ersten Pfad mit passenden Kandidaten. Wenn du eine Konfigurationsdatei hast, die zu der alten Version gehört, die du geändert hast, wird sie standardmäßig unberührt bleiben. Sie können es jedoch durch die Standard-Konfigurationsdatei der neuen Version ersetzen, indem Sie pkgadd (1) mit dem Flag - c aufrufen. Entfernen von installierten Paketen Um ein Paket zu löschen, nehmen Sie einfach den Namen des Pakets wie von pkginfo (1) (siehe Auflistung installierte Pakete oben) und verwenden Sie pkgdelete (1), um das Paket zu entfernen. Im folgenden Beispiel wird das Bildschirmpaket entfernt. Beachten Sie, dass es manchmal Anweisungen über zusätzliche Elemente gibt, die manuell entfernt werden müssen. Wie mit dem Dienstprogramm pkgadd (1) kannst du das - v-Flag verwenden, um eine ausführlichere Ausgabe zu erhalten. Hinweis: Oft ist es nicht notwendig, die Versionsnummern und Aromen mit dem Paketnamen anzugeben, da pkgdelete (1) in der Regel den vollständigen Namen selbst finden kann. Sie müssen den vollständigen Paketnamen (im Beispiel, der Bildschirm-4.0.3p3) nur angeben, wenn Mehrdeutigkeit aufgrund mehrerer installierter Pakete mit dem angegebenen Namen möglich ist. In diesem Fall kann pkgdelete (1) nicht wissen, welches Paket zu löschen ist. Zur Sicherheit wird pkgdelete (1) keine Konfigurationsdateien entfernen, wenn sie geändert wurden. Stattdessen wird es Sie darüber informieren. Wenn Sie es vorziehen, diese Konfigurationsdateien automatisch zu entfernen, können Sie dies tun, indem Sie das Flag - c verwenden. Unvollständige Paketinstallation oder - entfernung In einigen ungeraden Fällen können Sie feststellen, dass ein Paket aufgrund von Konflikten mit anderen Dateien nicht hinzugefügt oder gelöscht wurde. Die unvollständige Installation ist in der Regel mit dem Teil vor dem Paketnamen gekennzeichnet. Dies kann zB passieren, wenn Sie während der Installation zufällig CTRLC drücken: Es ist immer eine gute Idee, Teilpakete aus Ihrem System zu entfernen und mögliche Probleme zu beheben, die zu diesem Ausfall führen. Es ist oft ein Hinweis darauf, dass Sie nicht über ein sauberes System mit allem, was von Paketen installiert ist, aber möglicherweise Pakete verwechselt mit anderen Software direkt aus der Quelle installiert. Arbeiten mit Häfen Wie in der Einleitung erwähnt, werden Pakete aus dem Häfenbaum zusammengestellt. In diesem Abschnitt werden wir erklären, wie die Häfen Baum funktioniert, sowie wenn Sie sollten oder sollte es nicht verwenden. WICHTIGE NOTIZ . Der Häfenbaum ist für fortgeschrittene Benutzer gedacht. Jeder wird ermutigt, die vorkompilierten Binärpakete zu verwenden. NICHT fragen Anfänger Fragen auf die Mailing-Listen wie Wie kann ich die Ports Baum arbeiten Wenn Sie Fragen über die Ports-Baum haben, wird davon ausgegangen, dass Sie die Manual-Seiten und diese FAQ gelesen haben und dass Sie in der Lage sind, mit ihm zu arbeiten . Wie funktioniert es Der Ports-Baum ist ein Satz von Makefiles, einer für jede Drittanbieter-Anwendung, der kontrolliert: Wo und wie man die Quelle der Software abruft Welche andere Software hängt davon ab, wie man die Quellen ändert (falls nötig) Konfigurieren und bauen So testen Sie es (optional) So installieren Sie es Abgesehen von der Makefile enthält jeder Port auch mindestens Folgendes: PLIST - Anweisungen zur Paketerstellung, sobald die Applikation erstellt wurde DESCR - Beschreibung der Applikation distinfo - Verteilung Datei-Prüfsummen und Größe Alle diese Informationen werden in einer Verzeichnis-Hierarchie unter usrports gespeichert. Diese Hierarchie enthält drei spezielle Unterverzeichnisse: distfiles - wo das Ports-System Software-Verteilungssätze nach dem Herunterladen der Infrastruktur speichert - das Hauptverzeichnis der Ports-Infrastruktur, das alle notwendigen Scripts und Makefiles-Pakete enthält - enthält alle Binärpakete, die vom Portsystem gebaut wurden. Die anderen Unterverzeichnisse alle form different application categories, which contain the subdirectories of the actual ports. Complex ports may be organized to an even deeper level, for example if they have a core part and a set of extensions, or a stable and a snapshot version of the application. Every port directory must contain a pkg subdirectory with packing list(s) and description file(s). There may also be patches and files subdirectories, for source patches and additional files, respectively. When a user issues make(1) in the subdirectory of a specific port, the system will recursively walk its dependency tree, check whether the required dependencies are installed, build and install any missing dependencies, and then continue the build of the desired port. All of the building happens inside the working directory that the port creates. Normally this is under . defaulting to usrportspobj . but you may override this (see configuration of the ports system ). If WRKOBJDIR has been explicitly unset, a subdirectory of the ports main directory (package name prefixed by w-) will be used instead. Note: Ports are never directly installed on your system. They use a fake installation directory . Everything that gets installed there is bundled together into a package that gets stored in the packages subdirectory of the ports tree, as mentioned earlier. Installing a port really means creating a package and then installing that package. More information about the ports system may be found in these man pages: ports(7) - describes the different stages (make targets) of port installation, the use of flavors and subpackages and some other options. bsd. port. mk(5) - in-depth information about all the make targets, variables, the fake (installation directory) framework, etc. Fetching the ports tree Before continuing, you must read the section about NOT mixing up your OpenBSD system and ports tree. Once you have decided which flavor of the ports tree you want, you can get it from different sources. The table below gives an overview of where you can find the different flavors, and in which form. An x marks availability and - means it is not available through that specific source. On the CD-ROM and HTTP mirrors, look for a file named ports. tar. gz . You want to untar this file in the usr directory, which will create usrports and all the directories under it. For example: If youd like to be able to write to usrports as a regular user, see the next section. The snapshots available on the mirrors are generated daily from the - current ports tree. You will find the snapshots in the pubOpenBSDsnapshots directory. If you are using a snapshot of the ports tree, you should have installed a matching snapshot of OpenBSD. Make sure you keep your ports tree and your OpenBSD system in sync For more information about obtaining the ports tree via CVS, read the AnonCVS page. which contains a list of available servers and a number of examples. Configuration of the ports system NOTE: This section introduces some additional global settings for building applications from ports. You can skip this section, but then you will be required to perform many of the make(1) statements in later examples as root. Because the OpenBSD project does not have the resources to fully review the source code of all software in the ports tree, you can configure the ports system to take a few safety precautions. The ports infrastructure is able to perform all building as a regular user, and perform only those steps that require superuser privileges as root (for example, the install make target). However, because root privileges are always required at some point, the ports system will not save you when you decide to build a malicious application. You can set up doas(1) and have the ports system use it for tasks requiring superuser permissions. This requires granting three permissions: The user who is going to build ports needs permission to run arbitrary commands as the superuser. The user who is going to build ports needs permission to pass certain environment variables used by the ports system from the shell calling doas to the privileged shell, see the setenv and keepenv options in doas. conf(5). The ports system needs permission to invoke doas(1). This can be granted by setting the SUDO variable defined in bsd. port. mk(5) in the environment, which can be made permanent by adding the following line to mk. conf(5). You can modify the ownership of the ports tree so that you can write there as a regular user. In this case, an example user has been added to the wsrc group and the underlying directories are made group-writable. It is possible to use a read-only ports tree by separating directories that are written to during port building: The working directory of ports. This is controlled by the WRKOBJDIR variable, which specifies the directory which will contain the working directories. The directory containing distribution files. This is controlled by the DISTDIR variable. The directory containing newly built binary packages. This is controlled by the PACKAGEREPOSITORY variable. For example, you could add the following lines to etcmk. conf . If desired, you can also change the ownership of these directories to your local username and group, so that the ports system can create the underlying working directories as a regular user. Again, ports can be built as a user, but must be installed by root or with doas(1).Searching the ports tree Once you have the ports tree in place on your system, it becomes very easy to search for software. Just use make search keysearchkey as shown in this example: The search result gives a nice overview of each application that is found: the port name, the path to the port, a one-line description, the ports maintainer, keywords related to the port, librarybuildruntime dependencies, and architectures on which the port is known to work. This mechanism, however, is a very basic one, which just runs awk(1) on the ports index file. A port called sqlports allows very fine-grained searching using SQL. It is a SQLite database, but basically just about any database format can be created using the ports infrastructure. The sqlports port includes the script used to generate the database, which could be used as a basis to generate databases in different formats. Just pkgadd(1) the sqlports package to get started. A sample session could look like this: The above is still a very basic search. With SQL, just about anything can be searched for, including dependencies, configure flags, shared libraries, etc. Straightforward installation: a simple example For claritys sake, lets consider a simple example: rsnapshot. This application has one dependency: rsync. The following commands assume youve configured the SUDO varable in etcmk. conf as mentioned above. As you can see, the ports system is doing many things automatically. It will fetch, extract, and patch the source code, configure and build (compile) the source, install the files into a fake directory, create a package (corresponding to the packing list) and install this package onto your system (usually under usrlocal ). And it does this recursively for all dependencies of the port. Notice the gt Verifying install for. and gt Returning to build of. lines in the above output, indicating the walk through the dependency tree. If a previous version of the application you want to install was already installed on your system, you can use make update instead of make install . This will call pkgadd(1) with the - r flag. Note: Large applications will require a lot of system resources to build. Good examples are compilers like GCC and the Java Software Development Kit. If you get out of memory type of errors when building such a port, this usually has one of two causes: Your resource limits are too restrictive. Adjust them with kshs ulimit or cshs limit command. You simply dont have enough RAM in your machine. Cleaning up after a build You probably want to clean the ports default working directory after you have built the package and installed it. In addition, you can also clean the working directories of all dependencies of the port with this make target: If you wish to remove the source distribution set(s) of the port, you would use: In case you have been compiling multiple flavors of the same port, you can clear the working directories of all these flavors at once using: You can also clean things up as they get built by setting a special variable. Work directories will automatically be cleaned after packages have been created. Uninstalling a ports package It is very easy to uninstall a port: This will call pkgdelete(1) to have the corresponding package removed from your system. If desired, you can also uninstall and reinstall a ports package by using: If you would like to get rid of the packages you just built, you can do so as follows: Using flavors and subpackages Please read the ports(7) man page, which gives a good overview of this topic. There are two mechanisms to control the packaging of software according to different needs. The first mechanism is called flavors . A flavor usually indicates a certain set of compilation options. For instance, some applications have a nox11 flavor which can be used on systems without X. Some shells have a static flavor that will build a statically linked version. There are ports which have different flavors for building them with different graphical toolkits. Other examples include support for different database formats, different networking options (SSL, IPv6. ), different paper sizes, etc. Summary: You will most likely use flavors when a package has not been made available for the flavor you are looking for. In this case, you can specify the desired flavor and build the port yourself. Most port flavors have their own working directory during compilation, and every flavor will be packaged into a correspondingly-named package to avoid any confusion. To see the different flavors of a certain port, you would change to its subdirectory and issue: You can also look at the ports DESCR files, which explain the available flavors in more detail. The second mechanism is called subpackages . A porter may decide to create subpackages for different pieces of the same application if they can be logically separated. You will often see subpackages for the client part and the server part of a program. Sometimes extensive documentation is bundled in a separate subpackage because it takes up a lot of disk space. Extra functionality that pulls in heavy dependencies will often be packaged separately. The porter will also decide which subpackage is the main subpackage, to be installed as a default. Other examples are extensive test suites which come with the software, separate modules with support for different things, etc. Summary: Some ports are split into several packages. make install will only install the main subpackage. To list the different packages built by a port, use: make install will only install the main subpackage. To install them all, use: To list the different subpackages available for a port, use: It is possible to select which subpackage(s) to install from within the ports tree. After some tests, this procedure will just call pkgadd(1) to install the desired subpackage(s). Note: The subpackages mechanism only handles packages. It does not modify any configuration options before building the port. You must use flavors for that purpose. Using dpb to build multiple ports When you need to build more than one or two ports at a time, you can use the usrportsinfrastructurebindpb tool. dpb(1) takes a list of ports to build and automatically builds them all in an optimal order, making use of as much parallelism as possible. It can also use multiple machines to perform the building, and produces detailed logs of the build process for troubleshooting, placed in usrportslog by default. This command will read the list of pkgpaths in localports and build all the packages. It can also install the packages after they have been built. The localports file might look something like this: If you do not provide a list of ports to build on the command line or via - P or - I . dpb(1) will build all the ports in the ports tree. If run as root, dpb will automatically drop privileges to dedicated users for fetching distfiles and building ports. This is the recommended way to use it, but it can also run as a regular user. Additionally, the proot(1) utility can be used to further isolate building operations. Security updates (-stable) When serious bugs or security flaws are discovered in third party software, they are fixed in the - stable branch of the ports tree. Note that binary packages for - release and - stable are not updated . In contrast to the base system, the - stable ports tree only gets security backports for the latest release. This means that all you need to do is make sure you check out the correct branch of the ports tree, and build the desired software from it. You can keep your tree up to date with CVS and subscribe to the ports-changes mailing list to receive security announcements related to software in the ports tree. Of course, security updates reach the - current ports tree before being taken up in the - stable branch. Package signatures Signatures are a good way to make sure packages are legitimate and not corrupted. OpenBSD offers official signed packages using signify(1). No extra effort is needed on the users part to ensure packages havent been tampered with -- pkgadd does this silently and automatically. If you want to build your own signed packages, youll first need to create keys for signing. Note the names: keys for signing packages should end in pkg . Then we may sign existing packages after building them with pkgsign(1). Alternately, we may add the following line to etcmk. conf to directly build signed packages by default: In order to install the package on another machine, the public key my-pkg. pub should be put into the etcsignify directory on that machine. By default, pkgadd will only allow signed packages, and it will always look for keys matching etcsignifypkg. pub . Im getting all kinds of crazy errors. I just cant seem to get this ports stuff working at all. It is very likely that you are using a system and ports tree which are not in sync. Read EVERYTHING about OpenBSDs flavors. - release, - stable and - current. The short summary is as follows, but please do read the document mentioned above to get an idea about which one it is you want to use. - release. What is on the CD - stable. - release plus security fixes and reliability enhancements - current. The development version of OpenBSD Do NOT check out a - current ports tree and expect it to work on a - release or - stable system. This is one of the most common errors, and you will irritate people when you ask for help about why nothing seems to work. If you follow - current, you need both a - current base system and a - current ports tree . Yes, this really does mean a wonderful new port will typically not work on your older system, even if that system was - current just a few weeks ago. Keep in mind that if you use X11 as part of your system, it must also follow the corresponding branch Because no intrusive changes are made in - stable, it is possible to use a - stable ports tree on a - release system and vice versa. There is no need to update all your installed packages after applying a few errata patches to your system. Another common failure is a missing X11 installation. Even if the port you try to build has no direct dependency on X11, a subpackage of it or its dependencies may require X11 headers and libraries. Building ports on systems without X11 is not supported . If you insist on doing so, you are on your own to figure it out. There are, however, nox11 flavored packages available for many ports, which you can install without needing X11 on your system. The latest version of my Top-Favorite-Software is not available If you are using a release or stable version of OpenBSD, you will not find any package updates until the next release. For serious problems which are fixed in ports, updates are also made to the most recent - stable branch. You can build your own updates in this case, but, again, the OpenBSD project does not provide pre-built packages for these updates . DO NOT mix versions of ports and OpenBSD Doing so will sooner or later (probably very soon, in fact) cause you headaches trying to solve all kinds of errors. But hey, Im all - current here The ports collection is a volunteer project. Sometimes the project simply doesnt have the developer resources to keep everything up to date. Developers pretty much pick up what they consider interesting and can test in their environment. Some individual ports may lag behind the mainstream versions because of this. Importantly, not updating to the latest version is often a conscious decision. The newer version may have problems that the maintainer is trying to solve, or that have simply made the application worse than the old version. Also, OpenBSD may have different goals than the developers in other projects, which sometimes results in features and design or implementation choices that are undesirable from OpenBSD developers point of view. The update may also be postponed because the new version is not considered a crucial update. If you really need a newer version of a port, you should ask the maintainer to update it. See below to find out who the port maintainer is. If you can help. all the better. Why is there no package for my Top-Favorite-Software There are several possible reasons for this: Some software must simply not be redistributed in binary package form at all, according to its license. Other software is encumbered by patents and therefore cannot be redistributed. If your Top-Favorite-Software falls into this category, you will need to use the port and compile from source. Obvious, but sometimes forgotten: there is no port of your Top-Favorite-Software. You can verify this by searching the ports tree. If there is indeed no port of your Top-Favorite-Software, then you are welcome to help. Why is there no port of my Top-Favorite-Software The ports collection is a volunteer project. Active port development is done by a limited number of people, in their spare time. These people usually make new ports only for software they use directly or are interested in. You can help. Consider creating your own port. There is some documentation available on this: the OpenBSD Porters Handbook. Read it, then read it again, especially the part about maintaining your port. Then try making a new port and test it carefully, step by step. If finally it works OK for you, submit it to the ports mailing list at portsopenbsd. org. Chances are good you will get some feedback and testing from other people. If the testing is successful, your port will be considered to be taken up in the ports tree. What should I use: packages or ports In general, you are highly advised to use packages over building an application from ports. The OpenBSD ports team considers packages to be the goal of their porting work, not the ports themselves. Building a complex application from source is not trivial. Not only must the application be compiled, but the tools used to build it must be built as well. Unfortunately, OpenBSD, the tools, and the application are all evolving, and getting all the pieces working together is often a challenge. Once everything works, a revision in any of the pieces the next day could render it broken. Every six months. as a new release of OpenBSD is made, an effort is made to test the building of every port on every platform. During the development cycle, however, its likely that some ports will break. In addition to having all the pieces work together, there is just the matter of time and resources required to compile some applications from source. Applications such as Mozilla products or KDE may take hours and huge amounts of disk space and RAMswap to build. Why go through this much time and effort when the programs are already compiled and sitting on your CD-ROM or mirror. waiting to be used Of course, there are a few good reasons to use ports over packages in some cases: Distribution rules prohibit OpenBSD from distributing a package You wish to modify or debug the application or study its source code You need a flavor of a port that is not built by the OpenBSD ports team You wish to alter the directory layout (i. e. modifying PREFIX or SYSCONFDIR ) However, for most people and most applications, using packages is a much easier, and definitely the recommended way of adding applications to an OpenBSD system. How do I tweak these ports to have maximum performance OpenBSD is about stability and security. Just like the GENERIC kernel is the default and the only supported kernel, the ports team makes sure the ports work and are stable. If you want to switch on all kinds of compiler options, you are on your own. Please do not ask questions on the mailing lists such as why it does not work when you tried to switch on a few hidden knobs to make it work faster. In general, all this tweaking is not necessary for 99 of users, and it is very likely to be a complete waste of time, for you, the user, as well as for the developers who read about your problems when in reality there are none. I submitted a new portan update weeks ago. Why isnt it committed The ports team has very limited resources and no committer was able to look at your portupdate in time. As frustrating as it may be, just ignore this fact. Take care of your port, send updates and eventually someone might take care of it. It has happened before that people suddenly have some free time to spend on committing ports, or their interests shift to new areas and suddenly your old submission becomes interesting, if it is remembered. Reporting problems If you have trouble with an existing port, please send an email to the port maintainer. To see who is the maintainer of the port, type, for example: Alternatively, if there is no maintainer, or you cant reach them, send an email to the portsopenbsd. org mailing list. Please do NOT use the miscopenbsd. org mailing list for questions about ports. In any case, please provide: Your OpenBSD version, including any patches you may have applied. The kernel version is given by: sysctl - n kern. version The version of your ports tree: if the file usrportsCVSTag exists, provide its contents. If this file is absent, you are using the - current ports tree. A complete description of the problem. Dont be afraid to provide details. Mention all the steps you followed before the problem occurred. Is the problem reproducible The more information you provide, the more likely you will get help. For ports which do not build correctly, a complete build transcript is almost always required. You can use the portslogger script, found in usrportsinfrastructurebin . for this. A sample run might look like this: After this, you should have a logfile of the build in your portlog directory that you can send to the port maintainer. Also, make sure you are not using any special options in your build, for example in etcmk. conf . Alternatively, you can: Use script(1) to create a complete build transcript. Do not remove the configure information. Attach the output of pkginfo(1) if it seems even remotely relevant. gcc(1) internal compiler errors ask you to report the bug to the gcc mailing list. It does save time if you follow their direction, and provide at least the various files produced by gcc - save-temps . Helping us There are many ways you can help. They are listed below, by increasing order of difficulty. Report problems as you experience them. You can systematically test ports and report breakages, or suggest improvements. Just have a look at the Port Testing Guide. Test the updates to ports which are posted to the ports mailing list. Send updates or patches to a ports maintainer, or to the ports mailing list if the port has no maintainer. Generally this is highly appreciated, unless your patches will cause developers to waste time rather than save time. Create new ports. If you are really eager and want to know everything about porting applications to OpenBSD, a good starting point is the OpenBSD Porters Handbook. Hardware donations can assist testing ports on the various platforms OpenBSD runs on. Note: For all creation of new ports and subsequent testing, or for testing port updates, you must run a - current system In general, this is not a desirable environment because of its continuously evolving nature, so proceed only if you are sure about committing yourself to following - current.

No comments:

Post a Comment