2016年4月7日 星期四

創造自己的App市集( Using F-Droid )


介紹Introduction


F-Droid根據官方說法是一個在Android平台上的FOSS(Free and Open Source Software 免費與開源軟體)可安裝目錄程式,顧名思義就是非常類似我們所熟知了App市集囉。
那肯定會有人問說,既然有了Google Play為什麼還要另外自己去建立一個市集呢? 那是因為有些地方是沒辦法連得上Google Play,或著不喜歡目前市面上所有App市集的上架規則。 那用F-Droid架自己的市集有什麼好處呢?
  • 私人的程式庫,小小程式樂園
  • 自己的市集,自己說的算
  • 開源軟體,自己的模式自己建立



環境建立Setup



首先一定是要下載好工具囉

  • Linux

  • 有套件管理工具的好處就是一件完成安裝!

     sudo apt-get install fdroidserver
    

    當然還有一些進階的操作,例如如果有希望讓F-Droid自己把Source code編譯起來的話,可以用以下的指令(假設你什麼都沒有...)

    # 安裝一些用來編譯程式程式的套件
    sudo apt-get install openjdk-7-jdk libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386 
    # 從android官網用wget抓android-sdk
    cd ~
    # 筆者目前最新版本是r24.4.1,建議讀者到 ( http://developer.android.com/sdk/index.html#Other ) 去查看最新的SDK
    wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
    # 用tar解壓縮我們剛剛的檔案
    tar zxcf android-sdk_r24.4.1-linux.tgz
    # 接下來我們要把ANDROID_HOME設定起來(假設你解壓縮出來的資料夾名字為 android-sdk-linux )
    export ANDROID_HOME=~/android-sdk-linux
    # 再來就是要把ANDROID_HOME丟進我們的 .bashrc (如果是zsh就會是 .zshrc ) 這樣我們的設定就會被記錄住了
    echo 'export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools' >> .bashrc
    

    還有其他一些有的沒有的選項設定,可以參考這邊

  • OSX

  • Using MacPorts

    port install fdroidserver
    

    Using HomeBrew

    brew install fdroidserver
    

    Using easy_install

    sudo easy_install fdroidserver
    
  • Windows

  • Windows基本上Command-Line base的東西就蠻殘缺的所以會需要借助Cygwin,不囉嗦~建立方式如下

    1. 下載 Cygwin (載點)
    2. 安裝 Cygwin , 並在選擇安裝套件的時候選擇安裝以下套件
      • gcc-core
      • git
      • openssh
      • python
      • python-pyasn1
      • python-imaging
      • python-magic
      • python-paramiko
      • python-requests
      • python-setuptools
      • rsync
      • wget
    3. 開啟一個Cygwin的bash介面,然後輸入
    4. easy_install fdroidserver
      
  • From Source

  •  git clone https://gitlab.com/fdroid/fdroidserver.git
     cd fdroidserver
     virtualenv --system-site-packages env/
     . env/bin/activate
     pip install -e .
     python setup.py install
    

接下來就是建立環境囉 (用Linux做示範)

# 伺服器這邊筆者選用Nginx,當然Apache Web Server也是可以
sudo apt-get install nginx
# 建立F-Droid專用的資料夾
sudo mkdir /usr/share/nginx/www/fdroid
sudo chown -R $USER /usr/share/nginx/www/fdroid
cd /usr/share/nginx/www/fdroid
# 初始化環境
fdroid init

然後在當前的資料夾裡面就會多了一個repo的資料夾,這邊就是我們放程式(.apk)的地方,程式放完就可以輸入下面的指令,來產生MetaData(程式敘述資料)

fdroid update --create-metadata

這樣我們的 Repo Server 已經建立完成囉~ 接下來把位置放進F-Droid的Client就可以連接到了



Config.py 設置


基本上要改的就這幾個

# Repo Server的網址
repo_url = "https://MyFirstFDroidRepo.org/fdroid/repo"
# Repo Server的名字
repo_name = "My First F-Droid Repo Demo"
# Repo Server的Icon
repo_icon = "fdroid-icon.png"
# Repo Server的敘述
repo_description = ""

改完之後要重置伺服器,用下方的指令

fdroid server update -v