2015年2月9日 星期一

Linux Debian - 使用 apt-ftparchive 工具架設套件庫(APT Repository)

本篇略簡為個人架設 Repository 之筆記,僅供參考。

---Create own APT Repository---

爬了許多文,為架設 repository 據我所知有兩大工具,reprepro 與 apt-ftparchive,
稍微研究過 reprepro 但是比起 ftparchive 操作方式複雜了許多,
所以暫時先使用 ftparchive 來架設。

首先在你喜好的目錄下建立一個 Repository directory ,
個人是建立在家目錄底下 如下,
[root@debian] ~
→mkdir /home/repository
[root@debian] ~
→cd /home/repositroy

接下來需要建立 ftparchive 所需的設定檔,generate.conf 與 release.conf。
建立一個 conf 目錄。

[root@debian] /home/repository
→mkdir conf
[root@debian] /home/repository
→cd conf
[root@debian] /home/repository/conf
→touch generate.conf release.conf


generate.conf
Dir {
ArchiveDir ".";
CacheDir ".";
};

Default {
Packages::Compress ". gzip bzip2";
Sources::Compress "gzip bzip2";
Contents::Compress "gzip bzip2";
};

TreeDefault::Directory "pool";
TreeDefault::SrcDirectory "pool";

BinDirectory "pool" {
Packages "dists/unstable/main/binary-amd64/Packages";
Contents "dists/unstable/Contents-amd64";
SrcPackages "dists/unstable/main/source/Sources";
};

BinDirectory "pool" {
Packages "dists/unstable/main/binary-i386/Packages";
Contents "dists/unstable/Contents-i386";
SrcPackages "dists/unstable/main/source/Sources";
};

Tree "dists/unstable" {
Sections "main";
Architectures "i386 amd64 source";
};

Default {
Packages {
Extensions ".deb";
  };
};


release.conf
APT::FTPArchive::Release::Origin "disney";
APT::FTPArchive::Release::Label "unstable";
APT::FTPArchive::Release::Suite "unstable";
APT::FTPArchive::Release::Codename "jessie";
APT::FTPArchive::Release::Architectures "i386 amd64 source";
APT::FTPArchive::Release::Components "main";
APT::FTPArchive::Release::Description "hr hr hr hr hr~~";


這兩個設定檔加入之後,這裡提供一個已寫好的 shell script,
在 repository 目錄下建立目錄 bin,進入 bin 目錄並建立檔案 update.sh 。
[root@debian] /home/repository/conf
→mkdir /home/repositroy/bin
[root@debian] /home/repository/conf
→cd /home/repository/bin


update.sh
#!/bin/bash

BASEDIR=$(dirname $0)/../web

pushd $BASEDIR > /dev/null

rm -fr dists
mkdir -p pool
mkdir -p dists/unstable/main/binary-amd64
mkdir -p dists/unstable/main/binary-i386
mkdir -p dists/unstable/main/source

apt-ftparchive generate ../conf/generate.conf
apt-ftparchive -c ../conf/release.conf release dists/unstable/ > dists/unstable/Release

gpg -abs --homedir ~/.gnupg --default-key E57952A1 -o dists/unstable/Release.gpg dists/unstable/Release

popd > /dev/null


在 repositroy 目錄底下建立 web 目錄,以上 script 需要用到的。
[root@debian] ~
→mkdir /home/repositroy/web


接下來執行 update.sh ,將會自動建立套件庫所需目錄及檔案。
[root@debian] ~
→cd /home/repository/bin
[root@debian] ~
→bash update.sh


將出現類似以下訊息。
pool: New 1,736 B 1 files 6,554 kB 0s
pool: New 1,736 B 1 files 6,554 kB 0s
pool: 0 files 0 B 0s
pool: New 34 B 0 pkgs in 0s
Packages done, Starting contents.
dists/unstable/Contents-i386: New 34 B 0 files 0 B 0s
dists/unstable/main/Contents-amd64: New 1,369 B 1 files 6,554 kB 0s
dists/unstable/main/Contents-i386: New 34 B 0 files 0 B 0s
Done. 13.1 MB in 2 archives. Took 0s

你需要用密語來解開下列使用者的
私鑰: "Disney <abc57911@gmail.com>"
2048 位元長的 RSA 金鑰, ID E57952A1, 建立於 2015-02-04

請輸入密語:


上面訊息之中,所要求的金鑰,必須自行先建立,
在這裡我提供網址給各位做參考,GnuPG Gentoo 使用者指南
而 update.sh 之中 gpg 指令的參數 --default-key 必須修改為自己所產生的 key,
以指令 gpg --list-key 查看。

套件庫建立完成之後,就差 nginx 的設定。
server {
    server_name ftp.disney.com;

    location /web/ {
        autoindex on;
        alias /home/repository/web/;
    }
}



在 source.list 增加套件庫網址即可使用,在 /etc/apt/ 目錄底下。
deb http://ftp.disney.com/web/ unstable main

2014年12月19日 星期五

Linux Debian - Java-JDK 8 安裝及設定

先大概介紹一下 SDK、JDK、JRE、JVM。


SDK(Software Develop Kit,軟件開發工具包)用於幫助開發人員的提高工作效率。各種不同類型的軟件開發,都可以有自己的 SDK。Windows 有 Windows SDK,DirectX 有 DirectX 9 SDK,.NET開發也有 Microsoft .NET Framework SDK。JAVA 開發也不含糊,也有自己的 Java SDK。

Java SDK(JDK)最早叫 Java Software Develop Kit,後來改名為 JDK,即 Java Develop Kit。JDK 作為 Java 開發工具包,主要用於構建在 Java 平台上運行的應用程序、Applet 和組件等。

JRE(Java Runtime Environment,Java 運行環境)也就是 Java 平台。所有的 Java 程序都要在 JRE 下才能運行。JDK 的工具也是 Java 程序,也需要 JRE 才能運行。為了保持 JDK 的獨立性和完整性,在 JDK 的安裝過程中,JRE 也是安裝的一部分。所以,在 JDK 的安裝目錄下有一個名為 jre 的目錄,用於存放 JRE 文件。

JVM(Java Virtual Machine,Java 虛擬機)是 JRE 的一部分。它是一個虛構出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現的。JVM 有自己完善的硬件架構,如處理器、堆棧、寄存器等,還具有相應的指令系統。Java 語言最重要的特點就是跨平台運行。使用 JVM 就是為了支援與操作系統無關,實現跨平台。

Java介紹之出處:安逸哇?(簡)



2014年12月8日 星期一

Linux Debian - Build Package (deb),製作 (deb) 套件簡易說明

安裝要製作 Package 所需套件
  • apt-get install dh-make debhelper fakeroot 

建立並進入資料夾
  • mkdir <project name> 
  • cd <project name> 

使用 dh_make 建立套件包所需檔案之範本,
Debian Package 所需四個檔案為 (changelog, control, dirs, rules)