1. 程式人生 > >Debian本地源的搭建方法

Debian本地源的搭建方法

一些自己開發或者修改的debian程式,如果想使用apt-get工具進行安裝的話,需要自己搭建debian軟體源,本文簡要介紹一下搭建方法。

  • 目錄結構:
[email protected]:~/debian-dev$ tree -d -L 4
.
├── dists
│   ├── jessie
│   │   ├── contrib
│   │   │   ├── binary-all
│   │   │   ├── binary-amd64
│   │   │   ├── binary-armel
│   │   │   ├── binary-armhf
│   │   │   └── source
│   │   ├── main
│   │   │   ├── binary-all
│ │ │ ├── binary-amd64 │ │ │ ├── binary-armel │ │ │ ├── binary-armhf │ │ │ └── source │ │ └── non-free │ │ ├── binary-all │ │ ├── binary-amd64 │ │ ├── binary-armel │ │ ├── binary-armhf │ │ └── source │ ├── jessie-dev -> jessie/
│ └── stable -> jessie └── pool ├── contrib ├── main │ ├── a │ │ └── audit │ └── libs │ ├── libselinux │ └── libsepol └── non-free 31 directories

dists目錄用於儲存repo資訊,pool目錄用於儲存軟體程式碼和編譯好的deb包。

  • 修改Release配置檔案,便於使用工具管理:
[email protected]
:~/debian-dev$ cat apt-release.cnf APT::FTPArchive::Release::Codename "jessie-dev"; APT::FTPArchive::Release::Origin "ZWB"; APT::FTPArchive::Release::Components "main contrib non-free"; APT::FTPArchive::Release::Label "Debian ZWB"; APT::FTPArchive::Release::Architectures "amd64 armel armhf"; APT::FTPArchive::Release::Suite "stable";
  • 生成gpg金鑰,用於對Release檔案和deb包簽名:
[email protected]:~/debian-dev$ gpg --gen-key
gpg (GnuPG) 1.4.18; Copyright (C) 2014 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

請選擇您要使用的金鑰種類:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (僅用於簽名)
   (4) RSA (僅用於簽名)
您的選擇? 4
RSA 金鑰長度應在 1024 位與 4096 位之間。
您想要用多大的金鑰尺寸?(2048)2048
您所要求的金鑰尺寸是 2048 位
請設定這把金鑰的有效期限。
         0 = 金鑰永不過期
      <n>  = 金鑰在 n 天后過期
      <n>w = 金鑰在 n 周後過期
      <n>m = 金鑰在 n 月後過期
      <n>y = 金鑰在 n 年後過期
金鑰的有效期限是?(0) 10y
金鑰於 20260322日 星期日 151327秒 CST 過期
以上正確嗎?(y/n)y

您需要一個使用者標識來辨識您的金鑰;本軟體會用真實姓名、註釋和電子郵件地址組合
成使用者標識,如下所示:
    “Heinrich Heine (Der Dichter) <[email protected]>”

真實姓名:your name
電子郵件地址:[email protected]
註釋:comm
您選定了這個使用者標識:
    “your name (comm) <[email protected]>”

更改姓名(N)、註釋(C)、電子郵件地址(E)或確定(O)/退出(Q)?o
您需要一個密碼來保護您的私鑰。

我們需要生成大量的隨機位元組。這個時候您可以多做些瑣事(像是敲打鍵盤、移動
滑鼠、讀寫硬碟之類的),這會讓隨機數字發生器有更好的機會獲得足夠的熵數。

隨機位元組不夠多。請再做一些其他的瑣事,以使作業系統能蒐集到更多的熵!
(還需要190位元組)
......+++++
..+++++
gpg: 金鑰 A9A6BBB3 被標記為絕對信任
公鑰和私鑰已經生成並經簽名。

gpg: 正在檢查信任度資料庫
gpg: 需要 3 份勉強信任和 1 份完全信任,PGP 信任模型
gpg: 深度:0 有效性:  2 已簽名:  0 信任度:0-,0q,0n,0m,0f,2u
gpg: 下次信任度資料庫檢查將於 2026-03-22 進行
pub   2048R/A9A6BBB3 2016-03-24 [有效至:2026-03-22]
金鑰指紋 = 5BBC 569F A8D9 F81F 6F11  BC0C E3CF 8397 A9A6 BBB3
uid                  your name (comm) <[email protected]>

請注意這把金鑰還不能用來加密,您必須先用“--edit-key”指令
生成用於加密的子鑰。
#可以使用 gpg --list-keys 進行金鑰對的查詢
#可以使用 gpg --export A9A6BBB3 > Release.gpg 匯出公鑰,用於使用者新增信任金鑰
  • 編寫軟體源自動化管理指令碼:
[email protected]:~/debian-dev$ cat auto.sh 
#!/bin/sh

