国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

OpenWrt--軟件包管理

這篇具有很好參考價(jià)值的文章主要介紹了OpenWrt--軟件包管理。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Openwrt有一套自己管理軟件包的方法,可以用來(lái)管理數(shù)千個(gè)軟件包與數(shù)十個(gè)硬件平臺(tái),我們也可以使用這套管理方法將我們的軟件加入到Openwrt系統(tǒng)中。

文件結(jié)構(gòu)

下面的文件結(jié)構(gòu)是dns軟件包的結(jié)構(gòu),該軟件包存放在 openwrt/package/network/services目錄下,這個(gè)軟件包下存在兩個(gè)文件夾跟一個(gè)Makefile文件。

    dnsmasq/
    ├── Makefile
    ├── files
    └── patches
  • Makefile:這個(gè)文件是必須有的,該文件的提供下載、編譯、安裝以及生成OPKG安裝包的功能。這個(gè)Makefile與通常Makefile不同,Openwrt沒(méi)有遵守傳統(tǒng)的Makefile格式風(fēng)格,而是將Makefile寫成面向?qū)ο蟮母袷?,這樣簡(jiǎn)化了多平臺(tái)移植過(guò)程。
  • files:這個(gè)目錄是可選的,一般用于保存默認(rèn)配置文件與初始化啟動(dòng)腳本
  • patches:這個(gè)目錄是可選的,一般用于存放缺陷修改或者用于優(yōu)化可執(zhí)行程序大小的補(bǔ)丁文件。如果為Openwrt本身項(xiàng)目所包含的軟件模塊,因?yàn)榇a將完全收到自己控制,這時(shí)將不會(huì)有patches而是一個(gè)src目錄,用于存放代碼。

Makefile解析

