การเพิ่ม PPA ภายนอกมีความเสี่ยงสูง และบ่อยครั้งอาจทำให้เกิดปัญหากับการติดตั้งปัจจุบันของคุณ
หากคุณกำลังปรับใช้แอปพลิเคชันของคุณและคุณต้องการเวอร์ชันเฉพาะ คุณสามารถใช้วิธีนี้ได้
ก่อนอื่นเราจะดาวน์โหลด gpl static build ล่าสุดจากหนึ่งในนั้น ผู้สร้างอย่างเป็นทางการ ล้านบาท. จากนั้นเราจะแตกไฟล์ในส่วนของ /usr/local/ffmpeg
และสร้าง ลิงค์สัญลักษณ์ ไปยังไบนารีลงใน /usr/bin
ไดเรกทอรี
นี่เป็นขั้นตอนการติดตั้งด้วยตนเอง คุณสามารถสร้างสคริปต์โดยทำตามขั้นตอนทั้งหมดที่กล่าวถึงที่นี่:
1. ลบแพ็คเกจก่อนหน้าที่ติดตั้งโดยใช้ apt
sudo apt remove --purge --auto-remove -y ffmpeg
2. สร้างไดเร็กทอรีชั่วคราวและย้ายไปที่ไดเร็กทอรี
mkdir -vp ~/tmp
ซีดี ~/tmp
3. รับชื่อไฟล์และเวอร์ชัน
## กำหนดชื่อที่เก็บ
REPO_NAME='BtbN/FFmpeg-บิลด์'
## กำหนด URL ของรุ่นล่าสุด
LR_URL="https://api.github.com/repos/${REPO_NAME}/releases/latest"
## รับเวอร์ชันล่าสุด
version=$(curl -s "${LR_URL}" \
| grep -m 1 ffmpeg-n \
| ตัด -d ':' -f2 \
| ตัด -d '-' -f2 \
| tr -d 'n' \
| { อ่าน v; เสียงสะท้อน ${v::-2}; })
## รับชื่อไฟล์
dl_filename=$(ขด -s "${LR_URL}" \
| grep "name.*linux64-gpl-${version}.tar.xz" \
| ตัด -d ':' -f2 \
| { อ่าน n; เสียงสะท้อน ${n:1:-2}; })
dl_name="${dl_filename::-7}"
4. ดาวน์โหลดไฟล์
## ดาวน์โหลด tar.xz ล่าสุด
ขด -s "${LR_URL}" \
| grep "browser_download_url.*linux64-gpl-${version}.tar.xz" \
| ตัด -d ':' -f 2,3 \
| tr -d '"' \
| wget -qi - -O $dl_filename
5. กำหนดเส้นทางการติดตั้งแพ็คเกจ
pkg_path='/usr/local/ffmpeg'
pkg_lib_path='/usr/lib/ffmpeg'
6. แยกและติดตั้งเวอร์ชันที่ดาวน์โหลดมา
sudo rm -rf $pkg_path && tar -xvf $dl_filename
sudo mv -v $dl_name $pkg_path
7. เพิ่มไฟล์ไบนารีไปยังไดเร็กทอรีไบนารีและไลบรารีของระบบ
sudo ln -sv "${pkg_path}" "${pkg_lib_path}"
sudo ln -sv "${pkg_lib_path}/bin/ffmpeg" '/usr/bin/ffmpeg'
sudo ln -sv "${pkg_lib_path}/bin/ffplay" '/usr/bin/ffplay'
sudo ln -sv "${pkg_lib_path}/bin/ffprobe" '/usr/bin/ffprobe'
8. ทดสอบเวอร์ชันใหม่ของคุณ
ffmpeg - รุ่น | grep 'เวอร์ชัน ffmpeg'
ตอนนี้คุณสามารถสร้างสคริปต์ชื่อ ffmpeg-install-latest.sh
:
#!/bin/bash
## กำหนดชื่อแพ็คเกจ
PKG_NAME='ffmpeg'
## กำหนดเส้นทางท้องถิ่นของระบบ
LOCAL_PATH='/usr/ท้องถิ่น'
## กำหนดเส้นทางไลบรารีระบบ
LIB_PATH='/usr/lib'
## กำหนดเส้นทางไบนารีของระบบ
BIN_PATH='/usr/bin'
## กำหนด home dir ของผู้ใช้
USER_HOME_DIR=$(getent passwd ${SUDO_USER:-$USER} | ตัด -d: -f6)
## กำหนดชื่อที่เก็บ
REPO_NAME='BtbN/FFmpeg-บิลด์'
## กำหนดการเผยแพร่ URL
RELEASES_URL="https://api.github.com/repos/${REPO_NAME}/releases"
## กำหนด URL ของรุ่นล่าสุด
## LR_URL="https://api.github.com/repos/${REPO_NAME}/releases/latest"
LR_URL="${RELEASES_URL}/ล่าสุด"
## กำหนดไดเร็กทอรีชั่วคราว
TMP_DIR='tmp'
## ย้ายไปยังไดเร็กทอรีชั่วคราว
tmp_path="${USER_HOME_DIR}/${TMP_DIR}"
mkdir -vp $tmp_path
ซีดี $tmp_path
## รับเวอร์ชันล่าสุดและสร้าง
full_version=$(curl -s "${LR_URL}" \
| grep -m 1 ffmpeg-n \
| ตัด -d ':' -f2 \
| ตัด -d '-' -f2 \
| tr -d 'n')
version="${full_version::-2}"
build="${full_version:4:1}"
echo 'เวอร์ชันล่าสุด: '$full_version
## รับชื่อไฟล์
dl_filename=$(ขด -s "${LR_URL}" \
| grep "name.*linux64-gpl-${version}.tar.xz" \
| ตัด -d ':' -f2 \
| { อ่าน n; เสียงสะท้อน ${n:1:-2}; })
dl_name="${dl_filename::-7}"
echo 'ไฟล์ที่จะดาวน์โหลด: '$dl_filename
## ดาวน์โหลดล่าสุด
## ขึ้นอยู่กับ: echo $(curl -s "${LR_URL}"" | grep "browser_download_url.*ffmpeg-n4\.4\.1.*linux64-gpl-4\.4\.tar.xz" | ตัด -d ':' -f 2,3 | tr -d '"')
ขด -s "${LR_URL}" \
| grep "browser_download_url.*linux64-gpl-${version}.tar.xz" \
| ตัด -d ':' -f 2,3 \
| tr -d '"' \
| wget -qi - -O $dl_filename
## ลบแพ็คเกจก่อนหน้าที่ติดตั้งโดยใช้ apt
สถานะ="$(dpkg-query -W --showformat='${db:Status-Status}' ${PKG_NAME} 2>&1)"
ถ้า [ $? = 0 ] || [ "${status}" = ติดตั้งแล้ว ]; แล้ว
sudo apt remove --purge --auto-remove -y "${PKG_NAME}"
ไฟ
## กำหนดเส้นทางการติดตั้งแพ็คเกจ
pkg_path="${LOCAL_PATH}/${PKG_NAME}"
pkg_lib_path="${LIB_PATH}/${PKG_NAME}"
## แยกและติดตั้งเวอร์ชันที่ดาวน์โหลด
sudo rm -rf $pkg_path && tar -xvf $dl_filename
sudo mv -v $dl_name $pkg_path
## เพิ่มไฟล์ไบนารีลงในไดเร็กทอรีไบนารีและไลบรารีของระบบ
sudo ln -sv "${pkg_path}" "${pkg_lib_path}"
sudo ln -sv "${pkg_lib_path}/bin/ffmpeg" "${BIN_PATH}/ffmpeg"
sudo ln -sv "${pkg_lib_path}/bin/ffplay" "${BIN_PATH}/ffplay"
sudo ln -sv "${pkg_lib_path}/bin/ffprobe" "${BIN_PATH}/ffprobe"
## ทดสอบเวอร์ชันใหม่ของคุณ
ffmpeg - รุ่น | grep 'เวอร์ชัน ffmpeg'