ARCH="amd64 armhf armel"
COMP="contrib main non-free"

for arch in $ARCH
do
        for cc in $COMP 
        do
                dpkg-scanpackages -a $arch pool/$cc > dists/jessie/$cc/binary-$arch/Packages
                gzip -9c dists/jessie/$cc/binary-$arch/Packages > dists/jessie/$cc/binary-$arch/Packages.gz
        done
done

for cc in $COMP
do
        dpkg-scansources pool/$cc > dists/jessie/$cc/source/Sources
        gzip -9c dists/jessie/$cc/source/Sources > dists/jessie/$cc/source/Sources.gz
done

rm -f dists/jessie/Release
rm -f dists/jessie/InRelease
rm -f dists/jessie/Release.gpg
apt-ftparchive -c /home/buildd/debian-dev/apt-release.cnf  release dists/jessie > .Release
mv .Release dists/jessie/Release
gpg --clearsign -o dists/jessie/InRelease dists/jessie/Release
gpg -o dists/jessie/Release.gpg -abs dists/jessie/Release

#以上指令碼用於生成Packages檔案和Sources檔案,並生成.gz壓縮包;
#apt-ftparchive release時用到了上一步的apt-release.cnf配置檔案,用於Release檔案頭部分資訊的生成;
  • 軟體源的使用:
    本地軟體源可以使用file::///形式進行配置,也可使用Apache伺服器進行網路釋出,具體參照/etc/apt/source.list檔案進行配置。需要注意的是:使用之初需要新增自己的公鑰為信任金鑰,可使用apt-key add進行匯入。
buildd@debian:~/debian-dev$ cat /etc/apt/sources.list

deb http://192.168.1.2/debian-dev jessie-dev contrib main
deb-src http://192.168.1.2/debian-dev jessie-dev contrib main

deb http://ftp.debian.org/debian jessie contrib main
deb-src http://ftp.debian.org/debian jessie contrib main
  • 其他問題

原件源的優先順序問題
如果source.list檔案中配置的兩個軟體源有重複軟體,需要使用Pin-Priority進行定義優先順序。例如:

buildd@debian:~/debian-dev$ cat /etc/apt/preferences
Package: *
Pin: release n=jessie-dev
Pin-Priority: 600

Package: *
Pin: release n=jessie
Pin-Priority: 500

#本例中軟體源的發行版name設定為jessie-dev,優先順序為600,官方源優先順序定義為500,所有在使用apt-get的時候如果有重複的軟體會根據優先順序進行判別從哪個源進行下載安裝;

#可使用apt-cache policy package_name進行檢視軟體現在地址細節

deb包簽名:

dpkg-sig --sign builder file1.deb

相關推薦