這個(gè)是dnsmasq軟件包的Makefile,這個(gè)Makefile的語(yǔ)法與傳統(tǒng)的Makefile不一樣。
這個(gè)Makefile大概過(guò)程就是:

  1. 使用“include”指示符導(dǎo)入頂層目錄的rules.mk文件;
  2. 定義軟件包的基本信息的變量,如名稱、版本、下載地址、許可協(xié)議和編譯目錄等信息;
  3. 使用“include”指示符導(dǎo)入頂層目錄的package.mk文件;
  4. 軟件包的宏定義和一些編譯選項(xiàng)定義;
  5. 最后調(diào)用BuildPackage。
    #
    # Copyright (C) 2006-2016 OpenWrt.org
    #
    # This is free software, licensed under the GNU General Public License v2.
    # See /LICENSE for more information.
    #

    include $(TOPDIR)/rules.mk

    PKG_NAME:=dnsmasq
    PKG_UPSTREAM_VERSION:=2.86
    PKG_VERSION:=$(subst test,~~test,$(subst rc,~rc,$(PKG_UPSTREAM_VERSION)))
    PKG_RELEASE:=$(AUTORELEASE)

    PKG_SOURCE:=$(PKG_NAME)-$(PKG_UPSTREAM_VERSION).tar.xz
    PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq
    PKG_HASH:=28d52cfc9e2004ac4f85274f52b32e1647b4dbc9761b82e7de1e41c49907eb08

    PKG_LICENSE:=GPL-2.0
    PKG_LICENSE_FILES:=COPYING
    PKG_CPE_ID:=cpe:/a:thekelleys:dnsmasq

    PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_UPSTREAM_VERSION)

    PKG_INSTALL:=1
    PKG_BUILD_PARALLEL:=1
    PKG_ASLR_PIE_REGULAR:=1
    PKG_CONFIG_DEPENDS:= CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_dhcp \
        CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_dhcpv6 \
        CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_dnssec \
        CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_auth \
        CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_ipset \
        CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_conntrack \
        CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_noid \
        CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_broken_rtc \
        CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_tftp

    include $(INCLUDE_DIR)/package.mk

    define Package/dnsmasq/Default
    SECTION:=net
    CATEGORY:=Base system
    TITLE:=DNS and DHCP server
    URL:=http://www.thekelleys.org.uk/dnsmasq/
    DEPENDS:=+libubus
    USERID:=dnsmasq=453:dnsmasq=453
    endef

    define Package/dnsmasq
    $(call Package/dnsmasq/Default)
    VARIANT:=nodhcpv6
    endef

    define Package/dnsmasq-dhcpv6
    $(call Package/dnsmasq/Default)
    TITLE += (with DHCPv6 support)
    DEPENDS+=@IPV6
    VARIANT:=dhcpv6
    PROVIDES:=dnsmasq
    endef

    define Package/dnsmasq-full
    $(call Package/dnsmasq/Default)
    TITLE += (with DNSSEC, DHCPv6, Auth DNS, IPset, Conntrack, NO_ID enabled by default)
    DEPENDS+=+PACKAGE_dnsmasq_full_dnssec:libnettle \
        +PACKAGE_dnsmasq_full_ipset:kmod-ipt-ipset \
        +PACKAGE_dnsmasq_full_conntrack:libnetfilter-conntrack
    VARIANT:=full
    PROVIDES:=dnsmasq
    endef

    define Package/dnsmasq/description
    It is intended to provide coupled DNS and DHCP service to a LAN.
    endef

    define Package/dnsmasq-dhcpv6/description
    $(call Package/dnsmasq/description)

    This is a variant with DHCPv6 support
    endef

    define Package/dnsmasq-full/description
    $(call Package/dnsmasq/description)

    This is a fully configurable variant with DHCPv4, DHCPv6, DNSSEC, Authoritative DNS
    and IPset, Conntrack support & NO_ID enabled by default.
    endef

    define Package/dnsmasq/conffiles
    /etc/config/dhcp
    /etc/dnsmasq.conf
    /etc/dnsmasq.d/
    endef

    define Package/dnsmasq-full/config
        if PACKAGE_dnsmasq-full
        config PACKAGE_dnsmasq_full_dhcp
            bool "Build with DHCP support."
            default y
        config PACKAGE_dnsmasq_full_dhcpv6
            bool "Build with DHCPv6 support."
            depends on IPV6 && PACKAGE_dnsmasq_full_dhcp
            default y
        config PACKAGE_dnsmasq_full_dnssec
            bool "Build with DNSSEC support."
            default y
        config PACKAGE_dnsmasq_full_auth
            bool "Build with the facility to act as an authoritative DNS server."
            default y
        config PACKAGE_dnsmasq_full_ipset
            bool "Build with IPset support."
            default y
        config PACKAGE_dnsmasq_full_conntrack
            bool "Build with Conntrack support."
            default y
        config PACKAGE_dnsmasq_full_noid
            bool "Build with NO_ID. (hide *.bind pseudo domain)"
            default y
        config PACKAGE_dnsmasq_full_broken_rtc
            bool "Build with HAVE_BROKEN_RTC."
            default n
        config PACKAGE_dnsmasq_full_tftp
            bool "Build with TFTP server support."
            default y
        endif
    endef

    Package/dnsmasq-dhcpv6/conffiles = $(Package/dnsmasq/conffiles)
    Package/dnsmasq-full/conffiles = $(Package/dnsmasq/conffiles)

    TARGET_CFLAGS += -flto
    TARGET_LDFLAGS += -flto=jobserver

    COPTS = -DHAVE_UBUS -DHAVE_POLL_H \
        $(if $(CONFIG_IPV6),,-DNO_IPV6)

    ifeq ($(BUILD_VARIANT),nodhcpv6)
        COPTS += -DNO_DHCP6
    endif

    ifeq ($(BUILD_VARIANT),full)
        COPTS += $(if $(CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_dhcp),,-DNO_DHCP) \
            $(if $(CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_dhcpv6),,-DNO_DHCP6) \
            $(if $(CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_dnssec),-DHAVE_DNSSEC) \
            $(if $(CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_auth),,-DNO_AUTH) \
            $(if $(CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_ipset),,-DNO_IPSET) \
            $(if $(CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_conntrack),-DHAVE_CONNTRACK,) \
            $(if $(CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_noid),-DNO_ID,) \
            $(if $(CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_broken_rtc),-DHAVE_BROKEN_RTC) \
            $(if $(CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_tftp),,-DNO_TFTP)
        COPTS += $(if $(CONFIG_LIBNETTLE_MINI),-DNO_GMP,)
    else
        COPTS += -DNO_AUTH -DNO_IPSET -DNO_ID
    endif

    MAKE_FLAGS := \
        $(TARGET_CONFIGURE_OPTS) \
        CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
        LDFLAGS="$(TARGET_LDFLAGS)" \
        COPTS="$(COPTS)" \
        PREFIX="/usr"

    define Package/dnsmasq/install
        $(INSTALL_DIR) $(1)/usr/sbin
        $(CP) $(PKG_INSTALL_DIR)/usr/sbin/dnsmasq $(1)/usr/sbin/
        $(INSTALL_DIR) $(1)/etc/config
        $(INSTALL_CONF) ./files/dhcp.conf $(1)/etc/config/dhcp
        $(INSTALL_CONF) ./files/dnsmasq.conf $(1)/etc/dnsmasq.conf
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/dnsmasq.init $(1)/etc/init.d/dnsmasq
        $(INSTALL_DIR) $(1)/etc/hotplug.d/dhcp
        $(INSTALL_DIR) $(1)/etc/hotplug.d/neigh
        $(INSTALL_DIR) $(1)/etc/hotplug.d/ntp
        $(INSTALL_DIR) $(1)/etc/hotplug.d/tftp
        $(INSTALL_DATA) ./files/dnsmasqsec.hotplug $(1)/etc/hotplug.d/ntp/25-dnsmasqsec
        $(INSTALL_DIR) $(1)/usr/share/dnsmasq
        $(INSTALL_CONF) ./files/dhcpbogushostname.conf $(1)/usr/share/dnsmasq/
        $(INSTALL_CONF) ./files/rfc6761.conf $(1)/usr/share/dnsmasq/
        $(INSTALL_DIR) $(1)/usr/lib/dnsmasq
        $(INSTALL_BIN) ./files/dhcp-script.sh $(1)/usr/lib/dnsmasq/dhcp-script.sh
        $(INSTALL_DIR) $(1)/usr/share/acl.d
        $(INSTALL_DATA) ./files/dnsmasq_acl.json $(1)/usr/share/acl.d/
        $(INSTALL_DIR) $(1)/etc/uci-defaults
        $(INSTALL_BIN) ./files/50-dnsmasq-migrate-resolv-conf-auto.sh $(1)/etc/uci-defaults
    endef

    Package/dnsmasq-dhcpv6/install = $(Package/dnsmasq/install)

    define Package/dnsmasq-full/install
    $(call Package/dnsmasq/install,$(1))
    ifneq ($(CONFIG_PACKAGE_dnsmasq_full_dnssec),)
        $(INSTALL_DIR) $(1)/usr/share/dnsmasq
        $(INSTALL_CONF) $(PKG_BUILD_DIR)/trust-anchors.conf $(1)/usr/share/dnsmasq
    endif
    endef

    $(eval $(call BuildPackage,dnsmasq))
    $(eval $(call BuildPackage,dnsmasq-dhcpv6))
    $(eval $(call BuildPackage,dnsmasq-full))

