ফ্ল্যাটপ্যাক অ্যাপ্লিকেশন ডিস্ট্রিবিউশন মডেল ডেভেলপারদের একটি নতুন এবং সহজ উপায়ে লিনাক্সকে টার্গেট করতে সাহায্য করছে এবং এটি লিনাক্স ব্যবহারকারীদের লিনাক্সের কোন সংস্করণটি চালাচ্ছে তা নিয়ে চিন্তা না করে আরও অ্যাপ্লিকেশন ইনস্টল করতে সহায়তা করছে। এটি একটি উত্তেজনাপূর্ণ প্রযুক্তি, এবং আমার ফেডোরা সিলভারব্লু সিস্টেমে, এটি ডিফল্ট প্যাকেজ ইনস্টলেশন পদ্ধতি। Silverblue-এ আমার সমস্ত ডেস্কটপ অ্যাপ্লিকেশন এবং স্ল্যাকওয়্যারে ব্যবহার করা আমার পছন্দের বেশ কয়েকটি ফ্ল্যাটপ্যাক হিসাবে চলছে।
কিছু ক্ষেত্রে ফ্ল্যাটপ্যাককে কিছুটা বিশ্রী করে তোলে এমন একটি জিনিস রয়েছে এবং এটি হল এর নামকরণ স্কিম। উদাহরণস্বরূপ, যখন আমি Emacs একটি Flatpak হিসাবে ইনস্টল করি, তখন এটি আমার সিস্টেমে org.gnu.emacs
হিসাবে নিবন্ধিত হয় . দৃশ্যত, একটি বিদ্যমান সিস্টেম-স্তরের অ্যাপ্লিকেশনের নাম ক্লোবার করার ভয়ে এটি করা হয়েছে—যদি আমি ইতিমধ্যেই ইম্যাক্স ইনস্টল করে থাকি, তাহলে /usr/bin/emacs
এর মধ্যে পার্থক্য কী? এবং Emacs-এর Flatpak ইনস্টলেশন? এই কারণে, Emacs-এর মতো একটি ফ্ল্যাটপ্যাক এই পাথের মতো কিছুতে ইনস্টল করা হয় (এর জন্য প্রস্তুত হন):
/var/lib/flatpak/app/org.gnu.emacs/current/active/export/bin/org.gnu.emacs
এটি /usr/bin
থেকে সিমলিঙ্ক করা হয়নি অথবা /opt
, অবস্থানটি ব্যবহারকারীর পাথে যোগ করা হয় না, এবং একটি ফ্ল্যাটপ্যাক চালু করার জন্য এই ধরনের একটি আহ্বানের প্রয়োজন হয়:
$ flatpak run org.gnu.emacs
শুধু emacs
প্রবেশ করার তুলনায় এটি অনেক টাইপিং .
নাম মনে রাখা কঠিন
ফ্ল্যাটপ্যাক নামকরণ স্কিমটি অনুমান করে যে আপনি প্যাকেজের বিপরীত DNS নামটি মনে রাখার জন্য প্রায়শই ফ্ল্যাটপ্যাক ব্যবহার করেন। কাঠামোর পাশাপাশি, ফ্ল্যাটপ্যাক নামকরণের জন্য কোনও মান নেই, তাই একটি ফ্ল্যাটপ্যাক উট-কেস ব্যবহার করতে পারে, যেমন org.libreoffice.LibreOffice
, যখন অন্য একটি মিশ্রণ ব্যবহার করতে পারে, যেমন org.gimp.GIMP
.
কিছু নাম অন্যদের তুলনায় মনে রাখা সহজ। যেমন, org.glimpse_editor.Glimpse
মনে রাখা সহজ শুধু আপনি যদি মনে করেন যে এটির ওয়েবসাইট হল https://glimpse.org এর পরিবর্তে, এবং একটি আন্ডারস্কোর ড্যাশকে প্রতিস্থাপন করে৷
ফ্ল্যাটপ্যাক ডেভেলপারদের দৃষ্টিকোণ থেকে, এটি কোনও সমস্যা নয় কারণ ফ্ল্যাটপ্যাকগুলি ডেস্কটপ থেকে চালু করার উদ্দেশ্যে করা হয়েছে। আপনাকে org.gnu.emacs
মনে রাখতে হবে না কারণ আপনি সর্বদা জিনোম অ্যাক্টিভিটিস বা আপনার কে-মেনু বা অনুরূপ গ্রাফিকাল লঞ্চার থেকে এটি চালু করতে পারেন।
এটি প্রায়শই যথেষ্ট সত্য ধারণ করে, তবে কখনও কখনও টার্মিনাল থেকে একটি অ্যাপ্লিকেশন চালু করা আরও সুবিধাজনক কারণ আপনি ইতিমধ্যে টার্মিনালটি ব্যবহার করছেন। আমি গ্লিম্পসে একটি ইমেজ চাই বা Emacs-এ একটি টেক্সট ফাইল বা VLC-তে একটি মিউজিক ফাইল চাই না কেন, আমি ডেস্কটপে "ড্রপ" করতে টার্মিনালে খুব ব্যস্ত থাকি (যদিও এটি কেবল একটি কী দূরে!), লঞ্চ অ্যাপ্লিকেশন, একটি ফাইল খুলতে মেনুর মাধ্যমে ক্লিক করুন, এবং তারপরে আমি যে ফাইলটি খুলতে চাই সেটি খুঁজে পেতে আমার ফাইল সিস্টেমের মাধ্যমে ক্লিক করুন৷
আমি যে ফাইলটি খুলতে চাই তার পরে কমান্ডটি টাইপ করা আরও দ্রুত। কিন্তু যদি আমাকে flatpak run org.something.app
টাইপ করতে হয় , এটা নয়।
ফ্ল্যাটপ্যাক চালু করতে ব্যাশ উপনাম ব্যবহার করা
এই সবের সুস্পষ্ট সমাধান হল একটি বাশ ওরফে। একটি বাশ উপনামের সাহায্যে, আপনি আপনার পছন্দের প্রায় যেকোনো শব্দের জন্য যেকোনো নির্বিচারে আদেশ দিতে পারেন। এমন অনেক সাধারণ ব্যাশ উপনাম রয়েছে যা প্রায় প্রতিটি লিনাক্স ব্যবহারকারীর তাদের সিস্টেমে রয়েছে, হয় সচেতন পছন্দ দ্বারা বা বিতরণ তাদের পূর্বনির্ধারিত করে:
$ grep alias ~/.bashrc
alias cp='cp -v'
alias rm='/usr/bin/local/trashy'
alias mv='mv -v'
alias ls='ls --color'
alias ll='ls -l --color'
alias lh='ll -h'
আপনি Flatpaks-এর জন্যও উপনাম তৈরি করতে পারেন:
alias emacs='flatpak run org.gnu.emacs'
সমস্যা সমাধান করা হয়েছে!
ব্যাশ স্ক্রিপ্টিংয়ের সাথে আরও ভাল ইন্টারঅ্যাকশন
ম্যানুয়ালি উপনাম যোগ করার প্রক্রিয়াটি আমার কাছে খুব শ্রমসাধ্য বোধ করতে বেশি সময় নেয়নি। এবং আমার জন্য, এটা কাজ কিন্তু প্রক্রিয়া নয়. একটি সম্পাদক খোলা এবং একটি উপনাম যোগ করা উল্লেখযোগ্যভাবে দ্রুত, কিন্তু এটি আমার কর্মপ্রবাহে একটি বিরতি৷
আমি আসলে যা চাই তা হল আমি মানসিক এবং শারীরিকভাবে প্রাথমিক ফ্ল্যাটপ্যাক ইনস্টল প্রক্রিয়া প্রয়োজনমত যোগ করতে পারি। . আমি ইনস্টল করা সমস্ত ফ্ল্যাটপ্যাকগুলির একটি উপনামের প্রয়োজন হয় না। উদাহরণস্বরূপ, এখানে আমার সিলভারব্লু সিস্টেমে ফ্ল্যাটপ্যাকগুলির একটি আংশিক তালিকা রয়েছে:
$ find /var/lib/flatpak/app/* -maxdepth 0 -type d | tail -n5
/var/lib/flatpak/app/org.gnome.baobab
/var/lib/flatpak/app/org.gnome.Calculator
/var/lib/flatpak/app/org.gnome.Calendar
/var/lib/flatpak/app/org.gnome.Characters
/var/lib/flatpak/app/org.gnome.clocks
/var/lib/flatpak/app/org.gnome.Contacts
/var/lib/flatpak/app/org.gnome.eog
/var/lib/flatpak/app/org.gnome.Evince
/var/lib/flatpak/app/org.gnome.FileRoller
/var/lib/flatpak/app/org.gnome.font-viewer
/var/lib/flatpak/app/org.gnome.gedit
/var/lib/flatpak/app/org.gnome.Logs
/var/lib/flatpak/app/org.gnome.Maps
/var/lib/flatpak/app/org.gnome.NautilusPreviewer
/var/lib/flatpak/app/org.gnome.Rhythmbox3
/var/lib/flatpak/app/org.gnome.Screenshot
/var/lib/flatpak/app/org.gnome.Weather
/var/lib/flatpak/app/org.gnu.emacs
/var/lib/flatpak/app/org.signal.Signal
আমি কখনই টার্মিনাল থেকে ওয়েদার বা জিনোম ক্যালকুলেটর চালু করব না। আমি কখনই টার্মিনাল থেকে সিগন্যাল চালু করব না, কারণ এটি এমন একটি অ্যাপ্লিকেশন যা আমি আমার দিনের শুরুতে খুলি এবং কখনই বন্ধ করি না৷
অতএব, আমি নিজের জন্য যে প্রয়োজনীয়তাগুলি সংজ্ঞায়িত করেছি তা হল:
- একটি উপনামের প্রয়োজনীয় সংযোজন
- টার্মিনাল-ভিত্তিক নিয়ন্ত্রণ, তাই এটি আমার ফ্ল্যাটপ্যাক ইনস্টল প্রক্রিয়ার শেষে আরামে ফিট করে
- একটি কাজ করে এবং ভাল করে
- ফেডোরা, RHEL, স্ল্যাকওয়্যার এবং অন্য যেকোন ডিস্ট্রো জুড়ে পোর্টেবল আমি যে কোনো সপ্তাহে ব্যবহার করছি
আমি সম্প্রতি যে সমাধানটি সমাধান করেছি তা হল একটি কাস্টম লিটল ব্যাশ স্ক্রিপ্ট যা আমি Flatpaks-এর জন্য উপনাম যোগ করতে ব্যবহার করি যা আমি জানি আমি আমার টার্মিনাল থেকে দ্রুত অ্যাক্সেস করতে চাই। এখানে স্ক্রিপ্ট:
#!/bin/sh
# GPLv3 appears here
# gnu.org/licenses/gpl-3.0.md
# vars
SYMRC=.bashrc.d
SYMDIR=$HOME/$SYMRC
SYMFILE=flatpak_aliases
# exit on errors
set -e
# this is where the aliases lives
if [ ! -d $SYMDIR ]; then
mkdir "${SYMDIR}"
touch "${SYMDIR}"/"${SYMFILE}"
fi
sourcer() {
echo 'Run this command to update your shell:'
echo ". ${SYMDIR}/${SYMFILE}"
}
lister() {
cat "${SYMDIR}"/"${SYMFILE}"
}
adder() {
grep "alias ${ARG}\=" "${SYMDIR}"/"${SYMFILE}" && i=1
[[ $VERBOSE ]] && echo "$i"
if [ $i > 0 ]; then
echo "Alias for ${ARG} already exists:"
grep "alias ${ARG}=" "${SYMDIR}"/"${SYMFILE}"
exit
else
echo "alias ${ARG}='${COMMAND}'" >> "${SYMDIR}"/"${SYMFILE}"
[[ $VERBOSE ]] && echo "Alias for ${ARG} added"
sourcer
fi
unset i
}
remover() {
echo "Removing stuff."
sed -i "/alias ${ARG}\=/d" "${SYMDIR}"/"${SYMFILE}"
sourcer
}
# arg parse
while [ True ]; do
if [ "$1" = "--help" -o "$1" = "-h" ]; then
echo " "
echo "$0 add --command 'flatpak run org.gnu.emacs' emacs \# create symlink for emacs"
echo "$0 add --command 'flatpak run org.gnu.emacs -fs' emacs-fs \# create symlink for emacs in fullscreen"
echo "$0 remove emacs \# remove emacs symlink"
echo "$0 list \# list all active flatpak symlinks"
echo " "
exit
elif [ "$1" = "--verbose" -o "$1" = "-v" ]; then
VERBOSE=1
shift 1
elif [ "$1" = "list" ]; then
MODE="list"
shift 1
elif [ "$1" = "add" ]; then
MODE="add"
shift 1
elif [ "$1" = "remove" ]; then
MODE="remove"
shift 1
elif [ "$1" = "--command" -o "$1" = "-c" ]; then
COMMAND="${2}"
shift 2
else
break
fi
done
#create array, retain spaces
ARG=( "${@}" )
case $MODE in
add)
adder
;;
list)
lister
;;
remove)
remover
;;
*)
echo "You must specify an action <list|add|remove>"
exit 1
esac
স্ক্রিপ্ট ব্যবহার করা
যখন আমি একটি ফ্ল্যাটপ্যাক ইনস্টল করি তখন আমি টার্মিনাল থেকে চালু করতে চাই, আমি এই স্ক্রিপ্টটি দিয়ে প্রক্রিয়াটি শেষ করি:
$ flatpak install org.gnu.emacs
$ pakrat add -c 'flatpak run org.gnu.emacs' emacs
Alias for emacs added.
Run this command to update your shell:
. ~/.bashrc.d/flatpak_aliases
$ . ~/.bashrc.d/flatpak_aliases
যদি একটি উপনাম ইতিমধ্যেই বিদ্যমান থাকে তবে এটি আবিষ্কৃত হয়, এবং কোন নতুন উপনাম তৈরি করা হয় না৷
৷আমি একটি উপনামও সরাতে পারি:
$ pakrat remove emacs
এটি Flatpak সরিয়ে দেয় না এবং শুধুমাত্র ডেডিকেটেড flatpak_aliases
-এ কাজ করে ফাইল।
সমস্ত Flatpak উপনাম ~/.bashrc.d/flatpak_aliases
এ যোগ করা হয়েছে , যা আপনি স্বয়ংক্রিয়ভাবে উত্স করতে পারেন যখন আপনার শেল চালু হয় এই পদ্ধতির কোডটি আপনার .bashrc
এ রেখে অথবা .bash_profile
অথবা .profile
ফাইল:
if [ -d ~/.bashrc.d ]; then
for rc in ~/.bashrc.d/*; do
if [ -f "$rc" ]; then
. "$rc"
fi
done
fi
unset rc
ফ্ল্যাটপ্যাক চালু করা সহজ
ফ্ল্যাটপ্যাকস ডেস্কটপ লিনাক্সের সাথে সত্যিই ভালভাবে একত্রিত হয় এবং তাদের পিছনে একটি শক্তিশালী, পুনরুত্পাদনযোগ্য অবকাঠামো রয়েছে। এগুলি তৈরি করা তুলনামূলকভাবে সহজ এবং ব্যবহার করার জন্য একটি হাওয়া। সামান্য অতিরিক্ত প্রচেষ্টার মাধ্যমে, আপনি সেগুলিকে টার্মিনালে নামিয়ে আনতে পারেন যাতে আপনি সেগুলি ব্যবহার করতে পারেন যে কোনও উপায় আপনার জন্য সবচেয়ে ভাল কাজ করে৷ সম্ভবত এইরকম আরও কয়েকটি প্রকল্প রয়েছে এবং সম্ভবত কয়েকটি বিকাশে রয়েছে যা একটি সাধারণ ব্যাশ স্ক্রিপ্টের চেয়ে অনেক বেশি উন্নত, তবে এটি এখনও পর্যন্ত আমার জন্য ভাল কাজ করছে। এটি ব্যবহার করে দেখুন, অথবা মন্তব্যে আপনার কাস্টম সমাধান শেয়ার করুন!