Kuinka käyttää Pkg Package Manageria FreeBSD 12:ssa

Johdanto

FreeBSD on avoimen lähdekoodin Unix-tyyppinen käyttöjärjestelmä, jota käytetään nykyaikaisten palvelimien, pöytätietokoneiden ja sulautettujen alustojen tehostamiseen. Jättiläiset, kuten Netflix, Yahoo!, WhatsApp, BBC ja Sony, käyttävät FreeBSD:tä jossain muodossa. FreeBSD-järjestelmä ei ole yhtä laajalti tunnettu kuin Linux, suurelta osin siksi, että Linux on keskittynyt useiden vuosien ajan työpöydälle ja FreeBSD-projekti on yleensä ollut enemmän palvelinpohjainen.

Tässä oppaassa opit pakettien hallinnasta FreeBSD 12:ssa.

Portit vs. paketit

On FreeBSD we have two different ways to install add-on software: via the Ports Collection, or Ports, and via pre-configured packages to install and manage software.

Ports is a system for building additional software on FreeBSD. With Ports you start with the raw source code provided by the software vendor and build the software in exactly the way you need, enabling and disabling features as you need.

Packages are pre-compiled software, and they are the result of building ports, using the options the port maintainer thinks will be most useful to the widest variety of people and bundling them up in a package to make them easily installable. Packages let you quickly install, uninstall, and upgrade add-on software. FreeBSD's packaging system is called package, or pkg. Package information gets stored in an SQLite database that you can query about package data.

Another important thing about FreeBSD package management is the location of package binaries. Packages install binaries under /usr/local, and most configuration files end up in /usr/local/etc rather than /etc. If you come from Linux world you may find this very uncommon.

The FreeBSD package manager, pkg

The next generation replacement for the traditional FreeBSD package management tools is pkg. Offering many features that make dealing with binary packages faster and easier, pkg is the easiest way to install software that isn’t already included in the base system of FreeBSD. It is a single program with many subcommands that you will use for just about every operation on packages such as installing, removing and investigating packages. All package operations and changes must be run as root or via sudo.

Here is how you would install the curl package on FreeBSD:

pkg install curl

You can feed the command with -y to avoid the Proceed with this action? [y/N]: question when installing software or you can configure pkg to always assume -y in a configuration file.

To remove the package, you would use delete:

pkg delete curl

As you can see, it is very simple and intuitive.

Use pkg help for a quick reference on the available subcommands, or pkg help <subcommand> to display the manual page for a particular subcommand:

pkg help
pkg help install
pkg help delete

Installing pkg

The stock version of FreeBSD doesn't ship with the pkg package manager installed. The first time you try to install some package, pkg prompts you to install the package management tool. For example, let's say the first package you want to install on your fresh FreeBSD is wget, and you will see the following prompt in your terminal:

The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y

You will hit Y and ENTER and the package management tool installation will start. After it is in place, the initial software package that you wanted to install (wget) will be installed.

You can also install the packaging system on its own, without adding other packages, by running pkg bootstrap. Additionally, pkg knows how to install and update itself and other packages.

NOTE: Vultr instances have pkg installed by default, so you don't need to install it.

Configuring pkg

The pkg program is designed to be highly flexible, with each subcommand having many options. You can establish customized, but consistent behavior for most programs with the system-wide configuration file for pkg, located in /usr/local/etc/pkg.conf.

The file contains commented-out defaults for pkg. Just by reading that file, you can learn a lot about how pkg behaves. The configuration is written in universal configuration language (UCL) and there is plenty of commented-out configuration options and quite a few aliases. Variables can be set to an integer, a string, or a Boolean value:

#PKG_DBDIR = "/var/db/pkg";
#PKG_CACHEDIR = "/var/cache/pkg";
#PORTSDIR = "/usr/ports";
#INDEXDIR = "";
#INDEXFILE = "INDEX-10";        # Autogenerated
#HANDLE_RC_SCRIPTS = false;
#DEFAULT_ALWAYS_YES = false;
#ASSUME_ALWAYS_YES = false;
. . .

You can define aliases for pkg subcommands in pkg.conf. At the bottom of pkg.conf, you’ll find a section labeled ALIAS. When you find yourself repeatedly running complex commands, you should add aliases.