導(dǎo)入mk文件

以include開(kāi)頭,用來(lái)包含源碼已經(jīng)定義好的mk文件,以此來(lái)調(diào)用Openwrt已經(jīng)定義好的語(yǔ)法。

Openwrt已經(jīng)定義好了的文件:

  • rules.mk:這個(gè)文件定義了全局的編譯變量,在每一個(gè)軟件包的Makefile文件的第一行均首先包含這個(gè)文件;
  • package.mk:軟件包的基本信息PKG_NAME PKG_SOURCE等完成再引入,用于編譯一般的軟件包;

定義變量

Openwrt預(yù)定義了很多變量,這些變量減少了使用者的開(kāi)發(fā)代價(jià),但需要使用者按照語(yǔ)義進(jìn)行使用。

系統(tǒng)變量

下面的變量是定義好了系統(tǒng)變量,實(shí)際工程在使用時(shí)只需要調(diào)用這些變量即可。主要定義了編譯時(shí)使用的系統(tǒng)信息,如頭文件目錄、安裝軟件包的解壓目錄。

變量名 定義的文件 含義
INCLUDE_DIR rules.mk 源代碼頂層目錄下的include目錄
BUILD_DIR rules.mk 代碼編譯的根目錄,通常為“build_dir/target-*”目錄
TARGET_CFLAGS rules.mk 指定平臺(tái)的C語(yǔ)言編譯選項(xiàng)
TARGET_LDFLAGS rules.mk 指定目標(biāo)平臺(tái)的編譯鏈接選項(xiàng)
INSTALL_DIR rules.mk 創(chuàng)建目錄,并設(shè)置目錄權(quán)限為0755
INSTALL_DATA rules.mk 安裝數(shù)據(jù)文件,即復(fù)制并設(shè)置權(quán)限為0644
INSTALL_CONF rules.mk 安裝配置文件,即復(fù)制并設(shè)置權(quán)限為0600
INSTALL_BIN rules.mk 安裝可執(zhí)行程序,即復(fù)制并設(shè)置權(quán)限為0755
用戶變量

