ติดตั้ง Popcorn Time จากไฟล์ต้นฉบับ


28

ฉันจะติดตั้งPopcorn Time เบต้าได้อย่างไร

ฉันเห็นบนเว็บไซต์ว่ามีเพียงไฟล์การติดตั้ง 64 บิต แต่แหล่งที่มาเปิดอยู่

./configure && makeฉันไม่สามารถใช้ตามปกติ ดังนั้นฉันจะทำอย่างไร


ฉันใช้งาน 64 บิต xubuntu 14.04 ฉันดาวน์โหลดแพคเกจเบต้า 3.0 จากเว็บไซต์ของพวกเขาเปิดเครื่องมันแล้ว./Popcorn-Timeมันทำงานได้ประมาณ 20 นาทีมันบอกว่าinitializing popcorn please wait.... มันจะใช้งานได้ในที่สุดหรือฉันควรทำตามคำแนะนำของคุณเพื่อให้มันทำงานแทน ของการรอคอย?
Lynob

มันจะไม่ทำงานการเริ่มต้นใช้เวลาประมาณ 0,3 วินาทีสำหรับฉัน ปัญหาต้องอยู่ที่อื่นฉันไม่เห็นว่ามันจะเปลี่ยนจากการเปิดตัวอย่างเป็นทางการแทนหรือไม่ว่ามันจะขึ้นอยู่กับรหัสการพัฒนา (อัลฟา) รายงานปัญหา: github.com/popcorn-official/popcorn-app/issues
MrVaykadji

ฉันลองทำตามคำตอบที่สองของคุณพยายามแก้ไขไฟล์หลามหวังว่าจะแก้ไขข้อผิดพลาดใช้งานไม่ได้ฉันทำตามคำตอบแรกของคุณแล้วมันก็ใช้ได้ดีขอบคุณ โปรดทราบว่ามันจะดีถ้าคุณสามารถแก้ไขสคริปต์ของคุณเพื่อตรวจสอบว่ามีการติดตั้งอ้างอิงฉันติดตั้งพวกเขาก่อนที่จะเรียกใช้สคริปต์ของคุณยังสคริปต์ของคุณใช้เวลา 5 นาทีพยายามติดตั้งพวกเขามันสามารถข้ามส่วนนั้นได้อย่างง่ายดาย และโปรดลบinstall allตัวเลือกออกเนื่องจากไม่สามารถเรียกใช้ mac และ win และ linux ได้ในเวลาเดียวกันตัวเลือกนี้ใช้เวลาเพียงไม่นานไม่มีใครสามารถใช้งานได้
Lynob

เอ่อทำไมไม่มีใครมี macbook air และพีซีที่มี ubuntu-windows นั่นคือจุดทั้งหมดของ 'ตัวเลือก' ความสามารถในการเลือก คุณไม่ควรพิมพ์ "ทั้งหมด" หากคุณไม่ต้องการให้สร้าง "ทั้งหมด" สำหรับการอ้างอิงหากคุณกำลังพูดถึง nodejs และมีอยู่แล้วคุณจะผ่าน 'apt-get update' เท่านั้นไม่ใช่เรื่องใหญ่ หากคุณกำลังพูดถึงการพึ่งพา npm พวกเขาจะต้องติดตั้งภายในโฟลเดอร์เมื่อเราจะใช้ไม่ใช่ที่อื่นในคอมพิวเตอร์ดังนั้นจึงจำเป็น
MrVaykadji

แต่พวกเขามีแพ็คเกจบนเว็บไซต์สำหรับ windows และ mac อยู่แล้ว พวกเขาไม่ทำงานเหรอ พวกเขาจะต้องสร้างเช่นเดียวกับแพคเกจ linux?
Lynob

คำตอบ:


21

สคริปต์นี้จะช่วยให้คุณสร้างPopcorn เวลา dev-0.3บน Ubuntu Linux จากแหล่ง Github