For more information on the file format and options, you can refer to the pkg.conf(5) man page:

man pkg.conf

Finding packages

Now that you have a package manager installed, you can install packages. If you are a sys-admin, you are familiar with the fact that different operating systems assign different names to packaged versions of the same software. A package for Apache web server on FreeBSD, for example, will have a completely different name than the packaged Apache on different Linux distributions. So, before you can install anything, you’ll need to figure out what the name of the package you want to install is.

The FreeBSD Project offers several sets of packages in a public repository, and they are updated every few days. There are currently over 25,000 packages.

For example, let's try to search for Apache web server:

pkg search apache
# apache24-2.4.38                Version 2.4.x of Apache web server

It will find all packages with apache in their names. This will return a long list, but what you are looking for is the apache24 package. There is a short description of every package. This should help you when deciding what package to install, but it's not always simple.

Some searches can generate hundreds of results. You will need to utilize different command line options to trim or adjust the search results. Consult the pkg-search man page or help page pkg help search to learn more about common search options.

If you’re not sure whether a package is what you really want you can use the following command to look up details of the package:

pkg search -R apache24

# name: "apache24"
# origin: "www/apache24"
# version: "2.4.38"
# comment: "Version 2.4.x of Apache web server"
# maintainer: "[email protected]"
# www: "https://httpd.apache.org/"
# abi: "FreeBSD:12:amd64"
# arch: "freebsd:12:x86:64"
# prefix: "/usr/local"
# . . .
# . . .

This command will give you a lot of useful information about the package.

Installing packages

To install software, use the install subcommand and the name of a package to install:

pkg install apache24

When you install packages with pkg install, pkg consults the local package catalog, then downloads the requested package from the repository at pkg.FreeBSD.org. Once the package is installed, it’s registered in an SQLite database kept in /var/db/pkg/local.sqlite. Take care not to delete this file, otherwise, your system will lose track of which packages have been installed. If the software has dependencies, pkg will figure them out and install them along with the base package. Packages installed as dependencies are called automatic packages.

The package manager has the ability to just download packages over the internet and save them in one location on the disk. This allows you to install them at another time. You can use the pkg fetch command to download the package without installing it:

pkg fetch nginx

This command will fetch just Nginx without its dependencies. You can use the -d flag to grab all the dependencies as well as the named package:

pkg fetch -d nginx

The packages are downloaded to the package cache directory /var/cache/pkg. After you have fetched packages, pkg will add them to this directory. You can list files to see what it contains:

ls /var/cache/pkg

Now, to install a downloaded package after a fetch, run pkg install normally. The installation process uses the cached files rather than the downloaded ones.

Over time, the package cache directory can grow big. The pkg clean command removes any cached packages that have been replaced by newer versions, as well as any package files that are no longer in the repository:

pkg clean

If you want to remove all cached packages, use the -a flag:

pkg clean -a

If you want to clean the package cache automatically after each package install or upgrade, set the pkg.conf option AUTOCLEAN to true.

Obtaining information about installed packages

If you forget which packages you’ve installed on a system you can use pkg info to get a complete list of installed software:

pkg info
# atk-2.28.1                     GNOME accessibility toolkit (ATK)
# avahi-app-0.7_2                Service discovery on a local network
# ca_root_nss-3.42.1             Root certificate bundle from the Mozilla Project
# . . .
# . . .

If you want more information about an installed package, use pkg info and the package name. This shows the package installation details in a human-friendly report:

pkg info nginx
# nginx-1.14.2_3,2
# Name           : nginx
# Version        : 1.14.2_3,2
# . . .
# . . .

You can see a lot of useful information like the version of the software, the time of software installation, software license, compile-time flags and more. Check the pkg-info man page for the complete details.

Removing packages

To uninstall binary packages use the pkg delete subcommand. It’s also available as pkg remove:

pkg delete nginx
# or
pkg remove nginx

You will get a list of packages to be removed and how much space this will free up.

If you remove a package that other packages depend on, pkg removes the depending packages as well.

Locking packages

There may be a time when you want a package on your server to never upgrade. When you lock a package, pkg won’t upgrade, downgrade, uninstall or reinstall it. It applies the same rules to the package’s dependencies and the programs it depends on.

Use pkg lock to lock a package:

pkg lock openssl

This openssl package is now locked.

To list all currently locked packages on the system, use the -l flag:

pkg lock -l

To remove the lock use the pkg unlock command:

pkg unlock openssl

To lock or unlock all packages on the system at once, use the -a flag:

pkg lock -a
pkg unlock -a

Package repositories

Package repositories are supported by pkg, which are named collections of packages. You can add, remove, enable, and disable repositories. You should configure each repository in its own file using UCL format. Official FreeBSD repositories belong in the /etc/pkg directory. FreeBSD ships with the repo "FreeBSD" enabled. You’ll find its configuration file in /etc/pkg/FreeBSD.conf:

FreeBSD: {
  url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly",
  mirror_type: "srv",
  signature_type: "fingerprints",
  fingerprints: "/usr/share/keys/pkg",
  enabled: yes
}

You can add and remove repositories as needed. As /etc/pkg is reserved for official FreeBSD repositories, you’ll need another directory. The traditional location is /usr/local/etc/pkg/repos. If you want to use a different directory, you’ll need to set a location in pkg.conf with the REPO_DIRS option. The local repository directory doesn’t exist by default, so you’ll need to create it with mkdir -p /usr/local/etc/pkg/repos. Put your own repository configurations in that directory.

Example pkg subcommands

This section will list some of the most frequently used subcommands that you will most likely use when administering a FreeBSD server:

# Installs a package without asking any questions
pkg install -y package

# Makes a backup of the local package database
pkg backup

# Lists all installed packages
pkg info

# Shows extended information for a package
pkg info package

# Searches package repository
pkg search -i package

# Shows packages with known security vulnerabilities
pkg audit -F

# Shows which package owns the named file
pkg which file

# Removes unused packages
pkg autoremove

# Uninstalls a package
pkg delete package

# Removes cached packages from /var/cache/pkg 
pkg clean -ay

# Updates local copy of the package catalog
pkg update

# Upgrades installed packages to their latest version
pkg upgrade

# Checks the integrity of all your packages
pkg check -saq

# Verifies that a package's files are unaltered
pkg check -s nginx

# Shows what files came with the package
pkg info -l nginx

# Lists non-automatic packages
pkg prime-list

Important files and directories

  • The pkg configuration file - /usr/local/etc/pkg.conf
  • Directory reserved for official FreeBSD repositories - /etc/pkg
  • FreeBSD repository file - /etc/pkg/FreeBSD.conf
  • Traditional location for custom repositories - /usr/local/etc/pkg/repos
  • Package cache directory - /var/cache/pkg
  • SQLite database - /var/db/pkg/local.sqlite

Summary

FreeBSD provides two complementary technologies for installing third-party software: the FreeBSD Ports Collection, for installing from source and packages, for installing from pre-built binaries. As FreeBSD is shifting the system more decisively toward universal package management, try to manage third-party software with pkg to the extent possible. Avoid using ports unless the software you want has no packaged version or you need to customize compile-time options.


Kuinka asentaa Tiny Tiny RSS Reader FreeBSD 11 FAMP VPS:ään

Kuinka asentaa Tiny Tiny RSS Reader FreeBSD 11 FAMP VPS:ään

Käytätkö erilaista järjestelmää? Tiny Tiny RSS Reader on ilmainen ja avoimen lähdekoodin itseisännöity verkkopohjainen uutissyötteen (RSS/Atom) lukija ja kokoaja, joka on suunniteltu

Kuinka asentaa Wiki.js FreeBSD 11:een

Kuinka asentaa Wiki.js FreeBSD 11:een

Käytätkö erilaista järjestelmää? Wiki.js on ilmainen ja avoimen lähdekoodin moderni wikisovellus, joka on rakennettu Node.js:lle, MongoDB:lle, Gitille ja Markdownille. Wiki.js-lähdekoodi on julkinen

Pagekit 1.0 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Pagekit 1.0 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Käytätkö erilaista järjestelmää? Pagekit 1.0 CMS on kaunis, modulaarinen, laajennettava ja kevyt, ilmainen ja avoimen lähdekoodin sisällönhallintajärjestelmä (CMS), jossa on

Kuinka asentaa MODX Revolution FreeBSD 11 FAMP VPS:ään

