ਮੇਰਾ ਮਨਪਸੰਦ ਟੈਕਸਟ ਐਡੀਟਰ ਹੈ ਜੀਨੀ. ਇਹ ਬਹੁਤ ਘੱਟ ਹੈ ਇਥੇ ਜੋ ਭਾਸ਼ਾਵਾਂ ਦੇ ਵਿਸ਼ਾਲ ਸਮੂਹ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ – ਸ਼ੈੱਲ, ਪੀਐਚਪੀ, ਪਾਈਥਨ, ਸੀ … ਆਦਿ. ਇਸਦੀ ਸਵੈਚਾਲਤ ਮੁਕੰਮਲਤਾ ਹੈ ਅਤੇ ਉਸੇ ਸਮੇਂ ਇਹ ਬਹੁਤ ਚੁਸਤ ਹੈ. ਇਸ ਵਿਚ ਕੁਝ ਹੋਰ ਸੁਹਾਵਣੇ ਅਵਸਰ ਦੀ ਘਾਟ ਹੈ, ਪਰ ਇਸ ਸਮੇਂ ਇਹ ਮੇਰੇ ਲਈ ਕਾਫ਼ੀ ਜ਼ਿਆਦਾ ਹੈ. ਮੈਂ ਇੱਕ courseਨਲਾਈਨ ਕੋਰਸ ਸ਼ੁਰੂ ਕੀਤਾ ਪਾਇਥਨ ਪ੍ਰੋਗਰਾਮਿੰਗ на ਸਾਫਟਯੂਨੀ – ਆਪਣੇ ਗਿਆਨ ਨੂੰ ਤਾਜ਼ਾ ਕਰਨ ਅਤੇ ਇਸ ਨੂੰ ਅਪਗ੍ਰੇਡ ਕਰਨ ਲਈ ਕਿਉਂਕਿ ਮੈਂ ਪਾਈਥਨ ਨਾਲ ਜੋ ਹੋ ਰਿਹਾ ਹੈ ਉਸ ਦੀ ਪੂਰੀ ਤਰ੍ਹਾਂ ਨਿਗਰਾਨੀ ਨਹੀਂ ਕੀਤੀ 3. ਕੋਰਸ ਦੇ ਲੈਕਚਰਾਰ ਸਿਫਾਰਸ਼ ਕਰਦੇ ਹਨ ਪਾਈਚਾਰਮ ਪਾਈਟਨ ਪ੍ਰੋਗਰਾਮਿੰਗ ਲਈ ਇੱਕ ਆਈਡੀਈ ਦੇ ਤੌਰ ਤੇ, ਪਰ ਮੈਨੂੰ ਇਹ ਬਿਲਕੁਲ ਪਸੰਦ ਨਹੀਂ ਹੈ, ਬੇਸ਼ਕ ਮੈਂ ਅਭਿਆਸਾਂ ਲਈ ਗੇਨੀ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹਾਂ.

ਭਾਸ਼ਣ ਦੇ ਦੌਰਾਨ ਮੈਂ ਦੁਖਦਾਈ ਮਹਿਸੂਸ ਕੀਤਾ 2 ਦੀ ਘਾਟ

  1. ਫਾਈਥਨ ਅਤੇ ocੰਗਾਂ ਦੇ ਦਸਤਾਵੇਜ਼ਾਂ ਤੋਂ ਪਾਈਥਨ ਆਟੋਕੰਪਲੀਟਿਵ ਸਾਹ
  2. ਲਈ ਕੋਈ ਪ੍ਰਮਾਣਿਕਤਾ ਨਹੀਂ pep8 ਮਿਆਰ

