pacman (हिन्दी)

Related articles
Pacman/Package signing
Pacman/Pacnew and Pacsave
Pacman/Restore local database
Pacman/Rosetta
Pacman/Tips and tricks
Arch User Repository
Creating packages
Downgrading packages
namcap
FAQ#Package management
System maintenance
Package proxy cache
pacman
package manager
Arch Linux की मुख्य विशिष्ट विशेषताओं में से एक है। यह एक सरल binary package format को आसानी से उपयोग होने वाले
Arch build system
के साथ जोड़ता है।
pacman
का लक्ष्य packages को आसानी से manage करना संभव बनाना है, चाहे वे
official repositories
से हों या user के खुद के build किए हुए।
pacman
package lists को master server के साथ synchronize करके system को up-to-date रखता है। यह server/client model user को एक सरल command के साथ सभी required dependencies सहित packages download/install करने की अनुमति भी देता है।
pacman
C
programming language में लिखा गया है और packaging के लिए
bsdtar(1)
tar
format का उपयोग करता है।
Tip
pacman
package में
makepkg
और
vercmp(8)
जैसे tools शामिल हैं। अन्य उपयोगी tools जैसे
pactree
और
checkupdates
pacman-contrib
में मिलते हैं (
formerly
pacman
का हिस्सा थे)। पूरी list देखने के लिए
pacman -Ql pacman pacman-contrib | grep -E 'bin/.+'
run करें।
Usage
निम्नलिखित केवल उन operations का एक छोटा सा नमूना है जो
pacman
perform कर सकता है। अधिक examples पढ़ने के लिए,
pacman(8)
देखें।
Tip
जिन लोगों ने पहले अन्य Linux distributions का उपयोग किया है, उनके लिए एक सहायक
Pacman/Rosetta
लेख है।
Installing packages
एक package एक archive होता है जिसमें निम्नलिखित होते हैं:
एक application की सभी (compiled) files
application के बारे में metadata, जैसे application name, version, dependencies, आदि।
pacman
के लिए installation files और directives
Arch का package manager
pacman
उन packages को install, update और remove कर सकता है। खुद programs को compile और install करने के बजाय packages का उपयोग करने के कई लाभ हैं:
आसानी से updatable:
pacman
जैसे ही updates available होते हैं, existing packages को update कर देगा
dependency checks:
pacman
आपके लिए dependencies handle करता है, आपको केवल program specify करना होता है और
pacman
उसे उसकी जरूरत के हर दूसरे program के साथ install कर देता है
clean removal:
pacman
के पास एक package की हर file की list होती है; इस तरह, जब आप किसी package को remove करने का निर्णय लेते हैं तो कोई भी file अनजाने में पीछे नहीं छूटती।
Note
Packages में अक्सर
optional dependencies
होती हैं जो ऐसे packages होते हैं जो application को अतिरिक्त functionality प्रदान करते हैं लेकिन इसे चलाने के लिए strictly required नहीं होते। किसी package को install करते समय,
pacman
एक package की optional dependencies को list करेगा, लेकिन वे
pacman.log
में नहीं मिलेंगी। किसी package की optional dependencies देखने के लिए
#Querying package databases
command का उपयोग करें।
जब आप किसी package को केवल किसी अन्य package की (optional) dependency के रूप में install कर रहे हों (अर्थात आपके द्वारा explicitly required नहीं), तो
--asdeps
option का उपयोग करने की सिफारिश की जाती है। विवरण के लिए,
#Installation reason
section देखें।
Warning
Arch में packages install करते समय, package list को
system upgrade
किए बिना refresh करने से बचें (उदाहरण के लिए, जब कोई
package official repositories में नहीं मिलता
)। व्यवहार में,
pacman -Sy
u
package_name
के बजाय
pacman -Sy
package_name
न
चलाएं, क्योंकि पहले वाले से dependency issues हो सकते हैं।
System maintenance#Partial upgrades are unsupported
और
BBS#89328
देखें।
Installing specific packages
एक single package या packages की list को dependencies सहित install करने के लिए, निम्न command चलाएँ:
# pacman -S
package_name1
package_name2
...
Tip
उसी command का उपयोग किसी package को reinstall करने के लिए भी किया जा सकता है।
regex के साथ packages की list install करने के लिए (देखें
यह forum thread
):
# pacman -S $(pacman -Ssq
package_regex
)
कभी-कभी एक package के multiple versions अलग-अलग repositories में होते हैं (जैसे
extra
और
extra-testing
)। इस उदाहरण में
extra
repository से version install करने के लिए, repository को package name के सामने define करना होगा:
# pacman -S extra/
package_name
ऐसे कई packages को install करने के लिए जिनके नामों में समान patterns हैं, कोई curly brace expansion का उपयोग कर सकता है। उदाहरण के लिए:
# pacman -S plasma-{desktop,mediacenter,nm}
इसे जितनी आवश्यकता हो उतने levels तक expand किया जा सकता है:
# pacman -S plasma-{workspace{,-wallpapers},pa}
Virtual packages
Virtual package एक विशेष package होता है जो अपने आप में exist नहीं करता, बल्कि एक या अधिक अन्य packages द्वारा
provided
किया जाता है। Virtual packages अन्य packages को किसी specific package को dependency के रूप में नामित न करने देते हैं, यदि कई candidates हों। Virtual packages को उनके नाम से install नहीं किया जा सकता, इसके बजाय वे आपके system में तब install हो जाते हैं जब आपने कोई ऐसा package install कर लिया होता है जो उस virtual package को
provide
करता है। एक उदाहरण है
dbus-units
package.
Tip
जब multiple candidates हों, तो प्रस्तुत विकल्पों की list पहले
repositories
द्वारा उसी क्रम में sort होगी जिसमें वे
pacman.conf
में appear होते हैं, फिर alphabetically जब एक ही repository से multiple results हों।
Installing package groups
कुछ packages
packages के group
से संबंधित होते हैं जिन्हें सभी एक साथ install किया जा सकता है। उदाहरण के लिए, command चलाने पर:
# pacman -S gnome
आपको
gnome
group में से उन packages को select करने के लिए प्रेरित करेगा जिन्हें आप install करना चाहते हैं।
कभी-कभी एक package group में बहुत सारे packages होते हैं, और हो सकता है कि आप केवल कुछ ही install करना चाहते हों या नहीं करना चाहते हों। उन सभी numbers को enter करने के बजाय जिन्हें आप नहीं चाहते, कभी-कभी निम्नलिखित syntax के साथ packages या packages के ranges को select या exclude करना अधिक convenient होता है:
Enter a selection (default=all): 1-10 15
जो installation के लिए packages 1 से 10 और 15 select करेगा, या:
Enter a selection (default=all): ^5-8 ^2
जो 5 से 8 और 2 को छोड़कर सभी packages को installation के लिए select करेगा।
यह देखने के लिए कि gnome group में कौन से packages हैं, run करें:
$ pacman -Sg gnome
यह देखने के लिए कि कौन से package groups उपलब्ध हैं,
https://archlinux.org/groups/
भी देखें।
Note
यदि list में कोई package पहले से ही system पर install है, तो उसे reinstall किया जाएगा, भले ही वह पहले से up-to-date हो। इस behavior को
--needed
option से override किया जा सकता है।
Removing packages
एक single package को remove करने के लिए, उसकी सभी dependencies को install छोड़ते हुए:
# pacman -R
package_name
किसी package और उसकी dependencies को remove करने के लिए जो किसी अन्य install किए गए package द्वारा required न हों:
# pacman -Rs
package_name
Warning
किसी group को remove करते समय, जैसे
gnome
, यह group में packages के install reason को ignore करता है, क्योंकि यह ऐसे कार्य करता है जैसे group का हर package अलग से listed हो। Dependencies का install reason अभी भी respected होता है।
उपरोक्त कभी-कभी ऐसे group को remove करते समय चलने से मना कर सकता है जिसमें अन्यथा needed packages हों। इस स्थिति में try करें:
# pacman -Rsu
package_name
किसी package, उसकी dependencies और target package पर depend करने वाले सभी packages को remove करने के लिए:
Warning
यह operation recursive है, और सावधानी से उपयोग किया जाना चाहिए क्योंकि यह कई potentially needed packages को remove कर सकता है।
# pacman -Rsc
package_name
किसी package को, जो किसी अन्य package द्वारा required है, dependent package को remove किए बिना remove करने के लिए:
Warning
निम्नलिखित operation system को break कर सकता है और इसे avoid किया जाना चाहिए।
System maintenance#Avoid certain pacman commands
देखें।
# pacman -Rdd
package_name
pacman
कुछ applications को remove करते समय important configuration files को save करता है और उन्हें extension
.pacsave
के साथ नाम देता है। इन backup files के creation को रोकने के लिए
-n
option का उपयोग करें:
# pacman -Rn
package_name
Note
Pacman
उन configurations को नहीं remove करेगा जो application स्वयं create करता है (उदाहरण के लिए home directory में "dotfiles")।
Upgrading packages
Warning
Users से अपेक्षा की जाती है कि वे अपने systems को नियमित रूप से upgrade करने के लिए
System maintenance#Upgrading the system
section में दिए गए मार्गदर्शन का पालन करें और निम्न command को आँख बंद करके न चलाएँ।
Arch केवल full system upgrades का समर्थन करता है। विवरण के लिए
System maintenance#Partial upgrades are unsupported
और
#Installing packages
देखें।
pacman
केवल एक command से system पर सभी packages को update कर सकता है। system कितना up-to-date है, इसके आधार पर इसमें काफी समय लग सकता है। निम्न command repository databases को synchronize करती है
और
system के packages को update करती है, configured repositories में न होने वाले "local" packages को छोड़कर:
# pacman -Syu
Querying package databases
pacman
local package database को
-Q
flag के साथ, sync database को
-S
flag के साथ और files database को
-F
flag के साथ query करता है। प्रत्येक flag के संबंधित suboptions के लिए
pacman -Q --help
,
pacman -S --help
और
pacman -F --help
देखें।
Note
Up-to-date results पाने के लिए files database को query करने से पहले sync करें:
# pacman -Fy
Tip
आप
pacman
files database को weekly refresh करने के लिए
pacman-filesdb-refresh.timer
(
pacman-contrib
package के अंदर प्रदान किया गया) को
enable/start
कर सकते हैं।
pacman
database में packages को खोज सकता है, packages के नाम और descriptions दोनों में खोज कर:
$ pacman -Ss
string1
string2
...
कभी-कभी,
-s
का builtin ERE (Extended Regular Expressions) बहुत सारे unwanted results का कारण बन सकता है, इसलिए इसे केवल package name से match करने तक सीमित करना होता है; description या किसी अन्य field से नहीं:
$ pacman -Ss '^vim-'
पहले से install किए गए packages को खोजने के लिए:
$ pacman -Qs
string1
string2
...
remote packages में package file names खोजने के लिए:
$ pacman -F
string1
string2
...
किसी दिए गए package के बारे में extensive information प्रदर्शित करने के लिए (जैसे उसकी dependencies):
$ pacman -Si
package_name
locally install किए गए packages के लिए:
$ pacman -Qi
package_name
दो
-i
flags pass करने से backup files और उनके modification states की list भी प्रदर्शित होगी:
$ pacman -Qii
package_name
किसी package द्वारा install की गई files की list प्राप्त करने के लिए:
$ pacman -Ql
package_name
किसी remote package द्वारा install की गई files की list प्राप्त करने के लिए:
$ pacman -Fl
package_name
किसी package द्वारा install की गई files की उपस्थिति सत्यापित करने के लिए:
$ pacman -Qk
package_name
k
flag को दो बार pass करने से अधिक गहन जांच होगी।
यह जानने के लिए database query करें कि file system में कोई file किस package से संबंधित है:
$ pacman -Qo
/path/to/file_name
यह जानने के लिए database query करें कि कोई file किस remote package से संबंधित है:
$ pacman -F
/path/to/file_name
उन सभी packages को list करने के लिए जो अब dependencies के रूप में required नहीं हैं (orphans):
$ pacman -Qdt
उन सभी packages को list करने के लिए जो explicitly install किए गए हैं और dependencies के रूप में required नहीं हैं:
$ pacman -Qet
अधिक examples के लिए
pacman/Tips and tricks
देखें।
उन्नत functionality के लिए,
pkgfile
install करें, जो सभी files और उनसे संबंधित packages के साथ एक अलग database का उपयोग करता है।
Pactree
Note
pactree(8)
अब
pacman
package का हिस्सा नहीं है। इसके बजाय यह
pacman-contrib
में पाया जा सकता है।
किसी package का dependency tree देखने के लिए:
$ pactree
package_name
किसी package का dependent tree देखने के लिए,
pactree
में reverse flag
-r
pass करें।
Database structure
pacman
databases आमतौर पर
/var/lib/pacman/sync
पर स्थित होते हैं।
/etc/pacman.conf
में specified प्रत्येक repository के लिए, वहाँ एक corresponding database file होगी। Database files gzipped tar archives होती हैं जिनमें प्रत्येक package के लिए एक directory होती है, उदाहरण के लिए
which
package के लिए:
$ tree which-2.21-5
which-2.21-5
|-- desc
desc
file में meta data होता है जैसे package description, dependencies, file size और MD5 hash.
Cleaning the package cache
Pacman
अपने downloaded packages को
/var/cache/pacman/pkg/
में store करता है और पुराने या uninstalled versions को स्वचालित रूप से नहीं हटाता। इसके कुछ लाभ हैं:
यह किसी package को
downgrade
करने की अनुमति देता है बिना पिछले version को अन्य माध्यमों से प्राप्त करने की आवश्यकता के, जैसे
Arch Linux Archive
।
एक package जो uninstall किया जा चुका है, उसे cache directory से सीधे आसानी से reinstall किया जा सकता है, repository से नए download की आवश्यकता नहीं होती।
हालाँकि, directory को अनिश्चित काल तक size में बढ़ने से रोकने के लिए समय-समय पर cache को साफ करना आवश्यक है।
pacman-contrib
package के अंदर प्रदान की गई
paccache(8)
script, default रूप से install और uninstall किए गए packages के सभी cached versions को हटा देती है, सबसे recent तीन को छोड़कर:
# paccache -r
अप्रयुक्त packages को weekly discard करने के लिए
paccache.timer
को
Enable
और
start
करें। आप service के लिए arguments को
/etc/conf.d/pacman-contrib
में configure कर सकते हैं, उदाहरण के लिए नीचे दो examples के लिए
PACCACHE_ARGS='-k1'
या
PACCACHE_ARGS='-uk0'
के साथ।
Tip
आप इसे हर
pacman
transaction के बाद स्वचालित रूप से चलाने के लिए एक
hook
बना सकते हैं,
paccache-hook
AUR
install
करें और
अन्य examples
देखें।
आप यह भी define कर सकते हैं कि आप कितने recent versions रखना चाहते हैं। केवल एक past version रखने के लिए उपयोग करें:
# paccache -rk1
paccache
की कार्रवाई को uninstalled packages तक सीमित करने के लिए
-u
/
--uninstalled
switch जोड़ें। उदाहरण के लिए uninstalled packages के सभी cached versions को हटाने के लिए, निम्नलिखित का उपयोग करें:
# paccache -ruk0
अधिक options के लिए
paccache -h
देखें।
pacman
के पास cache और उन repositories से leftover database files को साफ करने के लिए कुछ built-in options भी हैं जो अब configuration file
/etc/pacman.conf
में listed नहीं हैं। हालाँकि
pacman
past versions की संख्या रखने की possibility प्रदान नहीं करता है और इसलिए
paccache
default options की तुलना में अधिक aggressive है।
उन सभी cached packages को हटाने के लिए जो वर्तमान में install नहीं हैं, और अप्रयुक्त sync databases को, execute करें:
# pacman -Sc
cache से सभी files को हटाने के लिए, clean switch का दो बार उपयोग करें, यह सबसे aggressive approach है और cache directory में कुछ भी नहीं छोड़ेगा:
# pacman -Scc
Warning
किसी को install किए गए packages के सभी past versions और सभी uninstalled packages को cache से हटाने से बचना चाहिए, जब तक कि किसी को desperately कुछ disk space खाली करने की आवश्यकता न हो। यह बिना उन्हें फिर से download किए packages को downgrade या reinstall करने से रोकेगा।
pkgcacheclean
AUR
और
pacleaner
AUR
cache को साफ करने के दो और alternatives हैं।
Additional commands
बिना install किए package download करें:
# pacman -Sw
package_name
एक 'local' package install करें जो remote repository से नहीं है (उदाहरण के लिए package
AUR
से है):
# pacman -U
/path/to/package/package_name-version.pkg.tar.zst
pacman
के cache में local package की एक copy रखने के लिए, उपयोग करें:
# pacman -U file:///
path/to/package/package_name-version.pkg.tar.zst
एक 'remote' package install करें (
pacman
की configuration files में बताए गए repository से नहीं):
# pacman -U
http://www.example.com/repo/example.pkg.tar.zst
Dry run
pacman
install या remove किए जाने वाले packages को
हमेशा
list करता है, और कोई भी कार्रवाई करने से पहले permission माँगता है।
एक processable format में list प्राप्त करने के लिए, और
-S
,
-U
और
-R
की कार्रवाइयों को रोकने के लिए, आप
-p
का उपयोग कर सकते हैं, जो
--print
का संक्षिप्त रूप है।
इस list को विभिन्न तरीकों से format करने के लिए
--print-format
जोड़ा जा सकता है।
--print-format %n
package versions के बिना एक list return करेगा।
Installation reason
pacman
database install किए गए packages को installation reason के अनुसार दो groups में व्यवस्थित करता है:
explicitly-installed
: वे packages जो शाब्दिक रूप से एक सामान्य
pacman
-S
या
-U
command को pass किए गए थे;
dependencies
: वे packages जो, सामान्यतः कभी भी
pacman
installation command को pass नहीं किए गए थे, लेकिन
implicitly
install किए गए क्योंकि वे explicitly install किए गए packages द्वारा
required
थे।
किसी package को install करते समय, उसके installation reason को
dependency
में बदलना संभव है:
# pacman -S --asdeps
package_name
यह command सामान्यतः इसलिए उपयोग की जाती है क्योंकि explicitly-installed packages
optional packages
प्रदान कर सकते हैं, आमतौर पर non-essential features के लिए जिनके बारे में user को discretion होता है।
Tip
--asdeps
के साथ optional dependencies install करना यह सुनिश्चित करेगा कि, यदि आप
orphans remove
करते हैं, तो
pacman
इस तरह set किए गए optional packages को भी remove कर देगा।
हालाँकि, किसी package को
re
install करते समय, वर्तमान installation reason default रूप से preserved रहता है।
Explicitly-installed packages की list
pacman -Qe
के साथ दिखाई जा सकती है, जबकि dependencies की complementary list
pacman -Qd
के साथ दिखाई जा सकती है।
पहले से install किए गए package के installation reason को बदलने के लिए, execute करें:
# pacman -D --asdeps
package_name
विपरीत operation करने के लिए
--asexplicit
का उपयोग करें।
Note
Upgrade करते समय
--asdeps
और
--asexplicit
options का उपयोग करना, जैसे कि
pacman -Syu
package_name
--asdeps
के साथ, हतोत्साहित किया जाता है। यह न केवल install किए जा रहे package के installation reason को बदल देगा, बल्कि upgrade किए जा रहे packages के भी।
What happens during package install/upgrade/removal
सफल होने पर, एक transaction का workflow पाँच high-level steps के साथ-साथ pre/post transaction hooks का पालन करता है:
Transaction initialize करें यदि कोई database lock नहीं है।
चुनें कि transaction में कौन से packages जोड़े या हटाए जाएंगे।
Transaction prepare करें, flags के आधार पर, sync databases, packages और उनकी dependencies पर sanity checks perform करके।
Transaction commit करें:
जहाँ applicable हो, packages download करें (
_alpm_sync_load
).
यदि पूर्व-मौजूद
pacman
PreTransaction
hooks apply होते हैं, तो वे execute किए जाते हैं।
जो packages to-be-replaced हैं, conflicting हैं, या remove किए जाने के लिए explicitly targeted हैं, उन्हें remove किया जाता है।
यदि add करने के लिए packages हैं, तो प्रत्येक package commit किया जाता है:
यदि package में install script है, तो उसका
pre_install
function execute किया जाता है (या upgraded या removed package के मामले में
pre_upgrade
या
pre_remove
).
pacman
package के पूर्व-मौजूद version से सभी files को delete करता है (upgraded या removed package के मामले में)। हालाँकि, जिन files को package में configuration files के रूप में marked किया गया था, उन्हें रखा जाता है (देखें
Pacnew and Pacsave
).
pacman
package को untar करता है और उसकी files को file system में डालता है (installed या upgraded package के मामले में)। जो files रखी गई और manually modified configuration files (पिछला step देखें) को overwrite करेंगी, उन्हें एक नए नाम (
.pacnew
) के साथ store किया जाता है।
यदि package में install script है, तो उसका
post_install
function execute किया जाता है (या upgraded या removed package के मामले में
post_upgrade
या
post_remove
).
यदि transaction के अंत में मौजूद
pacman
PostTransaction
hooks apply होते हैं, तो वे execute किए जाते हैं।
Transaction और transaction resource (यानी database lock) release करें।
Configuration
pacman
settings
/etc/pacman.conf
में स्थित हैं: यह वह स्थान है जहाँ user प्रोग्राम को desired तरीके से काम करने के लिए configure करता है। Configuration file के बारे में गहन जानकारी
pacman.conf(5)
में पाई जा सकती है।
General options
General options
[options]
section में हैं। यहाँ क्या किया जा सकता है, इसकी जानकारी के लिए
pacman.conf(5)
पढ़ें या default
pacman.conf
में देखें।
Comparing versions before updating
उपलब्ध packages के old और new versions देखने के लिए,
/etc/pacman.conf
में "VerbosePkgLists" line को uncomment करें।
pacman -Syu
का output इस प्रकार होगा:
Package (6)             Old Version  New Version  Net Change  Download Size

