Ao tentar instalar o Oracle no Slackware, verifiquei no site deles, que não possuem pacotes para Slackware, apenas para Debian e RedHat. Sendo assim, e com a ajuda do blog do Roger, lá consegui por o Oracle 10g a funcionar ainda melhor que a instalação do Roger, já que ele teve alguns erros e eu não .
Criar um utilizador Oracle e instalar os grupos de gestão (como root):
#groupadd dba
#groupadd oinstall
#adduser oracle #fazer com que o grupo inicial seja oinstall, e depois adicionar os seguintes grupos adicionais dba users
Fazer o download de: ship.db.lnx32.cpio ou ship.db.cpio
#wget http://download.oracle.com/otn/linux/oracle10g/ship.db.cpio.gz
Descompactar:
#gunzip ship.db.cpio.gz
#cpio -idmv < ship.db.cpio
Se tiver uma SWAP com menos de 1 GB:
#dd if=/dev/zero of=/directory/with/much/free/space/tempswap bs=1k count=1000000
#chmod 600 tempswap
#mke2fs tempswap
#mkswap tempswap
#swapon tempswap
Verificar os requisitos de memória do sistema:
#sysctl -a
Verificar se os valores são iguais ou maiores que estes:
Necessários | Verificar com: |
shmmax = 2147483648 | cat /proc/sys/kernel/shmmax |
shmmni = 4096 | cat /proc/sys/kernel/shmmni |
shmall = 2097152 | cat /proc/sys/kernel/shmall |
shmmin = 1 | ipcs -lm |grep "min seg size" |
semmsl = 250 | cat /proc/sys/kernel/sem | awk '{print $1}' |
semmns = 32000 | cat /proc/sys/kernel/sem | awk '{print $2}' |
semopm = 100 | cat /proc/sys/kernel/sem | awk '{print $3}' |
semmni = 128 | cat /proc/sys/kernel/sem | awk '{print $4}' |
file-max = 65536 | cat /proc/sys/fs/file-max |
ip_local_port_range = 1024 65000 | cat /proc/sys/net/ipv4/ip_local_port_range |
Se for necessário, criar ou alterar o ficheiro /etc/sysctl.conf e colocar os valores correctos:
# Kernel Parameters for Oracle 10.1.0
kernel.shmmax = 2147483648
kernel.semopm = 100
kernel.sem = semmsl semmns semopm semmni
net.ipv4.ip_local_port_range = 32768 65000
Para aplicar estes parâmetros:
#sysctl -p
No meu caso deu erro no kernel.semopm, mas não é um erro crítico.
Depois, criar ou modificar o ~/.profile para que tenha o seguinte:
# user-specific settings
PATH=$PATH:$HOME/bin
# Oracle Environment
ORACLE_BASE=/opt/oracle; export ORACLE_BASE
ORACLE_HOME=/opt/oracle; export ORACLE_HOME
ORACLE_SID=ROQDB; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
export TNS_ADMIN=$ORACLE_HOME/config
NLS_LANG=AMERICAN; export NLS_LANG
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/openwin/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/td/lib:/usr/ucblib:/usr/local/lib
export LD_LIBRARY_PATH fi
if [ -z $CLASSPATH ]
then
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
export CLASSPATH
else
CLASSPATH=$CLASSPATH:$ORACLE_HOME/JRE:$ORACLE_HOME/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export CLASSPATH
fi
ORAENV_ASK=NO
#set shell search paths
PATH=$PATH:$ORACLE_HOME/bin
Agora a parte da instalação (como root):
mkdir /opt/oracle
chown oracle /opt/oracle
chgrp oinstall /opt/oracle
Como user oracle:
cd Disk1
./runInstaller -ignoreSysPrereqs
As minhas escolhas
Destination;
Name: OraDB10g_home1, Path: /opt/oracle
Installation Type: Enterprise Edition
Escolher "General Purpose" starter database
Global database name: ROQDB.myhost
SID: ROQDB
Não criei schemas.
Depois disto, podemos testar a base de dados com:
#sqlplus /nolog
conn / as sysdba
startup
Para remover o Oracle, caso algo dê problemas:
rm -rf $ORACLE_HOME
rm -rf /etc/ora*
rm -rf /path/to/your/oraInventory
rm -f /usr/local/bin/coraenv
rm -f /usr/local/bin/oraenv
rm -f /usr/local/bin/dbhome
Depois para gerir as bases de dados, utilizei o SQLDeveloper disponível em http://www.oracle.com. Fiz o download do .RPM, converti para .tgz
#rmp2tgz sqldeveloper-1.5.57.83-1.noarch.rpm
Instalei como um .tgz normal
#installpkg sqldeveloper-1.5.57.83-1.noarch.tgz
Para correr o SQLDeveloper é necessário a instalação do JDK.
#wget http://darkstar.ist.utl.pt/slackware/slackware-12.2/extra/jdk-6/jdk-6u11-i586-1.tgz
De seguida é só iniciar o SQLDeveloper:
#sqldeveloper
Assim que tiver algum tempo, irei ver se consigo instalar o TORA, que parece ser um programa mais parecido com o TOAD, que é o mais utilizado, a desvantagem é que não existe versão para Linux.
Links: http://www.roqet.org/oracle_on_slackware.html
http://under-linux.org/wiki/index.php/Tutoriais/BD/instalando-sgbd-oracle11g-ubuntu8
http://www.dicas-l.com.br/print/20080825.html
Com o lançamento da versão 2.0.0.20, chega ao fim esta série do browser Firefox. Apartir de agora só iram ser lançadas actualizações para a versão 3 do Firefox. Eu que uso Slackware e tenho usado a versão 2 em detrimento da 3 (por escolha), vejo que algo se perdeu, até porque a versão 2 era mais simples, mais leve e funcional.
Por ter falado aqui no currículo de uma certa pessoa, uma pergunta se levanta, será mesmo importante o conteúdo do mesmo, ou será que certos aspectos, fazem toda a diferença?
Presado Cenhor,
Quero candidatar a mim pópria pra o lugar de ceqretária que vi no jornau. Eu dijito muito de pressa con um dedo e fasso contas iper ben.
Axo que sou boa ao tefone em bora seija uma peçoa sem muito extudo.
O meu salario tá aberto há discução pra que o cenhor possa ver o que mi pode pagar e o Cenhor axar qui eu meresso.
Pósso comessar imediatamente. Agradessida em avanso pela sua resposta.
Cinceramente,
Catia Vanessa Estrela
PS: Como o meu currico é muinto piqueno, abaicho tem 1 foto minha.
Resposta do Empregador:
Querida Catia Vanessa,
O emprego é seu. Nós temos correção automática no word.
Compareça já amanhã.
Uma das últimas "modas" que encontrei pela net, são as Cheat Sheets ou Cábulas. Basicamente são sites, documentos ou até mesmo wallpapers, com um conjunto reduzido de informação sobre um determinado assunto.
Dá sempre jeito ter à mão, ou no ecrã, os comandos mais utilizados no Linux, VI ou PHP (Java, etc.)
Deixo aqui 2 links, que contém quase todas as cheat sheets que a maioria das pessoas precisa, bem como as minhas preferidas:
The One Page Linux Manual
VIM
CSS
PHP
GIMP
Ruby On Rails
MySQL
FireFox
HTML
Wallpaper
O Blog do Luís SIlva, de vez em quando tem umas pérolas engraçadas, que lhe chegam pro email. Sendo verdade ou não, vale sempre a pena, colocar a dúvida na cabeça das pessoas:
"Mais uma notícia extremamente caluniosa (recebida nessa boca de lavagem, que insiste em difamar muito boa gente, que é o email) para o bom nome da Doutora Maria de Lurdes! :o/
"CURRICULUM VITAE" DE MARIA DE LURDES RODRIGUES
Vejamos, a Dr.ª Maria de Lurdes tirou o antigo 5.º ano (actual 9.º ano) e ingressou no Magistério Primário (naquele tempo eram dois anos de curso). Deu aulas na Primária até se inscrever no ISCTE (com o 5ºano + 2 anos de Magistério Primário!).
No ISCTE, ao fim de 5 (CINCO) anos de estudos em curso nocturno (ou seja...tinha o 9º ano, mais 3 anos corresponde ao 12º e com mais 2 anos...), saiu com um DOUTORAMENTO que lhe permitiu dar aulas (?!) nesse ISCTE, por acaso onde o Sr. Engenheiro fez uma pós-graduação (mestrado?) a seguir à "licenciatura" da Universidade Independente. Digam lá que não lhe deu um certo jeito nunca ser PROFESSORA AVALIADA!
Mais recentemente, indo ao site do governo:
(http://www.portugal.gov.pt/Portal/PT/Governos/Governos_Constitucionais/GC17/Composicao/Perfil/MariaLurdesRodrigues.htm),
podemos comprovar a extensa "obra" desta senhora....
... A menos que eu esteja ceguinho, não vi nenhuma publicação relacionada com a Educação!!! No entanto, esta senhora é "perita" em matéria de educação. Além disso, dá para verificar que a senhora é um ver-se-te-avias a escrever ou co-escrever coisas (de engenharia, tecnologia, industria e afins...), mas fico a pensar, que tempo dedicava aos alunos do ISCTE... se é que realmente chegou a dar aulas a sério...
ATT. SENHORES PROFESSORES DOUTORES UNIVERSITÁRIOS:
NO SITE DO GOVERNO É CLARAMENTE DEMONSTRADA UMA ILEGALIDADE NO PERCURSO ACADÉMICO DA SENHORA MINISTRA.
Além do facto de se desconhecer o título da Tese de Doutoramento, não existem evidências de ter realizado nenhuma dissertação de Mestrado. Refere-se uma passagem directa da Licenciatura para o Doutoramento.
Partindo do pressuposto que o curriculum estará cronologicamente bem elaborado,como é possível
"Coordenou projectos de investigação e grandes operações de inquérito e orientou teses de mestrado e doutoramento" antes do seu próprio Doutoramento???
AFINAL QUEM É QUE DEVIA SER AVALIADO!?
...e já agora qual é o modelo de avaliação dos nossos Governantes??????"
Ninguém tem mão nisto?"
E como é Natal, aqui ficam alguns wallpapers e temas para colocar o seu Linux, com um aspecto mais natalício.
Wallpapers
Temas KDE
A única razão porque ainda utilizo o Pidgin, é porque suporta vários protocolos, e acima de tudo é leve. Ultimamente numa das minhas contas, tenho apanhado bastante spam, o que basicamente é uma mensagem enviada por um bot, onde sou convidado a clicar num link qualquer.
Para acabar com isto, utilizei um pequeno programa, que depois de instalado se utiliza como plugin, e que cada vez que um utilizador, que não está na nossa lista de contactos, nos tenta enviar uma mensagem, é lhes feita uma pergunta, caso responda acertadamente, a mensagem é nos entregue caso contrário não. É claro que para uma pessoa, isto não será difícil de responder, mas para um bot não.
O programa é o botsentry, para instalar é só copiar a fonte, compilar e depois configurar no Pidgin com a pergunta que quisermos (convém é colocar perguntas fáceis e não algo do género: Qual a capital do Botswana?).
Recentemente adquiri uma placa de internet móvel do Sapo. Neste momento as placas comercializadas são as Huawei E180, que como já é hábito, vêm com drivers para Windows e Mac. Por ser uma placa recente no mercado, as perspectivas de encontrar suporte para Gnu/Linux não eram boas.
No site do fabricante nenhuma referência ao Linux, e um pedido de informação sobre isso, resultou no seguinte:
"Your feedback subject: E180
Huawei reply: Dear Customer: Thanks for your attention to our product! We are sorry to tell you,E180 don't support Linux OS at present。We only have drivers for WIN/vista/2000/XP /MAC now .Kind regards."
Ao que respondi:
"Well i have it working now under Linux. So it would be nice in the future for you to provide drivers and sfotware for this operating system. Not everybody uses Windows our Mac."
Talvez este tipo de atitude, multiplicada por muitos mais utilizadores, começasse a ter algum efeito nos fabricantes de hardware.
Após uma pesquisa no Google, encontrei uma página que me ajudou bastante. O problema destas pens de internet móvell, é que são ao mesmo tempo modem's e unidades de cdrom, que contêm os drivers necessários para a instalação do modem. No Windows, ao inserir a placa esta inicia o modo CDROM e depois de instalado o modem, alterna o estado para Modem. No Linux esta alternância de estado, não é automática.
1º - Alternar modo da placa (USB_ModeSwitch)
Para contornar este problema, utilizei o programa USB_ModeSwitch. Para instalar, basta ir buscar a fonte, compilar e copiar o binário usb_modeswitch para /sbin e o ficheiro usb_modeswitch.conf para /etc.
Este programa lê as configurações do ficheiro usb_modeswitch.conf, onde se encontram as identificações (ID) dos Fabricantes e Vendedores. Estas informações encontram-se comentadas, pelo que é necessário abrir o ficheiro e descomentar a secção do fabricante da placa, e colocar os IDs certos para Fabricante e Vendedor.
Para sabermos os IDs da nossa placa, basta um lsusb para nos mostrar a informação que precisamos:
#lsusb
Bus 002 Device 007: ID 0951:1603 Kingston Technology Data Traveler 1GB/2GB Pen Drive
Bus 002 Device 006: ID 12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA Modem / E270 HSDPA/HSUPA Modem
Neste caso, tenho na primeira linha a minha pen USB, e na 2a linha a pen da internet móvel, onde se pode ver o ID que precisamos ID 12d1:1003, o id do fabricante e o 12d1 e o do produto 1003.
Editamos o ficheiro usb_modeswitch.conf
#vi /etc/usb_modeswitch.conf
E na parte correspondente ao fabricante Huawei, descomentamos as linhas e alteramos os IDs caso seja necessário, como o meu ficheiro só trazia uma secção para o modelo E170, acrescentei uma secção nova e ficou assim:
########################################################
# Huawei E180
#
# Contributor: Bruno Queiros
DefaultVendor= 0x12d1;
DefaultProduct= 0x1003
# choose one of these:
;DetachStorageOnly=1
HuaweiMode=1
A parte importante é a descomentação da linha HuaweiMode=1 que transforma a pen num modem.
2º Criar a ligação /dev/ttyUSB0
Primeiro é necessário criar um script para o udev e gravá-lo como /sbin/usb_modeswitch.sh:
#!/bin/sh
# close these FDs to detach from udev
exec 1<&- 2<&- 5<&- 7<&-
sh -c "sleep 4; /usr/bin/usb_modeswitch" &
exit 0
Depois é necessário dizer ao processo udev para executar este script sempre que inserimos o modem, e depois disso carregar o módulo usb_serial:
# vi /etc/udev/rules.d/66-huawei.rules
SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1", SYSFS{idProduct}=="1003", RUN+="/sbin/usb_modeswitch.sh"
SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1", SYSFS{idProduct}=="1003", RUN+="/sbin/modprobe usbserial vendor=0x12d1 product=0x1003"
O importante é acertar nos ID's do fabricante e do produto, e no comando do script e do modprobe.
Neste momento, devemos ter a ligação para /dev/ttyUSB0 criado.
3º Executar a marcação para o ISP
Finalmente é ncessário executar a ligação para o nosso ISP, neste caso o Sapo. Pode-se utilizar qualquer programa de marcação para isto, mas como eu gosto das coisas simples, eu escolhi o wvdial. Este programa lê as informações do ficheiro /etc/wvdial.conf e de seguida executa a marcação. O meu ficheiro contém 2 marcações, uma para a padrão e outra para o Sapo:
[Dialer sapo]
username = 123
baud = 115200
password = 123
stupid mode = on
dial command = ATDT
modem type = Analog Modem
phone = *99#
init5 = AT+CGDCONT=1,"IP","internet"
init3 = ATQ0V1E1S0=0&C1&D2+FCLASS=0
init2 = ATZ
modem = /dev/ttyUSB0
isdn = 0
Finalmente, para executar a marcação, executamos o comando:
#wvdial sapo
Se tudo correr bem, devemos ter um link ppp0 criado e podemos começar a navegar.
ppp0 Link encap:Point-to-Point Protocol
inet addr:89.214.32.241 P-t-P:10.64.64.64 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:37320 errors:0 dropped:0 overruns:0 frame:0
TX packets:35855 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:30571808 (29.1 MiB) TX bytes:5150106 (4.9 MiB)
Para desligar basta Control+C na consola onde foi executado o comando.
Informação retirada de http://chankle.org/blog/index.php?/archives/24-Using-Huawei-E180-modem-in-linux-RHEL5.html.
Apesar disto ser o suficiente para utilizar a placa de internet, dá sempre jeito neste tipo de ligações que costumam ter pouco tráfego disponível, termos uma ferramenta para podermos visualizar o tráfego que estamos a consumir. Existem várias, mas escolhi uma simples e bastante funcional o pywvdial.
O pywvdial, permite marcar a ligação, e verificar o tráfego que se está a consumir, só é pena não ter um histórico, onde se pudesse verifcar o tráfego consumido no dia, na semana ou no mês.
O pywvdial, não é mais que um front-end para o wvdial, e lê o mesmo ficheiro de configuração, contudo necessita que tenhamos uma ligação com o nome Default, pelo que acrescentei a mesma ao ficheiro /etc/wvdial.conf
[Dialer Defaults]
baud = 115200
dial command = ATDT
username = 123
password = 123
stupid mode = on
ask password = off
phone = *99#
init5 = AT+CGDCONT=1,"IP","internet"
init3 = ATQ0V1E1S0=0&C1&D2+FCLASS=0
init2 = ATZ
login = 123
modem = /dev/ttyUSB0
Não é preciso ter 2 entradas iguais, basta terem uma com esse nome, importante também é que, esta ferramenta precisa ser executada com permissões de root, pelo que no KDE basta um ALT+F2, escrever o comando pywvdial, e clicar em opções, correr como outro utilizador - root.
Interface
Informação sobre o tráfego
De momento a aplicação está em inglês, mas assim que tiver algum tempo, vou tentar traduzi-la para Português, e também sugerir a inclusão da visualização de um histórico detalhado do tráfego.
Os únicos aspectos negativos, são o facto de não haver um software próprio para a gestão da ligação e do tráfego e o facto de a luz estar sempre ligada e não piscar.
Já saiu a nova versão da melhor distribuição de Gnu/Linux alguma vez criada, o Slackware Linux.
A nova versão não traz o KDE 4 (pelo simples facto de as próprias pessoas que o desenvolvem, dizerem que ainda não está o maduro suficiente), mas traz outras novidades:
Existem muitas mais novidades, as quais podem ser lidas na totalidade no anúncio oficial.
Quem quiser fazer o download pode fazê-lo aqui.
Quem já tiver o Slackware 12.1 (tal como eu) e quiser fazer o upgrade para o 12.2, basta seguir estas instruções:
" Before you begin, I would strongly recommend making a backup of your
system, or, if not the entire system, at least the /etc directory. You
might find that you need to refer to a few things after the upgrade
process is complete. Back it up, or take your chances.
OK, now that everything is safely backed up, let's proceed. :-)
To do this, you'll need the Slackware 12.2 packages. If these are on a CD,
create a new directory to mount the CD on so that it doesn't get in the way
during the upgrade:
mkdir /packages
mount /dev/cdrom /packages
The packages don't have to be on a CD-ROM, as an alternative you could
copy the slackware directory (the one with the various package
subdirectories in it, basically the "slackware" directory from the install
CD) to someplace like /root/slackware/. The important thing is that you
know where the slackware packages directory is. We'll use /root/slackware
in the following examples.
0. Put your machine in single-user mode:
telinit 1
Note that this is _not_ strictly required, and there have been reports
of success remotely upgrading machines that are still in multiuser
mode. However, more things can do wrong in multiuser, so especially
if you're considering a remote upgrade in multiuser mode, you might
want to clone the machine locally so that you can do a test run to
uncover any problem areas and come up with workarounds for them.
1. Upgrade your glibc shared libraries. This is important, or things
might go haywire during the first part of the upgrade:
upgradepkg /root/slackware/a/glibc-solibs-*.tgz
2. Upgrade your package utilities:
upgradepkg /root/slackware/a/pkgtools-*.tgz
3. Upgrade everything else (and install new packages):
upgradepkg --install-new /root/slackware/*/*.tgz
If you wish to upgrade everything except for the KDEI language
packs for KDE (these take a lot of space and can be dealt with
after the main upgrade more quickly and easily), running this
script in the "slackware" directory will do the trick:
#!/bin/sh
for dir in a ap d e f k kde l n t tcl x xap y ; do
( cd $dir ; upgradepkg --install-new *.tgz )
done
4. Make sure your system will boot. First, be sure your initrd is up
to date (if you use one). If you use LILO, make sure the paths in
/etc/lilo.conf point to a valid kernel and then type 'lilo' to
reinstall LILO. If you use a USB memory stick to boot, be sure to
copy the new kernel to it in place of the old one.
5. Remove obsolete packages. The CHANGES_AND_HINTS.TXT file should have a
list of these. You may also wish to go into /var/log/packages and take
a look at the package list:
ls -lt | less
You may spot some old, obsolete, or discontinued packages. If so,
you can remove these using 'removepkg'.
6. Fix your config files. Some of the config files in /etc are going to
need your attention. You'll find the new incoming config files on
your system with the ".new" extension. You may need to fill these in
with information from your old config files and then move them over.
Feel brave? You can use this little script to install most of the
.new config files in /etc. If you've made any local changes you'll
need to add them to the newly installed files. Your old config files
will be copied to *.bak. Anyway, it might be an easier starting
point. Here it is:
#!/bin/sh
cd /etc
find . -name "*.new" | while read configfile ; do
if [ ! "$configfile" = "./rc.d/rc.inet1.conf.new" \
-a ! "$configfile" = "./rc.d/rc.local.new" \
-a ! "$configfile" = "./group.new" \
-a ! "$configfile" = "./passwd.new" \
-a ! "$configfile" = "./shadow.new" ]; then
cp -a $(echo $configfile | rev | cut -f 2- -d . | rev) \
$(echo $configfile | rev | cut -f 2- -d . | rev).bak 2> /dev/null
mv $configfile $(echo $configfile | rev | cut -f 2- -d . | rev)
fi
done
7. If you use a non-en_US language pack for KDE and you already have it
installed, then you may upgrade it by moving into the slackware/kdei
directory and using this command:
upgradepkg --install-new k*<your KDE locale>*tgz
To have upgradepkg cycle through all of the available packages, and
see which ones need to be upgraded, use this in slakckare/kdei:
upgradepkg *tgz
If your language has been added to KDE since Slackware 12.1, you'll
need to install it using installpkg, or upgradepkg --install-new.
Typically you'll need to make sure that you have installed the
slackware/kdei packages for kde, koffice, and k3b (if you use those).
8. Return to multi-user mode:
telinit 3
At this point you should be running Slackware 12.2. :-)
I wish everyone good luck with this!
---
Patrick Volkerding "
Stand Belga
Compre um carro receba dois
Pague um leve dois: é um slogan familiar que anuncia promoções ou a época de saldos, mas não só. Um concessionário de carros está a usar a mesma frase para atrair clientes e fazer face à crise
A Cardoen, com sede na Antuérpia, vende cerca de 100 mil carros novos e usados começou a promoção ‘pague um carro leve dois’ no fim de Novembro e afirma que continuará até 15 de Dezembro.
Durante esse período, os clientes podem escolher dentro de um gama de carros cujo preço mínimo é de 22.800 euros e depois escolher outro totalmente grátis, de uma selecção cujo valor real ronda os 14 mil euros.
«Têm vindo pessoas de todo o pai e até mesmo do estrangeiro» , disse o director comercial da Cardoen, acrescentando que os oito stands receberam dez vezes mais visitas de potenciais compradores desde que começou a promoção.
«As pessoas vão continuar a comprar carros, temos apenas de lhes dar as melhores vantagens possíveis criando novas maneiras de vender», afirmou o director comercial.
A Cardoen pôde avançar com a promoção sem perder dinheiro uma vez que os seus fornecedores fizeram grandes descontos devido à crise no sector que lhes baixou muito as vendas.
SOL com agências
A subscrição é anónima e gera, no máximo, um e-mail por dia.
. Ora venha de lá esse voti...
. Slackware -Current e o no...
. Tornar Kde 4.X.X mais ráp...
. Frases
. Funcionamento do Google S...
. Gnome 3