ਚੰਗੀ ਗੱਲ ਇਹ ਹੈ ਕਿ ਗੇਨੀ ਕੌਂਫਿਗਰ ਕਰਨ ਲਈ ਕਾਫ਼ੀ ਲਚਕਦਾਰ ਹੈ ਅਤੇ ਗੁੰਮਸ਼ੁਦਾ ਵਿਅਕਤੀਆਂ ਦੁਆਰਾ ਆਸਾਨੀ ਨਾਲ ਪੂਰਕ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ.. ਕਈ ਵਾਰੀ ਪਾਈਥਨ ਡੌਕੂਮੈਂਟੇਸ਼ਨ ਸ਼ਾਮਲ ਕਰੋ ਸਾਡੇ IDE ਨੂੰ:

  • ਅਸੀਂ ਖਿੱਚਦੇ ਹਾਂ ਹੇਠ ਲਿਖੀ ਸਕ੍ਰਿਪਟ ਸਾਡੇ ਪਾਥ ਵਿੱਚ ਕਿਤੇ ਵੀ ਉਦਾਹਰਣ ਲਈ / usr / ਬਿਨ ਅਤੇ ਇਸ ਨੂੰ ਚੱਲਣਯੋਗ ਬਣਾਉਣਾ ਨਾ ਭੁੱਲੋ
  • ਸੈਟਿੰਗ ਸੈਕਸ਼ਨ ਵਿਚ ਹੇਠ ਲਿਖੀ ਲਾਈਨ ਜੋੜ ਕੇ ~ / .config / geany / filedefs / filetyype.python ਫਾਈਲ ਨੂੰ ਸੋਧੋ ਪ੍ਰਸੰਗ_ਅਕਤਾ_ਸੀਮੀਡੀ = ਪਾਈਡੌਕਸ% s. ਜੇ ਇੱਥੇ ਪਿਛਲੇ ਪਗ ਤੋਂ ਸਿਰਫ ਬਾਈਨਰੀ ਦਾ ਨਾਮ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ. ਜੇ ਗੇਨੀ ਜਾਰੀ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਅਸੀਂ ਜੀਨੀ ਨੂੰ ਦੁਬਾਰਾ ਅਰੰਭ ਕਰਦੇ ਹਾਂ.
  • ਸਾਡੇ ਕੋਲ ਪਹਿਲਾਂ ਹੀ ਪ੍ਰਸੰਗ-ਕਿਰਿਆ ਹੈ ਜੋ ਤੁਹਾਨੂੰ ਫੰਕਸ਼ਨ ਬਾਰੇ ਜਾਣਕਾਰੀ ਦੇਵੇਗੀ. Аз си добавих shortcut за да ми е по удобно като не ми е ясно някоя функционалност. ਮੈਨੂੰ ਇਹ ਪਹੁੰਚ ਬਹੁਤ ਪਸੰਦ ਹੈ ਕਿਉਂਕਿ ਮੈਂ ਨੈੱਟਬੀਨ ਦੀ ਪਹੁੰਚ ਤੋਂ ਬਹੁਤ ਨਾਰਾਜ਼ ਹਾਂ.

ਹੁਣ ਤੱਕ ਬਹੁਤ ਵਧੀਆ. ਫਿਰ ਮੈਂ ਸੱਚਮੁੱਚ ਉਸ ਕੋਡ ਦੀ ਵੈਧਤਾ ਚਾਹੁੰਦਾ ਹਾਂ ਜੋ ਮੈਂ ਲਿਖਦਾ ਹਾਂ – ਭਾਵੇਂ ਮੈਂ ਇਸਨੂੰ ਆਮ ਤੌਰ ਤੇ ਸਵੀਕਾਰੇ ਮਿਆਰਾਂ ਅਨੁਸਾਰ ਲਿਖਦਾ ਹਾਂ ਜਾਂ ਮੈਂ ਕੁਝ ਬਦਸੂਰਤੀ ਲਿਖਦਾ ਹਾਂ. ਅਸਲ ਵਿਚ ਮੈਨੂੰ ਇਹ ਫਿਰ ਮਿਲਿਆ ਟਿutorialਟੋਰਿਯਲ ਚੀਜ਼ਾਂ ਕਿਵੇਂ ਹੁੰਦੀਆਂ ਹਨ ਪਰ ਇਹ ਥੋੜਾ ਪੁਰਾਣਾ ਹੈ – ਗੇਨੀ ਵਿਚ ਸਭ ਕੁਝ ਬਣਾਇਆ ਹੋਇਆ ਹੈ, ਤੁਹਾਨੂੰ ਸਿਰਫ ਪੇਪ 8 ਪੈਕੇਜ ਸਥਾਪਤ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਹੈ. ਡੇਬੀਅਨ ਐਪਟ-ਗਨ ਇਨਸਟਾਲ ਪੇਪ 8 ਦੂਸਰੀਆਂ ਡਿਸਟ੍ਰੋਸ ਵਿੱਚ ਕੰਮ ਕਰਦਾ ਹੈ ਤੁਹਾਨੂੰ ਆਪਣੇ ਆਪ ਨੂੰ ਇਹ ਪਤਾ ਲਗਾਉਣਾ ਹੋਵੇਗਾ ਕਿ ਜਾਦੂ ਕਿਵੇਂ ਹੁੰਦਾ ਹੈ. ਬਿਲਡ ਮੇਨੂ ਵਿੱਚ, ਦੂਜਾ ਬਟਨ (ਘੱਟੋ ਘੱਟ ਮੇਰੇ ਲਈ) ਇਸ ਨੂੰ ਦਬਾਉਣ ਤੋਂ ਬਾਅਦ ਲਿੰਟ ਹੈ ਤੁਸੀਂ ਦੇਖੋਗੇ ਕਿ ਤੁਸੀਂ ਕਿੰਨਾ ਬਦਸੂਰਤ ਕੋਡ ਬਣਾਇਆ ਹੈ 😀