มันทำงานได้อย่างไม่มีที่ติบน Ubuntu 12.04 และ 14.04 64 บิต แต่ควรทำงานกับทุกเวอร์ชันที่บำรุงรักษาและทุกสถาปัตยกรรม

ในการสร้างและติดตั้ง Popcorn เวลาจากแหล่งที่คุณจะต้องและnodejs ใช้และสร้างไฟล์: นั่นเป็นสาเหตุที่คุณไม่สามารถใช้งานได้ตามปกติnpmnpmbowergrunt-cli./configure

หมายเหตุ: ในปัจจุบันมีข้อผิดพลาด 1 ไฟล์ที่มีการติดตั้ง: nodejsไบนารีถูกผิดคุณสามารถแก้ไขได้โดย symlink อย่างง่ายจาก 'nodejs' ถึง 'node'

หมายเหตุ: วันที่ 12.04 ไม่มี libudev.so.1 ดังนั้นเราจะต้องเชื่อมโยงจาก libudev.so.0

ทำอย่างไร

  1. คัดลอกวางบรรทัดต่อไปนี้ลงในไฟล์ข้อความฉันจะตั้งชื่อให้สคริปต์เป็นตัวอย่าง

  2. จากนั้นใช้เทอร์มินัลของคุณและเปิดสคริปต์:

    bash script
    
  3. ทำตามคำแนะนำบนหน้าจอ:

    • ยอมรับข้อจำกัดความรับผิดชอบ
    • เลือก plateform ที่คุณต้องการสร้าง (mac, win, linux32-64)
    • ติดตั้ง Popcorn-Time ด้วยทางลัดและตัวเลือกบรรทัดคำสั่งหากคุณต้องการ
    • ลบไฟล์บิลด์ออกหากคุณไม่ต้องการไฟล์เหล่านั้นอีกต่อไป
    • ลบแพ็กเกจที่สคริปต์นี้ใช้เพื่อสร้าง PT หากคุณไม่ต้องการแพ็กเกจในอนาคต
    • voila

การดำเนินการนี้จะใช้เวลาประมาณ 10-30 นาที


#!/bin/bash
#Written by MrVaykadji - http://github.com/MrVaykadji
#Thanks to Andrew for func_apt, nodejs PPA and libudev fix - http://webupd8.org
#licensed under GPLv3
#for Ubuntu 12.04 and newer

installdir="/opt"
version="master"
OfficialURL="http://popcorntime.io"
githubURL="https://github.com/popcorn-official/popcorn-app"
issueURL="https://github.com/popcorn-official/popcorn-app/issues"
icon="https://github.com/popcorn-official/popcorn-app/raw/master/src/app/images/icon.png"
log="$HOME/popcorn-build.log"
buildscriptURL="https://raw.githubusercontent.com/MrVaykadji/misc/master/Popcorn-Time/0.3.0/"
buildscript="build-popcorn"
[ $(arch) == "x86_64" ] && arch=64 || arch=32
buildtime="`date +%Y.%m.%d-%Hh%M`"

#FUNCTIONS
func_apt() {
for lock in synaptic update-manager software-center apt-get "dpkg " aptitude
do
 if ps -U root -u root u | grep "$lock" | grep -v grep > /dev/null; then 
  echo "
Unexpected Error:
=================
Please close $lock then try again.";
  exit 1
 fi
done 
}

func_root() {
[ "$EUID" == "0" ] && 
echo "Error. You need to run this without 'root' or 'sudo' privileges." && 
exit 2
}

func_error() {
[ -n $error ] && return 0
echo "
Unexpected Error:
================="
cat $log
echo "
Please try again."
exit 1 
}