基於CentOS的pip本地搭建方法

    Devstack自動化部署OpenStack需要依賴三個源,如果依賴外部的源伺服器,那麼將嚴重依賴網路的狀況和GFW,運氣好的話搭建過程非常順利,運氣不好會碰到各種問題,這三個源是:(1)ubuntu源(2)Openstack github源(3)PYPI源(pip源

Debian本地搭建方法

一些自己開發或者修改的debian程式,如果想使用apt-get工具進行安裝的話,需要自己搭建debian軟體源,本文簡要介紹一下搭建方法。 目錄結構: [email protec

Debian利用iso搭建本地軟件

debianDebian利用iso搭建本地軟件源: mount -o loop debian-9.4.0-amd64-DVD-1.iso /space/deb/ vi /etc/apt/source.list (將原有內容註釋,前加#) :wq apt-cdrom -m -d /space/deb/ add

elasticsearch 本地環境搭建

步驟 netflix 信息 本地 變量 sea not 生效 使用 本篇文章網上有跡可尋,但是每個人在搭建的時候會遇到各種問題,與本地環境有關,下面寫下我自己的搭建過程以及遇到的問題: 1、資源準備 ElasicSearch版本:6.0.0: https://gith

linux 中 yum 本地搭建 ----以及web、ftp服務器的搭建

yum源的搭建# 今天簡單的給大家介紹以下yum源的搭建 #在介紹yum源搭建時,大家可以仔細想想我們在windows中是如何安裝軟件的,或者再想想我們整天愛不離手的手機,是如何安裝軟件的 #我們一般在windows中安裝軟件,是從網上下載到本地,一般下載下來的文件名都為.exe

搭建yum本地_阿裏雲CentOS服務器初始化設置

net tro out 網絡 etc pin 參考 plain wordpress CentOS服務器初始化設置其實不分阿裏雲或其它服務器了,操作配置過程與步驟也差不多一、掛載硬盤 1、磁盤分區 fdisk -l #查看設備,一般可以看到設備名為/dev/xvdb fdis

Linux中本地倉庫yum搭建的簡要步驟

all 文件備份 clean base inf 配置 源搭建 mnt list 1.掛載鏡像 [root@linfan ~]# mount /dev/cdrom /mnt 2.新建存放鏡像文件的目錄 [root@linfan ~]# cd /opt/ [root@linfa

搭建python本地

批量 onf wget ges dir glob 同步 index yum 1.安裝pip工具[root@tongc-yum162 ~]# wget https://files.pythonhosted.org/packages/d3/3e/1d74cdcb393b68ab

用簡單的方法配置YUM本地

自動生成 下載軟件 創建目錄 bae 就是 tex sha 分享 比較 掛載光盤 創建目錄並掛載光盤,前提是你一定要掛載光盤 用命令生成一個文件紅圈裏填的是你創建的目錄,用這條命令之後會自動生成一個配置文件,比較簡單而且快 然後編輯文件,加上紅框裏的那句話 這樣還不夠,如果

Linux下 本地yum搭建

help 2.3 名稱 1.3 基本 工具 cdrom 軟件包管理 yum源 第1章 關於yum源 1.1 什麽是yum源 yum(Yellow dog Updater, Modified)是一個在 Fedora 和 RedHat 以及 CentOS 中的 Shell

Ubuntu下安裝程式的三種方法 ubuntu製作本地

在ubuntu當中,安裝應用程式我所知道的有三種方法,分別是apt-get,dpkg安裝deb和make install安裝原始碼包三種。下面針對每一種方法各舉例來說明。 apt-get方法 使用apt-get install來安裝應用程式算是最常見的一種安裝方法了,比如我要安裝build-essenti

Centos7配置本地yum方法

首先我們進入一個yum源的配置檔案目錄,命令如下 cd /etc/yum.repos.d/&&ls 進去之後,我們可以看到裡面存在很多Cen開頭,repo結尾的配置檔案 這些就是預設的配置檔案,預設的配置檔案需要訪問外網,所以我們是用不了的,因為我們都是使用自己的區

【乾貨】快速搭建CDH的yum本地的詳細過程

在做專案的過程中,專案環境上不了網,但利用CM安裝CDH的過程中,發現cloudera-cdh5的yum源會自動的訪問網路,因此報錯,導致安裝不成功。因此需要安裝一個本地的yum源。下文是經轉載而來,但一些細節會結合我的專案環境而改變。 為了方便在區域網中安裝CDH叢集,搭

本地搭建(Apt、Pypi、Rubygem)

很多情況下,尤其是在公司工作,內部網路與外部網路是不相通的,因此經常需要在本地構建源。 (注:本文內容是在UbuntuServer14.04環境下應用的,部分命令請做相應調整,比如apt-get) APT本地源的搭建 本節介紹使用apt-mirror搭建apt本

Windows下TensorFlow環境搭建(無GPU)以及windows及linux環境下永久修改pip映象方法

Windows下TensorFlow環境搭建(無GPU):https://blog.csdn.net/yingyueer247/article/details/76460987 windows及linux環境下永久修改pip映象源的方法:http://www.jb51.net/article/98

linux系統使用之本地yum搭建

我們在部署一些叢集時用國外yum源,經常會很慢導致等待時間太久,所以常使用到本地yum源安裝。 這裡以centos7平臺的openstack源為例:   1.首先下載官方repo [[email protected] yum.repos.d]# yum

Debian將ISO映象作為本地使用

    坑爹啊,裝了個Debian5.0,發現連gcc套裝都沒安裝,苦的是平時只用無線網,折騰了好一會還是連不上了,絕望,淚奔啊。都怪我昨天把我使用已久的Ubuntu 11.04的python2.7給解除安裝了,直接導致登陸不上系統了。唉,下次系統原裝的還是不要解除安裝的好

yum 本地、網路搭建

這裡使用red hat 6.4 x86 minimal 一、  本地源 mkdir /localsource                           //建立yum本地源倉庫 mount /dev/cdrom /mnt cp -r /mnt/Packages/*

REDHAT YUM本地搭建和使用

yum源一般分為兩種,本地yum源和本地網路yum源,前者是通過檔案提供安裝包,後者是通過網路下載安裝包; 由於Redhat7.3的yum源需要註冊付費,所以往往會出現下載yum源安裝包失敗,如下圖: (1)上傳安裝包 把Redhat的安裝包傳到root下某個路徑;

yum的本地和網路搭建

一、本地yum源的搭建 1.先拷貝一份與本地版本相匹配的映象檔案到本地的電腦上 2.為了方便管理我們新建一個/iso目錄,將檔案移動到該目錄下; 映象的檔案不能被直接讀取,我們需要將它掛載到別的目錄中去, df 檢視是否在系統中執行 3.修改檔案的配置檔