ਤੋਂ ਸਕਰੀਨ ਸ਼ਾਟ 2016-01-11 20-42-21

ਇਹ ਇਕ ਆਮ ਰੂਪਰੇਖਾ ਹੈ ਕਿ ਤੁਹਾਡੀ ਜੀਨੀ ਨੂੰ ਪਾਈਥਨ ਨਾਲ ਕਿਵੇਂ ਬਿਹਤਰ workੰਗ ਨਾਲ ਕੰਮ ਕਰਨਾ ਹੈ, ਜਦੋਂ ਕਿ ਤੁਹਾਡੇ ਸੀਪੀਯੂ ਨੂੰ ਬੁਲੇਟ ਨੂੰ ਖਿੱਚਣਾ ਨਹੀਂ ਚਾਹੁੰਦੇ ਬਿਨਾਂ ਵੀ ਤੇਜ਼ੀ ਨਾਲ ਕੰਮ ਕਰਨਾ ਹੈ..

ਵਿੱਚ ਪ੍ਰਮਾਣੀਕਰਣ ipv6.he.net ਰੋਜ਼ਾਨਾ ਟੈਸਟ ਹੁੰਦੇ ਹਨ ਜੋ ਦਿੰਦੇ ਹਨ 1 ਸਾਰੇ ਮੁ basicਲੇ ਟੈਸਟ ਪਾਸ ਕਰਨ ਤੋਂ ਬਾਅਦ ਇਕ ਵਾਧੂ ਬਿੰਦੂ. ਉਹ ਕੀਤਾ ਜਾਣਾ ਹੈ 100 ਵੱਧ ਤੋਂ ਵੱਧ ਸਕੋਰ ਲਈ ਅਜਿਹੇ ਟੈਸਟ . ਟੈਸਟ ਆਪਣੇ ਆਪ ਵਿਚ ਪੂਰੀ ਤਰ੍ਹਾਂ ਮਾਮੂਲੀ ਹਨ

  • ਟਰੇਸ੍ਰੋਟ
  • ਤੁਸੀਂ ਏ.ਏ.ਏ.ਏ.
  • ਤੁਸੀਂ ਪੀ.ਟੀ.ਆਰ.
  • ਪਿੰਗ
  • ਕੌਣ ਹੈ

ਸਭ ਤੋਂ ਕੋਝਾ ਗੱਲ ਇਹ ਹੈ ਕਿ ਟੈਸਟ ਆਪਣੇ ਆਪ ਵਿਲੱਖਣ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ, ਜਿਵੇਂ ਕਿ ਤੁਸੀਂ ਇੱਕ ਡੋਮੇਨ ਦੋ ਵਾਰ ਨਹੀਂ ਵਰਤ ਸਕਦੇ else ਸਭ ਕੁਝ ਤੋਂ ਇਲਾਵਾ, ਉਹ ਥੋੜਾ ਤੰਗ ਕਰਨ ਵਾਲੇ ਹਨ 🙄 – ਕੋਈ ਚੁਨੌਤੀ ਨਹੀਂ 5 ਸੀਆਈਐਮ ਵਿੱਚ ਕਮਾਂਡਾਂ ਅਤੇ ਆਪਣੀ ਸਾਈਟ ਤੇ ਨਤੀਜੇ ਦੀ ਨਕਲ / ਪੇਸਟ ਕਰੋ.

