Is pacman/repo's borked atm?
I keep getting packages not founf for things like xorg, gnome and a handful of others. Have I picked the wrong time for a new install.
Also I looked on the Package search and they don't seem to be there either.
I'm on 64bit arch, but seems to be same on 32bit. Can someone post some workin mirrors for uk cause I just aint sure if mine are anygood AGAIN, pffft...
Just tried the new mirror. Ran pacman -Syy and then tried again. I keep gettin things like this.
pacman -S xorg
xorg package not found, searching for group...
:: group xorg (including ignored packages):
xf86-video-vesa xorg-docs xorg-fonts-100dpi xorg-fonts-75dpi
xorg-res-utils xorg-server xorg-server-utils xorg-twm xorg-utils
xorg-xinit xterm
:: Install whole content? [Y/n]
Similar Messages
-
[HELP] Pacman Repos not fuctional
Hi,
I'm new to arch linux but not to linux,
I've found interesting to give arch a try, people sad it was really fast
Then i've got the voodoo version, it's been a long
I've installed it but I couldn't be able to configure it I actually didn't know how
So I gave up
Now i've gave it a shot again, but since i'd the voodoo cd I thought i could install voodoo and just upgrade it
Right know today i've installed it and as people recommended i've just installed the base system
after installing i set the network and it worked just fine ( this time i learned how to). The i've tried to upgrade the system first to get the base system of Don't Panic, so I've set the /etc/pacman.conf just to enable the community repo and than i've tried pacman -Sy and pacman -Syu... it worked ok to get the database but then it asked if i wanted to upgrade pacman first, of course i said yes, but it said thad libarchive and another file were needed and were not in the sync db
So i've tried changing in /etc/pacman.conf the current to core
same error...
I've tried also to just do pacman -Suyf and nothing and then pacman -Suyd and it just started to try to upgrade the pacman but it couldn't get the file from de repositories (any repository i used did the same error). I wanted to know what the hell was going on so i went to the repository and i found the wrong part that were almost making me get rid of arch.
In the current repo the files have -686.pkg.tar.gz in the end but the current.db.tar.gz had no -i686 on the files and when i tried pacman -Syud again i realized that it were trying to download the pacman*.pkg.tar.gz without the -i686. so it kept failing and the problem is for every package in the current repos and some in the extra and some in the testing...
So can anyone tells me if it's a common problem of arch linux or if it's a problem in some repos (of course that I've tried like 15 repos butnot all of them) and can some one explain me if the depedency problem is linked to the broken db.tar.gz files?
Or is this a problem on my pacman version that has been modified and i have and elder pacman so if i download the Don't Panic I'm not going to have any troubles.
Sorry for my english (not a native speaker)
Should I give up on Arch Linux? I thought it could be a good plataform but now i'm concerned
Thanks.I did pacman -Sy pacman and i said:
Targets: libarchive-2.4.0-2 libdownload-1.1-4 pacman-3.0.6-2
Total Package Size: 1.2 MB
Proceed with upgrade? [Y/n] Y
:: Retrieving packages from current ... (same error if i change currento to core)
warning: failed to get filesize for libarchive-2.4.0-2.pkg.tar.gz
faild downloading libarchive-2.4.0-2.pkg.tar.gz from ftp.heanet.ie: 550 libarchive-2.4.0-2.pkg.tar.gz: No such file or directory
then i tried to do the sortmirror thing it said i had to have netselect first so i did pacman -Sy netselect and as it is from extra it installed perfectly than i did the sormirror and the same error.
i went to the mirror i'm using and there there isn't a libarchive-2.4.0-2.pkg.tar.gz but there is a libarchive-2.4.0-2-i686.pkg.tar.gz
Obs this community is really fast congratz
sorry but as my arch linux is not with a graphical interface i'm having to write the outputs by hand on the other pc -
Accessing custom pacman repo through SSH
Hi,
I have created a local custom repository with
repo-add
on a server accessible only through SSH.
Is there a way to configure the clients'
/etc/pacman.conf
to access the files through SSH? I think pacman uses curl as its backend, so it would be technically possible to do this.
Thanks!
Last edited by valandil (2015-02-17 20:19:24)the proxy env is ok in superuser env
➜ ~ git:(master) ✗ export | grep proxy
ftp_proxy=http://proxy.zte.com.cn:80
http_proxy=http://proxy.zte.com.cn:80
https_proxy=http://proxy.zte.com.cn:80
rvm_proxy=''
➜ ~ git:(master) ✗ su
Password:
[root@myhost jinleileiking]# export | grep proxy
declare -x ftp_proxy="http://proxy.zte.com.cn:80"
declare -x http_proxy="http://proxy.zte.com.cn:80"
declare -x https_proxy="http://proxy.zte.com.cn:80" -
Pacman repos refuse connection
I did a system upgrade last night and now when i try to pacman -Sy i get this error.
:: Synchronizing package databases...
error: failed retrieving file 'core.db.tar.gz' from ftp.archlinux.org : Connection refused
error: failed retrieving file 'core.db.tar.gz' from ftp.nethat.com : Not logged in core is up to date
error: failed retrieving file 'extra.db.tar.gz' from ftp.archlinux.org : Connection refused
error: failed to synchronize extra: Connection refused
error: failed retrieving file 'community.db.tar.gz' from ftp.archlinux.org : Connection refused
error: failed to synchronize community: Connection refused
kdemod is up to date
local database is up to dateyes. there is something going on with the ftp.archlinux.org server.
Other mirrors are work fine.
You are using other mirrors anyway...right?
I am looking into the issue. -
Issues with pacman repos?
Hi, I'm installing GNOME arch linux x86_64, but no servers got libgnome 2.26, what is going on?
EDIT: same with libgnomecanvas etc.
Last edited by Roberth (2009-04-04 16:58:15)Gnome has been moved from testing to extra. You'll need to wait for the mirrors to sync.
-
Github as a source for an unofficial repo? https support in pacman
I suspect the answer is no but can pacman handle a server over https? I'd like to use my github repo as an unofficial pacman repo, but AFAIK, I can only do so via https, not http.
Last edited by graysky (2011-01-14 22:28:20)Allan wrote:
graysky wrote: Maybe Allan can do it in his spare time
no need... falconindy has already coded a switch from libfetch to libcurl. https support will be there once that is finished.
Oh man those pacman devs are so cool they just add features even if you don't want too -
Website is out of sync with pacman repository
apolos is on the website package search facility, but not in pacman nor abs
could it be that the pacman repos are not always in sync ?Are you using 64-bit arch? Apolos hasn't been built for arch-64 yet.
-edit- I see your reply to yourself has beaten my reply to you. -/edit-
Last edited by Cerebral (2007-08-23 18:36:44) -
[SOLVED] Network Shared Pacman Cache problems
Hi all,
I've got a couple of Arch servers and an Arch workstation that I'm working on; only the workstation has internet access and I need to keep the servers up to date and be able to install packages.
At the moment, the servers have the workstation's pacman package and cache directories mounted via SSHFS, but I've got problems with keys (pacman not being able to look up keys) and system upgrades. Nothing that I can't work around, but I'm thinking there must be a more "professional" way to get this done.
TL;DR - What's the best way to set up internetless Arch servers with a network pacman repo/cache?
Last edited by syngin (2012-04-03 07:00:21)Yep, well capable of doing that which is why I'm asking - I can't do that without having to have difficult conversations with the security team here. And, no, I don't need to be told about the lack of security implications in doing this
As far as keys, I've just set the SigLevel to "Never" as I trust the packages on my workstation, but this all feels a little hinky. -
[Solved] Cant get fglrx to load after an overdue pacman -Syu
I tried to launch steam tonight after doing a long overdue pacman -Syu yesterday, and it gave an error about GL. Upon closer inspection, no GL apps will run, giving similar errors:
$ glxgears
X Error of failed request: BadRequest (invalid request code or no such operation)
Major opcode of failed request: 155 (ATIFGLEXTENSION)
Minor opcode of failed request: 66 ()
Serial number of failed request: 13
Current serial number in output stream: 13
Here's what I've been able to track down:
The fglrx module isnt loading. When I try to load it manually:
$ sudo modprobe fglrx
modprobe: ERROR: could not insert 'fglrx': Exec format error
I checked in the Xorg error log:
$ sudo grep '(WW)' /var/log/Xorg.0.log
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 18.980] (WW) Falling back to old probe method for fglrx
[ 19.147] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:17:0) found
[ 19.147] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:18:0) found
[ 19.147] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:18:1) found
[ 19.147] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:18:2) found
[ 19.147] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:19:0) found
[ 19.147] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:19:1) found
[ 19.147] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:19:2) found
[ 19.147] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:20:0) found
[ 19.147] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:20:1) found
[ 19.147] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:20:2) found
[ 19.147] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:20:3) found
[ 19.147] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:20:4) found
[ 19.147] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:20:5) found
[ 19.147] (WW) fglrx: No matching Device section for instance (BusID PCI:0@1:0:1) found
[ 19.700] (WW) fglrx(0): board is an unknown third party board, chipset is supported
[ 20.668] (WW) fglrx(0): Dynamic Surface Resizing cannot be enabled
[ 20.672] (WW) fglrx(0): ***********************************************************
[ 20.672] (WW) fglrx(0): * DRI initialization failed *
[ 20.672] (WW) fglrx(0): * kernel module (fglrx.ko) may be missing or incompatible *
[ 20.672] (WW) fglrx(0): * 2D and 3D acceleration disabled *
[ 20.672] (WW) fglrx(0): ***********************************************************
[ 20.708] (WW) fglrx(0): Textured Video not supported without DRI enabled.
[ 21.076] (WW) fglrx(0): Option "VendorName" is not used
[ 21.076] (WW) fglrx(0): Option "ModelName" is not used
I'm using the unofficial pacman repo from Vi0l0, so I also tried his catalyst-hook package, and the catalyst and catalyst-hook packages from AUR, running catalyst_build_module all and rebooting a couple times, but with no success. (his repos seem to have newer versions of the packages anyways)
Any idea what the root of the problem might be, or what I should try next?
my kernel is:
$ uname -r
3.10.10-1-ARCH
Last edited by jxhcc (2013-09-17 06:14:02)Ok, so I'm gonna go ahead and answer my own question! (This is why I dont usually post in forums!)
I installed catalyst-test from AUR. Everything is fine now.
Guess I didnt see that the first time looking through the older forum posts. -
Hi All
I'm new to Linux and I've decided to opt for Arch as my first bash at it. I've installed and set up Arch with no problems, the system is running stably and everything is fine and dandy.
The only issue I'm having is with installing programs that aren't in one of the pacman repos already.
If I download a source .tar i can't figure out how to install it from there.
If I tell pacman to install directly from a URL (using pacman -U <link>) I keep getting various errors about missing package metadata.
I suppose my question is, are there any apps that will allow me to install straight from a downloaded archive? A la windows style?
And if so how do I install them?
I apologise in advance for the unprecedented noobishness of my request.
Stushyanel wrote:
Okay started looking into that, working through it I now have a new problem - When I use makepkg, i'm getting a "PKGBUILD does not exist" error...
Any ideas?
Stu
Have a look here too.
http://wiki.archlinux.org/index.php/ABS -
Pajman - my pacman improvement (updated)
In page 2 of this topic you can find a big improvement of pajman
pajman is a script that has my own version of pacman -Ss and -Qs and pacman -Sc.
pajman -Ps [string] (search) will search for a package looking only in the package name. Lots of times faster than -Ss, and usually you only look for the package name.
pajman -Psi [string] (search, info) is the same than "pajman -Ps" but it also shows the description of the package.
pajman -Pc (clean) will remove from cache all packages that are not installed though they are not outdated. I thought of it after uninstalling gnome: lots of packages that I didn't want where kept in cache because they where up to date.
Another point against usual pacman search is that it shows in yellow the packages that you have installed
It also looks for packages that you have installed but that are not in a repo
If you pass an argument different than -P?? it calls to srcpac if you've got it installed, otherwise it calls to pacman.
looks like this:
and here's the source:
/usr/bin/pajman
#!/bin/bash
PACDIR="/var/lib/pacman/"
TEMP_FILE="/tmp/busca.$USER.$$"
REPOS=$(ls $PACDIR)
function pinfo {
PROPERA="0"
RESP=""
for linia in $(cat $1/desc); do
if [ "$PROPERA" == "1" ]; then
if (echo $linia|grep "%">/dev/null); then
echo - $RESP
break
else
RESP="$RESP $linia"
fi
fi
if [ "$linia" == "%DESC%" ]; then
PROPERA="1"
fi
done
function search {
# First we look for packages in the repos
for repo in $REPOS; do
if [ "$repo" != "local" ]; then
if (ls $PACDIR$repo|grep -e $1>$TEMP_FILE); then
echo -e "33[1;37m[$repo]33[m"
for ii in $(cat $TEMP_FILE); do
if [ -d "$PACDIR"local/"$ii" ]; then
echo -e "33[1;33m$ii33[m"
else
echo $ii
fi
if [ "$PINF" == "1" ]; then
pinfo $PACDIR$repo/$ii
fi
done
fi
fi
done
#Then we look for packages that are not in a repo
cd $PACDIR"/local"
echo -e "33[1;37m* now looking for packages that are not in a repo. Ctrl + C to stop.33[m"
for package in $(find -name "*"$1"*"); do
trobat="0"
for repo in $REPOS; do
if [ "$repo" != "local" ]; then
if [ -d $PACDIR/$repo/$package ]; then
trobat="1"
fi
fi
done
if [ "$trobat" == "0" ]; then
echo -e "33[1;33m$package33[m"|sed 's|./||'
if [ "$PINF" == "1" ]; then
pinfo $PACDIR/local/$package
fi
fi
done
function clean {
for pack in $(ls /var/cache/pacman/pkg|sed 's|.pkg.tar.gz||'); do
if [ ! -d $PACDIR/local/$pack ]; then
echo "$pack not installed. Package removed from cache."
rm /var/cache/pacman/pkg/$pack".pkg.tar.gz"
fi
done
if (echo $1|grep P>/dev/null); then
if (echo $1|grep s>/dev/null); then
if (echo $1|grep i>/dev/null); then
PINF="1"
fi
search $2
elif (echo $1|grep c>/dev/null); then
clean
fi
else
if [ -f /usr/bin/srcpac ]; then
srcpac $@
else
pacman $@
fi
fi<edit>
- to avoid using a repo use NOREPOS as you would use REPOS. Example:
NOREPOS="testing unstable" pajman -Pinst <package>
</ediT>
I've got it:
HELP, PLEASE:
I didn't made it to mark not explicitily installed dependencies as not explicitily installed. How is it done by pacman?
TODO:
* ¿download all files and then start installing? now it downloads and installs packages one by one. As pacman does this the other way I think I'll update the script once i've got it.
* do not run if pacman or pajman are already running.
WHAT DOES IT DO?
See help below to see what it can do (specially see TIPS)
Please, submit bugs and improvements you can find
pajman help:
-P[options] will use pajman routines. All other options will be passed to pacman (or srcpac)
options:
s [string] Search for [string] in packages' names
sq [string] Quick search (like -Ps but won't check if other versions installed. Much more faster)
o Only search for installed packages. Use it when searching (-Pso -Psqo)
i Show package description. Use it when searching or upgrading
inst [packages] Install [packages]
y Update database
c Remove from cache all packages that are not installed
u Compare local versions with database versions and upgrade.
r [packages] Rollback. Install previos installed verisons of packages. Useless if you have
cleaned package cache
x [string] [str] Search for packages that match [string] and do not match [str] and remove them
xs [string] [str] Same as x but pass 'recursive' parameter to pacman
xg [group] Remove [group] group of packages
xgs [group] Same as xg but pass 'recursive' parameter to pacman
ESPECIAL FEATURE: Especify repo in command line:
usage: REPOS="[repos]" pajman -P[x] [string or packages]
example:
REPOS="current extra tpowa" pajman -Pyinst kdebase
- This example will update current, extra and tpowa databases, ask you if you want to install
kdebase from extra or tpowa and either you choose extra or tpowa it will install any depencies
you will need from extra
NOREPOS is a list of repos that will be omited
TIP: create an alias for pacman=pajman
TIP: add export NOREPOS='testing' and add [testing] repo to your pacman.conf
YSKICTUI TIP: you can run simultaneously many pajman instances.
VERY YSKICTUI TIP: rename /sbin/ldconfig /sbin/ldconfig.pajman to speed up package install process
(YSKICTUI = You Should Know Its Consequences To Use It)
/usr/bin/pajman
#!/bin/bash
PACDIR="/var/lib/pacman/"
SPACDIR='/var/lib/pacman/'
TEMP_FILE="/tmp/busca.$USER.$$"
function call_pacman {
while [ -f /tmp/pacman.lck ]; do
if ! (ps -A|grep pacman>/dev/null); then
echo Removed pacman lock since pacman is not running
rm /tmp/pacman.lck
elif [ "$SAIDWAIT" == "" ]; then
echo Pacman is running. Waiting for it to end
SAIDWAIT="1"
sleep 1
else
sleep 1
fi
done
pacman $@
function colorpc {
if [ "$1" != "" ]; then
REDPC=""
YELLOWPC=""
WHITEPC=""
GREENPC=""
ORANGEPC=""
PINKPC=""
NORMALPC=""
else
REDPC="33[1;31m"
YELLOWPC="33[1;33m"
WHITEPC="33[1;37m"
GREENPC=""
ORANGEPC="33[2;33m"
PINKPC="33[1;35m"
NORMALPC="33[m"
fi
if [ "$COLORPC" == "" ]; then
colorpc
fi
function getserver {
local REPOSER=$1
local PROPERA="0"
for linia in $(cat /etc/pacman.conf|sed 's/Server *= *//'|sed 's/Include *= *//'|sed 's/^#.*$//'); do
if [ "$PROPERA" == "1" ]; then
if ! (echo $linia|grep :>/dev/null); then
for server in $(cat $linia|sed 's/Server *= *//'|sed 's/^[.*].*$//'|sed 's/^#.*$//'); do
CURSERVER="$server"
break
done
else
CURSERVER="$linia"
fi
break
fi
if [ "$linia" == "[$REPOSER]" ]; then
PROPERA="1"
fi
done
if [ "$REPOS" == "" ]; then
REPOS=$(ls $PACDIR --ignore=local --ignore=rollback)
else
for repo in $REPOS; do
getserver $repo
if [ "$CURSERVER" == "" ]; then
echo -e $REDPC"ERROR: "$WHITEPC"Repo $repo not found in /etc/pacman.conf"$NORMALPC
exit
fi
done
DONTLOOKINLOCAL="1"
fi
if [ "$NOREPOS" != "" ]; then
for i in $NOREPOS; do
REPOS=$(echo $REPOS|sed 's/[ ]*^*'$i'[ ]*$*/ /g')
done
fi
function pinfo {
PROPERA="0"
RESP=""
for linia in $(cat $1/desc); do
if [ "$PROPERA" == "1" ]; then
if (echo $linia|grep "%">/dev/null); then
echo - $RESP
break
else
RESP="$RESP $linia"
fi
fi
if [ "$linia" == "%DESC%" ]; then
PROPERA="1"
fi
done
function pgroup {
PROPERA="0"
RESP=""
for linia in $(cat $1/desc); do
if [ "$PROPERA" == "1" ]; then
if (echo $linia|grep "%">/dev/null); then
RESP="$RESP "
break
else
RESP="$RESP $linia"
fi
fi
if [ "$linia" == "%GROUPS%" ]; then
PROPERA="1"
fi
done
function localsearch {
if [ "$DONTLOOKINLOCAL" == "1" ]; then
return
fi
cd $PACDIR"/local"
echo -e "$WHITEPC* now looking for packages that are not in a repo. Ctrl + C to stop."$NORMALPC
for package in $(find -name "*"$1"*"); do
trobat="0"
for repo in $REPOS; do
if [ -d $PACDIR/$repo/$package ]; then
trobat="1"
fi
done
if [ "$trobat" == "0" ]; then
echo -e "$YELLOWPC$package"$NORMALPC|sed 's|./||'
if [ "$PINF" == "1" ]; then
pinfo $PACDIR/local/$package
fi
fi
done
function search {
# First we look for packages in the repos
local SSTR="$1"
for repo in $REPOS; do
if (ls $PACDIR$repo|grep -e $SSTR>$TEMP_FILE); then
echo -e $WHITEPC"[$repo]"$NORMALPC
for ii in $(cat $TEMP_FILE); do
for LOCALVER in $(echo "$PACDIR"local/"$ii"|sed 's/-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]*$//g')-*-*; do
localv=$(echo "$LOCALVER"|sed s/$SPACDIR"local/"//)
loca=$(echo $localv|sed 's/-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]*$//g')
if [ "$localv" == "$ii" ] && [ -d $LOCALVER ]; then
echo -e "$YELLOWPC$ii"$NORMALPC
if [ "$PINF" == "1" ]; then
pinfo $PACDIR$repo/$ii
fi
elif [ "$loca" == "$(echo $ii|sed 's/-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]*$//g')" ] && [ -d $LOCALVER ]; then
echo -e "$ORANGEPC$ii (localver is $(echo $LOCALVER|sed s/$SPACDIR"local/"//))"$NORMALPC
if [ "$PINF" == "1" ]; then
pinfo $PACDIR$repo/$ii
fi
elif [ ! $ONLYINSTALLED ]; then
echo $ii
if [ "$PINF" == "1" ]; then
pinfo $PACDIR$repo/$ii
fi
fi
done
done
fi
done
#Then we look for packages that are not in a repo
localsearch $SSTR
function clean {
for pack in $(ls /var/cache/pacman/pkg|sed 's|.pkg.tar.gz||'); do
if [ ! -d $PACDIR/local/$pack ]; then
echo "$pack not installed. Package removed from cache."
rm /var/cache/pacman/pkg/$pack".pkg.tar.gz"
fi
done
function upgrade {
LOCALS=$(ls -l $PACDIR'local/'|grep ^d|sed 's/^.*:[0-9][0-9] //');
for repo in $REPOS; do
DATA=$(ls $PACDIR$repo|grep -e -)
echo -e $WHITEPC"[$repo]"$NORMALPC
for ii in $DATA; do
PACKNAME=$(echo $ii|sed 's/-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]*$//g');
LOCALVER=$(echo $LOCALS|grep -o [ ,^]$PACKNAME-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]*[ ,$])
if [ "$LOCALVER" != "" ] && [ "$LOCALVER" != "$ii" ]; then
VER1=$(echo $LOCALVER|sed 's/'$PACKNAME-'//'|sed 's/-[0-9,.,_,a-z,A-Z]*$//g')
VER2=$(echo $ii|sed 's/'$PACKNAME-'//'|sed 's/-[0-9,.,_,a-z,A-Z]*$//g')
checkver $VER1 $VER2
if [ "$GREATVER" == "FIRST" ]; then
echo -e "$ORANGEPC$ii local version is newer ($LOCALVER)"$NORMALPC
if [ "$PINF" == "1" ]; then
pinfo $PACDIR$repo/$ii
fi
elif [ "$GREATVER" == "SECOND" ]; then
echo -e "$PINKPC$ii must be upgraded ($LOCALVER)"$NORMALPC
PACKSTOINST="$repo/$ii $PACKSTOINST"
if [ "$PINF" == "1" ]; then
pinfo $PACDIR$repo/$ii
fi
else
let "BUILD1=$(echo $LOCALVER|sed s/$PACKNAME-$VER1-//)"
let "BUILD2=$(echo $ii|sed s/$PACKNAME-$VER1-//)"
if [[ $BUILD1 > $BUILD2 ]]; then
echo -e "$ORANGEPC$ii local version is newer ($LOCALVER)"$NORMALPC
if [ "$PINF" == "1" ]; then
pinfo $PACDIR$repo/$ii
fi
elif [[ $BUILD1 < $BUILD2 ]]; then
echo -e "$PINKPC$ii must be upgraded ($LOCALVER)"$NORMALPC
if [ "$PINF" == "1" ]; then
pinfo $PACDIR$repo/$ii
fi
PACKSTOINST="$repo/$ii $PACKSTOINST"
fi
fi
fi
done
done
for packtoinst in $PACKSTOINST; do
checkpacktoinst $packtoinst
done
# function to check if a package is installed
function is_installed {
LPAC="$PACDIR"local/"$1"-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]*
for llpac in $LPAC; do
if [ $(echo $llpac|sed 's/-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]*$//g') == "$PACDIR"local/"$1" ]; then
echo 1
fi
done
function download {
local SITE="$1"
local PACK="$2"
local REPO="$3"
if [ -f /var/cache/pacman/pkg/$PACK ]; then
MD5SUM=$(md5sum /var/cache/pacman/pkg/$PACK | sed 's/ .*$//')
fi
local PROPERA="0"
for linia in $(cat $PACDIR$REPO/$(echo $2|sed 's/.pkg.tar.gz//')/desc); do
if [ "$PROPERA" == "1" ]; then
if [ "$linia" == "$MD5SUM" ]; then
echo Package already downloaded
else
snarf $SITE/$PACK /var/cache/pacman/pkg/$PACK
MD5SUM=$(md5sum /var/cache/pacman/pkg/$PACK | sed 's/ .*$//')
if [ "$MD5SUM" != "$linia" ]; then
echo -e $PINKPC"MD5SUMS do not match."$NORMALPC
echo Downloading the package again...
rm /var/cache/pacman/pkg/$PACK
download $SITE $PACK $REPO
fi
fi
return
fi
if [ "$linia" == "%MD5SUM%" ]; then
PROPERA="1"
fi
done
function ask {
echo -e $1
select opt in $2; do
ANSWER=$opt
return
done
function checkpacktoinst {
local FOUNDS="$1"
if [ ! -f $PACDIR$FOUNDS'/depends' ]; then
echo -e $REDPC"ERROR: "$WHITEPC"Cannot find package info"$NORMALPC
exit
fi
echo ==> Checking for conflicts
PROPERA="0"
for linia in $(cat $PACDIR$FOUNDS'/depends'); do
if [ "$PROPERA" == "1" ]; then
if (echo $linia|grep "%">/dev/null); then
break
else
INSTANCE=$PACDIR'local/'$linia-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]*
for inst in $INSTANCE; do
inst=$(echo $inst|sed 's/-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]*$//g')
if [ "$inst" == "$PACDIR"local/"$linia" ]; then
echo "STOPING: The package conflicts with "$linia". Install it with 'pacman -S'"
exit
fi
done
fi
fi
if [ "$linia" == "%CONFLICTS%" ]; then
PROPERA="1"
fi
done
echo ==> Checking for dependencies
PROPERA="0"
for linia in $(cat $PACDIR$FOUNDS'/depends'); do
if [ "$PROPERA" == "1" ]; then
COMP=""
NEEDEDVER=""
if (echo $linia|grep '<='>/dev/null); then
NEEDEDVER=$(echo $linia|sed 's/.*<=//')
linia=$(echo $linia|sed 's/<=.*//')
COMP="<="
elif (echo $linia|grep '>='>/dev/null); then
NEEDEDVER=$(echo $linia|sed 's/.*>=//')
linia=$(echo $linia|sed 's/>=.*//')
COMP=">="
elif (echo $linia|grep '<'>/dev/null); then
NEEDEDVER=$(echo $linia|sed 's/.*<//')
linia=$(echo $linia|sed 's/<.*//')
COMP="<"
elif (echo $linia|grep '>'>/dev/null); then
NEEDEDVER=$(echo $linia|sed 's/.*>//')
linia=$(echo $linia|sed 's/>.*//')
COMP=">"
elif (echo $linia|grep '='>/dev/null); then
NEEDEDVER=$(echo $linia|sed 's/.*=//')
linia=$(echo $linia|sed 's/=.*//')
COMP="="
fi
if [[ "$COMP" != "" ]]; then
echo -e $REDPC"WARNING: "$WHITEPC" $FOUNDS needs a concrete version of $linia ( $linia $COMP $NEEDEDVER ). This check will be skiped. Use pacman -S to have this check done."$NORMALPC
fi
if (echo $linia|grep "%">/dev/null); then
break
elif (echo $PACKSTOINST|grep /$linia-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]*>/dev/null); then
echo "Needed $linia is to be installed"
elif (echo $PROVIDENCES|grep "%$linia%">/dev/null); then
echo "Dependency $linia is provided and has already been check."
else
INSTANCE=$PACDIR'local/'$linia-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]*
for inst in $INSTANCE; do
inst=$(echo $inst|sed 's/-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]*$//g')
if [ "$inst" == "$PACDIR"local/"$linia" ]; then
echo "Needed $linia is already installed"
break
elif [ "$inst" == "$PACDIR"local/"$linia"'-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]*' ]; then
echo
echo "Needed $linia needs to be installed..."
ipack $linia
fi
done
fi
fi
if [ "$linia" == "%DEPENDS%" ]; then
PROPERA="1"
fi
done
# function to install a package
function ipack {
echo "==> Preparing to install $1"
if [ "$(is_installed $1)" == "1" ]; then
echo -e "$YELLOWPC==> Package already installed"$NORMALPC
ask "Do you want to proceed? n"$YELLOWPC"WARNING:"$WHITEPC" saying yes will render useless to rollback this package"$NORMALPC "yes no"
if [ "$ANSWER" != "yes" ]; then
exit
fi
else
echo ==> Package not installed
fi
local FOUNDS=""
for repo in $REPOS; do
CHECK=$PACDIR$repo/"$1"-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]*
for this in $CHECK; do
tthis=$(echo $this|sed 's/-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]*$//g')
if [ "$tthis" == "$PACDIR"$repo/"$1" ]; then
if [ -d $PACDIR'local/'$(echo $this|sed s/$SPACDIR$repo'/'//) ]; then
this=$(echo -e "$YELLOWPC")$this$(echo -e $NORMALPC)
fi
this=$(echo $this|sed 's/'$SPACDIR'//g')
FOUNDS="$FOUNDS $this"
fi
done
done
if (echo $FOUNDS|grep ' '>/dev/null); then
echo -e $WHITEPC==> The package is avaible in more than one repo$NORMALPC
echo "What version do you want to install?"
select opt in $(echo $FOUNDS|sed 's/'$SPACDIR'//g'); do
FOUNDS=$opt
break
done
elif [ "$FOUNDS" == "" ]; then
echo "Package not found"
echo "Let's see if it is provided by another package"
for possib in $(find $PACDIR -name depends); do
PROPERA="0"
PROVIDERS=""
for linia in $(cat $possib); do
if [ "$PROPERA" == "1" ]; then
if (echo $linia|grep "%">/dev/null); then
break
elif (echo $linia|grep $1>/dev/null); then
PROVIDER=$(echo $possib|sed s/$SPACDIR//|sed 's/[a-z]*///'|sed 's//depends//'|sed 's/-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]*$//g')
PROVIDERS="$PROVIDERS $PROVIDER"
echo $PROVIDER provides $1
PROVIDENCES="$PROVIDENCES%$PROVIDER%%$1%"
if [ "$(is_installed $PROVIDER)" == "1" ]; then
echo $PROVIDER is already installed. Keep going on.
PROVIDERS=""
return
fi
fi
fi
if [ "$linia" == "%PROVIDES%" ]; then
PROPERA="1"
fi
done
done
if [ "$PROVIDERS" != "" ]; then
select provider in $PROVIDERS; do
$FOUNDS=$provider
break
done
exit
fi
else
echo ==> Only one coincidence found:
fi
# We remove coloring
FOUNDS=$(echo $FOUNDS|cat -v|sed 'y/^[[;/§§§§/'|sed s/§§§1§33m//|sed s/§§§m//)
echo $FOUNDS is going to be installed
checkpacktoinst $FOUNDS
PACKSTOINST="$FOUNDS $PACKSTOINST"
function quicksearch {
# First we look for packages in the repos
for repo in $REPOS; do
if [ "$repo" != "local" ]; then
if (ls $PACDIR$repo|grep -e $1>$TEMP_FILE); then
echo -e $WHITEPC"[$repo]"$NORMALPC
for ii in $(cat $TEMP_FILE); do
if [ -d "$PACDIR"local/"$ii" ]; then
echo -e "$YELLOWPC$ii"$NORMALPC
if [ "$PINF" == "1" ]; then
pinfo $PACDIR$repo/$ii
fi
elif [ ! $ONLYINSTALLED ]; then
echo $ii
if [ "$PINF" == "1" ]; then
pinfo $PACDIR$repo/$ii
fi
fi
done
fi
fi
done
#Then we look for packages that are not in a repo
localsearch $1
function needroot {
if [ "$UID" != "0" ]; then
echo -e $REDPC"ERROR: "$WHITEPC"You cannot perform "$1" unless you are root."$NORMALPC
exit
fi
function partver {
local CURRIT
local NUMITS
let "NUMITS=$2"
let "CURRIT=0"
for partver in $(echo $1|sed 's/./ /g'); do
let "CURRIT=$CURRIT+1"
if [[ $CURRIT == $NUMITS ]]; then
PARTVER="$partver"
return
fi
done
PARTVER=""
function checkver {
local CURRIT
let "CURRIT=0"
SECVER="$2"
for part in $(echo $1|sed 's/./ /g'); do
let "CURRIT=$CURRIT+1"
partver $SECVER $CURRIT
if [[ "$part" != "0" ]]; then
part=$(echo $part|sed 's/^0//')
fi
if [[ "$PARTVER" != "0" ]]; then
PARTVER=$(echo $PARTVER|sed 's/^0//')
fi
if ! (echo $part|grep [a-z,A-Z,_]>/dev/null) && ! (echo $PARTVER|grep [a-z,A-Z,_]>/dev/null); then
let "SUM=$part-$PARTVER"
if [[ $SUM > 0 ]]; then
GREATVER="FIRST"
return
elif [[ $SUM < 0 ]]; then
GREATVER="SECOND"
return
fi
else
SUBVER1=$(echo $part|sed 's/[a-z,A-Z,_][0-9]*//g')
SUBVER2=$(echo $PARTVER|sed 's/[a-z,A-Z,_][0-9]*//g')
if ! (echo $SUBVER1|grep '^[0-9]'>/dev/null); then
SUBVER1="0$SUBVER1"
fi
if ! (echo $SUBVER2|grep '^[0-9]'>/dev/null); then
SUBVER2="0$SUBVER2"
fi
let "SUM=$SUBVER1-$SUBVER2"
if [[ $SUM > 0 ]]; then
GREATVER="FIRST"
return
elif [[ SUM < 0 ]]; then
GREATVER="SECOND"
return
elif ! (echo $part|grep [a-z,A-Z,_]>/dev/null) && (echo $PARTVER|grep [a-z,A-Z,_]>/dev/null); then
GREATVER="FIRST"
return
elif (echo $part|grep [a-z,A-Z,_]>/dev/null) && ! (echo $PARTVER|grep [a-z,A-Z,_]>/dev/null); then
GREATVER="SECOND"
return
else
if [[ $part > $PARTVER ]]; then
GREATVER="FIRST"
return
elif [[ $part < $PARTVER ]]; then
GREATVER="SECOND"
return
fi
fi
fi
done
let "CURRIT=$CURRIT+1"
partver $SECVER $CURRIT
if [ "$PARTVER" != "" ]; then
GREATVER="SECOND"
return
fi
GREATVER="NONE"
function instpacks {
if [ "$PACKSTOINST" == "" ]; then
echo No packages to be installed
return
fi
echo
echo -e $WHITEPC"Is it ok to install next packages?"$NORMALPC
echo $PACKSTOINST
OPTS="yes no"
select opt in $OPTS; do
if [ "$opt" == "yes" ]; then
break
fi
exit
done
echo
echo ==> Installing:
if (echo $PACKSTOINST|grep glibc>/dev/null); then
echo glibc needs is to be installed. Please, install it with pacman -S.
exit
fi
if [ ! -d /var/lib/pacman/rollback ]; then
mkdir -p /var/lib/pacman/rollback
fi
for pack in $PACKSTOINST; do
echo -e $WHITEPC"==> Installing $pack"$NORMALPC
REPO=$(echo $pack|sed 's//.*//')
PACKN=$(echo $pack|sed 's/.*///').pkg.tar.gz
getserver $REPO
download $CURSERVER $PACKN $REPO
if [ -d $PACDIR/rollback/$PACKN ]; then
rm -r $PACDIR/rollback/$PACKN
fi
OLDPACK=$(echo $PACKN|sed 's/-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]*.pkg.tar.gz$//g')
INSTANCE=$PACDIR'local/'$OLDPACK-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]*
for inst in $INSTANCE; do
insta=$(echo $inst|sed 's/-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]*$//g')
if [ "$insta" == "$PACDIR"local/"$OLDPACK" ]; then
cp $inst "$PACDIR"rollback -r
break
fi
done
if [ "$FORCE" == "1" ]; then
call_pacman -Udf /var/cache/pacman/pkg/$PACKN
else
call_pacman -Ud /var/cache/pacman/pkg/$PACKN
fi
if [ "$(is_installed $OLDPACK)" != "1" ]; then
echo -e $REDPC"ERROR: $WHITEPC"Package $pack has failed to install$NORMALPC
ask "Do you want to install it again forcing file conflicts?" "yes no"
if [ "$ANSWER" == "yes" ]; then
call_pacman -Udf /var/cache/pacman/pkg/$PACKN
if [ "$(is_installed $OLDPACK)" != "1" ]; then
echo -e $REDPC"ERROR: $WHIETEPC"Package $pack has failed AGAIN to install$NOMALPC
ask "Do you want to install remaining packages?" "yes no"
if [ "$ANSWER" == "no" ]; then
exit
fi
fi
else
ask "Do you want to install remaining packages?" "yes no"
if [ "$ANSWER" == "no" ]; then
exit
fi
fi
fi
done
echo
echo Updating shared library links. Ctrl + C to stop.
if [ -f /sbin/ldconfig.pajman ]; then
ldconfig.pajman
fi
function searchandremove {
MATCHSTRING=$1
shift
echo -e $WHITEPC"==> Removing packages that match "$MATCHSTRING" and do not match "$@""$NORMALPC
colorpc "no"
local TOREMOVE=$(ONLYINSTALLED="1" quicksearch $MATCHSTRING|sed 's/[.*]$//g'|sed 's/* now looking for packages that are not in a repo. Ctrl + C to stop.//g')
if [ "$COLORPC" == "" ]; then
colorpc
fi
local NEWTOREMOVE=""
for tore in $TOREMOVE; do
local FOUND=""
for noto in $@; do
if (echo $tore|grep $noto>/dev/null); then
FOUND="1"
fi
done
if [ "$FOUND" == "" ]; then
NEWTOREMOVE="$NEWTOREMOVE $tore"
fi
done
TOREMOVE=$NEWTOREMOVE
if [ "$TOREMOVE" == "" ]; then
echo No package to be removed
exit
fi
ask $WHITEPC"Is it ok to "$REDPC"REMOVE"$WHITEPC" this packages?"$YELLOWPC"n$(echo $TOREMOVE|sed 's/ /\n/g')$NORMALPC" "yes no"
TOREMOVE=$(echo $TOREMOVE|sed 's/-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]* / /g')
TOREMOVE=$(echo $TOREMOVE|sed 's/-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]*$//g')
echo $TOREMOVE
if [ $ANSWER == "yes" ]; then
call_pacman -R$RECURSIVEREMOVE $TOREMOVE
fi
function removegroup {
echo -e $WHITEPC"==> Removing "$1" group"$NORMALPC
local TOREMOVE=""
for pack in $(ls $PACDIR/local); do
pgroup $PACDIR"local/"$pack
if [ "$RESP" == " $1 " ]; then
TOREMOVE="$TOREMOVE $pack"
echo -e $YELLOWPC$pack$WHITEPC
fi
done
if [ "$TOREMOVE" == "" ]; then
echo No package to be removed
exit
fi
ask $WHITEPC"Is it ok to "$REDPC"REMOVE"$WHITEPC" above packages?"$NORMALPC "yes no"
TOREMOVE=$(echo $TOREMOVE|sed 's/-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]* / /g')
TOREMOVE=$(echo $TOREMOVE|sed 's/-[0-9,.,_,a-z,A-Z]*-[0-9,.,_,a-z,A-Z]*$//g')
if [ $ANSWER == "yes" ]; then
call_pacman -R$RECURSIVEREMOVE $TOREMOVE
fi
if (echo $1|grep P>/dev/null); then
CHECKSNARF=$(snarf --help)
if [ "$CHECKSNARF" == "" ]; then
ask "Snarf not installed but required by pajman. Do you want to install it?" "yes no"
if [ "$ANSWER" != "no" ]; then
call_pacman -S snarf
else
echo If you do not install snarf, there is no pajman for you
exit
fi
fi
if (echo $1|grep y>/dev/null); then
needroot "synchronize database"
echo -e $WHITEPC==> Updating database$NORMALPC
if [ ! -d /var/lib/pajman ]; then
mkdir -p /var/lib/pajman
fi
for repo in $REPOS; do
echo ==> Updating $repo
getserver $repo
snarf $CURSERVER/$repo.db.tar.gz /var/lib/pajman/$repo.db.tar.gz
if [ -f /var/lib/pajman/$repo.db.tar.gz ]; then
cd /var/lib/pajman
tar xfz /var/lib/pajman/$repo.db.tar.gz
rm *.db.tar.gz
rm -r /var/lib/pacman/$repo
mkdir /var/lib/pacman/$repo
mv * /var/lib/pacman/$repo
else
echo -e $YELLOWPC"WARNING: "$WHITEPC"Repo $repo cannot be updated"$NORMALPC
fi
done
rmdir /var/lib/pajman
fi
if (echo $1|grep f>/dev/null); then
FORCE="1"
fi
if (echo $1|grep u>/dev/null); then
needroot "update packages"
if (echo $1|grep i>/dev/null); then
PINF="1"
fi
echo -e $WHITEPC==> Upgrading system$NORMALPC
upgrade
instpacks
fi
if [ "$1" == "-P" ]; then
needroot "install packages"
while [ "$#" != "1" ]; do
ipack $2
shift
done
instpacks
elif (echo $1|grep x>/dev/null); then
needroot "search and remove"
if (echo $1|grep g>/dev/null); then
RECURSIVEREMOVE="s"
fi
if (echo $1|grep g>/dev/null); then
needroot "remove groups"
while [ "$#" != "1" ]; do
removegroup $2
shift
done
else
shift
searchandremove $@
fi
elif (echo $1|grep r>/dev/null); then
needroot "rollback"
while [ "$#" != "1" ]; do
ROLLINGBACK="1"
REPOS="$REPOS rollback"
ipack $2
shift
done
instpacks
elif (echo $1|grep s>/dev/null); then
if [ "$2" == "" ]; then
echo No search string provided. Use "pajman -Ps -" to search for all packages
exit
fi
if (echo $1|grep o>/dev/null); then
ONLYINSTALLED="1"
fi
if ! (echo $1|grep q>/dev/null); then
echo -e $WHITEPC==> Searching for "$2"$NORMALPC
if (echo $1|grep i>/dev/null); then
PINF="1"
fi
search $2
else
echo -e $WHITEPC==> QUICK-Searching for "$2"$NORMALPC
if (echo $1|grep i>/dev/null); then
PINF="1"
fi
quicksearch $2
fi
elif (echo $1|grep c>/dev/null); then
clean
elif ! (echo $1|grep [y,u]>/dev/null); then
echo "Unknow paramater '$1'"
fi
elif [ "$1" == "--help" ] || [ "$#" == "0" ]; then
echo "-P[options] will use pajman routines. All other options will be passed to pacman (or srcpac)
options:
s [string] Search for [string] in packages' names
sq [string] Quick search (like -Ps but won't check if other versions installed. Much more faster)
o Only search for installed packages. Use it when searching (-Pso -Psqo)
i Show package description. Use it when searching or upgrading
inst [packages] Install [packages]
y Update database
c Remove from cache all packages that are not installed
u Compare local versions with database versions and upgrade.
r [packages] Rollback. Install previos installed verisons of packages. Useless if you have
cleaned package cache
x [string] [str] Search for packages that match [string] and do not match [str] and remove them
xs [string] [str] Same as x but pass 'recursive' parameter to pacman
xg [group] Remove [group] group of packages
xgs [group] Same as xg but pass 'recursive' parameter to pacman
ESPECIAL FEATURE: Especify repo in command line:
usage: REPOS="[repos]" pajman -P[x] [string or packages]
example:
REPOS="current extra tpowa" pajman -Pyinst kdebase
- This example will update current, extra and tpowa databases, ask you if you want to install
kdebase from extra or tpowa and either you choose extra or tpowa it will install any depencies
you will need from extra
NOREPOS is a list of repos that will be omited
TIP: create an alias for pacman=pajman
TIP: add export NOREPOS='testing' and add [testing] repo to your pacman.conf
YSKICTUI TIP: you can run simultaneously many pajman instances.
VERY YSKICTUI TIP: rename /sbin/ldconfig /sbin/ldconfig.pajman to speed up package install process
(YSKICTUI = You Should Know Its Consequences To Use It)
Now showing pacman (or srcpac) parameters:"
if [ -f /usr/bin/srcpac ]; then
srcpac --help
else
pacman --help
fi
else
if [ -f /usr/bin/srcpac ]; then
srcpac $@
else
call_pacman $@
fi
fi -
Pacget: Super fast pacman downloads
I spent all day (yes I'm a slow horrible programmer) writing this scrip. It takes the download url from pacman, then looks up the mirror list in /etc/pacman.d/<repo> and adds them all as mirrors to aria2.
What ends up happening is aria2c connects to 10-20 servers downloading from all of them at the same time, which should give anyone on broadband a huge boost in download speed. This boosted my download speeds from 100-300KB/s to 2,000KB/s (my connections limit).
http://wiki.archlinux.org/index.php/Fas … ror_Script
Hope you guys like it.
ps: would making a package out of this be overkill?, like one that auto installs everything?noriko, I liked your idea with changing the testing repo. I made it so the script now tests if the /etc/pacman.d/repo file exists, if it does it'll just use it, otherwise it'll just do one mirror. So if you have an /etc/pacman.d/testing, it should now use it.
I mad a few revisions that I want to post up on here first to get some feedback on it before I change the wiki.
Whats changed is the repo check, and I made it so:
less then 5mb = 3 mirrors
less then 10mb = 7 mirrors
greater then 10mb = 30 mirrors
Also to clearify:
Any repo database file will only use one mirror (they are usually very small and not worth being split up).
Sorry for the messy script, I'll clean it up soon and add comments/allow easy modifications to it.
/usr/bin/pacget
#!/bin/bash
#pacget script
rm -f *.aria2
cachedir=/var/cache/pacman/pkg
file=$(awk -F '/' '{ print $NF }' <<<$1)
echo Downloading: $file|sed 's,/,,'
#exit 0
repo=$(awk -F '/' '{x=NF-3 } { print $x }' <<<$1)
echo repo: $repo
#exit 0
function numir {
size=$(sed -n '/^%CSIZE%$/{n;p}' /var/lib/pacman/$repo/$(sed 's/.pkg.tar.gz//'<<< $file)/desc)
if [[ $size -lt 5000000 ]]; then
m=3
elif [[ $size -lt 10000000 ]]; then
m=7
else
m=30
fi
if [[ $2 = *.db.tar.gz.part || ! -f /etc/pacman.d/$repo ]]; then
echo "(using one mirror)"
mirrors=$1
else
if [ -f /etc/pacman.d/$repo ]; then
numir
mirrors=$(sed -n 's/^Server = //; s,$,/'"$file"', ; /^ftp/p; /^http/p' /etc/pacman.d/$repo|head -$m)
fi
fi
aria2c -t20 -m2 -l /root/log $mirrors -o $file.pacget
if [ -f $cachedir/$file.pacget.aria2 ]; then
rm $cachedir/$file.pacget $cachedir/$file.pacget.aria2
exit 0
fi
mv $file.pacget $2
exit 0
PS: Tell me if I should post this version up on the wiki.
PSS:
noriko wrote:
2000kb/s?? r u sure?
i used it, works perfectly btw Wink but it's not enhancing anything lol.. my download is still still stuck at 240-5 kb/s ..
hmm.. might me an isp limit of some sorts....
:: Retrieving packages from extra...
Downloading: openoffice-base-2.0.4-1.pkg.tar.gz
repo: extra
6,816,112/127,700,347 Bytes 5% 02m04s 2001.86 KB/s 24 connections -
[Solved] Conflicting conflicts (and dependencies)
Attempting to update an AMD x86_64 system this morning:
07:55 Sun Dec 28
[root@arch64://~]# pacman -Su
:: Starting full system upgrade...
resolving dependencies...
looking for inter-conflicts...
:: bluez-libs conflicts with bluez. Remove bluez? [Y/n] y
error: failed to prepare transaction (could not satisfy dependencies)
:: gnokii: requires bluez>=4.1
07:55 Sun Dec 28
[root@arch64://~]# pacman -Su
:: Starting full system upgrade...
resolving dependencies...
looking for inter-conflicts...
:: bluez-libs conflicts with bluez. Remove bluez? [Y/n] n
error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)
:: bluez-libs: conflicts with bluez
I run LxDE and KDE3 (brand new install).
I'm dead in the water, of course. My system's running fine, but pacman updates are borked here ATM.
Last edited by grndrush (2008-12-28 14:34:21)I did a pacman -Syy *right before* the bash display above. Trying to strive for brevity.
I'm very current - the only packages I *expected* to be upgraded were the kernel and klibc-udev. I was current otherwise as of 6 AM this morning. No idea where this is coming from.
FWIW, I use KDE3 as my primary D/E. It was installed after LXDE, but I didn't remove LXDE.
gnokii is required by kde3-kdepim, so we're talking a good 100 MB of disk trashing. If I have to remove and reinstall both (although the latter IS optional, I guess...). -
Samba died....
I did an upgrade last night...added "unstable" to pacman repo's so I could get the latest kernel (to fix the cd burning issue) & I swear (unless sleep depriv. is causing me to imagine it) that samba was upgraded. Anyways, now when I select Windows Network I get this error message:
"smb:///" is not a valid location.
Any ideas???
It was working before...i.e., I could connect to my 2 other Windows computers & browse the shared folders.Sudo will work for cd burning (when logged in as user), but I have the same issue as you. Just purchased an NEC dual layer dvd burner & dvd burning is a no-go w/ sudo k3b...k3b reports it cannot find growisofs. I don't often need to burn large files or big chunks of data, but I'd rather just use dvd's (since the Ridata are about $.47/ea. @ Newegg) if I can (which I can now...but no samba). The samba is definitely borked b/c I logged into XFCE & under its file manager I can load the Windows Network---or it sees the other computers, but then it just blanks the list...so it's some kinda bug (I've checked & rechecked all my settings---smb.conf, rc.conf, rc.local to make sure I didn't change anything, commented new additions out, took dnsmasq out of the daemons list, uninstalled & reinstalled samba....all to no avail). And it did work fine before. Guess I'll just hang for now, b/c burning dvd's/ cd's is more important than accessing the Windows network. Only thing I might copy over would be mp3's or .avi's. I don't use my home computers for anything business related other than ordering parts from Newegg for computer builds & such...so it's not critical, just a nice feature to have working (as it did before... ). And it's definitely not Windows SOHO flaking, b/c I logged into XP on this very computer (1st time in awhile, btw) & I could access both of the other Windows boxes (2K & another XP box).
-
[Solved] Error : The file or folder path /Probl?me 1 does not exist
Hello,
I encountered this error
The file or folder <path>/Probl?me 2 does not exist
while I was trying to open a directory already extracted from a zip file containing directories with special characters. In this case, it is a "è" that was misinterpreted as a "?".
I searched the forums and on google, the solutions proposed do not work for me. Although, I have to deal with these files written in french, I would like to have my locale in english (US), with a system wide support for special characters.
Attempt 1: Adding the option : iocharset=utf8 into the fstab, like this :
fstab :
# /etc/fstab: static file system information
# <file system> <dir> <type> <options> <dump> <pass>
none /dev/pts devpts defaults 0 0
none /dev/shm tmpfs defaults 0 0
/dev/cdrom /media/cd auto ro,user,noauto,unhide 0 0
/dev/dvd /media/dvd auto ro,user,noauto,unhide 0 0
/dev/fd0 /media/fl auto user,noauto 0 0
/dev/disk/by-uuid/24ba75ac-e52d-40eb-a599-83b394b500b2 /boot ext2 defaults 0 2
/dev/disk/by-uuid/c797f409-00bc-479a-b4d6-ab49943f644b / ext4 defaults 0 1
/dev/disk/by-uuid/668427a8-5f51-42bd-a316-fc7984bf5f4f /var ext4 defaults 0 2
/dev/sda7 swap swap defaults 0 0
/dev/disk/by-uuid/417cd1b7-8f06-414b-84d5-e8714d9646ab /home ext4 defaults 0 2
/dev/disk/by-uuid/ef9aa00e-0515-4d7b-aa23-8096e787250d /usr ext4 defaults 0 2
/dev/disk/by-uuid/17d401b7-2fc7-4d9f-8e17-657d86926d2e /tmp ext4 defaults,iocharset=utf8 0 0 <<<<<<<<<<<<<<
/dev/disk/by-uuid/71e543b6-e06c-4b0e-b1e3-3b491ff1fefe /var/cache/pacman/repos ext4 defaults 0 2
#/dev/sda12 /mnt/archive ext4 defaults 0 2
#.host:/ /mnt/hgfs vmhgfs defaults 0 0
This solution does not work, because after adding iocharset=utf8, in front or after a "defaults", after a reboot, while mounting the filesystem, there is the following error message:
Mounting Locale Filesystem :
mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
$ dmesg | tail
phy0: Selected rate control algorithm 'iwl-agn-rs'
EXT4-fs (sda5): re-mounted. Opts: (null)
EXT4-fs (sda5): re-mounted. Opts: (null)
EXT4-fs (sda6): mounted filesystem with ordered data mode. Opts: (null)
EXT4-fs (sda8): mounted filesystem with ordered data mode. Opts: (null)
EXT4-fs (sda9): mounted filesystem with ordered data mode. Opts: (null)
EXT4-fs (sda10): Unrecognized mount option "iocharset=utf8" or missing value <<<<<<<<<<<<<<
EXT4-fs (sda11): mounted filesystem with ordered data mode. Opts: (null)
Adding 2104476k swap on /dev/sda7. Priority:-1 extents:1 across:2104476k
tg3 0000:07:00.0: irq 44 for MSI/MSI-X
Attempt 2: Changing all the locale features in KDE and in /etc/rc.conf as well.
$ vim /etc/rc.conf
LOCALE="fr_CA.utf8"
HARDWARECLOCK=""
TIMEZONE="America/Montreal"
KEYMAP="us"
CONSOLEFONT=
CONSOLEMAP=
USECOLOR="yes"
It is complicated to remove these directories. I had to use the inum to get precisely these directories before removing them.
$ ls -il
total 8
1577566 drwxr-xr-x 2 [username] [username] 4096 28 jan 07:09 Probl?me 1
1577573 drwxr-xr-x 2 [username] [username] 4096 28 jan 07:09 Probl?me 2
$ find . -inum 1577566 -exec rm -i {} \;
rm: impossible de supprimer « ./Probl\212me 1 »: est un dossier
Note that the hypothetical character 'è' is represented has a '\212', a 'È' if seen as a extended ASCII character.
These directories cannot be deleted this way :
$ rm -r Problème\ 1
rm: cannot remove `Problème 1': No such file or directory
or
$ rm -r ProblÈme\ 1
rm: cannot remove `ProblÈme 1': No such file or directory
What should I do to be make the operating system recognize those special character, and interpret them correctly ?
Last edited by ramboman (2011-01-29 21:45:50)I found a working solution, but better solution are also welcome
I had to have fr_CA not only in utf8 but also in iso88591. I had to modify the /etc/rc.conf this way :
LOCALE="fr_CA" <<<<<<<<<<<<<<
HARDWARECLOCK=""
TIMEZONE="America/Montreal"
KEYMAP="us"
CONSOLEFONT=
CONSOLEMAP=
USECOLOR="yes"
To preserve the english US language system wide, I had to add the following line in the /etc/profile :
# Allow french special character while in en_US
export LANG=en_US
The character misinterpreted by a "?" is now seen :
as a "è" in dolphin
as a "?" in the console
It is now possible to access the folders.
Maybe you are looking for
-
How can I create a bulleted list where each line builds in independently?
I would like to make a bulleted list in my video where each bullet fades in as the person says them in the video (it is not at a constant rate). So far the only way I've accomplished this is to stack 6 or 7 of the 'Fade' title generators on top of ea
-
IPod does not play music from the beginning
Hi there! The music is properly good on the hard disk of the PC. The music is imported into iTunes, where it played well from the beginning. On the iPod, the music is also available. When playing the music now as follows: The title starts 6-10 second
-
I just picked up numbers in a hope of getting completely out of Microsoft's clutches, but there are two things I absolutely have to be able to do in my charts that I can't figure out. 1. Can I reverse the y-axis so the lowest numbers are on top (maki
-
Trying to load new software, both of which tell me I need 1-2 GB of RAM. Where do I determine how much RAM I have, and can I simply buy and upload additional RAM to this model? Thanks.
-
HT5312 I need to reset my security I'd questions and answer
I'm having a problem remembering and recovering my Security ID questions and answers