https://wiki.archlinux.org/api.php?action=feedcontributions&user=Cravix&feedformat=atomArchWiki - User contributions [en]2024-03-28T09:49:04ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Improve_pacman_performance&diff=263385Improve pacman performance2013-06-19T05:00:21Z<p>Cravix: /* Using aria2 */ simpilify cmd args</p>
<hr />
<div>[[Category:Package management]]<br />
[[de:Pacman beschleunigen]]<br />
[[es:Improve Pacman Performance]]<br />
[[fr:Ameliorer Pacman]]<br />
[[it:Improve Pacman Performance]]<br />
[[pl:Optymalizacja Pacmana]]<br />
[[ru:Improve Pacman Performance]]<br />
[[tr:Pacman_verimini_arttırmak]]<br />
[[zh-CN:Improve Pacman Performance]]<br />
[[zh-TW:Improve Pacman Performance]]<br />
== Improving Database Access Speeds ==<br />
<br />
Pacman stores all package information in a collection of small files, one for each package. Improving database access speeds reduces the time taken in database-related tasks, e.g. searching packages and resolving package dependencies. The safest and easiest method is to run as root:<br />
<br />
# pacman-optimize<br />
<br />
This will attempt to put all the small files together in one (physical) location on the hard disk so that the hard disk head does not have to move so much when accessing all the packages. This method is safe, but is not foolproof. It depends on your filesystem, disk usage and empty space fragmentation. Another more aggressive option would be to first remove uninstalled packages from cache and to remove unused repositories before database optimization:<br />
<br />
# pacman -Sc && pacman-optimize<br />
<br />
== Improving Download Speeds ==<br />
<br />
{{Note|If your download speeds have been reduced to a crawl, ensure you are using one of the many [[mirrors]] and not ftp.archlinux.org, which is [https://www.archlinux.org/news/302/ throttled since March 2007].}}<br />
<br />
Pacman's speed in downloading packages can be improved by using a different application to download packages instead of Pacman's built-in file downloader.<br />
<br />
In all cases, make sure you have the latest Pacman before doing any modifications.<br />
<br />
# pacman -Syu<br />
<br />
=== Using Powerpill ===<br />
Powerpill is a full wrapper for Pacman that uses parallel and segmented downloads to speed up the download process. Normally Pacman will download one package at a time, waiting for it to complete before beginning the next download. Powerpill takes a different approach: it tries to download as many packages as possible at once.<br />
<br />
The [[Powerpill | Powerpill wiki page]] provides basic configuration and usage examples along with package and upstream links.<br />
<br />
=== Using powerpill-light (deprecated) ===<br />
[http://xyne.archlinux.ca/projects/pacman2aria2/ pacman2aria2] provides a script named "powerpill-light", which was a stopgap created after the deprecation of the original powerpill written in Perl. Now that [[Powerpill | Powerpill]] has been re-released, powerpill-light is deprecated.<br />
<br />
=== Using wget ===<br />
<br />
This is also very handy if you need more powerful proxy settings than pacman's built-in capabilities. <br />
<br />
To use {{ic|wget}}, first install it with {{ic|pacman -S wget}} and then modify {{ic|/etc/pacman.conf}} by adding the following line to the {{ic|[options]}} section:<br />
<br />
XferCommand = /usr/bin/wget -c --passive-ftp -c %u<br />
<br />
Instead of putting {{ic|wget}} parameters in {{ic|/etc/pacman.conf}}, you can also modify the {{ic|wget}} configuration file directly (the system-wide file is {{ic|/etc/wgetrc}}, per user files are {{ic|$HOME/.wgetrc}}.<br />
<br />
=== Using aria2 ===<br />
<br />
[[aria2]] is a lightweight download utility with support for resumable and segmented HTTP/HTTPS and FTP downloads. [http://aria2.sourceforge.net/ aria2] allows for multiple and simultaneous HTTP/HTTPS and FTP connections to an Arch mirror, which should result in an increase in download speeds for both file and package retrieval.<br />
<br />
{{Note|Using aria2c in Pacman's XferCommand will '''not''' result in parallel downloads of multiple packages. Pacman invokes the XferCommand with a single package at a time and waits for it to complete before invoking the next. To download multiple packages in parallel, see the [[Improve_Pacman_Performance#Using_Powerpill | powerpill]] section above.}}<br />
<br />
==== Installation ====<br />
<br />
Download and install {{Pkg|aria2}} and its dependencies:<br />
<br />
# pacman -S aria2<br />
<br />
==== Configuration ====<br />
<br />
Edit {{ic|/etc/pacman.conf}} by adding the following line to the {{ic|[options]}} section:<br />
<br />
{{bc|1=XferCommand = /usr/bin/aria2c --allow-overwrite=true -c --file-allocation=none --log-level=error -m2 -x2 --max-file-not-found=5 -k5M --no-conf -Rtrue --summary-interval=60 -t5 -d / -o %o %u}}<br />
<br />
==== Option Details ====<br />
<br />
; {{Ic|/usr/bin/aria2c}}: The full PATH to the aria2 executable.<br />
; {{Ic|1=--allow-overwrite=true}}: Restart download if a corresponding control file does not exist. (Default: false)<br />
; {{Ic|-c, --continue}}: Continue downloading a partially downloaded file if a corresponding control file exists.<br />
; {{Ic|1=--file-allocation=none}}: Do not pre-allocate file space before download begins. (Default: prealloc) <b><sup>1</sup></b><br />
; {{Ic|1=--log-level=error}}: Set log level to output errors only. (Default: debug)<br />
; {{Ic|1=-m2, --max-tries=2}}: Make 2 maximum attempts to download specified file(s) per mirror. (Default: 5)<br />
; {{Ic|1=-x2, --max-connection-per-server=2}}: Set a maximum of 2 connections to each mirror per file. (Default: 1)<br />
; {{Ic|1=--max-file-not-found=5}}: Force download to fail if a single byte is not received within 5 attempts. (Default: 0)<br />
; {{Ic|1=-k5M, --min-split-size=5M}}: Only split the file if the size is larger than 2;5MB = 10MB. (Default: 20M)<br />
; {{Ic|--no-conf}}: Disable loading an {{ic|aria2.conf}} file if it exists. (Default: {{ic|~/.aria2/aria2.conf}})<br />
; {{Ic|1=-Rtrue, --remote-time=true}}: Apply timestamps of the remote file(s) and apply them to the local file(s). (Default: false)<br />
; {{Ic|1=--summary-interval=60}}: Output download progress summary every 60 seconds. (Default: 60) <b><sup>2</sup></b><br />
; {{Ic|1=-t5, --timeout=5}}: Set a 5 second timeout per mirror after a connection is established. (Default: 60)<br />
; {{Ic|-d, --dir}}: The directory to store the downloaded file(s) as specified by [[pacman|pacman]].<br />
; {{Ic|-o, --output}}: The output file name(s) of the downloaded file(s). <br />
; {{Ic|%o}}: Variable which represents the local filename(s) as specified by pacman.<br />
; {{Ic|%u}}: Variable which represents the download URL as specified by pacman.<br />
<br />
==== Additional Notes ====<br />
<br />
; <sup>1</sup> {{Ic|1=--file-allocation=falloc}}: Recommended for newer file systems such as ext4 (with extents support), btrfs or xfs as it allocates large files (GB) almost instantly. Do not use falloc with legacy file systems such as ext3 as prealloc consumes approximately the same amount of time as standard allocation would while locking the aria2 process from proceeding to download.<br />
<br />
; <sup>2</sup> {{Ic|1=--summary-interval=0}}: Supresses download progress summary output and may improve overall performance. Logs will continue to be output according to the value specified in the {{Ic|log-level}} option.<br />
<br />
; <sup>3</sup> {{Ic|1=<nowiki>XferCommand = /usr/bin/printf 'Downloading ' && echo %u | awk -F/ '{printf $NF}' && printf '...' && /usr/bin/aria2c -q --allow-overwrite=true -c --file-allocation=none --log-level=error -m2 --max-connection-per-server=2 --max-file-not-found=5 --min-split-size=5M --no-conf --remote-time=true --summary-interval=0 -t5 -d / -o %o %u && echo ' Complete!'</nowiki>}}: Using this XferCommand gives less useful, but much more readable, output.<br />
<br />
=== pacget (aria2) Mirror Script ===<br />
<br />
This script will greatly improve the download speed for broadband users. It uses the servers in {{ic|/etc/pacman.d/mirrorlist}} as mirrors in aria2. What happens is that aria2 downloads a single package from multiple servers simultaneously which gives a huge boost in download speed.<br />
<br />
{{Note|You have to put 'exec' before /usr/bin/pacget in the XferCommand. This is needed so that when you terminate pacget or aria2 (with process id used by pacget), pacman would also terminate. This would prevent inconvenience because Pacman would not persist downloading a file when you tell it not to.}}<br />
<br />
{{Warning|You may experience some problems if the mirrors used are out-of-sync or are simply not up-to-date. Just use the [[Reflector]] script to generate a list of up-to-date and ''fast'' mirrors. Also, ftp.archlinux.org resolves to two IPs. You may want to choose only one of them and hard code ftp.archlinux.org and the chosen IP address to {{ic|/etc/hosts}}.}}<br />
<br />
{{hc|/usr/bin/pacget|<nowiki><br />
#!/bin/bash<br />
<br />
msg() {<br />
echo ""<br />
echo -e " \033[1;34m->\033[1;0m \033[1;1m${1}\033[1;0m" >&2<br />
}<br />
<br />
error() {<br />
echo -e "\033[1;31m==> ERROR:\033[1;0m \033[1;1m$1\033[1;0m" >&2<br />
}<br />
<br />
CONF=/etc/pacget.conf<br />
STATS=/etc/pacget.stats<br />
ARIA2=$(which aria2c 2> /dev/null)<br />
<br />
# ----- do some checks first -----<br />
if [ ! -x "$ARIA2" ]; then<br />
error "aria2c was not found or isn't executable."<br />
exit 1<br />
fi<br />
<br />
if [ $# -ne 2 ]; then<br />
error "Incorrect number of arguments"<br />
exit 1<br />
fi<br />
<br />
filename=$(basename $1)<br />
server=${1%/$filename}<br />
arch=$(grep ^Architecture /etc/pacman.conf | cut -d '=' -f2 | sed 's/ //g')<br />
if [[ $arch = "auto" ]]; then<br />
arch=$(uname -m)<br />
fi<br />
# Determine which repo is being used<br />
repo=$(awk -F'/' '$(NF-2)~/^(community|core|extra|testing|comunity-testing|multilib)$/{print $(NF-2)}' <<< $server)<br />
[ -z $repo ] && repo="custom"<br />
<br />
# For db files, or when using a custom repo (which most likely doesn't have any mirror),<br />
# use only the URL passed by pacman; Otherwise, extract the list of servers (from the include file of the repo) to download from<br />
url=$1<br />
if ! [[ $filename = *.db || $repo = "custom" ]]; then<br />
mirrorlist=$(awk -F' *= *' '$0~"^\\["r"\\]",/Include *= */{l=$2} END{print l}' r=$repo /etc/pacman.conf)<br />
if [ -n mirrorlist ]; then<br />
num_conn=$(grep ^split $CONF | cut -d'=' -f2)<br />
url=$(sed -r '/^Server *= */!d; s/Server *= *//; s/\$repo'"/$repo/"'; s/\$arch'"/$arch/; s/$/\/$filename/" $mirrorlist | head -n $(($num_conn *2)) )<br />
fi<br />
fi<br />
<br />
msg "Downloading $filename"<br />
cd /var/cache/pacman/pkg/<br />
<br />
touch $STATS<br />
<br />
$ARIA2 --conf-path=$CONF --max-tries=1 --max-file-not-found=5 \<br />
--uri-selector=adaptive --server-stat-if=$STATS --server-stat-of=$STATS \<br />
--allow-overwrite=true --remote-time=true --log-level=error --summary-interval=0 \<br />
$url --out=${filename}.pacget && [ ! -f ${filename}.pacget.aria2 ] && mv ${filename}.pacget $2 && chmod 644 $2<br />
<br />
exit $?<br />
</nowiki>}}<br />
<br />
{{hc|/etc/pacget.conf|<nowiki><br />
# The log file<br />
log=/var/log/pacget.log<br />
# Number of servers to download from<br />
split=5<br />
# Minimum file size that justifies a split, i.e. concurrent download (default 20M)<br />
min-split-size=1M<br />
# Maximum download speed (0 = unrestricted)<br />
max-download-limit=0<br />
# Minimum download speed (0 = do not care)<br />
lowest-speed-limit=0<br />
# Server timeout period<br />
timeout=5<br />
# 'none' or 'falloc'<br />
file-allocation=none<br />
</nowiki>}}<br />
<br />
Save this script as /usr/bin/pacget.<br />
# chmod 755 /usr/bin/pacget<br />
This makes the script an executable<br />
<br />
In /etc/pacman.conf, in the [options] section, the following needs to be added:<br />
XferCommand = exec /usr/bin/pacget %u %o<br />
<br />
{{Note|If you use ftp.archlinux.org as the first server listed in your include files (/etc/pacman.d/*), some problems may occur when the mirrors you are using have not yet synced. To make great use of this script, choose a mirror (that syncs in a timely manner) that is more appropriate for you, then put that on top of the server lists. This is to prevent downloading only from ftp.archlinux.org when the mirrors have not yet synced. The rankmirrors script can be useful in this case.}}<br />
<br />
=== Using other applications ===<br />
<br />
There are other downloading applications that you can use with Pacman. Here they are, and their associated XferCommand settings:<br />
<br />
* {{ic|snarf}}: {{ic|1=XferCommand = /usr/bin/snarf -N %u}}<br />
* {{ic|lftp}}: {{ic|1=XferCommand = /usr/bin/lftp -c pget %u}}<br />
* {{ic|axel}}: {{ic|1=XferCommand = /usr/bin/axel -n 2 -v -a -o %o %u}}<br />
<br />
== Choosing the fastest mirror ==<br />
When downloading packages pacman uses the mirrors in the order they are in {{ic|/etc/pacman.d/mirrorlist}}.The mirror which is at the top of the list by default however may not be the fastest for you. To select a faster mirror, see [[Mirrors]].<br />
<br />
== Sharing packages over your LAN ==<br />
<br />
If you happen to run several Arch boxes on your LAN, you can share packages so that you can greatly decrease your download times. Keep in mind you should not share between different architectures (i.e. i686 and x86_64) or you'll get into troubles.<br />
<br />
See [[Pacman_Tips#Network_shared_pacman_cache]].</div>Cravixhttps://wiki.archlinux.org/index.php?title=Talk:Migrating_between_architectures_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&diff=258082Talk:Migrating between architectures (简体中文)2013-05-21T03:13:40Z<p>Cravix: </p>
<hr />
<div>[CN] 我试着一步步照着这个教程来做,不过还是在 "4.4 3. 来个扇贝:安装最常用最基本的shell:bash" 的时候失败了。或许这个教程需要更多成功的案例来重新确认可行性?<br />
<br><br />
[EN] I tried to follow the tutorial step by step, but failed at "4.4 3. 来个扇贝:安装最常用最基本的shell:bash". Maybe we need need more successful testimony and review it again? <br><br />
--[[User:Timefairy|Timefairy]] 08:58, 15 April 2010 (EDT)<br />
<br />
== post-install是什么东西? ==<br />
<br />
没有试过用livecd的方法(Method1),不知道Method1翻译的内容可行不可行,也不知道什么意思<br />
:顾名思义, 就是在安装前先跑一遍的脚本.</div>Cravixhttps://wiki.archlinux.org/index.php?title=Pidgin&diff=239995Pidgin2012-12-12T02:43:21Z<p>Cravix: /* Sound fix */ add cmd for pa</p>
<hr />
<div>[[Category:Internet Applications]]<br />
[[Category:Internet Relay Chat]]<br />
[[de:Pidgin]]<br />
[[es:Pidgin]]<br />
[[ru:Pidgin]]<br />
[[zh-CN:Pidgin]]<br />
'''Pidgin''' (formerly Gaim) is an instant messaging client for Linux that can connect to many different IM networks, such as Live Messenger, Yahoo, IRC, AIM, etc. One of Pidgin's key features is that you can use many networks at the same time.<br />
<br />
==Installation==<br />
[[pacman|Install]] {{Pkg|pidgin}}, available in the [[Official Repositories]].<br />
<br />
You may also want to [[pacman|install]] additional plugins from the {{Pkg|purple-plugin-pack}}.<br />
<br />
==Spellcheck==<br />
Aspell will be installed as a dependency, but to prevent all of your text from showing up as incorrect you will need to install an aspell dictionary:<br />
# pacman -S aspell-en<br />
<br />
This installs the English dictionary. Use {{Ic|pacman -Ss aspell}} to list available languages.<br />
<br />
{{Note| The '''switch spell'''-plugin is included in the purple-plugin-pack (see above). It allows you to switch between multiple languages.}}<br />
<br />
==Sound fix==<br />
To have event sounds working, install the {{pkg|gstreamer0.10-good}} package. Alternatively, in the "Sounds" preferences tab, the method can be set to 'command' and one of the following sound commands used.<br />
<br />
After configuring [[ALSA]]:<br />
aplay %s<br />
<br />
If using [[OSS]]:<br />
ossplay %s<br />
<br />
And for [[PulseAudio]]:<br />
paplay %s<br />
<br />
==Browser error==<br />
If clicking a link within Pidgin creates an error message about trying to use 'sensible-browser' to open a link, try editing {{ic|~/.purple/prefs.xml}}. Find the line referencing 'sensible-browser' and change it to this:<br />
<pref name='command' type='path' value='firefox'/><br />
<br />
This example assumes you use [[Firefox]].<br />
<br />
==QIP Encoding bug==<br />
There is another bug in character encoding when communicating between Pidgin and QIP, which especially affects Czech language, but there are also other languages affected. There are two possible solutions. The better one is to upgrade from QIP to QIP Infimum, second solution is to install and enable plugin from {{AUR|pidgin-qip-decoder}} package currently available from [[AUR]].<br />
<br />
==IRC==<br />
This is a small tutorial for connecting to Freenode. It should work for other IRC networks as long as you substitute the port numbers and other specific settings.<br />
<br />
Go to Accounts -> Manage Accounts -> Add -> Fill/select the following options:<br />
Protocol: IRC <br />
Username: <your username><br />
<br />
Now go to Buddies -> New instant message ( or hit ctrl + m) fill 'freenode.net' in the textbox and <username>@irc.freenode.net -> then click 'Ok'. Type:<br />
/join #archlinux (channel is irrelevant)<br />
<br />
In order to register your nick, type:<br />
/msg nickserv register <password> <email-addres><br />
<br />
Follow the instructions from the registration mail. For further help type:<br />
/msg nickserv help<br />
/msg nickserv help <command><br />
<br />
This final step will add your channel to 'Buddies': go to Buddies -> Add chat -> fill the correct channel in the textbox named channel (#archlinux).<br />
<br />
==Xfire==<br />
Simply install {{Pkg|pidgin-gfire}} and then add a new account, selecting xfire as protocol.<br />
<br />
==Facebook XMPP==<br />
Since Facebook Chat supports XMPP, you can use Pidgin without extra plugins. See this article for more information: [http://blog.facebook.com/blog.php?post=297991732130 Facebook Chat Now Available Everywhere]<br />
<br />
{{Note| In order to utilise facebook chat through XMPP and pidgin, you will require a facebook "username", this is located in facebook -> account settings -> username [below real name]}}<br />
<br />
1. Go to "Accounts" and select "Manage Accounts."<br />
<br />
2. On the Basic tab, enter the following info:<br />
: Protocol: XMPP<br />
: Username: ''Your facebookID'' (without e-mail domain, e.g. @yahoo.com, etc)<br />
: Domain: chat.facebook.com (make sure you haven't typed any extra space)<br />
: Resource: Pidgin (leave this empty if you get "username@chat.facebook.com/Pidgin Not Authorized" error message)<br />
: Password: ''Your Password''<br />
: Local alias: ''Your Name''<br />
<br />
3. Click the Advanced tab, then enter the following info:<br />
: Connect port: 5222<br />
: Connect server: chat.facebook.com (make sure you haven't typed any extra space)<br />
: (Uncheck the box labeled "Require SSL/TLS")<br />
<br />
{{Note| Newer versions of Pidgin do not have a "Require SSL/TLS" box. Instead, select "Use encryption if available" from the Connection Security dropdown in Advanced}}<br />
<br />
{{Note| Changing your facebook privacy settings to "Turn off all apps" (under Apps and Websites), will disable your ability to send messages via jabber.}}<br />
<br />
== Privacy ==<br />
Pidgin has some privacy rules set by default. Namely, the whole world cannot send you messages; only your contacts or people selected from a list. Adjust this, and other settings through:<br />
Tools -> Privacy<br />
<br />
=== Pidgin-OTR ===<br />
This is a plugin that brings Off-The-Record (OTR) messaging to Pidgin. OTR is a cryptographic protocol that will encrypt your instant messages.<br />
<br />
First you need to install {{Pkg|pidgin-otr}} from [extra], like so:<br />
# pacman -S pidgin-otr<br />
<br />
Once this has been done, OTR has been added to Pidgin. <br />
<br />
To enable OTR, start Pidgin and go to Tools -> Plugins or press Ctrl + U. Scroll down to the entry entitled "Off-The-Record Messaging". If the checkbox beside it is not checked, check it.<br />
<br />
Next, click on the plugin entry and select "Configure plugin" at the bottom. Select which account you wish to generate a key for, then click "Generate". You will have now generated a private key. If you are not sure what the other options do, leave them, the default options will work fine.<br />
<br />
The next step is to contact a buddy who also has OTR installed. In the chat window, a new icon should appear to the top right of your text input box. Click on it, and select "Start private conversation". This will start an 'Unverified' session. Unverified sessions are encrypted, but not verified - that is, you have started a private conversation with someone using your buddy's account who has OTR, but who might not be your buddy. The steps for verification of a buddy are beyond the scope of this section; however, they might be added in the future.<br />
<br />
=== Pidgin-Encryption ===<br />
Pidgin-Encryption transparently encrypts your instant messages with RSA encryption. Easy-to-use, but very secure.<br />
# pacman -S pidgin-encryption<br />
<br />
You can enable it the same way as Pidgin-OTR.<br />
<br />
Now you can open conversation window and new icon sould appear beside menu. Press it to enable or disable encryption.<br />
Also if you want to make encryption enabled by default right-click on a buddy's name (in your buddy list), and select Turn Auto-Encrypt On. Now, whenever a new conversation window for that buddy is opened, encryption will start out as enabled.<br />
<br />
== Sametime protocol ==<br />
Sametime support is not available in the default version of Arch Linux's Pidgin package. This section will demonstrate how to enable this feature via AUR and the 'Meanwhile' plugin. This section assumes that you are familiar with using the AUR and that you are performing the following commands in {{ic|~/builds}} directory.<br />
<br />
First install [https://aur.archlinux.org/packages.php?ID=2956 meanwhile] from the [[AUR]].<br />
<br />
Now you have to rebuild your installed version of Pidgin with Sametime support: the procedure is different depending on whether you have Pidgin from [extra] or from a package in AUR.<br />
<br />
===[extra] package===<br />
<br />
Make sure you have installed the [[Arch Build System]] and downloaded the ABS tree.<br />
<br />
Now copy the pidgin directory of ABS to {{ic|~/builds}}:<br />
$ cp -r /var/abs/extra/pidgin ~/builds<br />
<br />
Go to {{ic|~/builds/pidgin}} and edit the {{ic|PKGBUILD}} file. Go to the {{Ic|build()}} section and make sure you remove the {{Ic|--disable-meanwhile}} line from the configure options.<br />
<br />
Make the package:<br />
$ makepkg -s<br />
<br />
Install '''first''' the libpurple package as root:<br />
# pacman -U libpurple-version-arch.pkg.tar.gz<br />
<br />
After that install the pidgin package as root:<br />
# pacman -U pidgin-version-arch.pkg.tar.gz<br />
<br />
Pidgin now has the 'Sametime' protocol as an option when creating accounts.<br />
<br />
===AUR package===<br />
<br />
Download and extract your Pidgin package from AUR (this example will use pidgin-gnome, change to preference):<br />
$ cd ~/builds && wget https://aur.archlinux.org/packages/pidgin-gnome/pidgin-gnome.tar.gz && tar xfvz pidgin-gnome.tar.gz<br />
<br />
Change into the extracted directory:<br />
$ cd pidgin-gnome<br />
<br />
In order to have 'Sametime' support you must remove the following from PKGBUILD<br />
--disable-meanwhile <br />
<br />
Build the package:<br />
$ makepkg -s<br />
<br />
Install the package as root:<br />
# pacman -U pidgin-gnome-2.5.8-1-i686.pkg.tar.gz<br />
<br />
Pidgin now has the 'Sametime' protocol as an option when creating accounts.<br />
<br />
== SIP/Simple protocol for Live Communications Server 2003/2005/2007 ==<br />
<br />
The [https://aur.archlinux.org/packages.php?ID=16170 pidgin-sipe] plugin is available from [[AUR]].<br />
<br />
== Other packages ==<br />
Arch has other Pidgin-related packages. Here are the most popular (for a thorough list, search the AUR):<br />
*{{Pkg|pidgin-libnotify}} - Libnotify support, for theme-consistent notifications<br />
*{{Pkg|guifications}} - Toaster-style popup notifications<br />
*{{AUR|microblog-purple}} - Libpurple plug-in supporting microblog services like Twitter<br />
*{{AUR|pidgin-light}} - All supported protocols same as default; but without gstreamer, tcl, tk or xscreensaver support. No video/voice.<br />
<br />
==Skype plugin==<br />
<br />
Install {{AUR|skype4pidgin}} from the [[AUR]].<br />
<br />
==Auto logout on suspend==<br />
<br />
If you suspend your computer pidgin seems to stay connected for about 15 minutes. To prevent message loss create a {{ic|00pidgin}} file in {{ic|/etc/pm/sleep.d/}} to set your status to offline before suspending or hibernating. The status message won't be changed. Take the following script and replace {{ic|''user''}} with your user.<br />
#!/bin/sh<br />
#<br />
# 00pidgin: set offline/online status<br />
<br />
case "$1" in<br />
hibernate|suspend)<br />
DISPLAY=:0 su -c 'purple-remote setstatus?status=offline' ''%user''<br />
;;<br />
thaw|resume)<br />
DISPLAY=:0 su -c 'purple-remote setstatus?status=available' ''%user''<br />
;;<br />
*) exit $NA<br />
;;<br />
esac<br />
<br />
== Troubleshooting ==<br />
<br />
*If facebook XMPP verification does not work for you, there a package in the aur [https://aur.archlinux.org/packages.php?ID=34479 pidgin-facebookchat] which does not require a unique user name (you may login with an email address)<br />
<br />
*The facebookchat plugin will prompt for varification (enter these two words...), if that fails, hit cancel and log onto facebook with pidgin open, this will configre the plugin's security setting)<br />
<br />
=== Installing Pidgin After a Carrier Installation ===<br />
* If you previously installed [https://aur.archlinux.org/packages.php?ID=17191 Carrier] (aka [http://funpidgin.sourceforge.net/ FunPidgin]), follow these steps ''before'' installing Pidgin<br />
* Quit Carrier<br />
* Delete your ~/.purple directory '''(Warning: this will remove all your user settings for any programs that use libpurple, i.e. Pidgin, Carrier, etc.)'''<br />
<pre><br />
rm -r ~/.purple<br />
</pre><br />
* Remove Carrier and libpurple<br />
<pre><br />
pacman -R carrier libpurple<br />
</pre><br />
* Install Pidgin and libpurple<br />
<pre><br />
pacman -S pidgin libpurple<br />
</pre><br />
<br />
== History Import Kopete To Pidgin ==<br />
* Install xalan-c<br />
<pre><br />
pacman -S xalan-c<br />
</pre><br />
* Create ~/bin/history_import_kopete2pidgin.sh with this code:<br />
<pre><br />
#!/bin/sh<br />
<br />
KOPETE_DIR=~/.kde4/share/apps/kopete/logs<br />
PIDGIN_DIR=~/.purple/logs<br />
CURRENT_DIR=~/bin<br />
<br />
cd ~<br />
<br />
if [ ! -d $KOPETE_DIR ];then<br />
echo "Kopete log directory not found"<br />
exit 1;<br />
fi<br />
<br />
if [ ! -d $PIDGIN_DIR ];then<br />
echo "Pidgin log directory not found"<br />
exit 2;<br />
fi<br />
<br />
for KOPETE_PROTODIR in `ls $KOPETE_DIR`<br />
do<br />
PIDGIN_PROTODIR=`echo $KOPETE_PROTODIR | sed 's/Protocol//' | tr [:upper:] [:lower:]`<br />
for accnum in `ls $KOPETE_DIR/$KOPETE_PROTODIR`<br />
do<br />
echo "Account number: $accnum"<br />
for num in `ls $KOPETE_DIR/$KOPETE_PROTODIR/$accnum`<br />
do<br />
FILENAME=`Xalan $KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num $CURRENT_DIR/history_import_kopete2pidgin_filename.xslt`<br />
if [ $? = 0 ]; then<br />
echo "$KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num"<br />
echo " -> $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME"<br />
mkdir -p `dirname $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME`<br />
Xalan -o $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME $KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num $CURRENT_DIR/history_import_kopete2pidgin.xslt<br />
fi<br />
done<br />
done<br />
done<br />
</pre><br />
* Make ~/bin/history_import_kopete2pidgin.sh executable<br />
<pre><br />
chmod +x ~/bin/history_import_kopete2pidgin.sh<br />
</pre><br />
* Create ~/bin/history_import_kopete2pidgin.xslt with this code:<br />
<pre><br />
<?xml version="1.0"?><br />
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><br />
<xsl:output method="text" indent="no" /><br />
<br />
<xsl:template match="kopete-history"><br />
<xsl:apply-templates select="msg"/><br />
</xsl:template><br />
<br />
<xsl:template match="msg"><br />
<xsl:text>(</xsl:text><br />
<xsl:value-of select="translate(substring-after(@time,' '),':',',')"/><br />
<xsl:text>) </xsl:text><br />
<xsl:value-of select="@nick"/><br />
<xsl:if test="not(@nick) or @nick = ''"><br />
<xsl:value-of select="@from"/><br />
</xsl:if><br />
<xsl:text>: </xsl:text><br />
<xsl:value-of select="."/><br />
<xsl:text><br />
</xsl:text><br />
</xsl:template><br />
</xsl:stylesheet><br />
</pre><br />
* Create ~/bin/history_import_kopete2pidgin_filename.xslt with this code:<br />
<pre><br />
<?xml version="1.0"?><br />
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><br />
<xsl:output method="text" indent="no" /><br />
<br />
<xsl:template match="kopete-history"><br />
<xsl:value-of select="head/contact[@type = 'myself']/@contactId"/><br />
<xsl:text>/</xsl:text><br />
<xsl:value-of select="head/contact[not(@type)]/@contactId"/><br />
<xsl:text>/</xsl:text><br />
<xsl:value-of select="head/date/@year"/><br />
<xsl:text>-</xsl:text><br />
<xsl:if test="head/date/@month &lt; 10">0</xsl:if><br />
<xsl:value-of select="head/date/@month"/><br />
<xsl:text>-</xsl:text><br />
<xsl:if test="string-length(substring-before(msg[1]/@time,' ')) &lt; 2">0</xsl:if><br />
<xsl:value-of select="translate(msg[1]/@time,' :','.')"/><br />
<xsl:text>+0200EET.txt</xsl:text><br />
</xsl:template><br />
</xsl:stylesheet><br />
</pre><br />
* Execute the command in the shell<br />
<pre><br />
~/bin/history_import_kopete2pidgin.sh<br />
</pre><br />
<br />
==See also==<br />
* [http://pidgin.im Pidgin homepage]<br />
* [http://lukav.com/wordpress/2008/03/30/history-import-kopete-to-pidgin History Import Kopete To Pidgin]</div>Cravix