Linux软件源apt,仓库,包的概念
原文鏈接: https://www.cnblogs.com/grooovvve/p/8661054.html/
概念介紹:
軟件源是debian系的概念,把軟件放在一個pool里面,用一條命令就可以自動從指定服務器下載并安裝。
源列表是/etc/apt/sources.list,里面寫了你所用的服務器地址
(其中 /etc 代表附加物的意思,英文全稱etcetra。換句話說,是一個底層的重要項目,通常添加一些次等重要的零碎事物。今天, “etc”包含了廣泛的系統配置文件,這些配置文件幾乎包含了系統配置的方方面面,同樣非常重要。)
(Advanced Packaging Tool(apt)是Linux下的一款安裝包管理工具,是一個客戶/服務器系統。)
作為操作的一部分,APT使用一個文件列出可獲得軟件包的鏡像站點地址,這個文件就是/etc/apt/sources.list
最初只有.tar.gz的打包文件,用戶必須編譯每個他想在GNU/Linux上運行的軟件。用戶們普遍認為系統很有必要提供一種方法來管理這些安裝在機器上的軟件包,當Debian誕生時,這樣一個管理工具也就應運而生,它被命名為dpkg。從而著名的“package”概念第一次出現在GNU/Linux系統中,稍后Red Hat才決定開發自己的“rpm”包管理系統。
很快一個新的問題難倒了GNU/Linux制作者,他們需要一個快速、實用、高效的方法來安裝軟件包,當軟件包更新時,這個工具應該能自動管理關聯文件和維護已有配置文件。Debian再次率先解決了這個問題,APT(Advanced Packaging Tool)作為dpkg的前端誕生了。APT后來還被Conectiva改造用來管理rpm,并被其它Linux發行版本采用為它們的軟件包管理工具。
APT工作原理:
APT是一個客戶/服務器系統。在服務器上先復制所有DEB包(DEB是Debian軟件包格式的文件擴展名),然后用APT的分析工具(genbasedir)根據每個DEB 包的包頭(Header)信息對所有的DEB包進行分析,并將該分析結果記錄在一個文件中,這個文件稱為DEB 索引清單,APT服務器的DEB索引清單置于base文件夾內。一旦APT 服務器內的DEB有所變動,一定要使用genbasedir產生新的DEB索引清單。客戶端在進行安裝或升級時先要查詢DEB索引清單,從而可以獲知所有具有依賴關系的軟件包,并一同下載到客戶端以便安裝。
當客戶端需要安裝、升級或刪除某個軟件包時,客戶端計算機取得DEB索引清單壓縮文件后,會將其解壓置放于/var/state/apt/lists/,而客戶端使用apt-get install或apt-get upgrade命令的時候,就會將這個文件夾內的數據和客戶端計算機內的DEB數據庫比對,知道哪些DEB已安裝、未安裝或是可以升級的。
大概的意思是 APT是個客戶端,這個客戶端先從服務器上獲取所有包的信息,并記錄在一個清單里。當用戶使用apt-get之類的指令時,無論是升級 安裝 還是刪除。APT都會先去找清單(清單里有服務器包的信息),然后對照本地的庫。知道哪些包安裝了,哪些沒安裝,哪些是可以升級的。
常用命令:
sudo apt-get install# ——(package 安裝包)apt-cache depends #——-(package 了解使用依賴)apt-get update #——(升級來自 Debian 鏡像的包裹列表,如果你想安裝當天的任何軟件,至少每天運行一次,而且每次修改了/etc/apt/sources.list 后,必須執行。)看倉庫本身有沒有要更新的。apt-get upgrade [-u]# ——(升級所有已經安裝的包裹為最新可用版本。不會安裝新的或移除老的包裹。形前端(其中一些在使用前得先安裝)。這里 dselect 無疑是最強大的,也是最古老,最難駕馭。)看倉庫里有沒有要更新的包。不隨便更新,自身環境穩定最重要。
apt-get的安裝包放在哪里:
ubuntu中由apt-get獲得的文件包保存在:
/var/cache/apt/archives
通過apt-get命令下載的軟件包,放在這個目錄下:
/var/cache/apt/archives
下載文件位置可以在/etc/apt/source.list`文件中指定。
軟件倉庫:
PPA簡介:
PPA(Personal Package Archives),是由應用程序的用戶和開發者在Launchpad上編譯發布的軟件包。相對于默認軟件倉庫,PPA發布的應用程序比較豐富,版本也比較新。
因為 Linux 和 Windows 不一樣,同一發行版(比如 Ubuntu) 的不同版本(比如 14.04, 14.10 )用的軟件倉庫是不一樣的,所以有倉庫 (repository ) 這樣的概念,自然就有了要更新倉庫信息的邏輯。
一般來說你不更新倉庫信息, upgrade 就在本地的舊倉庫轉悠一圈發現并沒有要更新的,但實際上本地倉庫已經過時了。
這也是為什么用 apt 查找某個包的命令是 apt-cache search xxx 的原因,用的是本地 cache 了倉庫信息。
sources.list 存放有你要訪問的軟件源的地址。
這個文件時只讀的 要修改一下權限。
軟件倉庫管理:
進入軟件和更新
進入 "其他軟件"選項卡
勾選自己需要的源
保存退出
相關鏈接:
http://www.360doc.com/content/10/1206/00/4954359_75382037.shtml
轉載于:https://www.cnblogs.com/grooovvve/p/8661054.html
總結
以上是生活随笔為你收集整理的Linux软件源apt,仓库,包的概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ROS消息格式-vision_msgs/
- 下一篇: Linux常见命令汇总(不定期更新)