func_clean() {
case $1 in 
    -save)
        sudo mkdir -p /tmp/popcorn-config
        sudo cp -r $HOME/.config/Popcorn-Time/data /tmp/popcorn-config/ &> /dev/null
        sudo rm -rf $HOME/.config/Popcorn-Time/*
        sudo cp -r /tmp/popcorn-config/data $HOME/.config/Popcorn-Time/ &> /dev/null && 
        sudo chown -Rf $USER:$USER $HOME/.config/Popcorn-Time/data && 
        sudo chmod -R 774 $HOME/.config/Popcorn-Time/data
        ;;
    -all)
        sudo rm -rf $installdir/Popcorn-Time /usr/share/pixmaps/popcorntime.png /usr/bin/popcorn-time $HOME/tmp $HOME/popcorn-app-$version $HOME/npm-debug.log $HOME/.npm $HOME/.cache/bower $HOME/.config/configstore/insight-bower.yml $HOME/.config/configstore/update-notifier-bower.yml $HOME/.local/share/bower $log $HOME/$version.zip $HOME/.npm/
        ;;
    -package)
        sudo apt-get purge nodejs -y &> /dev/null && 
        sudo apt-get autoremove -y &> /dev/null && 
        sudo rm -rf /usr/bin/node && 
        sudo add-apt-repository -yr ppa:chris-lea/node.js &> /dev/null && 
        echo -e "... Done.\n" 
        ;;
    -building)
 sudo rm -rf $HOME/tmp $HOME/popcorn-app-$version $HOME/npm-debug.log $HOME/.npm $HOME/.cache/bower $HOME/.config/configstore/insight-bower.yml $HOME/.config/configstore/update-notifier-bower.yml $HOME/.local/share/bower $log $HOME/.npm && 
        echo -e "... Done.\n"
        ;;
esac
}

func_ptexists() {
if [ "$1" == "-update" ] ; then
    func_clean -save
else
    [ -e "$installdir/Popcorn-Time" ] && 
    read -p "
WARNING: Popcorn-Time is already installed in '$installdir' and will be erased. Do you want to keep the configuration files (bookmarks, watched list, settings, ...) [y/n] ? "
    if [ "$REPLY" == "y" ] ; then
        func_clean -save
    else    
        sudo rm -rf $HOME/.config/Popcorn-Time/
    fi
    sudo rm -rf /usr/share/applications/popcorn-time.desktop
fi
func_clean -all
}

func_dependencies() {
#package dep
[[ -n `egrep -v '^#|^ *$' /etc/apt/sources.list /etc/apt/sources.list.d/* | grep chris-lea/node.js` ]] && nodeppa=1 || nodeppa=0
if [ -n "`dpkg-query -W -f='${Status}\n' nodejs wget unzip | grep not`" ] || [ $nodeppa == "0" ] ; then
    echo "- Checking for dependencies 'nodejs', 'wget' and 'unzip'..."
    sudo apt-add-repository -y ppa:chris-lea/node.js &> $log && 
    sudo apt-get update &> $log

    sudo apt-get install nodejs wget unzip -y &> $log && echo -e "  ...Ok !" || error=1
    func_error
fi

#npm dep
if [ -e "/usr/lib/node_modules/bower" ] && [ -e "/usr/lib/node_modules/grunt-cli" ] ; then
    echo -e "\n- Updating NPM 'grunt-cli' and 'bower'..."
else
    echo -e "\n- Installing NPM 'grunt-cli' and 'bower'..."
fi
sudo npm install -g grunt-cli bower &> $log && echo -e "  ...Ok !\n" || error=1
func_error

#repair broken nodejs symlink
[ ! -e /usr/bin/node ] && sudo ln -s /usr/bin/nodejs /usr/bin/node 

#symlink libudev.so on 12.04
[ `lsb_release -cs` == "precise" ] && [ ! -e /lib/$(arch)-linux-gnu/libudev.so.1 ] && sudo ln -s /lib/$(arch)-linux-gnu/libudev.so.0 /lib/$(arch)-linux-gnu/libudev.so.1 
}

func_build() {
#get sources
echo "- Downloading sources (branch:$version) from GitHub..."
cd
wget $githubURL/archive/$version.zip -O $version.zip &> $log && unzip -o $version.zip &> $log && rm $version.zip && echo -e "  ...Ok !\n" || error=1
func_error

#npm
cd popcorn-app-$version
echo "- Running 'npm install'..."
sudo chown -Rf $USER:$USER $HOME/popcorn-app-$version/ $HOME/tmp $HOME/.npm
npm install --yes &> $log && echo -e "  ...Ok !\n" || error=1
func_error

#build
if [ "$1" == "-update" ] ; then
 buildcommand="linux$arch"
else
 buildvar=0
 echo -e "You can build for this machine only (linux$arch) or for all platforms, including : Mac, Windows, Linux 32-bits, Linux 64-bits.\n\nFor what platforms do you wish to build (for multiple builds, separate each platform with a comma)"
 read -p "[mac/win/linux32/linux64/all] : " input
 IFS=',' read -a options <<< "$input"
 shopt -s extglob
 for option in "${options[@]}"; do
    case "$option" in
        win|mac|linux32|linux64|all)
            buildcommand="${buildcommand:+$buildcommand,}$option"
            buildvar=1;;
        *)
            printf 'Invalid option "%s" ignored.\n' "$option";;
    esac
 done
 if (( !buildvar )); then
    echo "Incorrect input. Default build 'linux$arch' selected."
    buildcommand="linux$arch"
 fi
 [[ -n "`echo $buildcommand | grep all`" ]] && buildcommand="all"
fi

echo -e "\n- Building with 'grunt'..."
grunt build --platforms=$buildcommand &> $log && echo -e "   ...Ok !\n" || error=1
func_error

echo -e "Popcorn-Time has been built in :\n  «$HOME/popcorn-app-$version/build/releases/Popcorn-Time/»\n" 
}

func_install() {
[ "`echo $buildcommand | grep -v linux$arch`" ] && exit 0

if [ "$1" != "-update" ] ; then
read -p "Do you wish to install Popcorn-Time on this computer [y/n] ? "
[ "$REPLY" != "y" ] && exit 0
fi  

sudo mkdir -p $installdir
sudo cp -r $HOME/popcorn-app-$version/build/releases/Popcorn-Time/linux$arch/Popcorn-Time $installdir

echo -e "\n- Creating commandline launcher..."
echo "#!/bin/bash
echo \"Popcorn Time
============\"

[ \"\$EUID\" == \"0\" ] && echo \"Error: You need to run this without 'root' or 'sudo' privileges.\" && exit 2

helpsection() {
echo \"Version $version 
Built on $buildtime from $githubURL
Official website : $OfficialURL

Options:
  -h, --help        Display this help.
  -q,--quiet        Launch Popcorn-Time without output.
  --flush       Flush databases.
  --fix-node        Fix the node-webkit 'blank' error.
  --uninstall       Uninstall Popcorn-Time.
  --issue       Report an issue.
  --build       Build latest version from sources.\"
}

flush_all() {
echo \"- Flushing databases...\"
sudo rm -rf $HOME/.config/Popcorn-Time
}

uninstall() {
echo \"- Uninstalling Popcorn-Time and removing configuration files...\"
sudo bash $installdir/Popcorn-Time/uninstall.sh
}

popcorntimequiet() {
echo \"Starting...\"
nohup $installdir/Popcorn-Time/Popcorn-Time &> /dev/null &
exit 0
}

popcorntime() {
$installdir/Popcorn-Time/Popcorn-Time
}

reportissue() {
echo \"Here is what a great bug report looks like:


###############################
Describe the problem here

Version: $version for Linux $arch bits
         Built on $buildtime
Downloaded from: $githubURL
OS: `lsb_release -si` `lsb_release -sr` `arch`
Connection: X mbps

How to reproduce:
 - Step 1
 - Step 2
 - Step 3
Actual result:
 - X goes wrong
Expected result:
 - X should go like that
###############################\"
xdg-open $issueURL &> /dev/null
}

fix_node() {
echo \"Fixing node-webkit...\"
rm -rf $HOME/.config/node-webkit
}

build_pt() {
cd
echo \"Building script fetched from GitHub...\"
wget -q $buildscriptURL$buildscript
bash $buildscript -update
}

case \$1 in
    -h|--help)
        helpsection
        ;;
    --uninstall)
        uninstall
        ;;
    --flush)
        flush_all
        ;;
    --fix-node)
        fix_node
        ;;
    --issue)
        reportissue
        ;;
    -q|--quiet)
        popcorntimequiet
        ;;
    --build)
        build_pt
        ;;
    *)
        popcorntime
        ;;
esac" | sudo tee /usr/bin/popcorn-time &> /dev/null
sudo chmod +x /usr/bin/popcorn-time
echo -e "    «/usr/bin/popcorn-time»\n"

echo "- Creating launcher... "
sudo wget $icon -qO /tmp/popcorntime.png && sudo cp /tmp/popcorntime.png /usr/share/pixmaps/
echo "[Desktop Entry]
Comment=Watch movies in streaming with P2P.
Comment[fr]=Regarder des films en streaming.
Name=Popcorn Time
Exec=/usr/bin/popcorn-time
StartupNotify=false
Type=Application
Icon=popcorntime
Actions=ForceClose;ReportIssue;FlushDB;FixNode;BuildUpdate;
Keywords=P2P;streaming;movies;tv;series;shows;
Keywords[fr]=P2P;streaming;films;séries;télévision;tv;

[Desktop Action ForceClose]
Name=Force close
Name[fr]=Forcer la fermeture
Exec=killall Popcorn-Time
OnlyShowIn=Unity;

[Desktop Action ReportIssue]
Name=Report Issue
Name[fr]=Rapporter un problème
Exec=sh -c \"popcorn-time --issue\"
OnlyShowIn=Unity;

[Desktop Action FlushDB]
Name=Flush databases
Name[fr]=Vider les bases de données
Exec=sh -c \"killall Popcorn-Time ; rm -rf $HOME/.config/Popcorn-Time ; /usr/bin/popcorn-time\"
OnlyShowIn=Unity;

[Desktop Action FixNode]
Name=Fix Node-Webkit
Name[fr]=Réparer Node-Webkit
Exec=sh -c \"rm -rf $HOME/.config/node-webkit ; killall Popcorn-Time ; /usr/bin/popcorn-time\"
OnlyShowIn=Unity;

[Desktop Action BuildUpdate]
Name=Build latest version
Name[fr]=Construire la dernière version
Exec=sh -c 'killall Popcorn-Time ; xterm -fa monaco -fs 13 -bg black -fg white -title \"Build latest Popcorn Time\" -e \"popcorn-time --build\" ; /usr/bin/popcorn-time'
OnlyShowIn=Unity;" | sudo tee /usr/share/applications/popcorn-time.desktop &> /dev/null
sudo chmod +x /usr/share/applications/popcorn-time.desktop
echo -e "    «/usr/share/applications/popcorn-time.desktop»\n"

echo "- Creating uninstall script..."
echo "#!/bin/bash
#uninstallation script for Popcorn-Time

#clean directory
sudo rm -rf $installdir/Popcorn-Time

#clean config
sudo rm -rf $HOME/.config/Popcorn-Time

#clean icon
sudo rm -rf /usr/share/pixmaps/popcorntime.png

#clean launchers
sudo rm -rf /usr/bin/popcorn-time
sudo rm -rf /usr/share/applications/popcorn-time.desktop
" | sudo tee $installdir/Popcorn-Time/uninstall.sh &> /dev/null
sudo chmod +x $installdir/Popcorn-Time/uninstall.sh
echo -e "    «$installdir/Popcorn-Time/uninstall.sh»\n" 
}

func_end() {
if [ "$buildcommand" == "linux$arch" ] ; then
 if [ "$1" == "-update" ] ; then
    func_clean -building
    sudo rm -rf $0
 else
  read -p "Do you wish to remove all the building files [y/n] ? "
  [ "$REPLY" == "y" ] && func_clean -building
 fi
fi

if [ "$nodeppa" == "0" ] ; then
    read -p "Do you wish to uninstall the packages installed for this build, they will be needed in case of new build [y/n] ? "
    [ "$REPLY" == "y" ] && func_clean -package
fi 
}

#SCRIPT#
func_root
func_apt

echo "
Popcorn-Time $version for Ubuntu-Linux
=====================================
Popcorn Time streams movies from Torrents.
Downloading copyrighted material may be illegal in your country.
!!! Use at your own risk !!!
"

sudo test 

case $1 in
    -update)
        option="-update"
        ;;
    *)
        [ -n "$1" ] && echo -e "\nUnauthorized option '$1' will be ignored."
        ;;
esac

func_ptexists $option
func_dependencies
func_build $option
func_install $option
func_end $option

echo "=================================================
Popcorn-Time is now installed !

Type «popcorn-time --help» for more information."
exit 0

ถอนการติดตั้ง

แบบง่ายpopcorn-time --uninstallควรจะเพียงพอ หากไม่เป็นเช่นนั้นให้ล้างไฟล์เหล่านั้น:

  • / opt / Popcorn เวลา
  • ~ / .config / Popcorn เวลา
  • /usr/share/pixmaps/popcorntime.png
  • / usr / bin / ข้าวโพดคั่วเวลา
  • /usr/share/applications/popcorn-time.desktop

ขอบคุณมาก! สำหรับข้อมูลของคนอื่นฉันต้องอัพเกรดเป็น nodejs รุ่นใหม่กว่าเพื่อป้องกันการติดตั้ง grunt-cli ที่ล้มเหลว แหล่งที่มาของ Ubuntu รองรับได้ถึงรุ่น 0.6 เท่านั้น คำแนะนำในการอัปเกรดมีให้ที่นี่: stackoverflow.com/questions/7214474/…
Templar

มันจะดีถ้าคุณสามารถเชื่อมโยงไปยังข้อบกพร่องเหล่านั้น ... ดังนั้นในกรณีที่มีวิธีแก้ปัญหาหรือได้รับการแก้ไขเราสามารถแก้ไขและบำรุงรักษาโพสต์ได้อย่างง่ายดาย ฉันพยายามที่จะเชื่อมโยงพวกเขา แต่ฉันไม่แน่ใจในสิ่งที่แน่นอนที่คุณกำลังพูดถึง .. :)
Aditya

ตั้งแต่วันที่ 14 มีนาคม Popcorn-Time ตอนนี้หยุดทำงาน
MrVaykadji

สิ่งนี้ทันสมัยหรือไม่?
Seth

ดูเหมือนว่าโครงการจะถูกละทิ้งตั้งแต่เดือนมีนาคม 14: / สามารถใช้งานได้กับแหล่งข้อมูลปัจจุบันบน GitHub แต่มันอาจจะไม่ได้ออกจากเบต้า
MrVaykadji

7

ด้วยตนเอง:

1) รับไฟล์

โคลน repo ด้วยgit(ติดตั้งถ้าจำเป็น):

git clone https://git.popcorntime.io/popcorntime/desktop.git

2) ติดตั้ง node.js

sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs

3) ติดตั้งการพึ่งพา node.js ที่ต้องมีการพึ่งพา

sudo npm install -g grunt-cli bower

4) เข้าสู่ไดเรกทอรี

cd desktop

5) ติดตั้งการพึ่งพา Popcorn-Time

npm install

6) สร้างด้วยเสียงฮึดฮัด

grunt build

7) รับปฏิบัติการที่สร้างขึ้น

คุณจะพบไฟล์ปฏิบัติการภายในbuild/releasesโฟลเดอร์

7bis) เริ่มการพัฒนาสด

grunt start
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.