下面的變量是Openwrt預(yù)定義好的部分變量,這些變量減少了使用者的開(kāi)發(fā)代價(jià),但需要使用者按照語(yǔ)義使用。

變量名 含義 示例
PKG_NAME 軟件包名稱,可以通過(guò)menuconfig和ipkg看到 dnsmasq
PKG_VERSION 上游軟件的版本號(hào),為2.73 2.73
PKG_RELEASE Makefile的版本號(hào) 1
PKG_SOURCE 原始的源代碼文件名
PKG_SOURCE_URL 用于下載源碼的地址(目錄) http://thekelleys.org.uk/dnsmasq
PKG_HASH 軟件包的MD5值,用于驗(yàn)證下載的文件是否正確 28d52cfc9e2004ac4f85274f52b32e1647b4dbc9761b82e7de1e41c49907eb08
PKG_LICENSE 這個(gè)軟件的許可證,開(kāi)源軟件的許可證以GPL家族最多 GPL-2.0
PKG_LICENSE_FILES 許可協(xié)議文件,是指代碼目錄下的文件名,一般均為COPYING COPYING
PKG_BUILD_DIR 軟件包的編譯目錄
PKG_INSTALL 設(shè)置為1將調(diào)用軟件包自己的“make install”, 安裝目錄前綴為PKG_INSTALLDIR 1
PKG_BUILD_PARALLEL 是否可以并行編譯 1
PKG_CONFIG_DEPENDS 編譯依賴,指定那些選項(xiàng)依賴本軟件包
PKG_INSTAll_DIR 當(dāng)調(diào)用原始軟件包“make install”時(shí)的安裝目錄
PKG_SOURCE_PROTO 用于下載的傳輸協(xié)議(git、svn),如果為壓縮包則不用指定
PKG_SOURCE_SUBDIR 下載目錄,如果下載傳輸協(xié)議為“svn”或“git”時(shí)必須指定。
PKG_SOURCE_VERSION 下載協(xié)議為“git”時(shí)必須指定。指定的提交哈希點(diǎn)將會(huì)被檢出
PKG_MAINTAINER 維護(hù)者的姓名和郵件地址
PKG_BUILD_DEPENDS 軟件包編譯依賴,即在這個(gè)包編譯之前編譯,但是在運(yùn)行時(shí)不需要,和DEPENDS有相同的語(yǔ)法

軟件包定義

宏定義以Package/開(kāi)頭,Package開(kāi)頭的定義用于make menuconfig選擇及編譯生成軟件包。

Package選項(xiàng)

實(shí)際使用時(shí),**<>**需要替換成軟件包的名稱。

變量名 是否必須 含義
Package/<> 定義軟件包的描述信息,例如網(wǎng)站地址和menuconfig中的菜單分類等
Package/<>/Default 可選 軟件包的默認(rèn)選項(xiàng)
Package/<>/description 軟件包的詳細(xì)描述
Package/<>/install 復(fù)制文件到ipkg目錄中,使用 ( 1 ) 代表 i p k g 的目錄,在源代碼中使用相對(duì)目錄。編譯生成的安裝文件由 (1)代表ipkg的目錄,在源代碼中使用相對(duì)目錄。編譯生成的安裝文件由 (1)代表ipkg的目錄,在源代碼中使用相對(duì)目錄。編譯生成的安裝文件由(PKG_INSTALL_DIR)目錄復(fù)制到ipkg的目錄下
Package/<>/config 可選 根據(jù)軟件包的選擇對(duì)編譯選項(xiàng)進(jìn)行定義
Package/<>/conffiles 可選 定義本軟件包的運(yùn)行配置文件列表,一行一個(gè)文件
Package/<>/preinst 可選 這是在安裝之前實(shí)際執(zhí)行的腳本,需要包含#!/bin/sh。如果需要中止安裝就返回false
Package/<>/postinst 可選 這是在安裝之后實(shí)際執(zhí)行的腳本,需要包含#!/bin/sh。
Package/<>/prerm 可選 這是在刪除之前實(shí)際執(zhí)行的腳本,需要包含#!/bin/sh。如果需要中止安裝就返回false
Package/<>/postrm 可選 這是在刪除之后實(shí)際執(zhí)行的腳本,需要包含#!/bin/sh。如果需要中止安裝就返回false
Package變量