Kuinka asentaa MODX Revolution FreeBSD 11 FAMP VPS:ään

Käytätkö erilaista järjestelmää? MODX Revolution on nopea, joustava, skaalautuva, avoimen lähdekoodin, yritystason sisällönhallintajärjestelmä (CMS), joka on kirjoitettu PHP:llä. Se minä

Asenna OpenBSD 5.5 64-bittinen

Asenna OpenBSD 5.5 64-bittinen

Tämä artikkeli opastaa sinua määrittämään OpenBSD 5.5 (64-bittinen) KVM:ssä Vultr VPS:n kanssa. Vaihe 1. Kirjaudu Vultr-ohjauspaneeliin. Vaihe 2. Napsauta KÄYTÄ

Kuinka asentaa osTicket FreeBSD 12:een

Kuinka asentaa osTicket FreeBSD 12:een

Käytätkö erilaista järjestelmää? osTicket on avoimen lähdekoodin asiakastuen lippujärjestelmä. osTicket-lähdekoodia isännöidään julkisesti Githubissa. Tässä opetusohjelmassa

Kuinka asentaa Flarum Forum FreeBSD 12:een

Kuinka asentaa Flarum Forum FreeBSD 12:een

Käytätkö erilaista järjestelmää? Flarum on ilmainen ja avoimen lähdekoodin seuraavan sukupolven foorumiohjelmisto, joka tekee online-keskustelusta hauskaa. Flarum-lähdekoodia isännöi o

Kuinka ottaa TLS 1.3 käyttöön Nginxissä FreeBSD 12:ssa

Kuinka ottaa TLS 1.3 käyttöön Nginxissä FreeBSD 12:ssa

Käytätkö erilaista järjestelmää? TLS 1.3 on versio TLS (Transport Layer Security) -protokollasta, joka julkaistiin vuonna 2018 RFC 8446 -standardin ehdotuksena.

Asenna WordPress OpenBSD 6.2:een

Asenna WordPress OpenBSD 6.2:een

Johdanto WordPress on hallitseva sisällönhallintajärjestelmä Internetissä. Se tarjoaa kaiken tehon blogeista monimutkaisiin verkkosivustoihin, joissa on dynaamista sisältöä

Subrion 4.1 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Subrion 4.1 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Käytätkö erilaista järjestelmää? Subrion 4.1 CMS on tehokas ja joustava avoimen lähdekoodin sisällönhallintajärjestelmä (CMS), joka tuo intuitiivisen ja selkeän sisällön

Kuinka määrittää DJBDNS FreeBSD:ssä

Kuinka määrittää DJBDNS FreeBSD:ssä

Tämä opetusohjelma näyttää, kuinka voit määrittää DNS-palvelun, joka on helppo ylläpitää, helppo määrittää ja joka on yleensä turvallisempi kuin perinteinen BIN.

Nginx-, MySQL- ja PHP (FEMP) -pinon asentaminen FreeBSD 12.0:aan

Nginx-, MySQL- ja PHP (FEMP) -pinon asentaminen FreeBSD 12.0:aan

FEMP-pino, joka on verrattavissa LEMP-pinoon Linuxissa, on kokoelma avoimen lähdekoodin ohjelmistoja, jotka tyypillisesti asennetaan yhdessä mahdollistamaan FreeBS.

MongoDB:n asentaminen FreeBSD 10:een

MongoDB:n asentaminen FreeBSD 10:een

MongoDB on maailmanluokan NoSQL-tietokanta, jota käytetään usein uudemmissa verkkosovelluksissa. Se tarjoaa korkean suorituskyvyn kyselyitä, jakamista ja replikointia

Kuinka asentaa Monica FreeBSD 12:een

Kuinka asentaa Monica FreeBSD 12:een

