Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am trying to set up bip on a proxy server (ie AWS EC2 instance - a virtual private server) and when I try running it with the command:

'sudo /usr/bin/bip -f .bip/bip.conf`

from my /home/user directory, I receive the following message:

FATAL: mkdir($HOME/.bip/logs) No such file or directory

I believe my ~/.bip/bip.conf file is incorrect, because I can run the command from ~/.bip/bip_copy.conf where bip_copy.conf is the default configuration file. My ~/.bip/bip.conf file is below.

echo $HOME returns /home/ubuntu (where I have been calling my commands). Also my ~/.bip/ directory contains my bip.conf file and logs directory.

I have been following these tutorials as a guide, but they have not helped me troubleshoot this situation:

http://blog.dustinkirkland.com/2011/08/keep-one-ssh-tunnel-to-bip-proxy-server.html http://nerderati.com/2010/11/perpetual-irc-the-proxy-edition/ https://wiki.linaro.org/Resources/HowTo/BIP

My bip.conf:

# bip default config file.
# Thou shoult change thy password

ip = "";

# To connect a client to bip, try the port below, and
# be sure to set the password to the value
# specified in the network you want to connect to. 
port = 6667;

# If you set this to true, you'll only be able to connect to bip
# with a SSL capable IRC client. Be sure to generate a certificate
# for bip with 'make cert'
client_side_ssl = false;

log_level = 2;


# This is where logs go. Channel and private messages will use that
# configuration value as a prefix, and then log_format to determine
# full log filename.
log_root = "$HOME/.bip/logs";

# Log format allows you to make log filenames depend on the log line's
# attributes. Here's a list :
# %u -> user name
# %n -> network name
# %Y -> 4 digit year
# %m -> 2 digit month
# %d -> 2 digit day
# %c -> destination (#chan, privates, ...)
#log_format = "%n/%Y-%m/%c.%d.log";

# Sets the frequency (in seconds) of log syncing (real write to kernel)
log_sync_interval = 5;

# Makes bip send the log of each channel and privates while
# you were not connected to the proxy upon connection. 
#backlog = true;        # enable backlog
# backlog_lines = 10;       # number of lines in backlog, 0 means no limit
# backlog_always = true;        # backlog even lines already backlogged
backlog = true;
backlog_lines = 200; 
backlog_always = false;
backlog_reset_on_talk = false;
# backlog_reset_connection = false;
backlog_msg_only = true; 

# If blreset_on_talk talking on an irc network has the same effect of issuing
# /bip blreset, meaning that stuffed logged before the command won't be read
# back on backlog
#blreset_on_talk = false;

# Network definition, a name and server info

network {
    name = "freenode";
    server { host = "irc.freenode.net"; port = 6667; };

# Configuration example with one user who connects to two irc networks
# To use the multi-server feature:
#  - define the connections
#  - chose and setup a different login for each connection
# on your irc client:
#  - Use the multi server feature of your client, the server beeing each time
#    the server where bip is running. In your client setup server password to:
#      username:password:connectionname
#  - do not store the password in clear here, use the bipmkpw util to generate
# a hash

# User structure is grouping information for a given user
user {
    # The name in bip of the user
    # This is used by bip only
    name = "lucas";

    # this user's password (md5(md5("tata"))) with seed - generated by bipmkpw
    password = "f3d93275fa....";

    # SSL certificates checking mode for user:
    # - "none" to accept anything;
    # - "basic" to accept if the certificate is contained in the store;
    # In "basic" mode, encountered untrusted certificates can be added to
    # the store interactively by connecting a client and "trusting" them.
    # - "ca" to do a complete certificate chain checking with the objects
    # in the store below (you have to put in it every cert, CRL, up to the
    # root CA). You have to build your store manually, so you may prefer
    # using "basic" unless you're a crypto zealot...
    ssl_check_mode = "none";

    # Location of the user's store for SSL certificate check
    # In "basic" mode, that must point to a single file with all trusted
    # certs concatenated together (the interactive "trust" appends to this
    # file).
    # In "ca" mode, it's a directory of a standard openssl store; you must
    # put PEM objects (certificates, CRLs...) with .pem extension and run
    # `c_rehash .' in it
    # ssl_check_store = "/home/bip`debian/.bip/trustedcerts.txt";

    # These will be the default for each connections
    default_nick = "testNickname";
    default_user = "testNickname";
    default_realname = "lucas";

    connection {
        name = "freenode";              # used by bip only
        network = "freenode";           # which IRC network to connect to

# Autojoined channels:
        channel { name = "#gslug"; };
        channel { name = "#help"; };
#       channel { name = "#help"; backlog = false; };
share|improve this question
up vote 1 down vote accepted

When you type $HOME at the command line or in a shell script, it's expanded by the shell. In a configuration file, unless otherwise documented in the manual of the application, $HOME means dollar, capital H, capital O, capital M, capital E. So change the line




and similarly for log_root.

share|improve this answer
Yes, that was it. – Lucas Apr 11 '14 at 7:16

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.