軟件包定義還需要定義一些變量,這些參數(shù)傳遞給buildroot進(jìn)行交叉編譯。這些參數(shù)會(huì)在menuconfig里面和實(shí)體的ipkg安裝包中顯示。在軟件包**Package/**定義下需要給下列變量賦值。

  • SECTION:軟件包類型,如network、sound、Utilities或Multimedia。
  • CATEGORY:在menuconfig中顯示到菜單分類中。
  • TITLE:標(biāo)題,是軟件包的簡(jiǎn)短描述。
  • URL:軟件包的原始網(wǎng)站網(wǎng)址。
  • MAINTAINER:維護(hù)者的姓名和郵件地址。一般為這個(gè)軟件包作者的郵件地址。
  • DEPENDS:依賴項(xiàng),需要在本軟件包之前編譯和安裝的軟件包。

構(gòu)建

宏定義以**Build/**開(kāi)頭,這些用于代碼編譯。通常包含準(zhǔn)備(Prepare)、配置(Configure)、編譯(Compile)和安裝(Install)等4步。這部分在構(gòu)建時(shí)都是可選的。

Build步驟 是否必須 含義
Build/Prepare 一組用于解包及打補(bǔ)丁的命令,也可以不使用
Build/Configure 如果源代碼不需要configure來(lái)生成Makefile或者是通用的configure腳本,就不需要這部分。
Build/Compile 編譯源代碼,大多數(shù)情況下不用定義而使用默認(rèn)值。如果你想傳遞給make特定的參數(shù),可以使用“$(call Build/Compile/Default, FOO=bar)”
Build/Install 安裝編譯后的文件,默認(rèn)是調(diào)用make install。如果你想傳遞給make特定的參數(shù),可以使用“$(call Build/Compile/Install, FOO=bar)”
Build/InstallDev

BuildPackage

BuildPackage是在頭文件 include/package.mk中定義的。BuildPackage僅需要一個(gè)直接參數(shù)–要編譯的軟件包名稱。

示例

創(chuàng)建一個(gè)自己的軟件包文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-770701.html

到了這里,關(guān)于OpenWrt--軟件包管理的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Ubuntu 軟件包管理

    Ubuntu 軟件包管理主要用到了 apt 和 dpkg 兩個(gè)工具。我們用的最多的就是用他們提供的命令來(lái)安裝和卸載軟件,但他們是如何工作的,我們也許并不十分清楚,這幾天,我專門梳理了一下,以下是我整理出來(lái)的一些資料,供大家參考。 1. /var/lib/apt/lists/ 軟件包索引文件, apt u

    2024年02月02日
    瀏覽(24)
  • Linux軟件包管理

    Linux軟件包管理 gcc 編譯程序主要經(jīng)過(guò)四個(gè)過(guò)程: [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-Ui7wlR9e-1691465983118)(png/2019-10-11-11-51-23.png)] 如上圖gcc編譯過(guò)程 [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-U8OkM0eq-16914

    2024年02月13日
    瀏覽(24)
  • Linux命令——軟件包管理

    Linux命令——軟件包管理

    ??博主最近項(xiàng)目上線,操作了linux系統(tǒng),感覺(jué)命令很容易遺忘,因此總結(jié)一下,本文記錄的是linux中相關(guān)的軟件包管理命令 ??如果是新建立的虛擬機(jī),可能需要安裝某些軟件,這時(shí)不知道系統(tǒng)是否已經(jīng)安裝,就需要用到以下這些命令 語(yǔ)法:yum list 作用:查詢系統(tǒng)已經(jīng)安裝

    2024年02月05日
    瀏覽(16)
  • Linux軟件包管理器yum

    ? ? ? ? yum是一個(gè) 軟件包管理器 。yum是一個(gè) 軟件下載安裝管理的客戶端 。 ????????有些人把一些常用的軟件提前編譯好, 做成 軟件包 (可以理解成windows上的安 裝程序)放在一個(gè)服務(wù)器上, 通過(guò)軟件包管理器可以很方便的獲取到這個(gè)編譯好的軟件包, 直接進(jìn)行安裝。 ? ?

    2024年01月21日
    瀏覽(35)
  • Linux :軟件包管理器yum

    Linux :軟件包管理器yum

    ??大多數(shù)現(xiàn)代的類 Unix 操作系統(tǒng)都提供了一種中心化的機(jī)制用來(lái)搜索和安裝軟件。軟件通常都是存放在存儲(chǔ)庫(kù)中,并通過(guò)包的形式進(jìn)行分發(fā)。處理包的工作被稱為包管理。包提供了操作系統(tǒng)的基本組件,以及共享的庫(kù)、應(yīng)用程序、服務(wù)和文檔。軟件包和軟件包管理器, 就好

    2024年02月10日
    瀏覽(27)
  • 【Linux】軟件包管理器 yum

    【Linux】軟件包管理器 yum

    前言 : 對(duì)于之前學(xué)習(xí)的內(nèi)容如果大家理解為讓大家知道【linux】基本知識(shí)并且會(huì)使用它,那么接下來(lái)的學(xué)習(xí)的知識(shí)便是讓各位小伙伴在純【linux】環(huán)境下進(jìn)行程序的開(kāi)發(fā),為了達(dá)到這一目的我們就需要使用工具的輔助。因此,接下來(lái)給大家講述的便是【linux】下的常用工具了

    2024年01月19日
    瀏覽(19)
  • Linux:軟件包管理器 yum

    Linux:軟件包管理器 yum

    目錄 ?提示:以下指令均在Xshell 7 中進(jìn)行 ?什么是軟件包? ?yum的相關(guān)操作: 查詢想要安裝的軟件? 安裝軟件 卸載軟件? 強(qiáng)制卸載: ?擴(kuò)展源: 安裝epel: ?yum下載文件傳輸軟件: ? 提示: 以下指令均在Xshell 7 中進(jìn)行 在Linux下安裝軟件, 一個(gè)通常的辦法是下載到程序的源代碼

    2024年01月21日
    瀏覽(39)
  • Linux軟件包管理工具-apt

    目錄 前言 1、更新軟件包列表 2、升級(jí)已安裝的軟件包 3、安裝軟件包 4、刪除軟件包 5、列出已安裝的軟件包 6、顯示軟件包信息 7、搜索軟件包 8、清理無(wú)用的軟件包 前言 Linux系統(tǒng)中,常用的軟件包管理工具之一是 apt (Advanced Package Tool)。它主要用于安裝、更新和刪除軟件

    2024年02月15日
    瀏覽(43)
  • Linux軟件包管理工具-dpkg

    目錄 前言 一、什么是.deb 二、安裝軟件包 三、卸載軟件包 四、查詢軟件包狀態(tài) 五、查詢已安裝的軟件包列表 六、解決依賴問(wèn)題 前言 dpkg是Debian和Ubuntu等Linux發(fā)行版中用于管理軟件包的基本包管理工具 dpkg的一些常用命令,通過(guò)這些命令,你可以有效地管理你的Linux系統(tǒng)上的

    2024年02月16日
    瀏覽(23)
  • 【Linux精講系列】——yum軟件包管理

    【Linux精講系列】——yum軟件包管理

    ??lovewold少個(gè)r博客主頁(yè) ? ? ?? 本文重點(diǎn) : Linux系統(tǒng)軟件包管理工具yum講解 ?? 每日一言 :踏向彼岸的每一步,都是到達(dá)彼岸本身。 前言 ?Linux系統(tǒng)下的軟件下載方式 yum 查看軟件包 如何安裝軟件 如何卸載軟件 yum下載源 更換yum源(以阿里云為例) 下載新的 CentOS-Base.re

    2024年02月08日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包