Käytätkö erilaista järjestelmää? Monica on avoimen lähdekoodin henkilökohtaisten suhteiden hallintajärjestelmä. Ajattele sitä CRM:nä (suosittu työkalu, jota myyntitiimit käyttävät th

OpenBSD verkkokaupparatkaisuna PrestaShopin ja Apachen kanssa

OpenBSD verkkokaupparatkaisuna PrestaShopin ja Apachen kanssa

Johdanto Tämä opetusohjelma esittelee OpenBSD:n verkkokaupparatkaisuna PrestaShopilla ja Apachella. Apache vaaditaan, koska PrestaShopilla on monimutkainen UR

Installing Fork CMS on FreeBSD 12

Installing Fork CMS on FreeBSD 12

Using a Different System? Fork is an open source CMS written in PHP. Forks source code is hosted on GitHub. This guide will show you how to install Fork CM

Directus 6.4 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Directus 6.4 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Käytätkö erilaista järjestelmää? Directus 6.4 CMS on tehokas ja joustava, ilmainen ja avoimen lähdekoodin päätön sisällönhallintajärjestelmä (CMS), joka tarjoaa kehittäjille

FreeBSD:n suojauksen parantaminen IPFW:n ja SSHGuardin avulla

FreeBSD:n suojauksen parantaminen IPFW:n ja SSHGuardin avulla

VPS-palvelimet ovat usein tunkeilijoiden kohteena. Yleinen hyökkäystyyppi näkyy järjestelmälokeissa sadoina luvattomina ssh-kirjautumisyrityksinä. Asettaa

Asenna httpd OpenBSD:ssä

Asenna httpd OpenBSD:ssä

Johdanto OpenBSD 5.6 esitteli uuden daemonin nimeltä httpd, joka tukee CGI:tä (FastCGI:n kautta) ja TLS:ää. Uuden http:n asentaminen ei vaadi lisätyötä

Asenna iRedMail FreeBSD 10:ssä

Asenna iRedMail FreeBSD 10:ssä

Tämä opetusohjelma näyttää, kuinka asennat ryhmätyöohjelman iRedMail uuteen FreeBSD 10:n asennukseen. Sinun tulee käyttää palvelinta, jossa on vähintään yksi gigatavu

Koneiden nousu: tekoälyn todelliset sovellukset

Koneiden nousu: tekoälyn todelliset sovellukset

Tekoäly ei ole tulevaisuudessa, se tässä nykyisyydessä Tässä blogissa Lue kuinka tekoälysovellukset ovat vaikuttaneet eri sektoreihin.

DDOS-hyökkäykset: lyhyt katsaus

DDOS-hyökkäykset: lyhyt katsaus

Oletko myös DDOS-hyökkäysten uhri ja hämmentynyt ehkäisymenetelmistä? Lue tämä artikkeli ratkaistaksesi kysymyksesi.

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Olet ehkä kuullut, että hakkerit ansaitsevat paljon rahaa, mutta oletko koskaan miettinyt, kuinka he ansaitsevat tuollaista rahaa? keskustellaan.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Haluatko nähdä Googlen vallankumouksellisia keksintöjä ja kuinka nämä keksinnöt muuttivat jokaisen ihmisen elämää nykyään? Lue sitten blogia nähdäksesi Googlen keksinnöt.

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Konsepti itseohjautuvista autoista lähteä tielle tekoälyn avulla on ollut haaveena jo jonkin aikaa. Mutta useista lupauksista huolimatta niitä ei näy missään. Lue tämä blogi saadaksesi lisätietoja…

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Kun tiede kehittyy nopeasti ja ottaa haltuunsa suuren osan ponnisteluistamme, myös riskit altistaa itsemme selittämättömälle singulariteetille kasvavat. Lue, mitä singulaarisuus voisi tarkoittaa meille.

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen säilytystavat ovat kehittyneet mahdollisesti Datan syntymästä lähtien. Tämä blogi käsittelee tiedon tallennuksen kehitystä infografian pohjalta.

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Blogista saat tietää Big Data -arkkitehtuurin eri kerroksista ja niiden toiminnoista yksinkertaisimmalla tavalla.

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

Tässä digitaalisessa maailmassa kodin älylaitteista on tullut tärkeä osa elämää. Tässä on muutamia älykkäiden kodin laitteiden hämmästyttäviä etuja, joiden avulla ne tekevät elämästämme elämisen arvoista ja yksinkertaisempaa.

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

Apple julkaisi äskettäin macOS Catalina 10.15.4 -lisäpäivityksen ongelmien korjaamiseksi, mutta näyttää siltä, ​​että päivitys aiheuttaa lisää ongelmia, jotka johtavat mac-koneiden tiilikaamiseen. Lue tämä artikkeli saadaksesi lisätietoja