ਇੱਕ ਆਲਸੀ ਅਤੇ ਪ੍ਰਬੰਧਕ ਵਜੋਂ ਜੋ ਆਪਣੀ ਜ਼ਿੰਦਗੀ ਨੂੰ ਸੌਖਾ ਬਣਾਉਣਾ ਪਸੰਦ ਕਰਦਾ ਹੈ, ਮੈਂ ਜਲਦੀ ਇੱਕ ਐਲੀਮੈਂਟਰੀ ਬੈਸ਼ ਨੂੰ ਖੁਰਚਿਆ ਜੋ ਮੇਰੇ ਲਈ ਗੰਦਾ ਕੰਮ ਕਰਦਾ ਹੈ.

#!/bin/bash

hr() {
  local start=$'\e(0' end=$'\e(B' line='qqqqqqqqqqqqqqqq'
  local cols=${COLUMNS:-$(tput cols)}
  while ((${#line} < cols)); do line+="$line"; done
  printf '%s%s%s\n' "$start" "${line:0:cols}" "$end"
}

if [ -z $1 ]
then
  echo "Append domain afert the script name!!!"
  exit
fi

IP=$(dig $1 AAAA +short)

if [ -z ${IP} ]
then
  echo "$1 dont have valid IPv6 record"
else
  reset
  traceroute6 $1
  hr
  dig $1 AAAA
  hr
  dig -x ${IP}
  hr
  ping6 -c3 ${IP}
  hr 
  whois ${IP}
fi

ਜਿਵੇਂ ਕਿ ਤੁਸੀਂ ਵੇਖ ਸਕਦੇ ਹੋ, ਸਕ੍ਰਿਪਟ ਬਹੁਤ ਅਸਾਨ ਹੈ. ਤੁਸੀਂ ਇੱਕ ਡੋਮੇਨ ਜਮ੍ਹਾ ਕਰਦੇ ਹੋ ਅਤੇ ਫਿਰ ਇਸ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਦੇ ਹੋ ਕਿ ਇਹ ਵੇਖਣ ਲਈ ਕਿ ਕੋਈ ਆਈਪੀਵੀ 6 ਰਿਕਾਰਡ ਹੈ ਅਤੇ ਜੇ ਅਜਿਹਾ ਹੈ, ਤਾਂ ਇਸਦੇ ਲਈ ਰੋਜ਼ਾਨਾ ਟੈਸਟ ਕਰੋ. ਠੰਡਾ ਹਿੱਸਾ – ਕਾਰਜ ਘੰਟਾ ਜਿਹੜੀ ਸਕ੍ਰੀਨ ਦੀ ਪੂਰੀ ਚੌੜਾਈ ਵਿੱਚ ਇੱਕ ਲਾਈਨ ਪ੍ਰਿੰਟ ਕਰਦੀ ਹੈ ਤੋਂ ਲਈ ਗਈ ਹੈ ਬੈਸ਼-ਹੈਕਰ.

A shell script wants your job

ਅੱਜ ਜਦੋਂ ਮੈਂ ਕੰਮ ਕਰ ਰਿਹਾ ਸੀ ਮੈਂ ਵੇਖਿਆ ਕਿ ਇੱਕ ਮਸ਼ੀਨ ਬਹੁਤ ਬੁਰੀ ਤਰ੍ਹਾਂ ਗਲਤ ਪਈ ਸੀ. ਮੈਂ ਇਸ ਵਿਚ ਬਹੁਤ ਸਾਰੀਆਂ ਜ਼ੂਮਬੀਆ ਪ੍ਰਕ੍ਰਿਆਵਾਂ ਦੇ ਨਰਕ ਵਿਚ ਇਕ ਕ੍ਰੋਨ ਬੰਪ ਵੇਖ ਰਿਹਾ ਹਾਂ (ਤਕਰੀਬਨ 50-60). ਕੋਈ ਤਰੀਕਾ ਨਹੀਂ ਸੀ ਕਿ ਮੈਂ ਉਨ੍ਹਾਂ ਸਾਰਿਆਂ ਨੂੰ ਮਾਰ ਸਕਦਾ ਕਿੱਲਲ ਇਸ ਲਈ ਮੈਨੂੰ ਸਮੱਸਿਆ ਦਾ ਥੋੜਾ ਵਧੇਰੇ ਯੋਗ ਹੱਲ ਕਰਨਾ ਪਿਆ – ਇਕ ਐਲੀਮੈਂਟਰੀ ਖਿੱਚਣ ਲਈ ਬੇਸ਼ ਕਾਰਜ ਲੱਭਣ ਅਤੇ ਮਾਰਨ ਲਈ ਸਕ੍ਰਿਪਟ. 50-ਹੱਥ ਲਿਖ ਕੇ ਲਿਖਣਾ ਸੌਖਾ ਨਹੀਂ ਹੁੰਦਾ :ਡੀ. ਮੈਂ ਸਕ੍ਰਿਪਟ ਨੂੰ ਇੱਕ ਮਿੰਟ ਲਈ ਸਕ੍ਰੈਚ ਕੀਤਾ ਅਤੇ ਇਹ ਬਹੁਤ ਸੌਖਾ ਹੈ, ਪਰ ਇਹ ਫਿਰ ਵੀ ਧਿਆਨ ਦੇ ਹੱਕਦਾਰ ਹੈ 🙂

ਇਸ ਦੇ ਅਧਾਰ 'ਤੇ ਕਨਵੇਅਰ ਹੈ

ps ax | grep -v grep | grep process_name | awk '{print $1}')

ਇੱਥੇ ਅਸੀਂ ਪ੍ਰਕਿਰਿਆ ਦੇ ਸਾਰੇ ਪੀਆਈਡੀਜ਼ ਦੇ ਨਾਲ ਇੱਕ ਸ਼ੀਟ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹਾਂ ਜੋ ਸਾਨੂੰ ਇਸ ਸੂਚੀ ਵਿੱਚੋਂ ਗ੍ਰੇਪ ਨੂੰ ਬਾਹਰ ਕੱ by ਕੇ ਮਾਰਨਾ ਹੈ. ਹੁਣ ਜਦੋਂ ਸਾਡੇ ਕੋਲ ਸੂਚੀ ਹੈ, ਚੀਜ਼ਾਂ ਅਸਾਨ ਹੋ ਜਾਂਦੀਆਂ ਹਨ, ਸਭ ਕੁਝ ਇਕ ਲਈ ਬਦਲ ਜਾਂਦਾ ਹੈ. ਇਹ ਅੰਤਮ ਨਤੀਜਾ ਹੈ

#!/bin/bash

PR=$(ps ax | grep -v grep | grep process_name | awk '{print $1}')

for PID in $PR
do
echo "$PID will be killed"
kill -9 $PID
done

ਹੋ ਸਕਦਾ ਹੈ “ਟਿingਨਿੰਗ” ਜਿਵੇਂ ਕਿ ਸਕ੍ਰਿਪਟ ਦੇ ਨਾਮ ਤੋਂ ਬਾਅਦ ਨਾਮ ਨੂੰ ਇੱਕ ਦਲੀਲ ਵਜੋਂ ਲਿਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਇਸ ਤਰ੍ਹਾਂ ਐਗਜ਼ੀਕਿableਟੇਬਲ ਬਾਈਨਰੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ. ਹਾਲਾਂਕਿ, ਇਸ ਤਰ੍ਹਾਂ ਦੇ ਅਕਸਰ ਕੇਸ ਹੋਣਾ ਬਹੁਤ ਵਧੀਆ ਅਭਿਆਸ ਨਹੀਂ ਹੈ 😀 ਪਰ ਇਹ ਸਾਨੂੰ ਕਦੇ ਵੀ ਕਿਸੇ ਤੋਂ ਸੁਰੱਖਿਅਤ ਹੋਣ ਤੋਂ ਨਹੀਂ ਰੋਕਦਾ

ਜ਼ੇਮੰਟਾ ਦੁਆਰਾ ਵਧਾਇਆ

Днес си играх да оптимизирам една бавна SQL заявка от вида

SELECT * FROM 'table' WHERE `field` LIKE '%word%'

Къде е проблемният момент тукапоследната част ‘%word%и в още по-голяма конкретност знака % преди думата, за която правим. Wildcard символът % ,преди която и да е стойност, директно ни превръща заявката директно в бавна, защото по този начин заявката ни спира да ползва индекси на полето. Решения както винаги има, но не винаги са ясни 😆 Общо взето MySQL си имат решение на тоя проблем с fulltext search индексиране на полето. Как става смяната на полето има много написано в документацията, но набързо ще опиша как се променя горната заявка, защото ще стигнем и до една малка драма накрая. Следка като приложим fulltext на полето горе, заявката трябва да се промени във вида:

SELECT * FROM `table` WHERE MATCH (field) AGAINST ('word')

Така структурата е очевидна и няма нужда от излишна дискусия. Горната заявка ще влезе в сила, ако думата, за която правите заявка е поне 4 символа, по подразбиране е това стойността, ако искате да я модифицирате трябва да укажете стойността, която желаете в my.cnf в частта [mysqld] с декларацията ft_min_word_len=3 или 2, 1 не е добър избор очевидно 😉 . След като смените стойността и рестартирате mysql server-a трябва да направите repair на таблиците си, за да може новото индексиране да влезе в сила. До тук всичко ясно: правя промените, рестартирам, ребилдвам индексите и правя заявката и ми връща 0 реда 😀 Проверявам с

SHOW VARIABLES

Виждам че стойностите, който съм задал са влезли в сила, ребилдвам пак индекситесъщия резултат. 🙄 Неприятно, много неприятно. От тук нататък започна едно голямо ругаене и ровене за ключа за бараката 😀 Който се оказа доста, доста интересен. Като цяло, като започнах да чета документацията за не знам кой път и стигнах до един интересен пасаж

Such a technique works best with large collections (in fact, it was carefully tuned this way). For very small tables, word distribution does not adequately reflect their semantic value, and this model may sometimes produce bizarre results. For example, although the word “MySQL” is present in every row of the articles table shown earlier, a search for the word produces no results

ГРЕДА 😳 Дам табличката ми беше малкавсе пак беше тестова. Наших заявката в една голяма таблица с над 2 000 000 реда и там нещата заспаха. Добре вече е ясен проблемът. За да стане ясно решението, ще спомена накратко, че full text search поддържа 3 разширени режима BOOLEAN , EXPRESSIONS ਅਤੇ NATURAL LANGUAGE като последния работи по подразбиране. За различните режими може да проверите документацията, аз ще обясня с 2-3 думи за BOOLEAN понеже в него е разковничето. Той поддържа логически оператори от типа AND, OR , NOT и прочие и може да се правят разни магии с търсените фрази, да има една, да няма друга и прочие. Поддържа и символа *, който е еквивалент на wildcard символа % 😉 Той е полезен, когато търсената дума е под дължината на ft_min_word_len или за малки таблички ;). Поне при мен на таблица с около 100 реда върши идеална работа. Остана само да видим и завършената заявка:

SELECT * FROM `table` WHERE MATCH (field)
AGAINST ('*word*' IN BOOLEAN MODE)

Тука вече идва момент дали ни работи индексирането с wildcard символаотговорът е не знам. Принципно мисля, че да, защото не е казано друго в документацията, но в документацията очевидно не се казват или показват много неща 😀

ਜ਼ੇਮੰਟਾ ਦੁਆਰਾ ਵਧਾਇਆ

За единия проект които водя в gitweb ме дразнеше, че няма оцветяване на кода в дървото. Лесен начин как да оцветите синтаксиса в tree частта на gitweb е като инсталирате пакета highlight и добавите следния ред в /etc/gitweb.conf или където ви се намира конфигурационния файл на gitweb

$feature{‘highlight’}{‘default’} = [1];

За Debian пакета го има в пакетната система за другите дистрибуции не съм проверявал.

ps Има и алтернативен вариант като се правят промени по файловете на gitweb ама ми се стори безсмислено като има простичък вариант 🙂