Fii liber - bash http://fii-liber.ro/taguri/bash ro Mozilla Firefox în Debian http://fii-liber.ro/mozilla-firefox-%C3%AEn-debian <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p><a class="colorbox colorbox-insert-image" href="http://fii-liber.ro/sites/default/files//debian-firefox.png" rel="gallery-all" title=""><img alt="" class="image-thumbnail" src="http://fii-liber.ro/sites/default/files//styles/thumbnail/public/debian-firefox.png" style="float: right; margin-left: 5px; margin-right: 5px;" title="" typeof="foaf:Image" /></a>O problemă comună în rândul utilizatorilor sistemului de operare Debian se pare că este înlocuirea pachetului Iceweasel cu ultima versiune de Mozilla Firefox. Am ajuns la această concluzie după ce am fost abordat pe această temă în repetate rânduri, drept pentru care voi prezenta în continuare un mic ghid.</p> <!--break--><p>Am două precizări importante înainte de a continua, și pentru a elimina unele confuzii ușor de făcut:</p> <ul><li> am toată considerația pentru munca administratorilor de pachete din depozitele Debian. Au făcut întotdeauna o treabă excelentă, și nu mă pot plânge de calitatea sau cantitatea lor (deși sunt destui care o fac). <i>Kudos, glandium, for taking your time to integrate the Mozilla-related packages into Debian!</i></li> <li> nu sunt un maniac al versiunilor. Nu am nicio intenție de a rula ultimele versiuni ale programelor, în afara cazurilor în care le testez sau depind de funcționalități specifice lor. Aș putea trăi în oldstable pentru o săptămână de lucru, fără să am mari probleme de acomodare :-)</li> </ul><p>Atenție: exemplele de mai jos sunt construite utilizând „sudo”, dar dacă „sudo” nu este configurat pe sistem, toate comenzile care încep astfel vor trebui executate ca „root”.</p> <p><b>1. </b>Primul lucru de care avem nevoie este cea mai recentă versiune stabilă a Mozilla Firefox:</p> <pre> wget http://releases.mozilla.org/pub/mozilla.org/firefox/releases/latest/linux-i686/en-US/firefox-15.0.1.tar.bz2 </pre><p><b>2. </b>Arhiva astfel obținută va fi dezarhivată:</p> <pre> tar -xf firefox-15.0.1.tar.bz2 </pre><p><b>3. </b>...și mutată într-o locație tipică programelor adiționale, de exemplu /opt</p> <pre> sudo mv firefox/ /opt cd /opt/firefox/ </pre><p><b>4. </b>Pentru a nu avea probleme la actualizări, recomand trecerea directorului nou creat în proprietatea utilizatorului obișnuit de lucru, pe mașinile cu un singur utilizator de mediu grafic, sau a grupului comun utilizatorilor, pe sistemele unde este cazul. Voi oferi un exemplu care le combină pe ambele:</p> <pre> sudo chown victor:users . -R </pre><p>Opțional, dacă setarea se face pe grup:</p> <pre> chmod 774 . -R </pre><p><b>5. </b>Acum avem Firefox pe sistem, mai trebuie puțină grijă de extensii (voi păstra locația implicită a Iceweasel pentru asta):</p> <pre> ln -s /usr/lib/mozilla/plugins /opt/firefox/plugins </pre><p><b>6. </b>Pentru a înlocui comanda care lansează Iceweasel cu Firefox, am mutat-o pe cea veche:</p> <pre> sudo mv /usr/bin/firefox /usr/bin/firefox-iceweasel </pre><p><b>7. </b>...și am creat-o pe cea nouă:</p> <pre> sudo ln -s /opt/firefox/firefox /usr/bin/firefox </pre><p><b>8. </b>Sistemul mai are câteva mici nevoi pentru a accepta liniștit schimbarea. Întâi, o intrare .desktop:</p> <pre> sudo nano /usr/share/applications/firefox.desktop </pre><p>și lipit următorul conținut:</p> <pre> [Desktop Entry] Name=Firefox GenericName=Web Browser Comment=Mozilla Firefox Exec=/opt/firefox/firefox %u Terminal=false Icon=/opt/firefox/icons/mozicon128.png Type=Application Categories=Application;Network;WebBrowser; MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png; StartupWMClass=Firefox-bin StartupNotify=true' </pre><p>ATENȚIE: Numele pictogramei se poate schimba de la o versiune la alta, de verificat periodic în caz că dispare brusc :-)</p> <p><b>8'. </b>La fiecare actualizare de sistem, Iceweasel va vrea să rescrie legătura din /usr/bin/firefox cu o legătură către el însuși. De aceea, de moment ce nu mai suntem interesați de Iceweasel, vom instrui aptitude să oprească actualizările pentru acesta(pentru asta va fi nevoie de root, probabil):</p> <pre> echo "iceweasel hold" | dpkg --set-selections</pre><p><b>9. </b>În continuare, am folosit update-alternatives pentru a obține efectul de navigator implicit pe sistem:</p> <pre> update-alternatives --install /usr/bin/x-www-browser x-www-browser /opt/firefox/firefox 100 update-alternatives --set x-www-browser /opt/firefox/firefox </pre><p>Am făcut pașii de mai sus pe un sistem pe 32 de biți, după cum se poate vedea din calea aleasă pentru descărcare. Ar fi interesant dacă cineva mi-ar trimite o adăugire și pentru 64 de biți (e foarte posibil să fie ceva diferit la extensii sau ia32-libs), pentru a acoperi cele mai importante arhitecturi.</p> <p>Pentru a ușura toate etapele, am compus un script simplu, care execută tot. Sunt două opțiiuni de utilizare:</p> <ul><li> cu „sudo”, caz în care nu se va alege dezactivarea actualizărilor. Pe sistemul meu a fost nevoie de „root”, altfel primeam: <pre> dpkg: error: operation requires read/write access to dpkg status area </pre></li> <li> de sub contul de „root”, în caz contrar</li> </ul><p>Codul este:</p> <pre> #!/bin/bash echo -n "Introdu numele utilizatorului care va folosi Mozilla Firefox [$(whoami)]: " read USER echo -n "Introdu grupul care va utiliza Firefox [$(id -gn)]: " read GROUP echo -n "URL-ul arhivei pentru instalare: " read URL echo -n "Vrei să blochezi actualizările Iceweasel (recomandat) - doar dacă ești logat ca root [D/n] " read DPKG if [ -n "$DPKG" ] || DPKG='Y' if [ -z "$URL" ]; then URL="http://releases.mozilla.org/pub/mozilla.org/firefox/releases/15.0.1/linux-i686/en-US/firefox-15.0.1.tar.bz2" else #if [ -n "$(curl -sr 0-1 $URL | grep '404')" || $URL =~ '[.]*firefox-([0-9\.-_]*).tar.bz2' ]; then if [ -n "$(curl -sr 0-1 $URL | grep '404')" ]; then echo 'Eroare: URL nevalid!' ; exit; else echo 'URL valid, continuă...' fi fi echo '==========[ Pasul 1/3: Descărcarea navigatorului Mozilla Firefox ]==========' curl $URL | tar -jxv echo '==========[ Pasul 2/3: Copierea navigatorului Mozilla Firefox În sistem ]==========' mv firefox/ /opt if [ -z "$USER" ]; then USER=$(id -un) fi if [ -z "$GROUP" ]; then GROUP=$(id -gn) chown $USER:$GROUP /opt/firefox/ -R chmod 754 /opt/firefox/ -R else chown $USER:$GROUP /opt/firefox/ -R chmod 774 /opt/firefox/ -R fi echo '==========[ Pasul 3/3: Crearea legăturilor în sistem ]==========' ln -s /usr/lib/mozilla/plugins /opt/firefox/plugins mv /usr/bin/firefox /usr/bin/firefox-iceweasel ln -sf /opt/firefox/firefox /usr/bin/firefox echo '[Desktop Entry] Name=Firefox GenericName=Web Browser Comment=Mozilla Firefox Exec=/opt/firefox/firefox %u Terminal=false Icon=/opt/firefox/icons/mozicon128.png Type=Application Categories=Application;Network;WebBrowser; MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png; StartupWMClass=Firefox-bin StartupNotify=true' &gt; /usr/share/applications/firefox.desktop update-alternatives --install /usr/bin/x-www-browser x-www-browser /opt/firefox/firefox 100 update-alternatives --set x-www-browser /opt/firefox/firefox if [ "$DPKG" = "Y" ] ; then echo "iceweasel hold" | dpkg --set-selections else echo "Atenție: pentru a dezactiva actualizările Iceweasel, execută ca root comanda:" echo 'echo "iceweasel hold" | dpkg --set-selections"' fi echo '==========[ Instalarea a reușit! Mozilla Firefox este navigatorul implicit și se află în meniul cu aplicații de rețea ]==========' </pre><p>Cu câteva cunoștințe minime de GNU Bash, sau cu ceva intuiție, codul se poate altera după plac pentru a ajunge la efectele dorite fără a da prea multe comenzi de mână.</p> <p>Acesta trebuie copiat într-o locație unde utilizatorul curent are drepturi de scriere, apoi făcut executabil și rulat -- presupunând că fișierul se numește install_mozilla-ff.sh, ar trebui:</p> <pre> chmod +x install_mozilla-ff.sh ./install_mozilla-ff.sh</pre><p>Notă: Acest articol liber a apărut pentru prima dată în jurnalul lui Victor Nițu din comunitatea Ceata, <a href="http://jurnale.ceata.org/~vnitu/archives/2012/10/01/debian_cu_mozilla_firefox/">jurnale.ceata.org/~vnitu</a>. Codul din acest articol este licențiat sub <a href="http://www.gnu.org/licenses/gpl.html">GPLv3+</a>.</p> </div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-above clearfix"><h3 class="field-label">Meniu: </h3><ul class="links"><li class="taxonomy-term-reference-0"><a href="/ghiduri" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Ghiduri</a></li><li class="taxonomy-term-reference-1"><a href="/tehnologie" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Tehnologie</a></li></ul></div><div class="field field-name-taxonomy-vocabulary-3 field-type-taxonomy-term-reference field-label-above clearfix"><h3 class="field-label">Etichete: </h3><ul class="links"><li class="taxonomy-term-reference-0"><a href="/taxonomy/term/120" typeof="skos:Concept" property="rdfs:label skos:prefLabel">firefox</a></li><li class="taxonomy-term-reference-1"><a href="/taguri/debian" typeof="skos:Concept" property="rdfs:label skos:prefLabel">debian</a></li><li class="taxonomy-term-reference-2"><a href="/taguri/iceweasel" typeof="skos:Concept" property="rdfs:label skos:prefLabel">iceweasel</a></li><li class="taxonomy-term-reference-3"><a href="/taguri/bash" typeof="skos:Concept" property="rdfs:label skos:prefLabel">bash</a></li></ul></div> Mon, 01 Oct 2012 06:43:15 +0000 vnitu 215 at http://fii-liber.ro http://fii-liber.ro/mozilla-firefox-%C3%AEn-debian#comments