extra/libmariadbclient  10.1.9-4     10.1.10-1      0.03 MiB       4.35 MiB
extra/libpng            1.6.19-1     1.6.20-1       0.00 MiB       0.23 MiB
extra/mariadb           10.1.9-4     10.1.10-1      0.26 MiB      13.80 MiB
Parallel downloads
एक साथ (समानांतर) download किए जा रहे packages की संख्या
/etc/pacman.conf
में
[options]
के तहत
ParallelDownloads
option के साथ configure की जाती है।
pacman
package के साथ shipped
/etc/pacman.conf
इसे
5
पर set करता है। यदि option unset है, तो packages sequentially download किए जाएंगे।
Skip package from being upgraded
Warning
Packages को skip करने में सावधानी बरतें, क्योंकि
partial upgrades
समर्थित नहीं हैं।
सिस्टम को
upgrade
करते समय किसी specific package को skip करने के लिए,
[options]
section में यह line जोड़ें:
IgnorePkg=linux
कई packages के लिए space-separated list का उपयोग करें, या अतिरिक्त
IgnorePkg
lines का उपयोग करें। साथ ही,
glob
patterns का उपयोग किया जा सकता है। यदि आप packages को केवल एक बार skip करना चाहते हैं, तो आप command-line पर
--ignore
option का भी उपयोग कर सकते हैं - इस बार comma-separated list के साथ।
Ignored packages को
pacman -S
का उपयोग करके upgrade करना अभी भी संभव होगा: इस स्थिति में
pacman
आपको याद दिलाएगा कि packages को
IgnorePkg
statement में शामिल किया गया है।
Skip package group from being upgraded
Warning
Package groups को skip करने में सावधानी बरतें, क्योंकि
partial upgrades
समर्थित नहीं हैं।
Packages की तरह, पूरे package group को skip करना भी संभव है:
IgnoreGroup=gnome
Skip file from being upgraded
NoUpgrade
directive के साथ listed सभी files को package install/upgrade के दौरान कभी नहीं छुआ जाएगा, और नई files
.pacnew
extension के साथ install की जाएंगी।
NoUpgrade=
path/to/file
कई files को इस तरह specified किया जा सकता है:
NoUpgrade=
path/to/file1 path/to/file2
Note
Path package archive में files को संदर्भित करता है। इसलिए, leading slash शामिल न करें।
Skip files from being installed to system
Specific files या directories के installation को हमेशा skip करने के लिए उन्हें
NoExtract
के तहत list करें। उदाहरण के लिए, bash completion scripts को install करने से बचने के लिए, उपयोग करें:
NoExtract=usr/share/bash-completion/completions/*
बाद के rules पिछले ones को override करते हैं, और आप
!
जोड़कर किसी rule को negate कर सकते हैं।
Maintain several configuration files
यदि आपके पास कई configuration files हैं (उदाहरण के लिए main configuration और
testing
repository enabled के साथ configuration) और आपको configurations के बीच options share करने हों, तो आप configuration files में declared
Include
option का उपयोग कर सकते हैं, उदाहरण के लिए:
Include =
/path/to/common/settings
जहाँ
/path/to/common/settings
file में दोनों configurations के लिए समान options होते हैं।
Hooks
pacman
/usr/share/libalpm/hooks/
directory से pre- और post-transaction hooks चला सकता है; अधिक directories को
pacman.conf
में
HookDir
option के साथ specified किया जा सकता है, जो default रूप से
/etc/pacman.d/hooks
है। Hook file names के अंत में
.hook
होना चाहिए।
pacman
hooks interactive नहीं हैं।
pacman
hooks का उपयोग, उदाहरण के लिए, packages के installation के दौरान system users और files को स्वचालित रूप से create करने के लिए
systemd-sysusers
और
systemd-tmpfiles
के साथ combination में किया जाता है। उदाहरण के लिए,
tomcat8
AUR
specifies करता है कि वह
tomcat8
नामक एक system user और इस user के स्वामित्व वाली कुछ directories चाहता है।
pacman
hooks
systemd-sysusers.hook
और
systemd-tmpfiles.hook
systemd-sysusers
और
systemd-tmpfiles
को invoke करते हैं जब
pacman
यह निर्धारित करता है कि
tomcat8
AUR
में users और tmp files specified करने वाली files हैं।
alpm hooks के बारे में अधिक जानकारी के लिए,
alpm-hooks(5)
देखें।
Repositories and mirrors
विशेष
[options]
section के अलावा,
pacman.conf
में प्रत्येक अन्य
[section]
एक package repository को परिभाषित करता है जिसका उपयोग किया जाना है। एक
repository
packages का एक
logical
संग्रह है, जो
physically
एक या अधिक servers पर store होते हैं: इस कारण प्रत्येक server को repository के लिए एक
mirror
कहा जाता है।
Repositories को
official
और
unofficial
के बीच distinguish किया जाता है। Configuration file में repositories का क्रम महत्वपूर्ण है; पहले listed repositories बाद में listed repositories पर precedence लेंगी जब दो repositories में packages के identical names हों, चाहे version number कुछ भी हो। किसी repository को add करने के बाद उसका उपयोग करने के लिए, आपको पहले पूरे system को
upgrade
करना होगा।
प्रत्येक repository section अपने mirrors की list को सीधे या
Include
directive के माध्यम से एक dedicated external file में define करने की अनुमति देता है; उदाहरण के लिए, official repositories के mirrors
/etc/pacman.d/mirrorlist
से included हैं। Mirror configuration के लिए
Mirrors
लेख देखें।
Package cache directory
pacman
downloaded package files को cache में store करता है,
pacman.conf
के
[options]
section में
CacheDir
द्वारा निरूपित एक directory में (यदि set न हो तो default
/var/cache/pacman/pkg/
होता है)।
Cache directory समय के साथ बढ़ सकती है, भले ही install किए गए packages के केवल सबसे fresh versions ही रखे जाएँ।
यदि आप उस directory को किसी अधिक convenient स्थान पर ले जाना चाहते हैं, तो निम्न में से एक करें:
pacman.conf
में
CacheDir
option को new directory पर set करें। Trailing slash बनाए रखना याद रखें।
यह recommended solution है
।
/var/cache/pacman/pkg/
में एक dedicated partition या उदाहरण के लिए
Btrfs subvolume
mount करें।
चयनित directory को
/var/cache/pacman/pkg/
में bind-mount करें।
Warning
/var/cache/pacman/pkg/
directory को किसी अन्य स्थान पर symlink न करें
। यह
pacman
को गलत व्यवहार करने का कारण
बनेगा
, खासकर जब
pacman
स्वयं को update करने का प्रयास करता है।
Package security
pacman
package signatures का समर्थन करता है, जो packages में सुरक्षा की एक अतिरिक्त layer जोड़ते हैं। Default configuration,
SigLevel = Required DatabaseOptional
, सभी packages के लिए वैश्विक स्तर पर signature verification सक्षम करता है। इसे per-repository
SigLevel
lines द्वारा override किया जा सकता है। Package signing और signature verification के बारे में अधिक जानकारी के लिए,
pacman-key
देखें।
Troubleshooting
"Failed to commit transaction (conflicting files)" error
यदि आपको निम्नलिखित error दिखाई देता है:
[१]
error: could not prepare transaction
error: failed to commit transaction (conflicting files)
package
:
/path/to/file
exists in filesystem
Errors occurred, no packages were upgraded.
ऐसा इसलिए हो रहा है क्योंकि
pacman
ने एक file conflict detect किया है, और design के अनुसार, आपके लिए files को overwrite नहीं करेगा। यह design के अनुसार है, कोई flaw नहीं।
समस्या आमतौर पर हल करने में trivial है (हालाँकि सुनिश्चित करने के लिए, आपको यह पता लगाने का प्रयास करना चाहिए कि ये files पहले स्थान पर वहाँ कैसे पहुँचीं)। एक सुरक्षित तरीका यह है कि पहले जाँच करें कि क्या कोई अन्य package file का स्वामी है (
pacman -Qo
/path/to/file
)। यदि file किसी अन्य package के स्वामित्व में है, तो
bug report file करें
। यदि file किसी अन्य package के स्वामित्व में नहीं है, तो उस file को rename करें जो "filesystem में exists" है और update command को फिर से जारी करें। यदि सब ठीक रहता है, तो file को बाद में हटाया जा सकता है।
यदि आपने
pacman
का उपयोग किए बिना मैन्युअल रूप से कोई प्रोग्राम install किया था, उदाहरण के लिए
make install
के माध्यम से, तो आपको इस प्रोग्राम को उसकी सभी files के साथ remove/uninstall करना होगा।
Pacman tips#Identify files not owned by any package
भी देखें।
प्रत्येक install किया गया package एक
/var/lib/pacman/local/
package-version
/files
file प्रदान करता है जिसमें इस package के बारे में metadata होता है। यदि यह file corrupted हो जाती है, खाली है या गायब हो जाती है, तो इसके परिणामस्वरूप package को update करने का प्रयास करते समय
file exists in filesystem
errors आते हैं। ऐसी error आमतौर पर केवल एक package से संबंधित होती है। मैन्युअल रूप से rename करने और बाद में प्रश्न में package की सभी files को हटाने के बजाय, आप स्पष्ट रूप से
pacman -S --overwrite
glob
package
चला सकते हैं ताकि
pacman
को उन files को overwrite करने के लिए मजबूर किया जा सके जो
glob
से match करती हैं।
Warning
सामान्यतः
--overwrite
switch का उपयोग करने से बचें।
System maintenance#Avoid certain pacman commands
देखें।
"Failed to commit transaction (invalid or corrupted package)" error
This article or section is out of date.
Reason:
With pacman 7.1.0, expired keys should have updates fetched automatically (reliability depends on key infrastructure...) - this should remove the "package is corrupt" messages when keys need updated. (Discuss in
Talk:Pacman (हिन्दी)
)
/var/cache/pacman/pkg/
में
.part
files (partially downloaded packages) देखें और उन्हें हटाएँ (अक्सर
pacman.conf
में कस्टम
XferCommand
के उपयोग के कारण होता है)।
# find /var/cache/pacman/pkg/ -iname "*.part" -delete
यही error तब भी appear हो सकता है यदि
archlinux-keyring
out-of-date है, जो
pacman
को signatures verify करने से रोकता है। इसे ठीक करने और भविष्य में इससे बचने के तरीके के लिए
Pacman/Package signing#Upgrade system regularly
देखें।
"Failed to init transaction (unable to lock database)" error
जब
pacman
package database को बदलने वाला होता है, उदाहरण के लिए package install करना, तो यह
/var/lib/pacman/db.lck
पर एक lock file बनाता है। यह
pacman
के किसी अन्य instance को एक ही समय में package database को बदलने का प्रयास करने से रोकता है।
यदि
pacman
database को बदलते समय बाधित होता है, तो यह stale lock file रह सकती है। यदि आप सुनिश्चित हैं कि
pacman
का कोई instance नहीं चल रहा है, तो lock file हटाएँ:
# rm /var/lib/pacman/db.lck
Tip
आप यह सत्यापित करने के लिए root के रूप में
fuser /var/lib/pacman/db.lck
चला सकते हैं कि क्या कोई process अभी भी इसका उपयोग कर रहा है।
Packages cannot be retrieved on installation
यह error
Not found in sync db
,
Target not found
या
Failed retrieving file
के रूप में प्रकट होता है।
सबसे पहले, सुनिश्चित करें कि package वास्तव में exists करता है। यदि package के exists होने का certainty है, तो आपकी package list out-of-date हो सकती है। सभी package lists को refresh करने और upgrade करने के लिए
pacman -Syu
चलाने का प्रयास करें। यह भी सुनिश्चित करें कि चयनित
mirrors
up-to-date हैं और
repositories
correctly configured हैं। आप mirrors को up-to-date रखने के लिए
Reflector
का भी उपयोग कर सकते हैं।
यदि
pacman
रिपोर्ट करता है कि update करने के लिए कुछ नहीं है, लेकिन
Failed retrieving file
error print होता रहता है, तो
pacman -Syyu
के साथ
database download को force
करने पर विचार करें। सामान्य परिस्थितियों में इसकी कभी आवश्यकता नहीं होती है, इसलिए
mirror की status और consistency
का अधिक बारीकी से निरीक्षण करें।
यह भी हो सकता है कि package वाली repository आपके system पर enabled न हो, उदाहरण के लिए package
multilib
repository में हो सकता है, लेकिन
multilib
आपके
pacman.conf
में enabled न हो।
FAQ#Why is there only a single version of each shared library in the official repositories?
भी देखें।
Fixing an unbootable system caused by an interrupted upgrade
This article or section needs expansion.
Reason:
Multiple things to consider. (Discuss in
Talk:Pacman (हिन्दी)#More details in pacman crashes during an update
)
चाहे power loss, kernel panic या hardware failure के कारण, कोई update बाधित हो सकता है। अधिकांश मामलों में, बहुत अधिक damage नहीं होगा लेकिन system likely unbootable होगा।
एक
USB flash installation medium
तैयार करें और उसे boot करें।
root filesystem और आपके
ESP
को
Mount
करें।
mounted root filesystem में
arch-chroot
करें।
/var/log/pacman.log
जाँचें और failed transaction के दौरान upgrade किए गए packages की
entire
list को
pacman -Syu
में supply करके सटीक update को replicate करें, जिससे यह मूल update को resume करते हुए reinstall कर सके:
# pacman -Syu $(grep "\[
2025-07-27T22.*
\] \[ALPM\] upgraded" /var/log/pacman.log | cut -d " " -f4 | tr "\n" " ")
सही scriptlets और hooks के चलने को सुनिश्चित करने के लिए
exact
upgrade को replicate करना आवश्यक है।
pacman crashes during an upgrade
यदि
pacman
packages को remove करते समय "database write" error के साथ crash करता है, और उसके बाद packages को reinstall या upgrade करना विफल हो जाता है, तो निम्नलिखित करें:
Arch
USB flash installation medium
का उपयोग करके boot करें। अधिमानतः एक recent media का उपयोग करें ताकि
pacman
version system से match करे या नया हो।
System के root filesystem को mount करें, उदाहरण के लिए root के रूप में
mount /dev/sdaX /mnt
, और
df -h
के साथ जाँचें कि mount में पर्याप्त space है।
proc, sys और dev filesystems को भी mount करें:
mount -t proc proc /mnt/proc; mount --rbind /sys /mnt/sys; mount --rbind /dev /mnt/dev
यदि system default database और directory locations का उपयोग करता है, तो आप अब root के रूप में
pacman --root=/mnt --cachedir=/mnt/var/cache/pacman/pkg -Syu
के माध्यम से system के
pacman
database को update और upgrade कर सकते हैं।
वैकल्पिक रूप से, यदि आप update/upgrade नहीं कर सकते, तो
Pacman/Tips and tricks#Reinstalling all packages
देखें।
Upgrade के बाद, not upgraded लेकिन still broken packages के लिए double-check करने का एक तरीका:
find /mnt/usr/lib -size 0
उसके बाद
pacman --root /mnt --cachedir=/mnt/var/cache/pacman/pkg -S
package
के माध्यम से किसी भी still broken package को re-install करें।
pacman: command not found
यदि
/var/cache/pacman/pkg
एक symlink है, तो
pacman
इसके बजाय एक directory बनाने का प्रयास करेगा और इस प्रकार self-upgrade के दौरान इस symlink को हटा देगा। इससे update विफल हो जाएगा। परिणामस्वरूप,
/usr/bin/pacman
और
pacman
package की अन्य contents गायब होंगी।
कभी भी
/var/cache/pacman/pkg
को symlink न करें क्योंकि यह
pacman
द्वारा नियंत्रित है। इसके बजाय
CacheDir
option या bind mount का उपयोग करें;
#Package cache directory
देखें।
यदि आप पहले ही इस समस्या का सामना कर चुके हैं और अपना system तोड़ चुके हैं, तो आप
pacman
को पुनर्स्थापित करने के लिए package से
/usr
contents को मैन्युअल रूप से extract कर सकते हैं और फिर इसे ठीक से reinstall कर सकते हैं; विवरण के लिए
FS#73306
और
संबंधित forum thread
देखें।
Manually reinstalling pacman
Using pacman-static
pacman-static
AUR
pacman
का statically compiled version है, इसलिए यह तब भी चलने में सक्षम होगा जब system पर libraries काम नहीं कर रही हों। यह तब भी काम आ सकता है जब
partial upgrade
किया गया हो और
pacman
अब नहीं चल सकता।
Using a precompiled pacman-static binary when PKGBUILD build fails
कुछ स्थितियों में, आपका system
makepkg
चलाने या
pacman-static
AUR
package build करने के लिए बहुत अधिक broken हो सकता है (उदाहरण के लिए, missing या incompatible libraries के कारण)। इस स्थिति में, आप किसी trusted source से एक precompiled
pacman-static
binary download कर सकते हैं। यह static binary system libraries पर निर्भर नहीं करता है और इसका उपयोग आपके system पर एक कार्यशील
pacman
को पुनर्स्थापित करने के लिए किया जा सकता है।
एक outdated binary
https://pkgbuild.com/~morganamilo/pacman-static/x86_64/bin/pacman-static
द्वारा प्रदान की गई है।
इसे download करें, इसे
executable
बनाएँ, फिर:
# ./pacman-static -Syu pacman
यह आपके system को update करेगा और
pacman
को reinstall करेगा, जिससे missing shared libraries से संबंधित broken dependencies ठीक हो जाएँगी।
Using an external pacman
यदि
pacman-static
भी काम नहीं करता है, तो बाहरी
pacman
का उपयोग करके recover करना संभव है। ऐसा करने के सबसे आसान तरीकों में से एक है
archiso
का उपयोग करना और केवल
--sysroot
या
--root
का उपयोग करके उस system के mount point को specify करना जिस पर operation perform करना है।
--sysroot
के लिए आवश्यक necessary filesystems को mount करने के तरीके पर
Chroot#Using chroot
देखें।
By manually extracting
Warning
इस approach का उपयोग करके अपने system को और भी बदतर तोड़ना अत्यंत आसान है। इसे केवल अंतिम उपाय के रूप में उपयोग करें यदि
#pacman crashes during an upgrade
की विधि कोई option नहीं है।
भले ही
pacman
बुरी तरह से broken हो, आप latest packages को download करके और उन्हें सही locations पर extract करके इसे मैन्युअल रूप से ठीक कर सकते हैं। करने के लिए मोटे तौर पर steps हैं:
pacman
की dependencies install करने के लिए निर्धारित करें
प्रत्येक package को अपनी पसंद के
mirror
से download करें
प्रत्येक package को root में extract करें
तदनुसार package database को update करने के लिए इन packages को
pacman -S --overwrite
के साथ reinstall करें
एक full system upgrade करें
यदि आपके पास एक स्वस्थ Arch system उपलब्ध है, तो आप इसके साथ dependencies की पूरी list देख सकते हैं:
$ pacman -Q $(pactree -u pacman)
लेकिन आपकी समस्या के आधार पर आपको केवल उनमें से कुछ को update करने की आवश्यकता हो सकती है। किसी package को extract करने का एक उदाहरण है:
# tar -xvpwf
package.tar.zst
-C / --exclude .PKGINFO --exclude .INSTALL --exclude .MTREE --exclude .BUILDINFO
Interactive mode के लिए
w
flag के उपयोग पर ध्यान दें। Non-interactively चलाना बहुत जोखिम भरा है क्योंकि आप एक महत्वपूर्ण file को overwrite कर सकते हैं। सही क्रम में packages को extract करने का भी ध्यान रखें (अर्थात पहले dependencies)।
यह forum post
इस प्रक्रिया का एक उदाहरण contains करता है जहाँ केवल कुछ
pacman
dependencies broken हैं।
"Unable to find root device" error after rebooting
सबसे अधिक संभावना है कि
kernel
update के दौरान
initramfs
corrupted हो गया (
pacman
के
--overwrite
option का अनुचित उपयोग एक कारण हो सकता है)। दो options हैं; पहले,
Fallback
entry try करें।
Tip
यदि आपने
Fallback
entry हटा दी है, तो आप boot loader menu दिखाई देने पर हमेशा
Tab
key (Syslinux के लिए) या
e
(GRUB या systemd-boot के लिए) दबा सकते हैं, इसे
initramfs-linux-fallback.img
में rename करें और नए parameters के साथ boot करने के लिए
Enter
या
b
(आपके
boot loader
के आधार पर) दबाएँ।
एक बार system शुरू हो जाने पर, initramfs image को rebuild करने के लिए console या terminal से यह command (stock
linux
kernel के लिए) चलाएँ:
# mkinitcpio -p linux
यदि यह काम नहीं करता है, तो एक current Arch release (CD/DVD या USB stick) से, अपने root और boot partitions को क्रमशः
/mnt
और
/mnt/boot
पर
mount
करें। फिर
arch-chroot
का उपयोग करके
chroot
करें:
# arch-chroot /mnt
# pacman -Syu mkinitcpio systemd linux
Note
यदि आपके पास current release नहीं है या यदि आपके पास केवल कोई अन्य "live" Linux distribution पड़ा है, तो आप पुराने तरीके से
chroot
कर सकते हैं। जाहिर है, केवल
arch-chroot
script चलाने की तुलना में अधिक typing होगी।
यदि
pacman
Could not resolve host
के साथ विफल होता है, तो कृपया
अपना internet connection जाँचें
।
यदि आप arch-chroot या chroot environment में प्रवेश नहीं कर सकते लेकिन packages को re-install करने की आवश्यकता है, तो आप अपने root partition पर
pacman
का उपयोग करने के लिए command
pacman --sysroot /mnt -Syu foo bar
का उपयोग कर सकते हैं।
Kernel (
linux
package) को reinstall करना स्वचालित रूप से
mkinitcpio -p linux
के साथ initramfs image को re-generate कर देगा। इसे अलग से करने की कोई आवश्यकता नहीं है।
बाद में, यह अनुशंसा की जाती है कि आप
exit
,
umount /mnt/{boot,}
और
reboot
चलाएँ।
"Warning: current locale is invalid; using default "C" locale" error
जैसा कि error message कहता है, आपका locale सही ढंग से configured नहीं है।
Locale
देखें।
Missing locales warning messages
जब locale files को intentionally
bleachbit
या
localepurge
AUR
जैसे tools द्वारा हटा दिया जाता है, तो
pacman
package updates के दौरान missing locales के बारे में warnings जारी कर सकता है।
इन warnings को दबाने के लिए, आप
pacman.conf
में
CheckSpace
option को comment out कर सकते हैं। ध्यान रखें कि CheckSpace को disable करने से सभी package installations के लिए space-checking functionality बंद हो जाती है, इसलिए इस workaround का उपयोग केवल तभी करें जब आपके पास disk space की निगरानी के लिए वैकल्पिक साधन हों।
pacman does not honor proxy settings
सुनिश्चित करें कि relevant environment variables (
$http_proxy
,
$ftp_proxy
आदि) set up हैं। यदि आप
sudo
के साथ
pacman
का उपयोग करते हैं, तो आपको sudo को
इन environment variables को pacman में pass
करने के लिए configure करना होगा। साथ ही, सुनिश्चित करें कि
dirmngr
के configuration में
/etc/pacman.d/gnupg/dirmngr.conf
में
honor-http-proxy
हो ताकि keys को refresh करते समय proxy का सम्मान किया जा सके।
How do I reinstall all packages, retaining information on whether something was explicitly installed or as a dependency?
सभी native packages को reinstall करने के लिए:
pacman -Qnq | pacman -S -
या
pacman -S $(pacman -Qnq)
(
-S
option default रूप से installation reason को preserve करता है)।
फिर आपको सभी foreign packages को reinstall करना होगा, जिन्हें
pacman -Qmq
के साथ list किया जा सकता है।
"Cannot open shared object file" error
ऐसा लगता है कि पिछले
pacman
transaction ने
pacman
के लिए आवश्यक shared libraries को हटा दिया या corrupted कर दिया।
इस स्थिति से उबरने के लिए, आपको आवश्यक libraries को मैन्युअल रूप से अपने filesystem में unpack करना होगा। पहले पता करें कि किस package में missing library है और फिर उसे
pacman
cache (
/var/cache/pacman/pkg/
) में locate करें। आवश्यक shared library को filesystem में unpack करें। यह
pacman
को चलाने की अनुमति देगा।
अब आपको broken package को
reinstall
करना होगा। ध्यान दें कि आपको
--overwrite
flag का उपयोग करना होगा क्योंकि आपने अभी system files unpack की हैं और
pacman
को इसके बारे में पता नहीं है।
pacman
हमारी shared library file को package वाली file से सही ढंग से replace कर देगा।
बस इतना ही। बाकी system को update करें।
Freeze of package downloads
नेटवर्क समस्याओं के बारे में कुछ issues reported किए गए हैं जो
pacman
को repositories update/synchronize करने से रोकते हैं।
[२]
[३]
Arch Linux को natively install करते समय, default
pacman
file downloader को एक alternative से replace करके इन issues को हल किया गया है (अधिक जानकारी के लिए
Improve pacman performance
देखें)। Arch Linux को
VirtualBox
में guest OS के रूप में install करते समय, machine properties में
NAT
के बजाय
Host interface
का उपयोग करके भी इस issue को संबोधित किया गया है।
Failed retrieving file 'core.db' from mirror
यदि आपको सही
mirrors
के साथ यह error message प्राप्त होता है, तो एक अलग
name server
set करने का प्रयास करें।
error: 'local-package.pkg.tar': permission denied
यदि आप sshfs mount पर
pacman -U
का उपयोग करके package install करना चाहते हैं और यह error प्राप्त करते हैं, तो package को किसी local directory में ले जाएँ और फिर से install करने का प्रयास करें।
error: could not determine cachedir mount point /var/cache/pacman/pkg
उदाहरण के लिए, chroot environment के अंदर
pacman -Syu
execute करने पर एक error का सामना करना पड़ता है:
error: could not determine cachedir mount point /var/cache/pacman/pkg
error: failed to commit transaction (not enough free disk space)
यह अक्सर chroot directory के mountpoint न होने के कारण होता है जब chroot में प्रवेश किया जाता है। समाधान के लिए
Install Arch Linux from existing Linux#Downloading basic tools
पर दिए गए note को देखें, और chroot directory को mountpoint बनाने के लिए bind mounting का उपयोग करने के स्पष्टीकरण और उदाहरण के लिए
arch-chroot(8)
देखें।
error: GPGME error: No data
यदि आप packages update करने में असमर्थ हैं और यह error प्राप्त करते हैं, तो update का प्रयास करने से पहले
rm -r /var/lib/pacman/sync/
try करें।
यदि sync files को हटाने से मदद नहीं मिलती है, तो update का प्रयास करने से पहले
file /var/lib/pacman/sync/*
का उपयोग करके जाँचें कि sync files
gzip compressed data
हैं। कोई router या proxy downloads को corrupt कर सकता है। Corruption संभवतः HTML type हो सकता है।
यदि sync files सही type की हैं, तो mirror server के साथ कोई issue हो सकता है।
pacman-conf -r core
और
pacman-conf -r extra
के साथ उपयोग में लिए जा रहे mirror server(s) को देखें। पहले returned url को browser में paste करें और जाँचें कि कोई file listing return होती है। यदि mirror कोई error return करता है, तो उसे
/etc/pacman.d/mirrorlist
में comment out करें। आप
mirrors
को update या re-ranking करने का प्रयास कर सकते हैं।
error: GPGME error: General error and ":: File /var/cache/pacman/pkg/<package>.pkg.tar.zst is corrupted (invalid or corrupted package (PGP signature)).
यदि यह error occur होता है और आप, उदाहरण के लिए, अपने system या किसी भी package को update करने में असमर्थ हैं, तो यह संभव है कि आपने
DISPLAY
को एक blank value पर set कर रखा है, जो GPG-Flow को तोड़ता हुआ प्रतीत होता है।
इस स्थिति में,
unset DISPLAY
या इसे एक arbitrary value पर set करना सबसे अधिक संभावना है कि फिर से update करने की अनुमति देगा, यदि ऊपर दिए गए किसी अन्य option ने अभी तक काम नहीं किया है। आगे के विवरण के लिए
this
post देखें।
Reinstall broken or out-of-sync packages
कोई यह जाँचने के लिए
pacman -Qk $pkg
का उपयोग कर सकता है कि
$pkg
package की installed files उसके database version की files से match करती हैं या नहीं। कई packages के लिए, कोई उन सभी packages को reinstall करने के लिए निम्नलिखित loop का उपयोग कर सकता है जिनमें missing file(s) हैं:
# LC_ALL=C.UTF-8 pacman -Qk 2>/dev/null | grep -v ' 0 missing files' | cut -d: -f1 |
    while read -r package; do
        pacman -S "$package" --noconfirm
    done
मान लीजिए कि
/var/lib/pacman
में स्थित आपका local database
/
filesystem में install किए गए packages की तुलना में अधिक up-to-date है (
उदाहरण के लिए
, partial rollback के कारण), तो यह method root filesystem को local database के साथ re-synchronize करने के लिए उपयुक्त है।
See also
libalpm(3)
pacman(8)
pacman.conf(5)
repo-add(8)